Merge pull request 'update: added adaptability for pages' (#10) from add-pages into dev

Reviewed-on: #10
This commit is contained in:
adilovcode 2025-05-01 22:17:05 +05:00
commit a839f37c27
14 changed files with 936 additions and 873 deletions

View File

@ -37,7 +37,7 @@ export default async function RootLayout({
className='scroll-smooth' className='scroll-smooth'
style={{ scrollBehavior: 'smooth' }} style={{ scrollBehavior: 'smooth' }}
> >
<body className={`${inter.className} antialiased`}> <body className={`${inter.className} antialiased min-w-2xs`}>
<Providers textItems={response.data as TextItem[]}> <Providers textItems={response.data as TextItem[]}>
<Header /> <Header />
{children} {children}

View File

@ -97,7 +97,7 @@ export function CorporateDashboard() {
const { t } = useTextController(); const { t } = useTextController();
return ( return (
<div className='flex min-h-screen flex-col'> <div className='flex min-h-screen flex-col px-2.5'>
<main className='flex-1 py-10'> <main className='flex-1 py-10'>
<div className='container mx-auto max-w-6xl'> <div className='container mx-auto max-w-6xl'>
<div className='mb-8 flex items-center justify-between'> <div className='mb-8 flex items-center justify-between'>
@ -110,7 +110,7 @@ export function CorporateDashboard() {
<div className='mb-10 grid gap-3 md:grid-cols-3 md:gap-6'> <div className='mb-10 grid gap-3 md:grid-cols-3 md:gap-6'>
{/* Company Card */} {/* Company Card */}
<Card className='md:col-span-2'> <Card data-aos='zoom-in' data-aos-mirror="true" className='md:col-span-2'>
<CardHeader className='pb-2'> <CardHeader className='pb-2'>
<CardTitle className='flex items-center gap-2'> <CardTitle className='flex items-center gap-2'>
<Building2 className='h-5 w-5 text-red-600' /> <Building2 className='h-5 w-5 text-red-600' />
@ -166,7 +166,7 @@ export function CorporateDashboard() {
</Card> </Card>
{/* Fund Card */} {/* Fund Card */}
<Card className='bg-gradient-to-br from-red-600 to-red-800 text-white'> <Card data-aos='zoom-in' data-aos-mirror="true" className='bg-gradient-to-br from-red-600 to-red-800 text-white'>
<CardHeader> <CardHeader>
<CardTitle className='flex items-center gap-2'> <CardTitle className='flex items-center gap-2'>
<Wallet className='h-5 w-5' /> <Wallet className='h-5 w-5' />

View File

@ -22,7 +22,7 @@ export function CustomerDashboard() {
const { data, isLoading } = useFetchMyBonusInfoQuery({}); const { data, isLoading } = useFetchMyBonusInfoQuery({});
return ( return (
<div className='flex min-h-screen flex-col'> <div className='flex min-h-screen flex-col px-2.5'>
<main className='flex-1 py-10'> <main className='flex-1 py-10'>
<div className='container mx-auto max-w-6xl'> <div className='container mx-auto max-w-6xl'>
<div className='mb-8 flex items-center justify-between'> <div className='mb-8 flex items-center justify-between'>
@ -34,7 +34,7 @@ export function CustomerDashboard() {
</div> </div>
<div className='mb-10 grid gap-3 md:grid-cols-3 md:gap-6'> <div className='mb-10 grid gap-3 md:grid-cols-3 md:gap-6'>
<Card className='bg-gradient-to-br from-red-600 to-red-800 text-white'> <Card data-aos="zoom-in" data-aos-mirror="true" className='bg-gradient-to-br from-red-600 to-red-800 text-white'>
{!data || isLoading ? ( {!data || isLoading ? (
// TODO: Bunyod please add loader here // TODO: Bunyod please add loader here
<>Loader here</> <>Loader here</>
@ -73,7 +73,7 @@ export function CustomerDashboard() {
{/* Bonus Card */} {/* Bonus Card */}
{/* Customer Card */} {/* Customer Card */}
<Card className='md:col-span-2'> <Card data-aos="zoom-in" data-aos-mirror="true" className='md:col-span-2'>
<CardHeader className='pb-2'> <CardHeader className='pb-2'>
<CardTitle className='flex items-center gap-2'> <CardTitle className='flex items-center gap-2'>
<User className='h-5 w-5 text-red-600' /> <User className='h-5 w-5 text-red-600' />

View File

@ -13,6 +13,7 @@ import { Card, CardContent } from '@/shared/shadcn-ui/card';
import { CompanyTimeline } from '@/widgets/about-page/company-timeline'; import { CompanyTimeline } from '@/widgets/about-page/company-timeline';
import { StationGallery } from '@/widgets/about-page/station-gallery'; import { StationGallery } from '@/widgets/about-page/station-gallery';
import { CtaSection } from '@/widgets/cta-section'; import { CtaSection } from '@/widgets/cta-section';
import Container from '@/shared/shadcn-ui/conteiner';
export const metadata = { export const metadata = {
title: 'about.metadata.title', title: 'about.metadata.title',
@ -36,8 +37,8 @@ export default function AboutPage() {
className='object-cover' className='object-cover'
priority priority
/> />
<div className='absolute inset-0 flex items-center bg-gradient-to-r from-black/70 to-black/30'> <div className='absolute inset-0 flex items-center bg-gradient-to-r from-black/70 to-black/30 px-2'>
<div className='container mx-auto'> <div data-aos='fade-down' data-aos-duration="1000" className='container mx-auto'>
<div className='max-w-2xl space-y-4 text-white'> <div className='max-w-2xl space-y-4 text-white'>
<h1 className='text-4xl font-bold tracking-tight sm:text-5xl md:text-6xl'> <h1 className='text-4xl font-bold tracking-tight sm:text-5xl md:text-6xl'>
{t('about.hero.title')} {t('about.hero.title')}
@ -52,10 +53,11 @@ export default function AboutPage() {
</section> </section>
{/* Company Overview */} {/* Company Overview */}
<Container>
<section className='py-16'> <section className='py-16'>
<div className='container mx-auto'> <div className='container mx-auto'>
<div className='grid items-center gap-12 md:grid-cols-2'> <div className='grid items-center gap-12 md:grid-cols-2'>
<div> <div data-aos='fade-right'>
<div className='mb-4 inline-flex items-center justify-center rounded-full bg-red-100 p-2'> <div className='mb-4 inline-flex items-center justify-center rounded-full bg-red-100 p-2'>
<Fuel className='h-6 w-6 text-red-600' /> <Fuel className='h-6 w-6 text-red-600' />
</div> </div>
@ -72,7 +74,7 @@ export default function AboutPage() {
{t('about.overview.description3')} {t('about.overview.description3')}
</p> </p>
<div className='mb-6 grid grid-cols-2 gap-4'> <div className='mb-6 grid md:grid-cols-2 gap-4 grid-cols-1'>
{[0, 1, 2, 3].map((index) => ( {[0, 1, 2, 3].map((index) => (
<div key={index} className='flex items-start'> <div key={index} className='flex items-start'>
<div className='mt-1 flex h-6 w-6 flex-shrink-0 items-center justify-center rounded-full bg-red-600'> <div className='mt-1 flex h-6 w-6 flex-shrink-0 items-center justify-center rounded-full bg-red-600'>
@ -90,7 +92,7 @@ export default function AboutPage() {
))} ))}
</div> </div>
</div> </div>
<div className='relative h-[500px] overflow-hidden rounded-xl shadow-xl'> <div data-aos="zoom-out-right" className='relative h-[500px] overflow-hidden rounded-xl shadow-xl'>
<Image <Image
src='/placeholder.svg?height=500&width=600&text=Главный+офис' src='/placeholder.svg?height=500&width=600&text=Главный+офис'
alt={t('about.overview.imageAlt')} alt={t('about.overview.imageAlt')}
@ -101,6 +103,7 @@ export default function AboutPage() {
</div> </div>
</div> </div>
</section> </section>
</Container>
{/* Stats Section */} {/* Stats Section */}
<section className='bg-red-600 py-16 text-white'> <section className='bg-red-600 py-16 text-white'>
@ -113,7 +116,7 @@ export default function AboutPage() {
{t('about.stats.subtitle')} {t('about.stats.subtitle')}
</p> </p>
</div> </div>
<div className='grid grid-cols-2 gap-8 text-center md:grid-cols-4'> <div className='grid grid-cols-1 sm:grid-cols-2 gap-8 text-center md:grid-cols-4'>
{[0, 1, 2, 3].map((index) => ( {[0, 1, 2, 3].map((index) => (
<div key={index} className='space-y-2'> <div key={index} className='space-y-2'>
<h3 className='text-4xl font-bold'> <h3 className='text-4xl font-bold'>
@ -139,6 +142,7 @@ export default function AboutPage() {
{/* Our History */} {/* Our History */}
<section className='py-16'> <section className='py-16'>
<div className='container mx-auto'> <div className='container mx-auto'>
<Container>
<div className='mb-12 flex flex-col items-center justify-center text-center'> <div className='mb-12 flex flex-col items-center justify-center text-center'>
<div className='mb-4 inline-flex items-center justify-center rounded-full bg-red-100 p-2'> <div className='mb-4 inline-flex items-center justify-center rounded-full bg-red-100 p-2'>
<History className='h-6 w-6 text-red-600' /> <History className='h-6 w-6 text-red-600' />
@ -150,12 +154,17 @@ export default function AboutPage() {
{t('about.history.subtitle')} {t('about.history.subtitle')}
</p> </p>
</div> </div>
</Container>
<Container>
<CompanyTimeline /> <CompanyTimeline />
</Container>
</div> </div>
</section> </section>
{/* Our Stations */} {/* Our Stations */}
<Container>
<section className='bg-gray-50 py-16'> <section className='bg-gray-50 py-16'>
<div className='container mx-auto'> <div className='container mx-auto'>
<div className='mb-12 flex flex-col items-center justify-center text-center'> <div className='mb-12 flex flex-col items-center justify-center text-center'>
@ -183,8 +192,10 @@ export default function AboutPage() {
</div> </div>
</div> </div>
</section> </section>
</Container>
{/* Our Values */} {/* Our Values */}
<Container>
<section className='py-16'> <section className='py-16'>
<div className='container mx-auto'> <div className='container mx-auto'>
<div className='mb-12 flex flex-col items-center justify-center text-center'> <div className='mb-12 flex flex-col items-center justify-center text-center'>
@ -199,7 +210,7 @@ export default function AboutPage() {
</p> </p>
</div> </div>
<div className='grid gap-8 md:grid-cols-3'> <div data-aos='flip-up' data-aos-duration='600' className='grid gap-8 md:grid-cols-3'>
{[0, 1, 2].map((index) => ( {[0, 1, 2].map((index) => (
<Card <Card
key={index} key={index}
@ -221,8 +232,10 @@ export default function AboutPage() {
</div> </div>
</div> </div>
</section> </section>
</Container>
{/* Our Team */} {/* Our Team */}
<Container>
<section className='bg-gray-50 py-16'> <section className='bg-gray-50 py-16'>
<div className='container mx-auto'> <div className='container mx-auto'>
<div className='mb-12 flex flex-col items-center justify-center text-center'> <div className='mb-12 flex flex-col items-center justify-center text-center'>
@ -237,7 +250,7 @@ export default function AboutPage() {
</p> </p>
</div> </div>
<div className='grid grid-cols-1 gap-8 sm:grid-cols-2 lg:grid-cols-4'> <div data-aos='flip-down' data-aos-duration='600' className='grid grid-cols-1 gap-8 sm:grid-cols-2 lg:grid-cols-4'>
{[0, 1, 2, 3].map((index) => ( {[0, 1, 2, 3].map((index) => (
<div <div
key={index} key={index}
@ -264,8 +277,11 @@ export default function AboutPage() {
</div> </div>
</div> </div>
</section> </section>
</Container>
{/* Testimonials */} {/* Testimonials */}
<Container>
<section className='py-16'> <section className='py-16'>
<div className='container mx-auto'> <div className='container mx-auto'>
<div className='mb-12 flex flex-col items-center justify-center text-center'> <div className='mb-12 flex flex-col items-center justify-center text-center'>
@ -280,7 +296,7 @@ export default function AboutPage() {
</p> </p>
</div> </div>
<div className='grid gap-8 md:grid-cols-3'> <div data-aos="zoom-out-right" className='grid gap-8 md:grid-cols-3'>
{[0, 1, 2].map((index) => ( {[0, 1, 2].map((index) => (
<Card <Card
key={index} key={index}
@ -309,6 +325,7 @@ export default function AboutPage() {
</div> </div>
</div> </div>
</section> </section>
</Container>
<CtaSection /> <CtaSection />
</main> </main>

View File

@ -21,6 +21,7 @@ import {
} from '@/shared/shadcn-ui/card'; } from '@/shared/shadcn-ui/card';
import { CtaSection } from '@/widgets/cta-section'; import { CtaSection } from '@/widgets/cta-section';
import Container from '@/shared/shadcn-ui/conteiner';
export const metadata = { export const metadata = {
title: 'Благотворительность | GasNetwork - Сеть заправок в Таджикистане', title: 'Благотворительность | GasNetwork - Сеть заправок в Таджикистане',
@ -46,24 +47,27 @@ export function CharityPage() {
priority priority
/> />
<div className='absolute inset-0 flex items-center bg-gradient-to-r from-black/70 to-black/30'> <div className='absolute inset-0 flex items-center bg-gradient-to-r from-black/70 to-black/30'>
<div className='container mx-auto'> <Container>
<div data-aos='fade-down' data-aos-duration='800' className='container mx-auto'>
<div className='max-w-2xl space-y-6 text-white'> <div className='max-w-2xl space-y-6 text-white'>
<div className='inline-flex items-center justify-center rounded-full bg-red-600/20 p-2'> <div className='inline-flex items-center justify-center rounded-full bg-red-600/20 p-2'>
<Heart className='size-6 text-red-500' /> <Heart className='size-6 text-red-500' />
</div> </div>
<h1 className='text-4xl font-bold tracking-tight sm:text-5xl md:text-6xl'> <h1 className='text-3xl font-bold tracking-tight sm:text-5xl md:text-6xl'>
{t('charity.hero.title')} {t('charity.hero.title')}
</h1> </h1>
<p className='text-xl text-gray-200'> <p className='text-lg sm:text-xl text-gray-200'>
{t('charity.hero.subtitle')} {t('charity.hero.subtitle')}
</p> </p>
</div> </div>
</div> </div>
</Container>
</div> </div>
</div> </div>
</section> </section>
{/* Mission Section */} {/* Mission Section */}
<Container>
<section className='py-16'> <section className='py-16'>
<div className='container mx-auto'> <div className='container mx-auto'>
<div className='grid items-center gap-12 md:grid-cols-2'> <div className='grid items-center gap-12 md:grid-cols-2'>
@ -108,6 +112,7 @@ export function CharityPage() {
</div> </div>
</div> </div>
</section> </section>
</Container>
{/* Key Figures */} {/* Key Figures */}
<section className='bg-red-600 py-16 text-white'> <section className='bg-red-600 py-16 text-white'>
@ -136,6 +141,7 @@ export function CharityPage() {
</section> </section>
{/* Upcoming Events */} {/* Upcoming Events */}
<Container>
<section className='bg-gray-50 py-16'> <section className='bg-gray-50 py-16'>
<div className='container mx-auto'> <div className='container mx-auto'>
<div className='mb-12 text-center'> <div className='mb-12 text-center'>
@ -179,7 +185,8 @@ export function CharityPage() {
'/placeholder.svg?height=200&width=300&text=Школьные+принадлежности', '/placeholder.svg?height=200&width=300&text=Школьные+принадлежности',
}, },
].map((event, index) => ( ].map((event, index) => (
<Card key={index} className='overflow-hidden'> <Card key={index} className='overflow-hidden flex flex-col justify-between'>
<div>
<div className='relative h-48 w-full'> <div className='relative h-48 w-full'>
<Image <Image
src={event.image || '/placeholder.svg'} src={event.image || '/placeholder.svg'}
@ -189,7 +196,7 @@ export function CharityPage() {
/> />
</div> </div>
<CardHeader> <CardHeader>
<CardTitle>{event.title}</CardTitle> <CardTitle className='text-xl lg:text-2xl'>{event.title}</CardTitle>
</CardHeader> </CardHeader>
<CardContent className='space-y-4'> <CardContent className='space-y-4'>
<p className='text-gray-600'>{event.description}</p> <p className='text-gray-600'>{event.description}</p>
@ -202,6 +209,7 @@ export function CharityPage() {
{event.location} {event.location}
</div> </div>
</CardContent> </CardContent>
</div>
<CardFooter> <CardFooter>
<Button className='w-full bg-red-600 hover:bg-red-700'> <Button className='w-full bg-red-600 hover:bg-red-700'>
{t(`charity.events.button`)} {t(`charity.events.button`)}
@ -212,8 +220,10 @@ export function CharityPage() {
</div> </div>
</div> </div>
</section> </section>
</Container>
{/* How to Help */} {/* How to Help */}
<Container>
<section className='py-16'> <section className='py-16'>
<div className='container mx-auto'> <div className='container mx-auto'>
<div className='mb-12 text-center'> <div className='mb-12 text-center'>
@ -270,6 +280,7 @@ export function CharityPage() {
</div> </div>
</div> </div>
</section> </section>
</Container>
<CtaSection /> <CtaSection />
</main> </main>
</div> </div>

View File

@ -6,6 +6,7 @@ import Image from 'next/image';
import { useTextController } from '@/shared/language/hooks/use-text-controller'; import { useTextController } from '@/shared/language/hooks/use-text-controller';
import { Button } from '@/shared/shadcn-ui/button'; import { Button } from '@/shared/shadcn-ui/button';
import { Card, CardContent } from '@/shared/shadcn-ui/card'; import { Card, CardContent } from '@/shared/shadcn-ui/card';
import Container from '@/shared/shadcn-ui/conteiner';
export function CertificatesPage() { export function CertificatesPage() {
const { t } = useTextController(); const { t } = useTextController();
@ -64,7 +65,7 @@ export function CertificatesPage() {
]; ];
return ( return (
<> <Container>
<main className='container mx-auto py-10'> <main className='container mx-auto py-10'>
<div className='mb-10 text-center'> <div className='mb-10 text-center'>
<h1 className='mb-4 text-4xl font-bold'>{t('certificates.title')}</h1> <h1 className='mb-4 text-4xl font-bold'>{t('certificates.title')}</h1>
@ -76,6 +77,7 @@ export function CertificatesPage() {
<div className='grid gap-8 md:grid-cols-2 lg:grid-cols-3'> <div className='grid gap-8 md:grid-cols-2 lg:grid-cols-3'>
{certificates.map((certificate) => ( {certificates.map((certificate) => (
<Card <Card
data-aos='zoom-in'
key={certificate.id} key={certificate.id}
className='overflow-hidden transition-all duration-300 hover:shadow-lg' className='overflow-hidden transition-all duration-300 hover:shadow-lg'
> >
@ -122,6 +124,6 @@ export function CertificatesPage() {
))} ))}
</div> </div>
</main> </main>
</> </Container>
); );
} }

View File

@ -7,6 +7,7 @@ import { useTextController } from '@/shared/language/hooks/use-text-controller';
import { BenefitsSection } from '@/widgets/clients/ui/benefits-section'; import { BenefitsSection } from '@/widgets/clients/ui/benefits-section';
import { ServicesOverviewSection } from '@/widgets/clients/ui/services-overview-section'; import { ServicesOverviewSection } from '@/widgets/clients/ui/services-overview-section';
import { CtaSection } from '@/widgets/cta-section'; import { CtaSection } from '@/widgets/cta-section';
import Container from '@/shared/shadcn-ui/conteiner';
export const metadata = { export const metadata = {
title: 'Клиентам | GasNetwork - Сеть заправок в Таджикистане', title: 'Клиентам | GasNetwork - Сеть заправок в Таджикистане',
@ -32,7 +33,8 @@ export function ClientsPage() {
priority priority
/> />
<div className='absolute inset-0 flex items-center bg-gradient-to-r from-black/70 to-black/30'> <div className='absolute inset-0 flex items-center bg-gradient-to-r from-black/70 to-black/30'>
<div className='container mx-auto'> <Container>
<div data-aos='fade-down' data-aos-duration="1000" className='container mx-auto'>
<div className='max-w-2xl space-y-4 text-white'> <div className='max-w-2xl space-y-4 text-white'>
<h1 className='text-4xl font-bold tracking-tight sm:text-5xl md:text-6xl'> <h1 className='text-4xl font-bold tracking-tight sm:text-5xl md:text-6xl'>
{t('clients.title')} {t('clients.title')}
@ -42,6 +44,7 @@ export function ClientsPage() {
</p> </p>
</div> </div>
</div> </div>
</Container>
</div> </div>
</div> </div>
</section> </section>

View File

@ -7,6 +7,7 @@ import { useTextController } from '@/shared/language/hooks/use-text-controller';
import { Card, CardContent } from '@/shared/shadcn-ui/card'; import { Card, CardContent } from '@/shared/shadcn-ui/card';
import { CtaSection } from '@/widgets/cta-section'; import { CtaSection } from '@/widgets/cta-section';
import Container from '@/shared/shadcn-ui/conteiner';
export const metadata = { export const metadata = {
title: 'Программа лояльности | GasNetwork - Сеть заправок в Таджикистане', title: 'Программа лояльности | GasNetwork - Сеть заправок в Таджикистане',
@ -32,7 +33,8 @@ export function LoyaltyPage() {
priority priority
/> />
<div className='absolute inset-0 flex items-center bg-gradient-to-r from-black/70 to-black/30'> <div className='absolute inset-0 flex items-center bg-gradient-to-r from-black/70 to-black/30'>
<div className='container mx-auto'> <Container>
<div data-aos='fade-down' data-aos-duration="800" className='container mx-auto'>
<div className='max-w-2xl space-y-4 text-white'> <div className='max-w-2xl space-y-4 text-white'>
<h1 className='text-4xl font-bold tracking-tight sm:text-5xl md:text-6xl'> <h1 className='text-4xl font-bold tracking-tight sm:text-5xl md:text-6xl'>
{t('clients.loyalty.title')} {t('clients.loyalty.title')}
@ -42,15 +44,17 @@ export function LoyaltyPage() {
</p> </p>
</div> </div>
</div> </div>
</Container>
</div> </div>
</div> </div>
</section> </section>
<Container>
{/* Program Overview */} {/* Program Overview */}
<section className='py-16'> <section className='py-16'>
<div className='container mx-auto'> <div className='container mx-auto'>
<div className='grid items-center gap-12 md:grid-cols-2'> <div className='grid items-center gap-12 md:grid-cols-2'>
<div> <div data-aos='fade-right'>
<div className='mb-4 inline-flex items-center justify-center rounded-full bg-red-100 p-2'> <div className='mb-4 inline-flex items-center justify-center rounded-full bg-red-100 p-2'>
<Percent className='h-6 w-6 text-red-600' /> <Percent className='h-6 w-6 text-red-600' />
</div> </div>
@ -106,7 +110,7 @@ export function LoyaltyPage() {
</div> </div>
</div> </div>
</div> </div>
<div className='relative h-[400px] overflow-hidden rounded-xl shadow-xl'> <div data-aos='fade-up' className='relative h-[400px] overflow-hidden rounded-xl shadow-xl'>
<Image <Image
src='/placeholder.svg?height=400&width=600&text=Программа+лояльности' src='/placeholder.svg?height=400&width=600&text=Программа+лояльности'
alt='Программа лояльности' alt='Программа лояльности'
@ -130,7 +134,7 @@ export function LoyaltyPage() {
</p> </p>
</div> </div>
<div className='grid gap-8 md:grid-cols-4'> <div data-aos='zoom-in-right' className='grid gap-8 md:grid-cols-4'>
<div className='text-center'> <div className='text-center'>
<div className='mx-auto mb-4 flex h-16 w-16 items-center justify-center rounded-full bg-red-600 text-2xl font-bold text-white'> <div className='mx-auto mb-4 flex h-16 w-16 items-center justify-center rounded-full bg-red-600 text-2xl font-bold text-white'>
1 1
@ -191,7 +195,7 @@ export function LoyaltyPage() {
</p> </p>
</div> </div>
<div className='grid gap-8 md:grid-cols-3'> <div data-aos='flip-down' className='grid gap-8 md:grid-cols-3'>
<Card className='overflow-hidden border-t-4 border-t-gray-400 transition-all hover:shadow-lg'> <Card className='overflow-hidden border-t-4 border-t-gray-400 transition-all hover:shadow-lg'>
<CardContent className='p-6'> <CardContent className='p-6'>
<h3 className='mb-4 text-center text-2xl font-bold'> <h3 className='mb-4 text-center text-2xl font-bold'>
@ -320,6 +324,7 @@ export function LoyaltyPage() {
</div> </div>
</div> </div>
</section> </section>
</Container>
<CtaSection /> <CtaSection />
</main> </main>

View File

@ -22,6 +22,7 @@ import {
TabsList, TabsList,
TabsTrigger, TabsTrigger,
} from '@/shared/shadcn-ui/tabs'; } from '@/shared/shadcn-ui/tabs';
import Container from '@/shared/shadcn-ui/conteiner';
const tabs = [ const tabs = [
{ {
@ -51,6 +52,7 @@ export default function LoginPage() {
}; };
return ( return (
<Container>
<div className='flex min-h-screen flex-col items-center justify-center'> <div className='flex min-h-screen flex-col items-center justify-center'>
<main className='flex-1'> <main className='flex-1'>
<div className='container max-w-6xl py-16'> <div className='container max-w-6xl py-16'>
@ -64,7 +66,7 @@ export default function LoginPage() {
<p className='max-w-2xl text-gray-600'>{t('auth.description')}</p> <p className='max-w-2xl text-gray-600'>{t('auth.description')}</p>
</div> </div>
<div className='mx-auto max-w-lg'> <div data-aos='zoom-in' className='mx-auto max-w-lg'>
<Tabs <Tabs
defaultValue={defaultTab} defaultValue={defaultTab}
value={defaultTab} value={defaultTab}
@ -153,5 +155,6 @@ export default function LoginPage() {
</div> </div>
</main> </main>
</div> </div>
</Container>
); );
} }

View File

@ -0,0 +1,10 @@
"use client"
interface ContainerProps {
children: React.ReactNode
}
export default function Container({children}: ContainerProps) {
return (
<div className="container mx-auto px-2.5 py-1">{children}</div>
)
}

View File

@ -76,7 +76,7 @@ export function StationGallery() {
const { t } = useTextController(); const { t } = useTextController();
return ( return (
<div className='space-y-8'> <div className='space-y-8 px-2'>
<div className='relative h-[400px] overflow-hidden rounded-xl shadow-xl md:h-[500px]'> <div className='relative h-[400px] overflow-hidden rounded-xl shadow-xl md:h-[500px]'>
<Image <Image
src={stations[currentImage].image || '/placeholder.svg'} src={stations[currentImage].image || '/placeholder.svg'}

View File

@ -4,6 +4,7 @@ import { Percent } from 'lucide-react';
import Image from 'next/image'; import Image from 'next/image';
import { useTextController } from '@/shared/language/hooks/use-text-controller'; import { useTextController } from '@/shared/language/hooks/use-text-controller';
import Container from '@/shared/shadcn-ui/conteiner';
interface Benefit { interface Benefit {
title: string; title: string;
@ -33,10 +34,11 @@ export const BenefitsSection = () => {
const { t } = useTextController(); const { t } = useTextController();
return ( return (
<Container>
<section className='bg-gray-50 py-16'> <section className='bg-gray-50 py-16'>
<div className='container mx-auto'> <div className='container mx-auto'>
<div className='grid items-center gap-12 md:grid-cols-2'> <div className='grid items-center gap-12 md:grid-cols-2'>
<div className='order-2 md:order-1'> <div data-aos='fade-right' data-aos-duration='4000' className='order-2 md:order-1'>
<div className='mb-4 inline-flex items-center justify-center rounded-full bg-red-100 p-2'> <div className='mb-4 inline-flex items-center justify-center rounded-full bg-red-100 p-2'>
<Percent className='h-6 w-6 text-red-600' /> <Percent className='h-6 w-6 text-red-600' />
</div> </div>
@ -63,7 +65,7 @@ export const BenefitsSection = () => {
})} })}
</div> </div>
</div> </div>
<div className='relative order-1 h-[400px] overflow-hidden rounded-xl shadow-xl md:order-2'> <div data-aos='fade-up' className='relative order-1 h-[400px] overflow-hidden rounded-xl shadow-xl md:order-2'>
<Image <Image
src='/placeholder.svg?height=400&width=600&text=Преимущества+для+клиентов' src='/placeholder.svg?height=400&width=600&text=Преимущества+для+клиентов'
alt='Преимущества для клиентов' alt='Преимущества для клиентов'
@ -74,5 +76,6 @@ export const BenefitsSection = () => {
</div> </div>
</div> </div>
</section> </section>
</Container>
); );
}; };

View File

@ -11,6 +11,7 @@ import {
CardHeader, CardHeader,
CardTitle, CardTitle,
} from '@/shared/shadcn-ui/card'; } from '@/shared/shadcn-ui/card';
import Container from '@/shared/shadcn-ui/conteiner';
interface ServiceOverview { interface ServiceOverview {
title: string; title: string;
@ -49,6 +50,7 @@ export const ServicesOverviewSection = () => {
const { t } = useTextController(); const { t } = useTextController();
return ( return (
<Container>
<section className='py-16'> <section className='py-16'>
<div className='container mx-auto'> <div className='container mx-auto'>
<div className='mb-12 text-center'> <div className='mb-12 text-center'>
@ -60,7 +62,7 @@ export const ServicesOverviewSection = () => {
</p> </p>
</div> </div>
<div className='grid gap-3 md:grid-cols-2 md:gap-6 lg:grid-cols-3'> <div data-aos='flip-up' data-aos-duration='600' className='grid gap-3 md:grid-cols-2 md:gap-6 lg:grid-cols-3'>
{servicesOverview.map(({ description, Icon, contentText, title }) => { {servicesOverview.map(({ description, Icon, contentText, title }) => {
return ( return (
<Card <Card
@ -83,5 +85,6 @@ export const ServicesOverviewSection = () => {
</div> </div>
</div> </div>
</section> </section>
</Container>
); );
}; };

View File

@ -11,7 +11,8 @@ export const Footer = () => {
return ( return (
<footer className='bg-gray-900 px-4 py-12 text-white'> <footer className='bg-gray-900 px-4 py-12 text-white'>
<div className='containe mx-autor'> <div className='containe mx-autor'>
<div className='grid grid-cols-1 gap-8 md:grid-cols-3'> <div className='grid grid-cols-1 gap-8 md:gap-4 md:grid-cols-3'>
<div className='flex md:justify-center md:items-center'>
<div> <div>
<div className='mb-4 flex items-center gap-2'> <div className='mb-4 flex items-center gap-2'>
<Fuel className='h-6 w-6 text-red-500' /> <Fuel className='h-6 w-6 text-red-500' />
@ -59,6 +60,8 @@ export const Footer = () => {
</a> </a>
</div> </div>
</div> </div>
</div>
<div className='flex md:justify-center md:items-center'>
<div> <div>
<h3 className='mb-4 text-lg font-semibold'> <h3 className='mb-4 text-lg font-semibold'>
{t('common.footer.contacts')} {t('common.footer.contacts')}
@ -78,6 +81,8 @@ export const Footer = () => {
</div> </div>
</div> </div>
</div> </div>
</div>
<div className='flex md:justify-center md:items-center'>
<div> <div>
<h3 className='mb-4 text-lg font-semibold'> <h3 className='mb-4 text-lg font-semibold'>
{t('common.footer.navigation')} {t('common.footer.navigation')}
@ -120,6 +125,7 @@ export const Footer = () => {
</ul> </ul>
</div> </div>
</div> </div>
</div>
<div className='mt-8 border-t border-gray-800 pt-8 text-center text-gray-400'> <div className='mt-8 border-t border-gray-800 pt-8 text-center text-gray-400'>
<p> <p>
&copy; {new Date().getFullYear()} {t('common.name')}.{' '} &copy; {new Date().getFullYear()} {t('common.name')}.{' '}