diff --git a/app/components/SectionCard/SectionCard.tsx b/app/components/SectionCard/SectionCard.tsx index 5f1ce79..26e7f42 100644 --- a/app/components/SectionCard/SectionCard.tsx +++ b/app/components/SectionCard/SectionCard.tsx @@ -3,7 +3,18 @@ import { CardContent, Typography, Divider, List, ListItem, ListItemText, Paper, import MoreVertIcon from '@mui/icons-material/MoreVert'; -export const SectionCard = ({ title, icon, items }) => ( +interface SectionCardItem { + title: string; + date?: string; +} + +interface SectionCardProps { + title: string; + icon?: React.ReactNode; + items: SectionCardItem[]; +} + +export const SectionCard: React.FC = ({ title, icon, items }) => ( diff --git a/app/components/TransactionsWaitingApproval/TransactionsWaitingApproval.tsx b/app/components/TransactionsWaitingApproval/TransactionsWaitingApproval.tsx index 18eb247..0c5df40 100644 --- a/app/components/TransactionsWaitingApproval/TransactionsWaitingApproval.tsx +++ b/app/components/TransactionsWaitingApproval/TransactionsWaitingApproval.tsx @@ -1,3 +1,4 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ import { Box, Button, diff --git a/app/components/dashboard/header/DropDown.tsx b/app/components/dashboard/header/DropDown.tsx index aaff10d..bd20aed 100644 --- a/app/components/dashboard/header/DropDown.tsx +++ b/app/components/dashboard/header/DropDown.tsx @@ -5,10 +5,10 @@ import { Select, MenuItem, SelectChangeEvent, - ListItemIcon, ListItemText, } from '@mui/material'; import { SIDEBAR_LINKS } from '@/constants/SidebarLink.constants'; +import { ISidebarLink } from '@/interfaces/SidebarLink.interfaces'; interface Props { onChange?: (event: SelectChangeEvent) => void; @@ -31,7 +31,7 @@ export default function SidebarDropdown({ onChange }: Props) { onChange={handleChange} label="Navigate To" > - {SIDEBAR_LINKS.map((link:any) => ( + {SIDEBAR_LINKS.map((link:ISidebarLink) => ( diff --git a/app/components/dashboard/header/Header.tsx b/app/components/dashboard/header/Header.tsx index 875a926..8b1c488 100644 --- a/app/components/dashboard/header/Header.tsx +++ b/app/components/dashboard/header/Header.tsx @@ -1,22 +1,17 @@ import React, { useState } from 'react'; -import { AppBar, Toolbar, IconButton, Menu, MenuItem, Button } from '@mui/material'; +import { AppBar, Toolbar, IconButton, Menu, MenuItem } from '@mui/material'; import MenuIcon from '@mui/icons-material/Menu'; import Dropdown from './DropDown'; const Header = () => { const [anchorEl, setAnchorEl] = useState(null); - // Handle menu open - const handleMenuClick = (event: React.MouseEvent) => { - setAnchorEl(event.currentTarget); - }; - // Handle menu close const handleMenuClose = () => { setAnchorEl(null); }; - const handleChange = (e:any) => { + const handleChange = () => { }; return ( diff --git a/app/components/searchFilter/SearchFilters.tsx b/app/components/searchFilter/SearchFilters.tsx index bacce04..c785c9a 100644 --- a/app/components/searchFilter/SearchFilters.tsx +++ b/app/components/searchFilter/SearchFilters.tsx @@ -1,9 +1,12 @@ +"use client" import React from 'react'; import { Box, Chip, Typography, Button } from '@mui/material'; import { useRouter, useSearchParams } from 'next/navigation'; interface SearchFiltersProps { filters: Record; + onDeleteFilter?: (key: string) => void; + onClearAll?: () => void; } const SearchFilters = ({ filters }: SearchFiltersProps) => { diff --git a/app/components/test/test1.tsx b/app/components/test/test1.tsx index 5a9accf..3852ba8 100644 --- a/app/components/test/test1.tsx +++ b/app/components/test/test1.tsx @@ -1,3 +1,4 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ import * as React from "react"; import Box from "@mui/material/Box"; import Drawer from "@mui/material/Drawer"; diff --git a/app/components/test/test2.tsx b/app/components/test/test2.tsx index 3db3076..54ff441 100644 --- a/app/components/test/test2.tsx +++ b/app/components/test/test2.tsx @@ -1,4 +1,4 @@ -// app/transactions/page.tsx +/* eslint-disable @typescript-eslint/no-explicit-any */ "use client"; import { useState } from "react"; diff --git a/app/dashboard/admin/users/page.tsx b/app/dashboard/admin/users/page.tsx index de75e47..c0ff9c4 100644 --- a/app/dashboard/admin/users/page.tsx +++ b/app/dashboard/admin/users/page.tsx @@ -5,10 +5,25 @@ export default async function BackOfficeUsersPage() { process.env.NEXT_PUBLIC_BASE_URL || process.env.VERCEL_URL ? `https://${process.env.VERCEL_URL}` : "http://localhost:3000"; - const res = await fetch(`${baseUrl}ss/api/dashboard/admin/users`, { - cache: "no-store", // 👈 disables caching for SSR freshness - }); - const users = await res.json(); + + let users = []; + + try { + const res = await fetch(`${baseUrl}/api/dashboard/admin/users`, { + // cache: "no-store", // optional: disable SSR caching if needed + }); + + if (!res.ok) { + // If the API responds with 500/404/etc., log and bail gracefully + console.error( + `Failed to fetch users: ${res.status} ${res.statusText}` + ); + } else { + users = await res.json(); + } + } catch (error) { + console.error("Error fetching users:", error); + } return (
diff --git a/app/dashboard/approve/page.tsx b/app/dashboard/approve/page.tsx index 07d1a0c..0c1f92a 100644 --- a/app/dashboard/approve/page.tsx +++ b/app/dashboard/approve/page.tsx @@ -1,8 +1,7 @@ // This ensures this component is rendered only on the client side "use client"; -import { Approve } from "@/app/features/pages/Approve/Approve"; - +import { Approve } from "@/app/components/pages/Approve/Approve"; export default function ApprovePage() { return ( diff --git a/app/dashboard/transactions/page.tsx b/app/dashboard/transactions/page.tsx index f2059f1..ff57c67 100644 --- a/app/dashboard/transactions/page.tsx +++ b/app/dashboard/transactions/page.tsx @@ -1,7 +1,7 @@ // This ensures this component is rendered only on the client side "use client"; -import TransactionTable from "@/app/features/Pages/Transactions/Transactions"; +import TransactionTable from "@/app/components/pages/transactions/Transactions"; export default function TransactionPage() { return ( diff --git a/app/features/TransactionsWaitingApproval/TransactionsWaitingApproval.tsx b/app/features/TransactionsWaitingApproval/TransactionsWaitingApproval.tsx index 34ddc01..93d5fbb 100644 --- a/app/features/TransactionsWaitingApproval/TransactionsWaitingApproval.tsx +++ b/app/features/TransactionsWaitingApproval/TransactionsWaitingApproval.tsx @@ -1,3 +1,4 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ import { Box, Button, diff --git a/app/features/dashboard/header/Header.tsx b/app/features/dashboard/header/Header.tsx index beccad7..fa7643d 100644 --- a/app/features/dashboard/header/Header.tsx +++ b/app/features/dashboard/header/Header.tsx @@ -6,17 +6,6 @@ import AccountMenu from "./accountMenu/AccountMenu"; import "./Header.scss"; const Header = () => { - // const [anchorEl, setAnchorEl] = useState(null); - - // // Handle menu open - // const handleMenuClick = (event: React.MouseEvent) => { - // setAnchorEl(event.currentTarget); - // }; - - // // Handle menu close - // const handleMenuClose = () => { - // setAnchorEl(null); - // }; const handleChange = () => {}; diff --git a/app/providers/msw-provider.tsx b/app/providers/msw-provider.tsx index d186b21..fe86c20 100644 --- a/app/providers/msw-provider.tsx +++ b/app/providers/msw-provider.tsx @@ -4,7 +4,7 @@ import { useEffect } from "react"; export function MSWProvider({ children }: { children: React.ReactNode }) { useEffect(() => { if (process.env.NEXT_PUBLIC_API_MOCKING === "enabled") { - import("../../mock/browser").then(({ worker }) => { + import("../../mock/browser").then(({ }) => { // worker.start(); }); } diff --git a/app/test1/page.tsx b/app/test1/page.tsx index 67a44e9..b31a4c3 100644 --- a/app/test1/page.tsx +++ b/app/test1/page.tsx @@ -1,6 +1,11 @@ -'use client' +"use client" +import dynamic from "next/dynamic"; import React, { useState } from 'react'; -import SearchFilters from '../components/searchFilter/SearchFilters'; + +const SearchFilters = dynamic( + () => import("../components/searchFilter/SearchFilters"), + { ssr: false } +); export default function Home() { const [filters, setFilters] = useState({ @@ -9,12 +14,12 @@ export default function Home() { startDate: '2025-06-28 23:25', }); - const handleDeleteFilter = (key) => { + const handleDeleteFilter = (key: string) => { setFilters((prev) => ({ ...prev, [key]: null })); }; const handleClearAll = () => { - setFilters({ user: null, state: null, startDate: null }); + setFilters({ user: '', state: '', startDate: '' }); }; return ( diff --git a/app/testWithParams/page.tsx b/app/testWithParams/page.tsx index 71f1def..29ffed6 100644 --- a/app/testWithParams/page.tsx +++ b/app/testWithParams/page.tsx @@ -1,4 +1,4 @@ -// app/products/page.tsx +/* eslint-disable @typescript-eslint/no-explicit-any */ 'use client'; import { useState } from 'react';