state.setNavItem);
const [localUser, setLocalUser] = useState<{
id: number;
name: string;
surname: string;
} | null>(null);
const [open, setOpen] = useState(false);
- const auth = {
- login: { title: t('login'), url: '#' },
- signup: { title: t('signup'), url: '#' },
- };
-
- const userItem = [
- { title: t('profile'), url: '/cabinet', icon: User, key: 'profile' },
- {
- url: '/cabinet',
- title: t_cab('dashboard'),
- icon: LayoutDashboard,
- key: 'dashboard',
- },
- {
- url: '/cabinet',
- title: t_cab('plagiat'),
- icon: FileSearch,
- key: 'plagiat',
- },
- {
- url: '/cabinet',
- title: t_cab('siNav'),
- icon: BrainCircuit,
- key: 'si',
- },
- {
- url: '/cabinet',
- title: t_cab('payments'),
- icon: CreditCard,
- key: 'payments',
- },
- { title: t('logout'), url: '/', icon: LogOut, key: 'logout' },
- ];
const toggleLoginModal = useLoginModal((state) => state.toggleLoginModal);
const toggleRegisterModal = useRegisterModal(
@@ -74,13 +29,13 @@ function AuthButtons() {
);
const user = useUserPlagiatStore((state) => state.user);
const clearUser = useUserPlagiatStore((state) => state.clearUser);
+
const clearTokens = () => {
localStorage.removeItem('access');
localStorage.removeItem('refresh');
localStorage.removeItem('user');
clearUser();
};
- console.log('Current user:', user);
useEffect(() => {
const data = localStorage.getItem('user');
@@ -93,7 +48,7 @@ function AuthButtons() {
if (localUser) {
return (
-
+
@@ -102,24 +57,21 @@ function AuthButtons() {
{localUser.name}
-
- {userItem.map((subItem) => (
-
- {
- setOpen(false);
- if (subItem.url !== '/cabinet') {
- clearTokens();
- } else {
- setNavItem(
- subItem.key as import('@/widgets/cabinet/lib/types').CabinetSection,
- );
- }
- }}
- item={subItem}
- />
-
- ))}
+
+ {
+ clearTokens();
+ setOpen(false);
+ }}
+ >
+
+
+ {t('logout')}
+
+
@@ -127,16 +79,14 @@ function AuthButtons() {
}
return (
-
+
-
+
);
}
diff --git a/src/widgets/navbar/ui/index.tsx b/src/widgets/navbar/ui/index.tsx
index a24da44..342c43f 100644
--- a/src/widgets/navbar/ui/index.tsx
+++ b/src/widgets/navbar/ui/index.tsx
@@ -1,3 +1,4 @@
+'use client';
import { Button } from '@/shared/ui/button';
import {
Sheet,
@@ -13,16 +14,47 @@ import { AuthButtons } from './authButtons';
import { useTranslations } from 'next-intl';
import { Logo_image } from '@/image';
import Image from 'next/image';
+import { useEffect, useState } from 'react';
+import { useUserPlagiatStore } from '@/shared/zustand/user';
const Navbar = () => {
const t = useTranslations('Navbar');
+ const t_cab = useTranslations('Cabinet');
+ const [localUser, setLocalUser] = useState<{
+ id: number;
+ name: string;
+ surname: string;
+ } | null>(null);
+ const user = useUserPlagiatStore((state) => state.user);
+
+ const scrollTo = (id: string) => {
+ const el = document.getElementById(id);
+ if (el) el.scrollIntoView({ behavior: 'smooth' });
+ };
+
+ useEffect(() => {
+ const data = localStorage.getItem('user');
+ if (data) {
+ setLocalUser(JSON.parse(data));
+ } else {
+ setLocalUser(null);
+ }
+ }, [user]);
+
+ const navItems = [
+ { title: t_cab('dashboard'), href: '/dashboard' as const },
+ { title: t_cab('plagiat'), href: '/plagiat' as const },
+ { title: t_cab('siNav'), href: '/si' as const },
+ { title: t_cab('payments'), href: '/payments' as const },
+ { title: t('profile'), href: '/profile' as const },
+ ];
return (
{/* Desktop Menu */}