Files
bichon/web/src/features/auth/index.tsx
T

57 lines
1.8 KiB
TypeScript

//
// Copyright (c) 2025-2026 rustmailer.com (https://rustmailer.com)
//
// This file is part of the Bichon Email Archiving Project
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
import {
Card,
CardContent,
CardFooter,
CardHeader,
CardTitle,
} from '@/components/ui/card'
import { UserAuthForm } from './user-auth-form'
import { useTranslation } from 'react-i18next'
import { AuthLayout } from './auth-layout'
export default function SignIn() {
const { t } = useTranslation()
return (
<AuthLayout>
<Card className='gap-4'>
<CardHeader>
<CardTitle className='text-lg tracking-tight'>{t('auth.welcome')}</CardTitle>
</CardHeader>
<CardContent>
<UserAuthForm />
</CardContent>
<CardFooter>
<p className="text-muted-foreground px-8 text-center text-sm">
{t('common.project_description')}
<a
href="https://github.com/rustmailer/bichon"
className="hover:text-primary underline underline-offset-4 ml-1"
>
{t('common.view_on_github_button')}
</a>
.
</p>
</CardFooter>
</Card>
</AuthLayout>
)
}