From a65191024c6b18bd77cdb8f948a2fbd651689627 Mon Sep 17 00:00:00 2001 From: brooktewabe Date: Thu, 11 Jun 2026 10:48:11 +0300 Subject: [PATCH] TS issues --- src/components/ProtectedRoute.tsx | 2 -- src/hooks/use-admin-role.ts | 2 ++ src/layouts/app-shell.tsx | 2 +- src/pages/admin/analytics/revenue.tsx | 2 +- src/pages/admin/analytics/storage.tsx | 2 +- src/pages/admin/analytics/users.tsx | 18 +++++++++--------- src/pages/admin/announcements/index.tsx | 4 ++-- src/pages/admin/audit/index.tsx | 1 - src/pages/admin/security/suspicious.tsx | 2 +- src/pages/admin/settings/index.tsx | 1 - src/pages/admin/support/faq.tsx | 3 +-- src/pages/admin/system-members/index.tsx | 16 +++++++++++----- src/pages/notifications/index.tsx | 7 +------ src/services/notification.service.ts | 20 ++++++++++++++++++++ 14 files changed, 50 insertions(+), 32 deletions(-) diff --git a/src/components/ProtectedRoute.tsx b/src/components/ProtectedRoute.tsx index 3d688ee..cc8b6b8 100644 --- a/src/components/ProtectedRoute.tsx +++ b/src/components/ProtectedRoute.tsx @@ -1,5 +1,3 @@ -import { Navigate, useLocation } from "react-router-dom"; - interface ProtectedRouteProps { children: React.ReactNode; } diff --git a/src/hooks/use-admin-role.ts b/src/hooks/use-admin-role.ts index 4149682..7d9395f 100644 --- a/src/hooks/use-admin-role.ts +++ b/src/hooks/use-admin-role.ts @@ -16,5 +16,7 @@ export function useAdminRole() { roleLabel: roleLabel(role), hasPanelAccess: hasPanelAccess(role), ...permissions, + canAccessSystemMembers: permissions.canManageSystem, + canSendBroadcast: permissions.canSendNotifications, }; } diff --git a/src/layouts/app-shell.tsx b/src/layouts/app-shell.tsx index 4dbe40c..bef61bf 100644 --- a/src/layouts/app-shell.tsx +++ b/src/layouts/app-shell.tsx @@ -1,4 +1,4 @@ -import React, { useState, type ComponentType, useEffect } from "react"; +import { useState, type ComponentType, useEffect } from "react"; import { Outlet, Link, useLocation, useNavigate } from "react-router-dom"; import { LayoutDashboard, diff --git a/src/pages/admin/analytics/revenue.tsx b/src/pages/admin/analytics/revenue.tsx index 0692d35..bb097dc 100644 --- a/src/pages/admin/analytics/revenue.tsx +++ b/src/pages/admin/analytics/revenue.tsx @@ -150,7 +150,7 @@ export default function AnalyticsStoragePage() { fontWeight: "700", textTransform: "uppercase", }} - formatter={(value: number) => formatBytes(value)} + formatter={(value) => formatBytes(Number(value ?? 0))} /> diff --git a/src/pages/admin/analytics/storage.tsx b/src/pages/admin/analytics/storage.tsx index 0692d35..bb097dc 100644 --- a/src/pages/admin/analytics/storage.tsx +++ b/src/pages/admin/analytics/storage.tsx @@ -150,7 +150,7 @@ export default function AnalyticsStoragePage() { fontWeight: "700", textTransform: "uppercase", }} - formatter={(value: number) => formatBytes(value)} + formatter={(value) => formatBytes(Number(value ?? 0))} /> diff --git a/src/pages/admin/analytics/users.tsx b/src/pages/admin/analytics/users.tsx index 62df350..2b01e16 100644 --- a/src/pages/admin/analytics/users.tsx +++ b/src/pages/admin/analytics/users.tsx @@ -38,19 +38,19 @@ export default function AnalyticsUsersPage() { {[ { label: "Total Population", - value: lastMetrics?.total || 0, + value: lastMetrics?.users || 0, icon: Users, color: "text-blue-600 bg-blue-50 border-blue-100", }, { - label: "Privileged Access", - value: lastMetrics?.admins || 0, + label: "Active Users", + value: lastMetrics?.activeUsers || 0, icon: ShieldCheck, color: "text-emerald-600 bg-emerald-50 border-emerald-100", }, { - label: "Standard Users", - value: lastMetrics?.regular || 0, + label: "Inactive Users", + value: (lastMetrics?.users ?? 0) - (lastMetrics?.activeUsers ?? 0), icon: UserCheck, color: "text-purple-600 bg-purple-50 border-purple-100", }, @@ -126,21 +126,21 @@ export default function AnalyticsUsersPage() { /> diff --git a/src/pages/admin/announcements/index.tsx b/src/pages/admin/announcements/index.tsx index e52ef24..095d788 100644 --- a/src/pages/admin/announcements/index.tsx +++ b/src/pages/admin/announcements/index.tsx @@ -1,6 +1,6 @@ import { useState } from "react"; import { useQuery, useMutation, useQueryClient } from "@tanstack/react-query"; -import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; +import { Card, CardContent, CardHeader } from "@/components/ui/card"; import { Button } from "@/components/ui/button"; import { Dialog, @@ -10,7 +10,7 @@ import { DialogHeader, DialogTitle, } from "@/components/ui/dialog"; -import { Megaphone, Plus, Edit, Trash2, Filter } from "lucide-react"; +import { Plus, Edit, Trash2, Filter } from "lucide-react"; import { announcementService, type Announcement, diff --git a/src/pages/admin/audit/index.tsx b/src/pages/admin/audit/index.tsx index 23f917f..b352613 100644 --- a/src/pages/admin/audit/index.tsx +++ b/src/pages/admin/audit/index.tsx @@ -5,7 +5,6 @@ import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; import { Search, - Eye, ChevronLeft, ChevronRight, Filter, diff --git a/src/pages/admin/security/suspicious.tsx b/src/pages/admin/security/suspicious.tsx index 218932f..0df17cd 100644 --- a/src/pages/admin/security/suspicious.tsx +++ b/src/pages/admin/security/suspicious.tsx @@ -1,7 +1,7 @@ import { useQuery } from "@tanstack/react-query"; import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; import { Button } from "@/components/ui/button"; -import { Shield, Ban, Mail, Globe, AlertTriangle } from "lucide-react"; +import { Ban, Mail, Globe, AlertTriangle } from "lucide-react"; import { securityService } from "@/services"; import type { SuspiciousIP, SuspiciousEmail } from "@/types/security.types"; diff --git a/src/pages/admin/settings/index.tsx b/src/pages/admin/settings/index.tsx index b996d21..c4d63d8 100644 --- a/src/pages/admin/settings/index.tsx +++ b/src/pages/admin/settings/index.tsx @@ -1,7 +1,6 @@ import { useState } from "react"; import { useQuery, useMutation, useQueryClient } from "@tanstack/react-query"; import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; -import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; import { Label } from "@/components/ui/label"; import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; diff --git a/src/pages/admin/support/faq.tsx b/src/pages/admin/support/faq.tsx index f58827c..ee6a00d 100644 --- a/src/pages/admin/support/faq.tsx +++ b/src/pages/admin/support/faq.tsx @@ -1,7 +1,7 @@ import { useState } from "react"; import { NavLink } from "react-router-dom"; import { useQuery, useMutation, useQueryClient } from "@tanstack/react-query"; -import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; +import { Tabs, TabsContent } from "@/components/ui/tabs"; import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; @@ -31,7 +31,6 @@ import { Globe, ArrowRight, Library, - Settings2, ChevronRight, } from "lucide-react"; import { faqService } from "@/services"; diff --git a/src/pages/admin/system-members/index.tsx b/src/pages/admin/system-members/index.tsx index 1b0632b..8a07b70 100644 --- a/src/pages/admin/system-members/index.tsx +++ b/src/pages/admin/system-members/index.tsx @@ -23,16 +23,22 @@ import { import { Search, UserPlus } from "lucide-react" import { systemMemberService } from "@/services" import { useAdminRole } from "@/hooks/use-admin-role" -import { AdminRole } from "@/lib/admin-roles" +import { AdminRole, type AdminRoleValue } from "@/lib/admin-roles" import { toast } from "sonner" export default function SystemMembersPage() { - const { canAccessSystemMembers, canEdit } = useAdminRole() + const { canAccessSystemMembers, canManageSystem } = useAdminRole() const queryClient = useQueryClient() const [page, setPage] = useState(1) const [search, setSearch] = useState("") const [open, setOpen] = useState(false) - const [form, setForm] = useState({ + const [form, setForm] = useState<{ + email: string + firstName: string + lastName: string + password: string + role: AdminRoleValue + }>({ email: "", firstName: "", lastName: "", @@ -85,7 +91,7 @@ export default function SystemMembersPage() { areas; cannot manage this list).

- {canEdit && ( + {canManageSystem && (