Logic Errors ------------ - Sidebar: fix permissions fallback so a user with no permissions gets zero access instead of falling back to the full nav list (user?.permissions ?? [] instead of ?? navSections.flatMap(...)) - carMaintanance.service / UseCarsMaintanance: add pagination to the maintenance records fetch instead of loading the entire list at once - api.ts: redact sensitive fields (password, token) before logging the request body in console.debug, to avoid leaking credentials/PII Code Flow Problems ------------------- - OrderFormModal: remove leftover console.log/debug statements and the redundant onClick handler on the submit button - auth: remove the unused src/service/auth.service.ts (axios) and keep only src/services/auth.service.ts (fetch); fix useAuth.ts import path from
25 lines
1.1 KiB
TypeScript
25 lines
1.1 KiB
TypeScript
// app/components/layout/ConditionalNavbar.tsx
|
|
"use client";
|
|
|
|
import { usePathname } from "next/navigation";
|
|
import { useStoredUser } from "@/src/hooks/useStoredUser";
|
|
import Navbar from "./Navbar";
|
|
|
|
export default function ConditionalNavbar() {
|
|
const pathname = usePathname();
|
|
|
|
// استبدلنا getStoredUser() المباشر بالـ hook عشان يبقى SSR-safe
|
|
const { user, loading } = useStoredUser();
|
|
|
|
// لحد ما نتأكد من حالة تسجيل الدخول من الـ storage، منوريش/مخفيش
|
|
// الناف بار عشان نتجنب وميض (flash) قبل الـ hydration يخلص. مفيش
|
|
// حاجة تتعرض هنا أصلاً (مفيش avatar/اسم في الناف بار العام)، فـ null
|
|
// كافية ومفيش داعي لـ Spinner/InlineLoader في المكان ده.
|
|
if (loading) return null;
|
|
|
|
// لو المستخدم مسجل دخول، أو الصفحة الحالية جوه الداشبورد، منظهرش الناف بار العام
|
|
const isDashboardRoute = pathname?.startsWith("/dashboard");
|
|
if (user || isDashboardRoute) return null;
|
|
|
|
return <Navbar />;
|
|
} |