From fce23a41e212d005c2af85f05ced6d6987cb9a95 Mon Sep 17 00:00:00 2001 From: hosseintaromi Date: Sat, 7 Feb 2026 13:08:37 +0330 Subject: [PATCH] feat: enhance application with new pages and improved UI components - Added new pages for Wallet Credit, System Settings, Sales Summary, Profit Loss, Inventory Value, and Variant Comparison reports. - Introduced Admin Notifications page and integrated it into the sidebar. - Updated routing to accommodate new report pages and improved navigation structure. - Enhanced sidebar with scrollbar styles for better usability. - Implemented new input fields for gold price per gram and factory fee percentage in the Variant Manager. - Refactored report handling in the Reports page to include new report types and improved filter functionality. These changes significantly expand the application's reporting capabilities and improve user experience across various components. --- src/App.tsx | 34 +- src/components/layout/Header.tsx | 7 +- src/components/layout/Sidebar.tsx | 64 ++- src/components/ui/VariantManager.tsx | 54 ++- src/constant/routes.ts | 18 + src/index.css | 35 ++ src/pages/Reports.tsx | 130 +++--- src/pages/admin-notifications/core/_hooks.ts | 58 +++ src/pages/admin-notifications/core/_models.ts | 44 ++ .../admin-notifications/core/_requests.ts | 59 +++ .../AdminNotificationsListPage.tsx | 251 ++++++++++ src/pages/orders/core/_models.ts | 1 + .../orders/orders-list/OrdersListPage.tsx | 7 +- src/pages/products/core/_models.ts | 9 + .../products/product-form/ProductFormPage.tsx | 29 +- .../discount-statistics/core/_hooks.ts | 9 +- .../discount-statistics/core/_requests.ts | 33 +- .../CustomerDiscountUsagePage.tsx | 94 ++-- .../reports/inventory-value/core/_hooks.ts | 10 + .../reports/inventory-value/core/_models.ts | 19 + .../reports/inventory-value/core/_requests.ts | 10 + .../InventoryValueReportPage.tsx | 203 ++++++++ .../PaymentMethodsReportPage.tsx | 78 ++-- src/pages/reports/profit-loss/core/_hooks.ts | 11 + src/pages/reports/profit-loss/core/_models.ts | 45 ++ .../reports/profit-loss/core/_requests.ts | 23 + .../ProfitLossReportPage.tsx | 432 +++++++++++++++++ .../reports/sales-summary/core/_hooks.ts | 11 + .../reports/sales-summary/core/_models.ts | 61 +++ .../reports/sales-summary/core/_requests.ts | 29 ++ .../SalesSummaryReportPage.tsx | 440 ++++++++++++++++++ .../reports/variant-comparison/core/_hooks.ts | 11 + .../variant-comparison/core/_models.ts | 53 +++ .../variant-comparison/core/_requests.ts | 27 ++ .../VariantComparisonReportPage.tsx | 395 ++++++++++++++++ .../system-settings/SystemSettingsPage.tsx | 84 ++++ src/pages/system-settings/core/_hooks.ts | 40 ++ src/pages/system-settings/core/_models.ts | 19 + src/pages/system-settings/core/_requests.ts | 23 + src/pages/wallet/core/_credit-models.ts | 16 + src/pages/wallet/core/_hooks.ts | 17 +- src/pages/wallet/core/_requests.ts | 13 +- .../wallet/wallet-credit/WalletCreditPage.tsx | 180 +++++++ src/utils/query-key.ts | 16 + 44 files changed, 3041 insertions(+), 161 deletions(-) create mode 100644 src/pages/admin-notifications/core/_hooks.ts create mode 100644 src/pages/admin-notifications/core/_models.ts create mode 100644 src/pages/admin-notifications/core/_requests.ts create mode 100644 src/pages/admin-notifications/notifications-list/AdminNotificationsListPage.tsx create mode 100644 src/pages/reports/inventory-value/core/_hooks.ts create mode 100644 src/pages/reports/inventory-value/core/_models.ts create mode 100644 src/pages/reports/inventory-value/core/_requests.ts create mode 100644 src/pages/reports/inventory-value/inventory-value-report/InventoryValueReportPage.tsx create mode 100644 src/pages/reports/profit-loss/core/_hooks.ts create mode 100644 src/pages/reports/profit-loss/core/_models.ts create mode 100644 src/pages/reports/profit-loss/core/_requests.ts create mode 100644 src/pages/reports/profit-loss/profit-loss-report/ProfitLossReportPage.tsx create mode 100644 src/pages/reports/sales-summary/core/_hooks.ts create mode 100644 src/pages/reports/sales-summary/core/_models.ts create mode 100644 src/pages/reports/sales-summary/core/_requests.ts create mode 100644 src/pages/reports/sales-summary/sales-summary-report/SalesSummaryReportPage.tsx create mode 100644 src/pages/reports/variant-comparison/core/_hooks.ts create mode 100644 src/pages/reports/variant-comparison/core/_models.ts create mode 100644 src/pages/reports/variant-comparison/core/_requests.ts create mode 100644 src/pages/reports/variant-comparison/variant-comparison-report/VariantComparisonReportPage.tsx create mode 100644 src/pages/system-settings/SystemSettingsPage.tsx create mode 100644 src/pages/system-settings/core/_hooks.ts create mode 100644 src/pages/system-settings/core/_models.ts create mode 100644 src/pages/system-settings/core/_requests.ts create mode 100644 src/pages/wallet/core/_credit-models.ts create mode 100644 src/pages/wallet/wallet-credit/WalletCreditPage.tsx diff --git a/src/App.tsx b/src/App.tsx index 77e2ada..1cd1eac 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -76,8 +76,12 @@ const IPGListPage = lazy(() => import('./pages/payment-ipg/ipg-list/IPGListPage' // Payment Card Page const CardFormPage = lazy(() => import('./pages/payment-card/card-form/CardFormPage')); -// Wallet Page +// Wallet Pages const WalletListPage = lazy(() => import('./pages/wallet/wallet-list/WalletListPage')); +const WalletCreditPage = lazy(() => import('./pages/wallet/wallet-credit/WalletCreditPage')); + +// System Settings Page +const SystemSettingsPage = lazy(() => import('./pages/system-settings/SystemSettingsPage')); // Reports Pages const DiscountUsageReportPage = lazy(() => import('./pages/reports/discount-statistics/discount-usage-report/DiscountUsageReportPage')); @@ -85,6 +89,21 @@ const CustomerDiscountUsagePage = lazy(() => import('./pages/reports/discount-st const PaymentMethodsReportPage = lazy(() => import('./pages/reports/payment-statistics/payment-methods-report/PaymentMethodsReportPage')); const ShipmentsByMethodReportPage = lazy(() => import('./pages/reports/shipment-statistics/shipments-by-method-report/ShipmentsByMethodReportPage')); +// Sales Summary Report Page +const SalesSummaryReportPage = lazy(() => import('./pages/reports/sales-summary/sales-summary-report/SalesSummaryReportPage')); + +// Profit Loss Report Page +const ProfitLossReportPage = lazy(() => import('./pages/reports/profit-loss/profit-loss-report/ProfitLossReportPage')); + +// Inventory Value Report Page +const InventoryValueReportPage = lazy(() => import('./pages/reports/inventory-value/inventory-value-report/InventoryValueReportPage')); + +// Variant Comparison Report Page +const VariantComparisonReportPage = lazy(() => import('./pages/reports/variant-comparison/variant-comparison-report/VariantComparisonReportPage')); + +// Admin Notifications Page +const AdminNotificationsListPage = lazy(() => import('./pages/admin-notifications/notifications-list/AdminNotificationsListPage')); + // Product Comments Page const ProductCommentsListPage = lazy(() => import('./pages/products/comments/comments-list/ProductCommentsListPage')); @@ -185,14 +204,25 @@ const AppRoutes = () => { {/* Payment Card Route */} } /> - {/* Wallet Route */} + {/* Wallet Routes */} } /> + } /> + + {/* System Settings Route */} + } /> {/* Reports Routes */} } /> } /> } /> } /> + } /> + } /> + } /> + } /> + + {/* Admin Notifications Route */} + } /> ); diff --git a/src/components/layout/Header.tsx b/src/components/layout/Header.tsx index c9affa3..f13a172 100644 --- a/src/components/layout/Header.tsx +++ b/src/components/layout/Header.tsx @@ -1,4 +1,4 @@ -import { Menu, Sun, Moon, Bell, User, LogOut } from 'lucide-react'; +import { Menu, Sun, Moon, User, LogOut } from 'lucide-react'; import { useState } from 'react'; import { useAuth } from '../../contexts/AuthContext'; import { useTheme } from '../../contexts/ThemeContext'; @@ -38,11 +38,6 @@ export const Header = ({ onMenuClick }: HeaderProps) => { )} - -
- {/* Navigation */} -