diff --git a/frontend/app/(student)/dashboard/page.tsx b/frontend/app/(student)/dashboard/page.tsx index 9547849..031760d 100644 --- a/frontend/app/(student)/dashboard/page.tsx +++ b/frontend/app/(student)/dashboard/page.tsx @@ -2,6 +2,7 @@ import { useState, useEffect } from 'react'; import Link from 'next/link'; +import { StudentNav } from '@/components/StudentNav'; import { BalanceCard } from '@/components/BalanceCard'; import { TransactionList } from '@/components/TransactionList'; import { Spinner } from '@/components/ui'; @@ -58,6 +59,8 @@ export default function StudentDashboardPage() { const balance = profile?.balance ?? user?.balance ?? 0; return ( +
+

Привет, {displayName.split(' ')[0]} 👋 @@ -77,5 +80,6 @@ export default function StudentDashboardPage() {

+ ); } diff --git a/frontend/app/(student)/history/page.tsx b/frontend/app/(student)/history/page.tsx index df47ac0..0709e9b 100644 --- a/frontend/app/(student)/history/page.tsx +++ b/frontend/app/(student)/history/page.tsx @@ -2,6 +2,7 @@ import { useState, useEffect, useCallback } from 'react'; import Link from 'next/link'; +import { StudentNav } from '@/components/StudentNav'; import { TransactionList } from '@/components/TransactionList'; import { Button } from '@/components/ui'; import { api } from '@/lib/api'; @@ -49,13 +50,10 @@ export default function HistoryPage() { const hasMore = transactions.length < total; return ( +
+
-
- - ← Назад - -

История операций

-
+

История операций

{error && (

{error}

@@ -77,5 +75,6 @@ export default function HistoryPage() {

Это все операции

)}
+
); } diff --git a/frontend/app/(student)/partners/page.tsx b/frontend/app/(student)/partners/page.tsx index 180f367..18bb34f 100644 --- a/frontend/app/(student)/partners/page.tsx +++ b/frontend/app/(student)/partners/page.tsx @@ -1,7 +1,7 @@ 'use client'; import { useState, useEffect } from 'react'; -import Link from 'next/link'; +import { StudentNav } from '@/components/StudentNav'; import { PartnerCard } from '@/components/PartnerCard'; import { Spinner } from '@/components/ui'; import { api } from '@/lib/api'; @@ -27,13 +27,10 @@ export default function PartnersPage() { }, []); return ( +
+
-
- - ← Назад - -

Партнёры

-
+

Партнёры

{loading && (
@@ -57,5 +54,6 @@ export default function PartnersPage() {
)}
+
); } diff --git a/frontend/app/(student)/qr/page.tsx b/frontend/app/(student)/qr/page.tsx index f8ec27c..9f0be38 100644 --- a/frontend/app/(student)/qr/page.tsx +++ b/frontend/app/(student)/qr/page.tsx @@ -1,22 +1,21 @@ 'use client'; -import Link from 'next/link'; +import { StudentNav } from '@/components/StudentNav'; import { QRDisplay } from '@/components/QRDisplay'; export default function QRPage() { return ( -
-

Оплата поинтами

+
+ +
+

Оплата поинтами

- + -

- Покажи этот QR кассиру. Он действителен 5 минут и может быть использован только один раз. -

- - - ← Назад - -
+

+ Покажи этот QR кассиру. Он действителен 5 минут и может быть использован только один раз. +

+
+ ); } diff --git a/frontend/components/StudentNav.tsx b/frontend/components/StudentNav.tsx new file mode 100644 index 0000000..7289785 --- /dev/null +++ b/frontend/components/StudentNav.tsx @@ -0,0 +1,44 @@ +'use client'; + +import Link from 'next/link'; +import { usePathname } from 'next/navigation'; +import { useAuthStore } from '@/lib/store'; + +const LINKS = [ + { href: '/dashboard', label: 'Главная' }, + { href: '/history', label: 'История' }, + { href: '/qr', label: 'QR-код' }, + { href: '/partners', label: 'Партнёры' }, +] as const; + +export function StudentNav() { + const pathname = usePathname(); + const { logout } = useAuthStore(); + + return ( + + ); +}