Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 6 additions & 8 deletions src/app/auth/signin/page.tsx
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
import Image from 'next/image';
import Link from 'next/link';

import classes from './styles.module.css';

import { LoginPluginScriptViewer, SignInForm } from '@/features/auth-credentials-form';
import { AUTH_PAGES } from '@/shared/routes';
import logo from '@/assets/logos/logo.svg';

export default function Page() {
Expand All @@ -22,12 +20,12 @@ export default function Page() {
</div>
<SignInForm />
<LoginPluginScriptViewer />
<div className={classes.login__registration}>
Нет аккаунта?{' '}
<Link href={AUTH_PAGES.SIGN_UP} className={classes.login__link}>
Регистрация
</Link>
</div>
{/*<div className={classes.login__registration}>*/}
{/* Нет аккаунта?{' '}*/}
{/* <Link href={AUTH_PAGES.SIGN_UP} className={classes.login__link}>*/}
{/* Регистрация*/}
{/* </Link>*/}
{/*</div>*/}
</div>
</div>
<div className={classes.login__banner}>
Expand Down
35 changes: 2 additions & 33 deletions src/app/auth/signup/page.tsx
Original file line number Diff line number Diff line change
@@ -1,38 +1,7 @@
import Image from 'next/image';
import Link from 'next/link';
import { redirect } from 'next/navigation';

import classes from './styles.module.css';

import { SignUpForm } from '@/features/auth-credentials-form';
import { AUTH_PAGES } from '@/shared/routes';
import logo from '@/assets/logos/logo.svg';

export default function Page() {
return (
<>
<div className={classes.register}>
<div className={classes['register__main-content']}>
<div className={classes.register__form}>
<div className={classes.register__details}>
<Image src={logo} className={classes.register__logo} alt="Gml Frontend" />
<h1 className={classes.register__title}>Регистрация</h1>
<p className={classes.register__subtitle}>
Введите свой адрес электронной почты ниже, чтобы создать свою учетную запись
</p>
</div>
<SignUpForm />
<div className={classes.register__login}>
Уже есть аккаунт?{' '}
<Link href={AUTH_PAGES.SIGN_IN} className={classes.register__link}>
Войти
</Link>
</div>
</div>
</div>
<div className={classes.register__banner}>
<Image src={logo} className={classes['register__banner-image']} alt="Gml Frontend" />
</div>
</div>
</>
);
redirect(AUTH_PAGES.SIGN_IN);
}
219 changes: 95 additions & 124 deletions src/app/page.tsx
Original file line number Diff line number Diff line change
@@ -1,142 +1,113 @@
import Link from 'next/link';
import { CodeIcon, DesktopIcon, LockClosedIcon } from '@radix-ui/react-icons';
import {
AtomIcon,
CloudUploadIcon,
GamepadIcon,
GlobeLockIcon,
MessageSquareHeartIcon,
PencilIcon,
ServerIcon,
SettingsIcon,
ShieldIcon,
} from 'lucide-react';
import Image from 'next/image';
import React from 'react';
import Link from 'next/link';

import { cn } from '@/shared/lib/utils';
import { config } from '@/core/configs';
import logo from '@/assets/logos/logo.svg';
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@/shared/ui/card';
import { AUTH_PAGES } from '@/shared/routes';
import { cn } from '@/shared/lib/utils';
import { buttonVariants } from '@/shared/ui/button';
import WelcomeNavbar from '@/app/auth/welcome/welcomeNavbar';
import { Card, CardDescription, CardHeader, CardTitle } from '@/shared/ui/card';

const cardData = [
{
icon: <DesktopIcon className="text-blue-500 size-6 mb-2" />,
title: 'Кроссплатформенность',
description:
'Поддержка различных операционных систем для легкости развертывания и использования.',
},
{
icon: <GamepadIcon className="text-green-500 size-6 mb-2" />,
title: 'Инфраструктура для Minecraft',
description:
'Полный набор инструментов для создания и управления игровыми клиентами и профилями.',
},
{
icon: <ShieldIcon className="text-gray-700 size-6 mb-2" />,
title: 'Безопасность и защита',
description:
'Встроенные механизмы безопасности и базовая защита для обеспечения безопасности проекта.',
},
{
icon: <SettingsIcon className="text-teal-500 size-6 mb-2" />,
title: 'Гибкость и расширяемость',
description:
'Легкая адаптация под различные требования и возможность расширять функциональность.',
},
{
icon: <AtomIcon className="text-yellow-500 size-6 mb-2" />,
title: 'Установка на любую ОС',
description:
'Простота и гибкость установки на Windows, Linux или macOS (сборка из исходного кода) с использованием Docker и Pterodactyl для удобства.',
},
{
icon: <LockClosedIcon className="text-red-500 size-6 mb-2" />,
title: 'Собственная авторизация',
description:
'Возможность использования собственной, так и предустановленной системы авторизации.',
},
{
icon: <CodeIcon className="text-purple-500 size-6 mb-2" />,
title: 'Современные технологии',
description:
'Использование C#, .NET 8, Docker и других технологий для обеспечения высокой производительности.',
},
{
icon: <ServerIcon className="text-indigo-500 size-6 mb-2" />,
title: 'Поддержка серверов',
description: 'Удобная настройка и управление игровыми серверами с полной поддержкой Docker.',
},
{
icon: <PencilIcon className="text-orange-500 size-6 mb-2" />,
title: 'Редактирование лаунчера',
description:
'Легкость в редактировании стилей, цветов и компонентов лаунчера для индивидуальных нужд.',
},
{
icon: <CloudUploadIcon className="text-teal-700 size-6 mb-2" />,
title: 'Публикация лаунчера',
description: 'Простота публикации лаунчера через панель для различных операционных систем.',
},
{
icon: <GlobeLockIcon className="text-blue-600 size-6 mb-2" />,
title: 'Интеграция с популярными сервисами',
description:
'Возможность подключения к сторонним API, таким как Discord, и другими платформами.',
},
{
icon: <MessageSquareHeartIcon className="text-teal-700 size-6 mb-2" />,
title: 'Обновления и поддержка',
description:
'Регулярные обновления с улучшениями и исправлениями, а также доступ к документации .',
},
];

export default function Home() {
return (
<>
<div className="p-4 sm:p-10 h-screen flex flex-col">
<WelcomeNavbar />

<div className="grid grid-cols-1 lg:grid-cols-[400px_1fr] xl:grid-cols-[550px_1fr] h-full gap-10 md:grid-cols-2 pt-32 sm:pt-16 items-start xl:items-center">
<div className="flex relative gap-y-5 flex-col">
<h1 className="text-4xl font-bold">Спасибо за выбор Gml</h1>
<p className="text-xl text-gray-400 leading-relaxed">
Добро пожаловать в панель управления! Мы рады приветствовать вас в панели управления.
Здесь вы можете настроить, управлять и следить за всеми аспектами вашего проекта.
</p>

<div className="flex gap-x-4">
<div className="bg-muted flex min-h-svh flex-col items-center justify-center gap-6 p-6 md:p-10">
<div className="flex w-full max-w-sm flex-col gap-6">
<a href="#" className="flex items-center gap-2 self-center font-medium">
<Image src={logo} alt="Gml Frontend" className="w-12 sm:w-8" />
{config.name}
</a>
<Card>
<CardHeader className="text-center">
<CardTitle className="text-xl">Добро пожаловать</CardTitle>
<CardDescription>
Здесь вы можете настроить, управлять и следить за всеми аспектами вашего проекта.
</CardDescription>
</CardHeader>
<CardContent className="text-center">
<Link
href={AUTH_PAGES.SIGN_IN}
className={cn(buttonVariants({ variant: 'default' }))}
>
Войти
</Link>
<Link
href={AUTH_PAGES.SIGN_UP}
className={cn(buttonVariants({ variant: 'outline' }))}
>
Регистрация
Продолжить
</Link>
</div>
</div>

<div className="grid grid-cols-1 gap-5 sm:grid-cols-2 md:grid-cols-1 lg:grid-cols-2 xl:grid-cols-3 2xl:grid-cols-4">
{cardData.map((card) => (
<div key={card.title} className="flex flex-col gap-5 w-full">
<Card className="card-container">
<CardHeader>
{card.icon}
<CardTitle className="text-xl truncate">{card.title}</CardTitle>
<CardDescription>{card.description}</CardDescription>
</CardHeader>
</Card>
</div>
))}
</div>
</CardContent>
</Card>
</div>
</div>
<div></div>
{/*<div className="min-h-screen p-4 sm:p-10 flex flex-col items-center justify-center gap-6">*/}
{/* <Image src={logo} alt="Gml Frontend" className="w-12 sm:w-16" />*/}
{/* <h1 className="text-3xl font-bold tracking-tight">Добро пожаловать!</h1>*/}

{/* <div id="nestedPageContent" className="grid gap-6 w-full max-w-4xl">*/}
{/* <Card>*/}
{/* <CardHeader>*/}
{/* <CardTitle>Панель управления вашим игровым проектом</CardTitle>*/}
{/* <CardDescription>*/}
{/* Добро пожаловать в панель управления! Мы рады приветствовать вас в панели*/}
{/* управления. Здесь вы можете настроить, управлять и следить за всеми аспектами вашего*/}
{/* проекта.*/}
{/* </CardDescription>*/}
{/* </CardHeader>*/}
{/* <CardContent className="flex items-center gap-4">*/}
{/* <Link*/}
{/* href={AUTH_PAGES.SIGN_IN}*/}
{/* className={cn(buttonVariants({ variant: 'default' }))}*/}
{/* >*/}
{/* Войти*/}
{/* </Link>*/}
{/* </CardContent>*/}
{/* </Card>*/}

{/* <div className=" text-center text-xs text-muted-foreground">*/}
{/* {config.name} {config.version}*/}
{/* </div>*/}
{/* </div>*/}
{/*</div>*/}
{/*<div className="p-4 sm:p-10 h-screen flex flex-col">*/}
{/* <WelcomeNavbar />*/}

{/* <div className="grid grid-cols-1 lg:grid-cols-[400px_1fr] xl:grid-cols-[550px_1fr] h-full gap-10 md:grid-cols-2 pt-32 sm:pt-16 items-start xl:items-center">*/}
{/* <div className="flex relative gap-y-5 flex-col">*/}
{/* <h1 className="text-4xl font-bold">Спасибо за выбор Gml</h1>*/}
{/* <p className="text-xl text-gray-400 leading-relaxed">*/}
{/* Добро пожаловать в панель управления! Мы рады приветствовать вас в панели управления.*/}
{/* Здесь вы можете настроить, управлять и следить за всеми аспектами вашего проекта.*/}
{/* </p>*/}

{/* <div className="flex gap-x-4">*/}
{/* <Link*/}
{/* href={AUTH_PAGES.SIGN_IN}*/}
{/* className={cn(buttonVariants({ variant: 'default' }))}*/}
{/* >*/}
{/* Войти*/}
{/* </Link>*/}
{/* /!*<Link*!/*/}
{/* /!* href={AUTH_PAGES.SIGN_UP}*!/*/}
{/* /!* className={cn(buttonVariants({ variant: 'outline' }))}*!/*/}
{/* /!*>*!/*/}
{/* /!* Регистрация*!/*/}
{/* /!*</Link>*!/*/}
{/* </div>*/}
{/* </div>*/}

{/* /!*<div className="grid grid-cols-1 gap-5 sm:grid-cols-2 md:grid-cols-1 lg:grid-cols-2 xl:grid-cols-3 2xl:grid-cols-4">*!/*/}
{/* /!* {cardData.map((card) => (*!/*/}
{/* /!* <div key={card.title} className="flex flex-col gap-5 w-full">*!/*/}
{/* /!* <Card className="card-container">*!/*/}
{/* /!* <CardHeader>*!/*/}
{/* /!* {card.icon}*!/*/}
{/* /!* <CardTitle className="text-xl truncate">{card.title}</CardTitle>*!/*/}
{/* /!* <CardDescription>{card.description}</CardDescription>*!/*/}
{/* /!* </CardHeader>*!/*/}
{/* /!* </Card>*!/*/}
{/* /!* </div>*!/*/}
{/* /!* ))}*!/*/}
{/* /!*</div>*!/*/}
{/* </div>*/}
{/*</div>*/}
</>
);
}
2 changes: 1 addition & 1 deletion src/shared/routes/index.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
export const AUTH_PAGES = {
HOME: '/auth',
SIGN_IN: '/auth/signin',
SIGN_UP: '/auth/signup',
// SIGN_UP: '/auth/signup',
};

export const DASHBOARD_PAGES = {
Expand Down
Loading