-
- {/* Header */}
- {/*
-
Top Selling Products
-
-
Date Range :
-
current && current > moment().endOf('day')}
- onChange={async (dates) => {
- setDates(dates);
- const FromDate = dates?.[0]?.format('YYYY-MM-DD') || intialFromDate;
- const ToDate = dates?.[1]?.format('YYYY-MM-DD') || intialToDate;
- await fetchProducts({ AppId, CompId, BranchId, FromDate, ToDate, pageNumber: 1 });
- setPage(1);
- }}
- value={dates}
- />
-
-
*/}
+ useEffect(() => {
+ try {
+ dispatch(changeBreadCrumb({ items: items }));
+ } catch (error) {
+ console.log(error?.message, 'error displaying breadcrumbs');
+ }
+ }, []);
-
- {/* Stats Cards */}
-
-
-
-
-
Total Products
-
{products?.length}
-
-
-
-
-
-
-
-
Total Sales
-
- {products?.reduce((sum, p) => sum + (p?.TotalSoldQty || 0), 0)}
-
-
-
-
-
-
-
-
-
Total Revenue
-
- ₹{products?.reduce((sum, p) => sum + (p?.TotalRevenue || 0), 0)?.toFixed(2)}
-
-
-
-
-
-
-
- {/* Controls */}
-
-
-
-
setMetric('sales')}
- className={`btn-metric ${metric === 'sales' ? 'active' : ''}`}
- >
-
- Sales Count
-
-
setMetric('revenue')}
- className={`btn-metric ${metric === 'revenue' ? 'active' : ''}`}
- >
-
- Revenue
-
-
-
- {/*
setChartType(checked ? 'bar' : 'pie')}
- checkedChildren="Bar Chart"
- unCheckedChildren="Pie Chart"
- className="bar-pie-switch"
- value={chartType === 'bar' ? true : false}
- /> */}
- setChartType('bar')}
- className={`btn-chart-type ${chartType === 'bar' ? 'active' : ''}`}
- >
- Bar Chart
-
- setChartType('pie')}
- className={`btn-chart-type ${chartType === 'pie' ? 'active' : ''}`}
- >
- Pie Chart
-
-
- {/* {(dates?.[0] && dates?.[1]) && (
-
-
-
{`${dates[0]?.format('DD/MMM/YYYY') || intialFromDate} - ${dates[1]?.format('DD/MMM/YYYY') || intialToDate}`}
-
- )} */}
-
-
{
- setPage(value);
- const FromDate = dates?.[0]?.format('YYYY-MM-DD') || intialFromDate;
- const ToDate = dates?.[1]?.format('YYYY-MM-DD') || intialToDate;
- await fetchProducts({ AppId, CompId, BranchId, FromDate, ToDate, pageNumber: value });
- }}
- isOnchanges={page ? true : false}
- />
-
-
-
-
- {((initialDate ? true : (!dates && !dates?.[0] && !dates?.[1])) && intialFromDate && intialToDate) &&
{`${dayjs(intialFromDate)?.format('DD/MMM/YYYY')} - ${dayjs(intialToDate)?.format('DD/MMM/YYYY')}`}
}
-
-
-
- {/* Chart */}
-
-
-
-
- {loading && products?.length === 0 ? (
-
- ) : chartData?.length === 0 ? (
-
- No data available
-
- ) : (
- <>
- {chartType === 'bar' ? (
-
-
-
-
- {[
- 0,
- Math.round(benchmarkValue * 0.25),
- Math.round(benchmarkValue * 0.5),
- Math.round(benchmarkValue * 0.75),
- benchmarkValue
- ].map((num, i) => (
-
- ))}
-
-
-
- {chartData?.length > 0 ? (
- <>
- {chartData?.map((item, index) => (
-
{
- setHoveredItem(item);
- setMousePosition({ x: e.clientX, y: e.clientY });
- }}
- // style={{}}
- onMouseLeave={() => setHoveredItem(null)}
- onMouseMove={(e) => setMousePosition({ x: e.clientX, y: e.clientY })}
- >
-
{`#${(index + 1) + ((page - 1) * 10)}`}{item?.name}
-
-
-
-
- {/* {((item?.value / Math.max(...chartData.map(d => d?.value))) * 100).toFixed(1)}% */}
-
-
-
-
{item?.value}
-
- ))}
- >
-
- ) : (
-
- )}
-
- ) : (
- /* Replace your existing
with this */
- /* PIE + RIGHT-LEGEND: replace the existing pie rendering */
-
-
-
-
-
- {chartData.map((entry, index) => (
- |
- ))}
-
- } />
-
-
-
-
-
- {(() => {
- const total = chartData.reduce((s, d) => s + (Number(d?.value || 0)), 0) || 1;
- return chartData.map((d, i) => {
- const color = COLORS[i % COLORS.length];
- const value = Number(d?.value || 0);
- const percent = total ? ((value / total) * 100) : 0;
- return (
-
-
-
-
{d?.name}
-
- {value}
- {percent.toFixed(2)}%
-
-
-
- );
- });
- })()}
-
-
-
- )}
-
- >
- )}
-
-
-
-
+ const CustomTooltip = ({ active, payload }) => {
+ if (active && payload && payload?.[0]) {
+ const product = payload?.[0]?.payload;
+ return (
+
+
+ {product?.ProdName} - {product?.UOMName}
+
+ {product?.BrandName ? (
+
Brand: {product?.BrandName}
+ ) : null}
+
+
Variants:
+ {product?.variantDetails?.map((variant, idx) => (
+
+
+ {variant?.ProdVariantName}:
+
+
+ {variant?.SalesCount} sold | ₹{variant?.Revenue}
+
+
+ ))}
+
+
+
+ Total Sales:
+ {product?.TotalSoldQty}
- {hoveredItem && (
-
-
-
- )}
+
+ Total Revenue:
+ ₹{product?.TotalRevenue}
+
+
+ );
+ }
+ return null;
+ };
+
+ const renderPercentInside = ({
+ cx,
+ cy,
+ midAngle,
+ innerRadius,
+ outerRadius,
+ percent,
+ value,
+ }) => {
+ const percentValue = Math.round(percent * 100);
+ // hide labels for very small percentages on narrow screens
+ if (percentValue < (isNarrow ? 3 : 2)) return null;
+
+ const RADIAN = Math.PI / 180;
+ // place label inside slice (closer to inner radius on narrow screens)
+ const radius =
+ innerRadius + (outerRadius - innerRadius) * (isNarrow ? 0.55 : 0.6);
+
+ const x = cx + radius * Math.cos(-midAngle * RADIAN);
+ const y = cy + radius * Math.sin(-midAngle * RADIAN);
+
+ const fontSize = isNarrow ? 10 : 12;
+
+ // choose contrasting color: white usually works on colored slices
+ return (
+
+ {/* {`${percentValue}%`} */}
+ {value}
+
);
+ };
+ const getBenchmarkValue = (maxValue) => {
+ if (maxValue <= 0) return 100;
+
+ const benchmarks = [
+ // Fine granularity for small numbers, coarser for large numbers
+ 1, 2, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 60, 70, 80, 90, 100, 125,
+ 150, 175, 200, 225, 250, 275, 300, 350, 400, 450, 500, 600, 700, 800, 900,
+ 1000, 1250, 1500, 1750, 2000, 2500, 3000, 3500, 4000, 4500, 5000, 6000,
+ 7000, 8000, 9000, 10000, 12500, 15000, 17500, 20000, 25000, 30000, 35000,
+ 40000, 45000, 50000, 60000, 70000, 80000, 90000, 100000, 125000, 150000,
+ 175000, 200000, 250000, 300000, 350000, 400000, 450000, 500000, 600000,
+ 700000, 800000, 900000, 1000000,
+ ];
+
+ const benchmark = benchmarks.find((b) => b >= maxValue);
+ return benchmark || Math.ceil(maxValue / 10000) * 10000;
+ };
+
+ const chartData = products?.map((p) => ({
+ ...p,
+ name: p?.ProdName,
+ value: metric === 'sales' ? p?.TotalSoldQty : p?.TotalRevenue,
+ benchMarkValue:
+ metric === 'sales' ? p?.TotalRevenueCount : p?.TotalRevenueAmount,
+ }));
+
+ const benchmarkValue = getBenchmarkValue(
+ Math.max(...(chartData?.map((d) => d?.benchMarkValue) || [0]))
+ );
+
+ return (
+
+
+ {/* Stats Cards */}
+
+
+
+
+
Total Products
+
{products?.length}
+
+
+
+
+
+
+
+
Total Sales
+
+ {products?.reduce(
+ (sum, p) => sum + (p?.TotalSoldQty || 0),
+ 0
+ )}
+
+
+
+
+
+
+
+
+
Total Revenue
+
+ ₹
+ {products
+ ?.reduce((sum, p) => sum + (p?.TotalRevenue || 0), 0)
+ ?.toFixed(2)}
+
+
+
+
+
+
+
+ {/* Controls */}
+
+
+
+
setMetric('sales')}
+ className={`btn-metric ${metric === 'sales' ? 'active' : ''}`}
+ >
+
+ Sales Count
+
+
setMetric('revenue')}
+ className={`btn-metric ${metric === 'revenue' ? 'active' : ''}`}
+ >
+
+ Revenue
+
+
+
+
setChartType('bar')}
+ className={`btn-chart-type ${chartType === 'bar' ? 'active' : ''}`}
+ >
+ Bar Chart
+
+
setChartType('pie')}
+ className={`btn-chart-type ${chartType === 'pie' ? 'active' : ''}`}
+ >
+ Pie Chart
+
+
+
+
Loading...}>
+
{
+ setPage(value);
+ const FromDate =
+ dates?.[0]?.format('YYYY-MM-DD') || intialFromDate;
+ const ToDate =
+ dates?.[1]?.format('YYYY-MM-DD') || intialToDate;
+ await fetchProducts({
+ AppId,
+ CompId,
+ BranchId,
+ FromDate,
+ ToDate,
+ pageNumber: value,
+ });
+ }}
+ isOnchanges={page ? true : false}
+ />
+
+
+
+
+ {(initialDate ? true : !dates && !dates?.[0] && !dates?.[1]) &&
+ intialFromDate &&
+ intialToDate && (
+
{`${dayjs(intialFromDate)?.format('DD/MMM/YYYY')} - ${dayjs(intialToDate)?.format('DD/MMM/YYYY')}`}
+ )}
+
+
+ {/* Chart */}
+
+
+ {loading && products?.length === 0 ? (
+
+ ) : chartData?.length === 0 ? (
+
No data available
+ ) : (
+ <>
+ {chartType === 'bar' ? (
+
+
+
+
+ {[
+ 0,
+ Math.round(benchmarkValue * 0.25),
+ Math.round(benchmarkValue * 0.5),
+ Math.round(benchmarkValue * 0.75),
+ benchmarkValue,
+ ].map((num, i) => (
+
+ ))}
+
+
+
+ {chartData?.length > 0 ? (
+ <>
+ {chartData?.map((item, index) => (
+
{
+ setHoveredItem(item);
+ setMousePosition({
+ x: e.clientX,
+ y: e.clientY,
+ });
+ }}
+ // style={{}}
+ onMouseLeave={() => setHoveredItem(null)}
+ onMouseMove={(e) =>
+ setMousePosition({ x: e.clientX, y: e.clientY })
+ }
+ >
+
+ {`#${index + 1 + (page - 1) * 10}`}
+ {item?.name}
+
+
+
+
+ {/* {((item?.value / Math.max(...chartData.map(d => d?.value))) * 100).toFixed(1)}% */}
+
+
+
+
+ {item?.value}
+
+
+ ))}
+ >
+ ) : (
+
+ )}
+
+ ) : (
+ /* Replace your existing
with this */
+ /* PIE + RIGHT-LEGEND: replace the existing pie rendering */
+
+
+
+
+
+ {chartData.map((entry, index) => (
+ |
+ ))}
+
+ } />
+
+
+
+
+
+ {(() => {
+ const total =
+ chartData.reduce(
+ (s, d) => s + Number(d?.value || 0),
+ 0
+ ) || 1;
+ return chartData.map((d, i) => {
+ const color = COLORS[i % COLORS.length];
+ const value = Number(d?.value || 0);
+ const percent = total ? (value / total) * 100 : 0;
+ return (
+
+
+
+
{d?.name}
+
+
+ {value}
+
+
+ {percent.toFixed(2)}%
+
+
+
+
+ );
+ });
+ })()}
+
+
+ )}
+ >
+ )}
+
+
+
+
+ {hoveredItem && (
+
+
+
+ )}
+
+ );
};
-export default TopSellingProducts;
\ No newline at end of file
+export default TopSellingProducts;
diff --git a/src/Pages/Kiosk/KioskBookingPage.jsx b/src/Pages/Kiosk/KioskBookingPage.jsx
index b224cc0..8313af3 100644
--- a/src/Pages/Kiosk/KioskBookingPage.jsx
+++ b/src/Pages/Kiosk/KioskBookingPage.jsx
@@ -1,4 +1,4 @@
-import React, { useEffect, useState } from 'react';
+import { useEffect, useState } from 'react';
import { useSelector, useDispatch } from 'react-redux';
import axios from 'axios';
import { Skeleton } from 'antd';
@@ -64,119 +64,7 @@ const KioskBookingPage = () => {
};
useEffect(() => {
- // const fetchData = async () => {
- // const queryParams = await getQueryParams();
-
- // console.log("queryParams", queryParams)
- // if (Object.keys(queryParams)?.length !== 0) {
-
- // console.log("queryParams", queryParams)
- // if(!sessionStorage.getItem('auth')){
- // let data = {
- // username: "1000000001",
- // password: "1234"
- // }
- // const response = await axios.post(`${apiUrlToken}/jwtTokenGenerator`, data, {
- // headers: {
- // 'Content-Type': 'application/json',
- // 'Accept': 'application/json',
- // },
- // });
-
- // const { token } = response?.data;
- // sessionStorage.setItem('auth', token)
- // sessionStore("LoginType","Kiosk")
- // }
- // const MACAddress = queryParams?.MD
- // if (MACAddress) {
- // console.log("MACAddress", MACAddress)
- // setDeviceAddress(MACAddress)
- // setDevicePresent(true)
- // let deviceMACResponse = await dispatch(getDeviceAccess({ DeviceAddress: MACAddress })).unwrap();
- // if (deviceMACResponse?.data?.statusCode == 1 && deviceMACResponse?.data?.data?.length > 0 && deviceMACResponse?.data?.data?.[0]?.KioskStatus === 'Y') {
- // setDeviceAccess(true)
- // let responseData = deviceMACResponse?.data?.data?.[0]
- // responseData?.MobileNo != null && responseData?.MobileNo != undefined && sessionStore("MobileNo", responseData?.MobileNo);
- // responseData?.UserId != null && responseData?.UserId != undefined && sessionStore("UserId", responseData?.UserId);
- // responseData?.UserType != null && responseData?.UserType != undefined && sessionStore("UserType", responseData?.UserType);
- // responseData?.CompId != null && responseData?.CompId != undefined && sessionStore("CompId", responseData?.CompId);
- // responseData?.CompName != null && responseData?.CompName != undefined && sessionStore("CompName", responseData?.CompName);
- // responseData?.AppId != null && responseData?.AppId != undefined && sessionStore("AppId", responseData?.AppId);
- // responseData?.AppName != null && responseData?.AppName != undefined && sessionStore("AppName", responseData?.AppName);
- // responseData?.BranchId != null && responseData?.BranchId != undefined && sessionStore("BranchId", responseData?.BranchId);
- // responseData?.userName != null && responseData?.userName != undefined && sessionStore("userName", responseData?.UserName);
- // responseData?.SessionId != null && responseData?.SessionId != undefined && sessionStore("SessionId", responseData?.SessionId);
- // sessionStore("hasRefreshed", true);
- // dispatch(getKioskTemplate({ CompId: responseData?.CompId, BranchId: responseData?.BranchId, AppId: responseData?.AppId })).unwrap();
- // dispatch(getProductCategories({ CompId: responseData?.CompId, BranchId: responseData?.BranchId, AppId: responseData?.AppId })).unwrap();
- // } else {
- // setDeviceAccess(false)
- // }
- // } else {
- // const MobileNoValue = decryptedValuesFun(queryParams?.MN);
- // const UserIdValue = decryptedValuesFun(queryParams?.UD);
- // const UserTypeValue = decryptedValuesFun(queryParams?.UT);
- // const CompIdValue = decryptedValuesFun(queryParams?.CD);
- // const AppIdValue = decryptedValuesFun(queryParams?.AD);
- // const BranchIdValue = decryptedValuesFun(queryParams?.BD);
- // const OrderIdValue = decryptedValuesFun(queryParams?.OD);
- // const AmountValue = decryptedValuesFun(queryParams?.AM);
- // let CompNameValue = null, AppNameValue = null;
- // if (CompIdValue) {
- // let response = await dispatch(getCompanyData({ CompId: CompIdValue })).unwrap();
- // if (response?.data?.statusCode == 1) {
- // CompNameValue = response?.data?.data?.[0]?.["CompName"];
- // } else {
- // CompNameValue = null;
- // }
- // }
- // if (AppIdValue) {
- // let appResponse = await dispatch(getAllApplications({ AppId: AppIdValue })).unwrap();
- // if (appResponse?.data?.statusCode == 1) {
- // AppNameValue = appResponse?.data?.data?.[0]?.["AppName"];
- // } else {
- // AppNameValue = null;
- // }
- // }
- // let userNameValue = null;
- // if (queryParams?.UN != null && queryParams?.UN != undefined) {
- // userNameValue = decryptedValuesFun(queryParams?.UN);
- // }
- // console.log("queryParams", MobileNoValue, UserIdValue, UserTypeValue, CompIdValue, AppIdValue, BranchIdValue)
- // if (MobileNoValue && UserIdValue && UserTypeValue && CompIdValue && AppIdValue && BranchIdValue) {
- // sessionStore("MobileNo", MobileNoValue);
- // sessionStore("UserId", UserIdValue);
- // sessionStore("UserType", UserTypeValue);
- // sessionStore("CompId", CompIdValue);
- // sessionStore("CompName", CompNameValue);
- // sessionStore("AppId", AppIdValue);
- // sessionStore("AppName", AppNameValue);
- // sessionStore("BranchId", BranchIdValue);
- // if (userNameValue != null) {
- // sessionStore("userName", userNameValue);
- // }
- // dispatch(getKioskTemplate({ CompId: CompIdValue, BranchId: BranchIdValue, AppId: AppIdValue })).unwrap();
- // dispatch(getProductCategories({ CompId: CompIdValue, BranchId: BranchIdValue, AppId: AppIdValue })).unwrap();
- // dispatch(changeKioskPageName('OrderView'))
- // dispatch(changePaymentgatewayRedirect(true))
- // dispatch(changeKioskCustomerMobileNo(MobileNoValue))
- // dispatch(changePGFailedTransId(OrderIdValue))
- // dispatch(changePGFailedAmt(AmountValue))
- // const url = new URL(window.location);
- // url.search = '';
- // window.history.replaceState({}, document.title, url.toString());
- // }
- // else {
- // console.error("One or more decrypted values are null.");
- // }
- // }
-
- // } else {
- // dispatch(getKioskTemplate({ CompId: CompId, BranchId: BranchId, AppId: AppId })).unwrap();
- // dispatch(getProductCategories({ CompId: CompId, BranchId: BranchId, AppId: AppId })).unwrap();
- // }
- // }
fetchData();
}, []);
diff --git a/src/ProtectedRoutes.jsx b/src/ProtectedRoutes.jsx
index 665d49c..74b0003 100644
--- a/src/ProtectedRoutes.jsx
+++ b/src/ProtectedRoutes.jsx
@@ -1,4 +1,4 @@
-import React, { useEffect, useState } from 'react';
+import { useEffect, useState } from 'react';
import { Routes, Route, useNavigate } from 'react-router-dom';
import { useDispatch } from 'react-redux';
import {
@@ -29,20 +29,14 @@ const ProtectedRoutes = ({ routesConfig }) => {
const UserId = getSession('UserId');
const sessionId = getSession('SessionId');
const [accessCheckComplete, setAccessCheckComplete] = useState(false);
- const[AppPreference,setAppPreference]= useState([]);
- const kioskPath = `${subDirectory}kiosksales`; // or your actual path
- useEffect(()=>{
- getApplicationPreference()
- },[])
+ useEffect(() => {
+ getApplicationPreference();
+ }, []);
- const getApplicationPreference = async()=>{
-
- const response = await dispatch(getCommonAppPreference(AppId)).unwrap();
- if (response?.data?.statusCode === 1) {
- setAppPreference(response?.data?.data)
- }
- }
+ const getApplicationPreference = async () => {
+ await dispatch(getCommonAppPreference(AppId)).unwrap();
+ };
const getEmpAccess = async () => {
let data = {
@@ -90,7 +84,7 @@ const ProtectedRoutes = ({ routesConfig }) => {
?.SettingDtlDetails?.some(
(e) => e.SettingIdName === 'Estimation' && e.SettingValue === 'Y'
);
- return SettingValueData, EstimateValueData;
+ return (SettingValueData, EstimateValueData);
}
}
};
@@ -123,10 +117,10 @@ const ProtectedRoutes = ({ routesConfig }) => {
const hasAdvance = pricingData?.some(
(item) => item.PricingName === 'Premium'
);
- console.log(pricingData,"pricingDatapricingData")
const hasProOrAdvance =
- hasAdvance || pricingData.some((item) => item.PricingName === 'Customized');
- return hasAdvance, hasProOrAdvance;
+ hasAdvance ||
+ pricingData.some((item) => item.PricingName === 'Customized');
+ return (hasAdvance, hasProOrAdvance);
} catch (error) {
console.error('Error fetching pricing name:', error);
}
@@ -320,20 +314,20 @@ const ProtectedRoutes = ({ routesConfig }) => {
];
// Cmd it start
- // if (!UserId && empAccessData != 'Public') {
- // if (!UserId && (empAccessData === "Kiosk Sales" || empAccessData === "View Bill")) {
- // // Allow KioskBookingPage to load and set session values
- // setAccessCheckComplete(true);
- // return;
- // }else{
- // console.log("UserId is undefined, logging out...");
- // // alert("User invalid. Redirecting to login...")
- // sessionStorage.clear();
- // window.location.replace(`${commonUrl}`);
- // setHasRedirected(true);
- // return;
- // }
- // }
+ // if (!UserId && empAccessData != 'Public') {
+ // if (!UserId && (empAccessData === "Kiosk Sales" || empAccessData === "View Bill")) {
+ // // Allow KioskBookingPage to load and set session values
+ // setAccessCheckComplete(true);
+ // return;
+ // }else{
+ // console.log("UserId is undefined, logging out...");
+ // // alert("User invalid. Redirecting to login...")
+ // sessionStorage.clear();
+ // window.location.replace(`${commonUrl}`);
+ // setHasRedirected(true);
+ // return;
+ // }
+ // }
// Cmd it End
const userAccessChecks = {
diff --git a/src/main.jsx b/src/main.jsx
index cc6973b..46df9ad 100644
--- a/src/main.jsx
+++ b/src/main.jsx
@@ -1,4 +1,3 @@
-import React from 'react';
import ReactDOM from 'react-dom/client';
import { Provider } from 'react-redux';
import { BrowserRouter } from 'react-router-dom';
@@ -7,24 +6,21 @@ import './Fonts/Gilroy/stylesheet.css';
import './index.css';
import AppRoutes from './App.jsx';
import { AuthProvider } from './AuthContext';
-import GlobalErrorHandler from './GlobalErrorHandler';
-import {QueryClient, QueryClientProvider,} from '@tanstack/react-query';
-import {ReactQueryDevtools } from '@tanstack/react-query-devtools';
+import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
+import { ReactQueryDevtools } from '@tanstack/react-query-devtools';
const queryClient = new QueryClient();
ReactDOM.createRoot(document.getElementById('root')).render(
-
-
-
-
-
-
-
-
-
-{process.env.NODE_ENV == "development" && (
-
-)}
+
+
+
+
+
+
+
+ {process.env.NODE_ENV == 'development' && (
+
+ )}
);
diff --git a/src/routesConfig.jsx b/src/routesConfig.jsx
index d9b5148..468c7ba 100644
--- a/src/routesConfig.jsx
+++ b/src/routesConfig.jsx
@@ -1,209 +1,673 @@
import React from 'react';
-import AppPage from './Pages/AppPage/AppPage.jsx';
-import WholesaleAppPage from './Pages/AppPage/WholesaleAppPage.jsx';
-import Home from './Pages/DashBoard/RetailDashboard.jsx';
-import CommonMaster from './Pages/CommonMaster/CommonMaster.jsx';
-import ConfigType from './Pages/ConfigType/ConfigTypeForm.jsx';
-import AdminTax from './Pages/AdminTax/AdminTaxForm.jsx';
-import ProductForm from './Pages/Product/ProductForm.jsx';
-import Sport_ProductForm from './Pages/Product/SportsMaster.jsx';
-import ProductList from './Pages/Product/ProductList.jsx';
-import ShiftMasterList from './Pages/ShiftMaster/ShiftMasterList.jsx';
-import ShiftMasterForm from './Pages/ShiftMaster/ShiftMasterForm.jsx';
-import EmployeeMasterList from './Pages/EmpMaster/EmpMasterList.jsx';
-import EmployeeMasterForm from './Pages/EmpMaster/EmpMasterForm.jsx';
-import SupplierMasterList from './Pages/SupplierMaster/SupplierMasterList.jsx';
-import SupplierMasterForm from './Pages/SupplierMaster/SupplierMasterForm.jsx';
-import ComponentMasterForm from './Pages/UiComponentPage/ComponentForm.jsx';
-import ComponentMasterList from './Pages/UiComponentPage/ComponentList.jsx';
-import CustomerForm from './Pages/CustomerMaster/CustMasterForm.jsx';
-import CustomerMasterList from './Pages/CustomerMaster/CustMasterList.jsx';
-import DateWiseReport from './Pages/Reports/DateWiseReport/DateWiseReport.jsx';
-import ItemWiseReport from './Pages/Reports/ItemWiseReport/ItemWiseReport.jsx';
-import Reprint from './Pages/BookingScreen/Components/OtherConponents/Reprint/BSReprint.jsx';
-import BookingSelectionPage from './Pages/BookingScreen/Components/MainPage/MainPage.jsx';
-import PrintSelectionPage from './Pages/BookingScreen/Components/PrintMainPage/MainPage.jsx';
-import KioskMainPage from './Pages/BookingScreen/Components/Kiosk/KioskMainPage.jsx';
-import BookingPage from './Pages/BookingScreen/BookingPage.jsx';
-import StockForm from './Pages/StockMaster/StockForm.jsx';
-import StockList from './Pages/StockMaster/StockList.jsx';
-import DiningMasterList from './Pages/Dining/DiningList.jsx';
-import DiningMasterForm from './Pages/Dining/DiningForm.jsx';
-import TableBooking from './Pages/Tablebooking/TableBooking.jsx';
-import ComboMaster from './Pages/ComboPack/ComboMaster.jsx';
-import ComboList from './Pages/ComboPack/ComboMasterlist.jsx';
-import EmpAccessForm from './Pages/EmpAccess/EmpAccessForm.jsx';
-import EmpAccessList from './Pages/EmpAccess/EmpAccessList.jsx';
-import EmpScreenAccessList from './Pages/EmpScreenAccess/EmpScreenAccessList.jsx';
-import EmpScreenRightsAccess from './Pages/EmpScreenAccess/EmpScreenRightsAccess.jsx';
-import PreferenceList from './Pages/Preference/PreferenceList.jsx';
-import PaymentOptions from './Pages/Payment/PaymentOptions/PaymentOptions.jsx';
-import PaymentDetails from './Pages/Payment/PaymentDetails/PaymentDetailsForm.jsx';
-import PaymentDetailsList from './Pages/Payment/PaymentDetails/PaymentDetailsList.jsx';
-import PaymentReceivedRetail from './Pages/Payment/PaymentReceivedRetail/PaymentReceivedRetail.jsx';
-import ExtraChargesList from './Pages/ExtraCharges/ExtraChargesList.jsx';
-import BranchLogin from './Pages/BranchLogin/BranchLogin.jsx';
-import BackToBranchLogin from './Pages/BranchLogin/BackToBranchLogin.jsx';
-import Logout from './Pages/Logout.jsx';
-import BacktoLogin from './Pages/BranchLogin/BacktoLogin.jsx';
-import StockPriceUpdate from './Pages/StockPriceUpdate/StockPriceUpdate.jsx';
-import ProductCatalogueList from './Pages/ProductCatlogue/ProductcatlogueList.jsx';
-import KOT from './Pages/Reports/KOT/kot.jsx';
-import CustomerKOTDisplay from './Pages/Reports/KOT/CustomerKOTDisplay.jsx';
-import RedirectApps from './Pages/RedirectApps.jsx';
-import WSTransaction from './Pages/WholeSaleTransaction/WSSalesTransaction.jsx';
-import LedgerReport from './Pages/Reports/LedgerReport/LedgerReport.jsx';
-import PaymentDetailsPage from './Pages/BookingScreen/Components/BookingFunctionality/PaymentDetailsPage.jsx';
-import CreditCustomerPrint from './Pages/BookingScreen/Components/BookingFunctionality/CreditDownloadpage.jsx';
-import Cancellation from './Pages/CancelReschedule/Cancellation.jsx';
-import ChangePaymentmode from './Pages/CancelReschedule/ChangePaymentmode.jsx';
-import CancellationList from './Pages/CancelReschedule/CancellationList.jsx';
-import CancelApplicableProd from './Pages/CancelReschedule/CancelApplicableProd.jsx';
-import CancellationListPending from './Pages/CancelReschedule/CancelPendingPayment.jsx';
-import AndroidApp from './Pages/AndroidApp/AndroidApp.jsx';
-import EstimateItemWiseReport from './Pages/Reports/Estimate/EstimateItemWiseReport.jsx';
-import EstimateDateWiseReport from './Pages/Reports/Estimate/EstimateDateWiseReport.jsx';
-import OfferForm from './Pages/Offer/Offer/OfferFormNew.jsx';
-import OfferList from './Pages/Offer/Offer/OfferListNew.jsx';
-import ItemWise from './Pages/Offer/ItemOffer/ItemWiseForm.jsx';
-import SalesWiseForm from './Pages/Offer/SalesOffer/SalesWiseForm.jsx';
-import SalesWiseList from './Pages/Offer/SalesOffer/SalesWiseList.jsx';
-import QuantityWise from './Pages/Offer/QuantityOffer/QuantityWiseForm.jsx';
-import BuyOneGetOneForm from './Pages/Offer/BuyOneGetOneOffer/BuyOneGetOneForm.jsx';
-// import LoyaltyPointsForm from "./Pages/Offer/LoyaltyPoints/LoyaltyPointsForm.jsx";
-import LoyaltyPointsList from './Pages/Offer/LoyaltyPoints/LoyaltyPointsList.jsx';
-import BundleOfferForm from './Pages/Offer/BundleOffer/BundleOfferForm.jsx';
-import BundleOfferList from './Pages/Offer/BundleOffer/BundleOfferList.jsx';
-// import CouponWiseOffer from "./Pages/Offer/CouponOffer/CouponWiseOfferForm.jsx"
-import CouponWiseOfferlist from './Pages/Offer/CouponOffer/CouponWiseOfferlist.jsx';
-import PromocodeList from './Pages/Offer/PromoCode/PromocodeList.jsx';
-// import PromocodeForm from "./Pages/Offer/PromoCode/PromocodeForm.jsx";
-import OfferCodeList from './Pages/Offer/OfferCode/OfferCodeList.jsx';
-// import OfferCodeForm from "./Pages/Offer/OfferCode/OfferCodeForm.jsx";
-import PricingPage from './Pages/BookingScreen/Components/UtillComponents/PricingPage.jsx';
-import PurchaseOrder from './Pages/PurchaseOrder/PurchaseOrder.jsx';
-import PurchaseOrderMail from './Pages/PurchaseOrder/PurchaseOrderMail.jsx';
-import PurchaseOrderList from './Pages/PurchaseOrder/PurchaseOrderList.jsx';
-import StockReceivedList from './Pages/StockTransfer/StockReceivedList.jsx';
-import GstInvoiceSetUpForm from './Pages/GstInvoiceSetup/GstInvoiceSetUpForm.jsx';
-import gstInvoiceSetUpList from './Pages/GstInvoiceSetup/GstInvoiceSetupList.jsx';
-import StockinHand from './Pages/StockinHand/StockinHand.jsx';
+import { lazy } from 'react';
+const CommonMaster = lazy(
+ () => import('./Pages/CommonMaster/CommonMaster.jsx')
+);
+const ConfigType = lazy(() => import('./Pages/ConfigType/ConfigTypeForm.jsx'));
+const AdminTax = lazy(() => import('./Pages/AdminTax/AdminTaxForm.jsx'));
+const ProductForm = lazy(() => import('./Pages/Product/ProductForm.jsx'));
+const Sport_ProductForm = lazy(
+ () => import('./Pages/Product/SportsMaster.jsx')
+);
+const ShiftMasterList = lazy(
+ () => import('./Pages/ShiftMaster/ShiftMasterList.jsx')
+);
+const ShiftMasterForm = lazy(
+ () => import('./Pages/ShiftMaster/ShiftMasterForm.jsx')
+);
+const EmployeeMasterList = lazy(
+ () => import('./Pages/EmpMaster/EmpMasterList.jsx')
+);
+const EmployeeMasterForm = lazy(
+ () => import('./Pages/EmpMaster/EmpMasterForm.jsx')
+);
-import PurchaseReturn from './Pages/PurchaseReturn/purchaseReturn.jsx';
-import PurchaseReturnget from './Pages/PurchaseReturn/PurchaseReturnGet.jsx';
-import KioskBookingPage from './Pages/Kiosk/KioskBookingPage.jsx';
-import KioskBookingReceipt from './Pages/Kiosk/PaymentGateway/PaymentGatewayReceipt.jsx';
-import KioskComponentList from './Pages/KioskComponent/KioskComponentList.jsx';
-import CustomerDisplay from './Pages/CustomerDisplay/CustomerDisplay.jsx';
-import PurchaseQuotationForm from './Pages/PurchaseQuotation/PurchaseQuotationForm.jsx';
-import DeliveryChallanForm from './Pages/DeliveryChallan/Deliverychallan.jsx';
-import DeliveryChallanList from './Pages/DeliveryChallan/DeliverychallanList.jsx';
-import ComboOfferMaster from './Pages/Offer/ComboOfferPack/ComboOfferForm.jsx';
-import PaymentDeviceForm from './Pages/Payment/PaymentDevice/PaymentDeviceForm.jsx';
-import PaymentFailedDetailsList from './Pages/Payment/PaymentFailedDetails/PaymentFailedDetailsList.jsx';
-import CounterCategoryMappingForm from './Pages/CounterCategoryMapping/CounterCategoryMappingForm.jsx';
-import ImageBulkUpload from './Pages/ImageBulkUpload/ImageBulkUpload.jsx';
-import WholesaleBookingPage from './Pages/PurchaseScreen/LayoutScreen8/LayoutScreen8.jsx';
-import WholeSaleProductList from './Pages/Wholesale/ProductList.jsx';
-import ProductEntry from './Pages/Wholesale/ProductEntry.jsx';
-import ProductEntryList from './Pages/Wholesale/ProductEntryList.jsx';
-import ItemEntry from './Pages/Wholesale/ItemEntry/ItemEntry.jsx';
-import WsPreorder from './Pages/Wholesalespreorder/WholesalePreorderList.jsx';
-import WsPreorderForm from './Pages/Wholesalespreorder/WholesalePreorderForm.jsx';
-import ExtraChrgesList from './Pages/Wholesale/ItemEntry/ExtraChrgesList.jsx';
-import SalesBillCancel from './Pages/SalesRemoval/SalesBillCancelList.jsx';
-import WholeSaleAbstract from './Pages/WholeSaleAbstract/WholeSaleAbstract.jsx';
-import WholeSaleSellerAbstract from './Pages/WholeSaleAbstract/WholeSaleSellerAbstract.jsx';
-import PaymentReceived from './Pages/WholeSaleTransaction/PaymentReceived.jsx';
-import WholeSaleSalesReport from './Pages/WholeSaleReport/WholeSalesSalesReport.jsx';
-import WholeSalePurchaseReport from './Pages/WholeSaleReport/WholeSalePurchaseReport.jsx';
-import WholeSalePaymentPurchaseReport from './Pages/WholesalePaymentReport/WholeSalePaymentPurchaseReport.jsx';
-import WholeSalePaymentSalesReport from './Pages/WholesalePaymentReport/WholeSalePaymementSaleReport.jsx';
-import SpeechLanguagesList from './Pages/SpeechLanguages/SpeechLanguagesList.jsx';
-import LegderList from './Pages/WholeSaleLedger/WholeSaleLedger.jsx';
-import SellerMasterTran from './Pages/WholeSaleTransaction/SellerMasterTransaction.jsx';
-import TicketForm from './Pages/Ticket/TicketForm.jsx';
-import ThemeCreation from './Pages/BookingScreen/Components/ThemeCreation/ThemeList.jsx';
-import ThemeSelection from './Pages/BookingScreen/Components/ThemeCreation/ThemePreview.jsx';
-import BarcodeTemplateSetup from './Pages/BarcodeSetup/BarcodeTemplateSetup.jsx';
-import BarcodeComponentList from './Pages/BarcodeComponent/BarcodeComponentList.jsx';
-import StoreRecipelist from './Pages/StoreKitchen/StoreRecipe/StoreRecipelist.jsx';
-import StoreRecipeform from './Pages/StoreKitchen/StoreRecipe/StoreRecipeform.jsx';
-import Storekitchenlist from './Pages/StoreKitchen/StoretoKitchen/StoretoKitchenlist.jsx';
-import StoreKitchenform from './Pages/StoreKitchen/StoretoKitchen/Storetokitchenform.jsx';
-import { axiosCommonInstanceData } from './Features/AuthenicationToken/AuthenticationToken';
+const SupplierMasterList = lazy(
+ () => import('./Pages/SupplierMaster/SupplierMasterList.jsx')
+);
+const SupplierMasterForm = lazy(
+ () => import('./Pages/SupplierMaster/SupplierMasterForm.jsx')
+);
+
+const ComponentMasterForm = lazy(
+ () => import('./Pages/UiComponentPage/ComponentForm.jsx')
+);
+const ComponentMasterList = lazy(
+ () => import('./Pages/UiComponentPage/ComponentList.jsx')
+);
+
+const CustomerForm = lazy(
+ () => import('./Pages/CustomerMaster/CustMasterForm.jsx')
+);
+const CustomerMasterList = lazy(
+ () => import('./Pages/CustomerMaster/CustMasterList.jsx')
+);
+
+const DateWiseReport = lazy(
+ () => import('./Pages/Reports/DateWiseReport/DateWiseReport.jsx')
+);
+
+const ItemWiseReport = lazy(
+ () => import('./Pages/Reports/ItemWiseReport/ItemWiseReport.jsx')
+);
+
+const Reprint = lazy(
+ () =>
+ import('./Pages/BookingScreen/Components/OtherConponents/Reprint/BSReprint.jsx')
+);
+
+const BookingSelectionPage = lazy(
+ () => import('./Pages/BookingScreen/Components/MainPage/MainPage.jsx')
+);
+
+const PrintSelectionPage = lazy(
+ () => import('./Pages/BookingScreen/Components/PrintMainPage/MainPage.jsx')
+);
+const KioskMainPage = lazy(
+ () => import('./Pages/BookingScreen/Components/Kiosk/KioskMainPage.jsx')
+);
+
+const BookingPage = lazy(() => import('./Pages/BookingScreen/BookingPage.jsx'));
+
+const StockForm = lazy(() => import('./Pages/StockMaster/StockForm.jsx'));
+
+const StockList = lazy(() => import('./Pages/StockMaster/StockList.jsx'));
+
+const DiningMasterList = lazy(() => import('./Pages/Dining/DiningList.jsx'));
+
+const DiningMasterForm = lazy(() => import('./Pages/Dining/DiningForm.jsx'));
+
+const TableBooking = lazy(
+ () => import('./Pages/Tablebooking/TableBooking.jsx')
+);
+
+const ComboMaster = lazy(() => import('./Pages/ComboPack/ComboMaster.jsx'));
+
+const ComboList = lazy(() => import('./Pages/ComboPack/ComboMasterlist.jsx'));
+const EmpAccessForm = lazy(() => import('./Pages/EmpAccess/EmpAccessForm.jsx'));
+const EmpAccessList = lazy(() => import('./Pages/EmpAccess/EmpAccessList.jsx'));
+
+const EmpScreenAccessList = lazy(
+ () => import('./Pages/EmpScreenAccess/EmpScreenAccessList.jsx')
+);
+const EmpScreenRightsAccess = lazy(
+ () => import('./Pages/EmpScreenAccess/EmpScreenRightsAccess.jsx')
+);
+
+const PreferenceList = lazy(
+ () => import('./Pages/Preference/PreferenceList.jsx')
+);
+
+const PaymentOptions = lazy(
+ () => import('./Pages/Payment/PaymentOptions/PaymentOptions.jsx')
+);
+const PaymentDetails = lazy(
+ () => import('./Pages/Payment/PaymentDetails/PaymentDetailsForm.jsx')
+);
+const PaymentDetailsList = lazy(
+ () => import('./Pages/Payment/PaymentDetails/PaymentDetailsList.jsx')
+);
+const PaymentReceivedRetail = lazy(
+ () =>
+ import('./Pages/Payment/PaymentReceivedRetail/PaymentReceivedRetail.jsx')
+);
+
+const ExtraChargesList = lazy(
+ () => import('./Pages/ExtraCharges/ExtraChargesList.jsx')
+);
+
+const BranchLogin = lazy(() => import('./Pages/BranchLogin/BranchLogin.jsx'));
+const BackToBranchLogin = lazy(
+ () => import('./Pages/BranchLogin/BackToBranchLogin.jsx')
+);
+const Logout = lazy(() => import('./Pages/Logout.jsx'));
+
+const BacktoLogin = lazy(() => import('./Pages/BranchLogin/BacktoLogin.jsx'));
+
+const StockPriceUpdate = lazy(
+ () => import('./Pages/StockPriceUpdate/StockPriceUpdate.jsx')
+);
+
+const ProductCatalogueList = lazy(
+ () => import('./Pages/ProductCatlogue/ProductcatlogueList.jsx')
+);
+
+const KOT = lazy(() => import('./Pages/Reports/KOT/kot.jsx'));
+
+const CustomerKOTDisplay = lazy(
+ () => import('./Pages/Reports/KOT/CustomerKOTDisplay.jsx')
+);
+
+const RedirectApps = lazy(() => import('./Pages/RedirectApps.jsx'));
+
+const WSTransaction = lazy(
+ () => import('./Pages/WholeSaleTransaction/WSSalesTransaction.jsx')
+);
+
+const LedgerReport = lazy(
+ () => import('./Pages/Reports/LedgerReport/LedgerReport.jsx')
+);
+const PaymentDetailsPage = lazy(
+ () =>
+ import('./Pages/BookingScreen/Components/BookingFunctionality/PaymentDetailsPage.jsx')
+);
+
+const CreditCustomerPrint = lazy(
+ () =>
+ import('./Pages/BookingScreen/Components/BookingFunctionality/CreditDownloadpage.jsx')
+);
+
+const Cancellation = lazy(
+ () => import('./Pages/CancelReschedule/Cancellation.jsx')
+);
+
+const ChangePaymentmode = lazy(
+ () => import('./Pages/CancelReschedule/ChangePaymentmode.jsx')
+);
+
+const CancellationList = lazy(
+ () => import('./Pages/CancelReschedule/CancellationList.jsx')
+);
+
+const CancelApplicableProd = lazy(
+ () => import('./Pages/CancelReschedule/CancelApplicableProd.jsx')
+);
+
+const CancellationListPending = lazy(
+ () => import('./Pages/CancelReschedule/CancelPendingPayment.jsx')
+);
+
+const AndroidApp = lazy(() => import('./Pages/AndroidApp/AndroidApp.jsx'));
+
+const EstimateItemWiseReport = lazy(
+ () => import('./Pages/Reports/Estimate/EstimateItemWiseReport.jsx')
+);
+
+const EstimateDateWiseReport = lazy(
+ () => import('./Pages/Reports/Estimate/EstimateDateWiseReport.jsx')
+);
+
+const OfferForm = lazy(() => import('./Pages/Offer/Offer/OfferFormNew.jsx'));
+
+const OfferList = lazy(() => import('./Pages/Offer/Offer/OfferListNew.jsx'));
+
+const ItemWise = lazy(() => import('./Pages/Offer/ItemOffer/ItemWiseForm.jsx'));
+const SalesWiseForm = lazy(
+ () => import('./Pages/Offer/SalesOffer/SalesWiseForm.jsx')
+);
+const SalesWiseList = lazy(
+ () => import('./Pages/Offer/SalesOffer/SalesWiseList.jsx')
+);
+
+const QuantityWise = lazy(
+ () => import('./Pages/Offer/QuantityOffer/QuantityWiseForm.jsx')
+);
+
+const BuyOneGetOneForm = lazy(
+ () => import('./Pages/Offer/BuyOneGetOneOffer/BuyOneGetOneForm.jsx')
+);
+
+const LoyaltyPointsList = lazy(
+ () => import('./Pages/Offer/LoyaltyPoints/LoyaltyPointsList.jsx')
+);
+
+const BundleOfferForm = lazy(
+ () => import('./Pages/Offer/BundleOffer/BundleOfferForm.jsx')
+);
+const BundleOfferList = lazy(
+ () => import('./Pages/Offer/BundleOffer/BundleOfferList.jsx')
+);
+const CouponWiseOfferlist = lazy(
+ () => import('./Pages/Offer/CouponOffer/CouponWiseOfferlist.jsx')
+);
+
+const PromocodeList = lazy(
+ () => import('./Pages/Offer/PromoCode/PromocodeList.jsx')
+);
+
+const OfferCodeList = lazy(
+ () => import('./Pages/Offer/OfferCode/OfferCodeList.jsx')
+);
+
+const PricingPage = lazy(
+ () =>
+ import('./Pages/BookingScreen/Components/UtillComponents/PricingPage.jsx')
+);
+
+const PurchaseOrder = lazy(
+ () => import('./Pages/PurchaseOrder/PurchaseOrder.jsx')
+);
+
+const PurchaseOrderMail = lazy(
+ () => import('./Pages/PurchaseOrder/PurchaseOrderMail.jsx')
+);
+
+const PurchaseOrderList = lazy(
+ () => import('./Pages/PurchaseOrder/PurchaseOrderList.jsx')
+);
+
+const StockReceivedList = lazy(
+ () => import('./Pages/StockTransfer/StockReceivedList.jsx')
+);
+
+const GstInvoiceSetUpForm = lazy(
+ () => import('./Pages/GstInvoiceSetup/GstInvoiceSetUpForm.jsx')
+);
+
+const gstInvoiceSetUpList = lazy(
+ () => import('./Pages/GstInvoiceSetup/GstInvoiceSetupList.jsx')
+);
+
+const StockinHand = lazy(() => import('./Pages/StockinHand/StockinHand.jsx'));
+
+const PurchaseReturn = lazy(
+ () => import('./Pages/PurchaseReturn/purchaseReturn.jsx')
+);
+
+const PurchaseReturnget = lazy(
+ () => import('./Pages/PurchaseReturn/PurchaseReturnGet.jsx')
+);
+
+const KioskBookingPage = lazy(
+ () => import('./Pages/Kiosk/KioskBookingPage.jsx')
+);
+
+const KioskBookingReceipt = lazy(
+ () => import('./Pages/Kiosk/PaymentGateway/PaymentGatewayReceipt.jsx')
+);
+
+const KioskComponentList = lazy(
+ () => import('./Pages/KioskComponent/KioskComponentList.jsx')
+);
+
+const CustomerDisplay = lazy(
+ () => import('./Pages/CustomerDisplay/CustomerDisplay.jsx')
+);
+
+const PurchaseQuotationForm = lazy(
+ () => import('./Pages/PurchaseQuotation/PurchaseQuotationForm.jsx')
+);
+
+const DeliveryChallanForm = lazy(
+ () => import('./Pages/DeliveryChallan/Deliverychallan.jsx')
+);
+
+const DeliveryChallanList = lazy(
+ () => import('./Pages/DeliveryChallan/DeliverychallanList.jsx')
+);
+
+const ComboOfferMaster = lazy(
+ () => import('./Pages/Offer/ComboOfferPack/ComboOfferForm.jsx')
+);
+
+const PaymentDeviceForm = lazy(
+ () => import('./Pages/Payment/PaymentDevice/PaymentDeviceForm.jsx')
+);
+const PaymentFailedDetailsList = lazy(
+ () =>
+ import('./Pages/Payment/PaymentFailedDetails/PaymentFailedDetailsList.jsx')
+);
+
+const CounterCategoryMappingForm = lazy(
+ () => import('./Pages/CounterCategoryMapping/CounterCategoryMappingForm.jsx')
+);
+
+const ImageBulkUpload = lazy(
+ () => import('./Pages/ImageBulkUpload/ImageBulkUpload.jsx')
+);
+
+const WholesaleBookingPage = lazy(
+ () => import('./Pages/PurchaseScreen/LayoutScreen8/LayoutScreen8.jsx')
+);
+
+const WholeSaleProductList = lazy(
+ () => import('./Pages/Wholesale/ProductList.jsx')
+);
+
+const ProductEntry = lazy(() => import('./Pages/Wholesale/ProductEntry.jsx'));
+
+const ProductEntryList = lazy(
+ () => import('./Pages/Wholesale/ProductEntryList.jsx')
+);
+const ItemEntry = lazy(
+ () => import('./Pages/Wholesale/ItemEntry/ItemEntry.jsx')
+);
+
+const WsPreorder = lazy(
+ () => import('./Pages/Wholesalespreorder/WholesalePreorderList.jsx')
+);
+
+const WsPreorderForm = lazy(
+ () => import('./Pages/Wholesalespreorder/WholesalePreorderForm.jsx')
+);
+
+const ExtraChrgesList = lazy(
+ () => import('./Pages/Wholesale/ItemEntry/ExtraChrgesList.jsx')
+);
+
+const SalesBillCancel = lazy(
+ () => import('./Pages/SalesRemoval/SalesBillCancelList.jsx')
+);
+
+const WholeSaleAbstract = lazy(
+ () => import('./Pages/WholeSaleAbstract/WholeSaleAbstract.jsx')
+);
+
+const WholeSaleSellerAbstract = lazy(
+ () => import('./Pages/WholeSaleAbstract/WholeSaleSellerAbstract.jsx')
+);
+
+const PaymentReceived = lazy(
+ () => import('./Pages/WholeSaleTransaction/PaymentReceived.jsx')
+);
+
+const WholeSaleSalesReport = lazy(
+ () => import('./Pages/WholeSaleReport/WholeSalesSalesReport.jsx')
+);
+
+const WholeSalePurchaseReport = lazy(
+ () => import('./Pages/WholeSaleReport/WholeSalePurchaseReport.jsx')
+);
+const WholeSalePaymentPurchaseReport = lazy(
+ () =>
+ import('./Pages/WholesalePaymentReport/WholeSalePaymentPurchaseReport.jsx')
+);
+
+const WholeSalePaymentSalesReport = lazy(
+ () =>
+ import('./Pages/WholesalePaymentReport/WholeSalePaymementSaleReport.jsx')
+);
+
+const SpeechLanguagesList = lazy(
+ () => import('./Pages/SpeechLanguages/SpeechLanguagesList.jsx')
+);
+
+const LegderList = lazy(
+ () => import('./Pages/WholeSaleLedger/WholeSaleLedger.jsx')
+);
+
+const SellerMasterTran = lazy(
+ () => import('./Pages/WholeSaleTransaction/SellerMasterTransaction.jsx')
+);
+
+const TicketForm = lazy(() => import('./Pages/Ticket/TicketForm.jsx'));
+
+const ThemeCreation = lazy(
+ () => import('./Pages/BookingScreen/Components/ThemeCreation/ThemeList.jsx')
+);
+
+const ThemeSelection = lazy(
+ () =>
+ import('./Pages/BookingScreen/Components/ThemeCreation/ThemePreview.jsx')
+);
+
+const BarcodeTemplateSetup = lazy(
+ () => import('./Pages/BarcodeSetup/BarcodeTemplateSetup.jsx')
+);
+
+const BarcodeComponentList = lazy(
+ () => import('./Pages/BarcodeComponent/BarcodeComponentList.jsx')
+);
+
+const StoreRecipelist = lazy(
+ () => import('./Pages/StoreKitchen/StoreRecipe/StoreRecipelist.jsx')
+);
+
+const StoreRecipeform = lazy(
+ () => import('./Pages/StoreKitchen/StoreRecipe/StoreRecipeform.jsx')
+);
+
+const Storekitchenlist = lazy(
+ () => import('./Pages/StoreKitchen/StoretoKitchen/StoretoKitchenlist.jsx')
+);
+
+const StoreKitchenform = lazy(
+ () => import('./Pages/StoreKitchen/StoretoKitchen/Storetokitchenform.jsx')
+);
import { getSession, sessionStore } from './Services/Others';
import axios from 'axios';
-import KitchenFinishlist from './Pages/StoreKitchen/StoreKitchenFinish/KitchenFinishlist.jsx';
-import KitechenFinishform from './Pages/StoreKitchen/StoreKitchenFinish/KitechenFinishform.jsx';
+const KitchenFinishlist = lazy(
+ () => import('./Pages/StoreKitchen/StoreKitchenFinish/KitchenFinishlist.jsx')
+);
+const KitechenFinishform = lazy(
+ () => import('./Pages/StoreKitchen/StoreKitchenFinish/KitechenFinishform.jsx')
+);
-import FreeProductList from './Pages/FreeProducts/FreeProduct/FreeProductList.jsx';
-import FreePurchaseEnteryForm from './Pages/FreeProducts/FreePurchase/FreePurchaseEntery/FreePurchaseEnteryForm.jsx';
-import FreePurchaseEnteryList from './Pages/FreeProducts/FreePurchase/FreePurchaseEntery/FreePurchaseEnteryList.jsx';
-import FreePurchaseOrderList from './Pages/FreeProducts/FreePurchase/FreePurchaseOrder/FreePurchaseOrderList.jsx';
-import FreePurchaseOrderForm from './Pages/FreeProducts/FreePurchase/FreePurchaseOrder/FreePurchaseOrderForm.jsx';
-import FreePurchaseReturnList from './Pages/FreeProducts/FreePurchase/FreePurchaseReturn/FreePurchaseReturnList.jsx';
-import FreePurchaseReturnForm from './Pages/FreeProducts/FreePurchase/FreePurchaseReturn/FreePurchaseReturnForm.jsx';
-import CommonForm from './Pages/Offer/LoyaltyPoints/CommonForm.jsx';
-import ReprintReasonReportList from './Pages/Reports/ReprintReasonReport/ReprintReasonReportList.jsx';
-import RevenueItemWiseReport from './Pages/Reports/Revenue/RevenueItemWiseReport.jsx';
-import LinkUrlCreate from './Pages/paymentpdfPage/LinkUrlCreate.jsx';
-import SupplierProductMapping from './Pages/SupplierProductMapping/SupplierProductMapping.jsx';
-import RedirectUserProfile from './Pages/RedirectUserProfile.jsx';
-import RelieveRequestForm from './Pages/EmpMaster/EmpRelieve.jsx';
-import PurchaseQuotationList from './Pages/PurchaseQuotation/PurchaseQuotationList.jsx';
-import ExchangeAndReplacementList from './Pages/ExchangeAndReplacement/ExchangeAndReplacementList.jsx';
-import ExchangeAndReplacementForm from './Pages/ExchangeAndReplacement/ExchangeAndReplacementForm.jsx';
-import ExchangeReturnMapForm from './Pages/ExchangeReturnMap/ExchangeReturnMapForm.jsx';
-import ExchangeReturnMapList from './Pages/ExchangeReturnMap/ExchangeReturnMapList.jsx';
-import OtherServicesForm from './Pages/OtherServices/OtherServicesForm.jsx';
-import OtherServicesList from './Pages/OtherServices/OtherServicesList.jsx';
-import EmpCommisionOrIncentiveForm from './Pages/EmpCommissionOrIncentive/EmpCommisionOrIncentiveForm.jsx';
-import EmpCommisionOrIncentiveList from './Pages/EmpCommissionOrIncentive/EmpCommisionOrIncentiveList.jsx';
-import SalesBillProductsReturnList from './Pages/CancelReschedule/SalesBillProductReturnList.jsx';
-import SalesBillProductsReturn from './Pages/CancelReschedule/SalesBillProductsReturn.jsx';
-import DeliveryChallanToInvoiceForm from './Pages/DeliveryChallanToInvoice/DeliveryChallanToInvoiceForm.jsx';
-import DeliveryChallanToInvoiceList from './Pages/DeliveryChallanToInvoice/DeliveryChallanToInvoiceList.jsx';
-import TipAmountSettlementList from './Pages/Reports/TipAmountSettlement/TipAmountSettlementList.jsx';
-import EmployeeSettlement from './Pages/Reports/EmployeeSettlement/EmployeeSettlement.jsx';
-import PublicQrCode from './Pages/Reports/PublicQrCode.jsx';
-import TableMapping from './Pages/TableMapping/TableMapping.jsx';
-import TableMAppingList from './Pages/TableMapping/TableMAppingList.jsx';
-import PurchaseOrderReport from './Pages/Reports/PurchaseReport/PurchaseOrderReport.jsx';
-import SalesOrder from './Pages/SalesOrder/SalesOrder.jsx';
-import LoyaltyBased from './Pages/Offer/LoyaltyBased/LoyaltyBased.jsx';
-import LoyaltyBasedList from './Pages/Offer/LoyaltyBased/LoyaltyBasedList.jsx';
-import CodeBase from './Pages/Offer/CodeBase/CodeBase.jsx';
-import CodeBaseList from './Pages/Offer/CodeBase/CodeBaseList.jsx';
-import TurboAddForm from './Pages/Product/TurboAddForm.jsx';
-import ProductMaster from './Pages/Product/ProductMaster.jsx';
-import GatewayMasterConfiguration from './Pages/GatewayMasterConfiguration/GatewayMasterConfiguration.jsx';
-import GatewayMasterConfigurationList from './Pages/GatewayMasterConfiguration/GatewayMasterConfigurationList.jsx';
-import MembershipForm from './Pages/Membership/MembershipForm.jsx';
-import MembershipList from './Pages/Membership/MembershipList.jsx';
-import SlotManagementForm from './Pages/SlotManagement/SlotManagement.jsx';
-import SlotManagementList from './Pages/SlotManagement/SlotManagementList.jsx';
-import BookingReScedule from './Pages/CancelReschedule/BookingReScedule.jsx';
-import BookingReSceduleList from './Pages/CancelReschedule/BookingReSceduleList.jsx';
-import MembershipReport from './Pages/Reports/Membership/MembershipReport.jsx';
-import OpeningStock from './Pages/openingStock/openingstockForm.jsx';
-import OpeningStockList from './Pages/openingStock/OpeningStockList.jsx';
-import StockAdjustment from './Pages/StockAdjustment/StockAdjustment.jsx';
-import StockAdjustmentList from './Pages/StockAdjustment/StockAdjustmentList.jsx';
-import TopSellingProducts from './Pages/DashBoard/TopSellingProductsChart.jsx';
-import AutomatedReorder from './Pages/Automated Reorder/AutomatedReorder.jsx';
-import AutomatedReorderList from './Pages/Automated Reorder/AutomatedReorderList.jsx';
-import CustomerPurchaseConfirm from './Pages/PurchaseOrder/CustomerPurchaseConfirm/CustomerPurchaseConfirm.jsx';
-import MenuQRCode from './Pages/Reports/MenuQRCode/MenuQRCode.jsx';
-import CustomerMenuPage from './Pages/Reports/MenuQRCode/CustomerMenuPage.jsx';
-import PurchaseLink from './Pages/PurchaseOrder/CustomerPurchaseConfirm/PurchaseLink.jsx';
-import RackForm from './Pages/Rack/RackForm.jsx';
-import RackList from './Pages/Rack/RackList.jsx';
-import CreateTransfer from './Pages/StockTransfer/CreateTransfer.jsx';
-import Dispatch from './Pages/StockTransfer/Dispatch.jsx';
-import ComboLayout3 from './Pages/BookingScreen/Template/ComboLayout3/ComboLayout3.jsx';
-import StockTransferList from './Pages/StockTransfer/TransferList.jsx';
-import Productcatlogue from './Pages/ProductCatlogue/Productcatalogue.jsx';
+const FreeProductList = lazy(
+ () => import('./Pages/FreeProducts/FreeProduct/FreeProductList.jsx')
+);
+
+const FreePurchaseEnteryForm = lazy(
+ () =>
+ import('./Pages/FreeProducts/FreePurchase/FreePurchaseEntery/FreePurchaseEnteryForm.jsx')
+);
+const FreePurchaseEnteryList = lazy(
+ () =>
+ import('./Pages/FreeProducts/FreePurchase/FreePurchaseEntery/FreePurchaseEnteryList.jsx')
+);
+
+const FreePurchaseOrderList = lazy(
+ () =>
+ import('./Pages/FreeProducts/FreePurchase/FreePurchaseOrder/FreePurchaseOrderList.jsx')
+);
+const FreePurchaseOrderForm = lazy(
+ () =>
+ import('./Pages/FreeProducts/FreePurchase/FreePurchaseOrder/FreePurchaseOrderForm.jsx')
+);
+
+const FreePurchaseReturnList = lazy(
+ () =>
+ import('./Pages/FreeProducts/FreePurchase/FreePurchaseReturn/FreePurchaseReturnList.jsx')
+);
+const FreePurchaseReturnForm = lazy(
+ () =>
+ import('./Pages/FreeProducts/FreePurchase/FreePurchaseReturn/FreePurchaseReturnForm.jsx')
+);
+const CommonForm = lazy(
+ () => import('./Pages/Offer/LoyaltyPoints/CommonForm.jsx')
+);
+
+const ReprintReasonReportList = lazy(
+ () =>
+ import('./Pages/Reports/ReprintReasonReport/ReprintReasonReportList.jsx')
+);
+
+const RevenueItemWiseReport = lazy(
+ () => import('./Pages/Reports/Revenue/RevenueItemWiseReport.jsx')
+);
+
+const LinkUrlCreate = lazy(
+ () => import('./Pages/paymentpdfPage/LinkUrlCreate.jsx')
+);
+
+const SupplierProductMapping = lazy(
+ () => import('./Pages/SupplierProductMapping/SupplierProductMapping.jsx')
+);
+
+const RedirectUserProfile = lazy(
+ () => import('./Pages/RedirectUserProfile.jsx')
+);
+
+const RelieveRequestForm = lazy(
+ () => import('./Pages/EmpMaster/EmpRelieve.jsx')
+);
+
+const PurchaseQuotationList = lazy(
+ () => import('./Pages/PurchaseQuotation/PurchaseQuotationList.jsx')
+);
+
+const ExchangeAndReplacementList = lazy(
+ () => import('./Pages/ExchangeAndReplacement/ExchangeAndReplacementList.jsx')
+);
+const ExchangeAndReplacementForm = lazy(
+ () => import('./Pages/ExchangeAndReplacement/ExchangeAndReplacementForm.jsx')
+);
+
+const ExchangeReturnMapForm = lazy(
+ () => import('./Pages/ExchangeReturnMap/ExchangeReturnMapForm.jsx')
+);
+const ExchangeReturnMapList = lazy(
+ () => import('./Pages/ExchangeReturnMap/ExchangeReturnMapList.jsx')
+);
+
+const OtherServicesForm = lazy(
+ () => import('./Pages/OtherServices/OtherServicesForm.jsx')
+);
+const OtherServicesList = lazy(
+ () => import('./Pages/OtherServices/OtherServicesList.jsx')
+);
+const EmpCommisionOrIncentiveForm = lazy(
+ () =>
+ import('./Pages/EmpCommissionOrIncentive/EmpCommisionOrIncentiveForm.jsx')
+);
+
+const EmpCommisionOrIncentiveList = lazy(
+ () =>
+ import('./Pages/EmpCommissionOrIncentive/EmpCommisionOrIncentiveList.jsx')
+);
+
+const SalesBillProductsReturnList = lazy(
+ () => import('./Pages/CancelReschedule/SalesBillProductReturnList.jsx')
+);
+
+const SalesBillProductsReturn = lazy(
+ () => import('./Pages/CancelReschedule/SalesBillProductsReturn.jsx')
+);
+
+const DeliveryChallanToInvoiceForm = lazy(
+ () =>
+ import('./Pages/DeliveryChallanToInvoice/DeliveryChallanToInvoiceForm.jsx')
+);
+
+const DeliveryChallanToInvoiceList = lazy(
+ () =>
+ import('./Pages/DeliveryChallanToInvoice/DeliveryChallanToInvoiceList.jsx')
+);
+
+const TipAmountSettlementList = lazy(
+ () =>
+ import('./Pages/Reports/TipAmountSettlement/TipAmountSettlementList.jsx')
+);
+
+const EmployeeSettlement = lazy(
+ () => import('./Pages/Reports/EmployeeSettlement/EmployeeSettlement.jsx')
+);
+const PublicQrCode = lazy(() => import('./Pages/Reports/PublicQrCode.jsx'));
+
+const TableMapping = lazy(
+ () => import('./Pages/TableMapping/TableMapping.jsx')
+);
+const TableMAppingList = lazy(
+ () => import('./Pages/TableMapping/TableMAppingList.jsx')
+);
+
+const PurchaseOrderReport = lazy(
+ () => import('./Pages/Reports/PurchaseReport/PurchaseOrderReport.jsx')
+);
+
+const SalesOrder = lazy(() => import('./Pages/SalesOrder/SalesOrder.jsx'));
+
+const LoyaltyBased = lazy(
+ () => import('./Pages/Offer/LoyaltyBased/LoyaltyBased.jsx')
+);
+const LoyaltyBasedList = lazy(
+ () => import('./Pages/Offer/LoyaltyBased/LoyaltyBasedList.jsx')
+);
+const CodeBase = lazy(() => import('./Pages/Offer/CodeBase/CodeBase.jsx'));
+const CodeBaseList = lazy(
+ () => import('./Pages/Offer/CodeBase/CodeBaseList.jsx')
+);
+
+const TurboAddForm = lazy(() => import('./Pages/Product/TurboAddForm.jsx'));
+
+const ProductMaster = lazy(() => import('./Pages/Product/ProductMaster.jsx'));
+
+const GatewayMasterConfiguration = lazy(
+ () =>
+ import('./Pages/GatewayMasterConfiguration/GatewayMasterConfiguration.jsx')
+);
+const GatewayMasterConfigurationList = lazy(
+ () =>
+ import('./Pages/GatewayMasterConfiguration/GatewayMasterConfigurationList.jsx')
+);
+
+const MembershipForm = lazy(
+ () => import('./Pages/Membership/MembershipForm.jsx')
+);
+const MembershipList = lazy(
+ () => import('./Pages/Membership/MembershipList.jsx')
+);
+const SlotManagementForm = lazy(
+ () => import('./Pages/SlotManagement/SlotManagement.jsx')
+);
+const SlotManagementList = lazy(
+ () => import('./Pages/SlotManagement/SlotManagementList.jsx')
+);
+
+const BookingReScedule = lazy(
+ () => import('./Pages/CancelReschedule/BookingReScedule.jsx')
+);
+const BookingReSceduleList = lazy(
+ () => import('./Pages/CancelReschedule/BookingReSceduleList.jsx')
+);
+
+const MembershipReport = lazy(
+ () => import('./Pages/Reports/Membership/MembershipReport.jsx')
+);
+const OpeningStock = lazy(
+ () => import('./Pages/openingStock/openingstockForm.jsx')
+);
+const OpeningStockList = lazy(
+ () => import('./Pages/openingStock/OpeningStockList.jsx')
+);
+
+const StockAdjustment = lazy(
+ () => import('./Pages/StockAdjustment/StockAdjustment.jsx')
+);
+const StockAdjustmentList = lazy(
+ () => import('./Pages/StockAdjustment/StockAdjustmentList.jsx')
+);
+const TopSellingProducts = lazy(
+ () => import('./Pages/DashBoard/TopSellingProductsChart.jsx')
+);
+
+const AutomatedReorder = lazy(
+ () => import('./Pages/Automated Reorder/AutomatedReorder.jsx')
+);
+const AutomatedReorderList = lazy(
+ () => import('./Pages/Automated Reorder/AutomatedReorderList.jsx')
+);
+
+const CustomerPurchaseConfirm = lazy(
+ () =>
+ import('./Pages/PurchaseOrder/CustomerPurchaseConfirm/CustomerPurchaseConfirm.jsx')
+);
+
+const MenuQRCode = lazy(
+ () => import('./Pages/Reports/MenuQRCode/MenuQRCode.jsx')
+);
+
+const PurchaseLink = lazy(
+ () => import('./Pages/PurchaseOrder/CustomerPurchaseConfirm/PurchaseLink.jsx')
+);
+const RackForm = lazy(() => import('./Pages/Rack/RackForm.jsx'));
+const RackList = lazy(() => import('./Pages/Rack/RackList.jsx'));
+
+const CreateTransfer = lazy(
+ () => import('./Pages/StockTransfer/CreateTransfer.jsx')
+);
+const Dispatch = lazy(() => import('./Pages/StockTransfer/Dispatch.jsx'));
+const StockTransferList = lazy(
+ () => import('./Pages/StockTransfer/TransferList.jsx')
+);
+
+const ComboLayout3 = lazy(
+ () => import('./Pages/BookingScreen/Template/ComboLayout3/ComboLayout3.jsx')
+);
+
+const Productcatlogue = lazy(
+ () => import('./Pages/ProductCatlogue/Productcatalogue.jsx')
+);
const subDirectory = import.meta.env.BASE_URL;
const apiCommonUrl = import.meta.env.ENV_API_URL_COMMON;
@@ -268,7 +732,7 @@ const fetchComponent = async () => {
sessionStore('userName', 'Karthiga');
sessionStorage.setItem(
'auth',
- 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9uYW1lIjoiOTM2MDY0MjI0NCIsIlBhc3N3b3JkIjoiWkB6MTIzNCIsImF1ZCI6WyJodHRwOi8vMTkyLjE2OC4xLjM3OjgwMTMiLCJodHRwOi8vMTkyLjE2OC4xLjM3OjgwMTIiLCJodHRwOi8vMTkyLjE2OC4xLjM3OjgwMTQiLCJodHRwOi8vMTkyLjE2OC4xLjM3OjgwMTMiXSwiZXhwIjoxNzcwMjMzMDA3LCJpc3MiOiJodHRwOi8vMTkyLjE2OC4xLjM3OjgwMDEifQ.y6ZLDB3qz1nJk68XY13jXxHKd99LVX2GhzhtE5eGXqI'
+ 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9uYW1lIjoiOTM2MDY0MjI0NCIsIlBhc3N3b3JkIjoiWkB6MTIzNCIsImF1ZCI6WyJodHRwOi8vMTkyLjE2OC4xLjM3OjgwMTMiLCJodHRwOi8vMTkyLjE2OC4xLjM3OjgwMTIiLCJodHRwOi8vMTkyLjE2OC4xLjM3OjgwMTQiLCJodHRwOi8vMTkyLjE2OC4xLjM3OjgwMTMiXSwiZXhwIjoxNzcwNzQ5MjkxLCJpc3MiOiJodHRwOi8vMTkyLjE2OC4xLjM3OjgwMDEifQ.aXnhbA3ReRVyt8denDX_LK_ecVBiG5KdeHsurVR7iwQ'
);
const AppId = getSession('AppId');
@@ -373,7 +837,7 @@ const fetchHomeComponent = async () => {
sessionStore('userName', 'Karthiga');
sessionStorage.setItem(
'auth',
- 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9uYW1lIjoiOTM2MDY0MjI0NCIsIlBhc3N3b3JkIjoiWkB6MTIzNCIsImF1ZCI6WyJodHRwOi8vMTkyLjE2OC4xLjM3OjgwMTMiLCJodHRwOi8vMTkyLjE2OC4xLjM3OjgwMTIiLCJodHRwOi8vMTkyLjE2OC4xLjM3OjgwMTQiLCJodHRwOi8vMTkyLjE2OC4xLjM3OjgwMTMiXSwiZXhwIjoxNzcwMjMzMDA3LCJpc3MiOiJodHRwOi8vMTkyLjE2OC4xLjM3OjgwMDEifQ.y6ZLDB3qz1nJk68XY13jXxHKd99LVX2GhzhtE5eGXqI'
+ 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9uYW1lIjoiOTM2MDY0MjI0NCIsIlBhc3N3b3JkIjoiWkB6MTIzNCIsImF1ZCI6WyJodHRwOi8vMTkyLjE2OC4xLjM3OjgwMTMiLCJodHRwOi8vMTkyLjE2OC4xLjM3OjgwMTIiLCJodHRwOi8vMTkyLjE2OC4xLjM3OjgwMTQiLCJodHRwOi8vMTkyLjE2OC4xLjM3OjgwMTMiXSwiZXhwIjoxNzcwNzQ5MjkxLCJpc3MiOiJodHRwOi8vMTkyLjE2OC4xLjM3OjgwMDEifQ.aXnhbA3ReRVyt8denDX_LK_ecVBiG5KdeHsurVR7iwQ'
);
const AppId = getSession('AppId');
@@ -1087,8 +1551,6 @@ export const routesConfig = [
empAccess: 'Product Receipt',
},
-
-
{
path: 'receive-stocks',
component: StockReceivedList,
@@ -1228,7 +1690,6 @@ export const routesConfig = [
empAccess: 'DC to Invoice',
},
-
{ path: 'shift-master', component: ShiftMasterList, empAccess: 'Shift' },
{
path: 'shift-master/new',
diff --git a/src/useSessionManager.js b/src/useSessionManager.js
new file mode 100644
index 0000000..85b6ec1
--- /dev/null
+++ b/src/useSessionManager.js
@@ -0,0 +1,72 @@
+import { useEffect, useState } from 'react';
+import { useDispatch } from 'react-redux';
+import {
+ checkSession,
+ GenerateLogout,
+} from './Features/BrachLogin/BranchLogin.js';
+import {
+ clearSession,
+ getSession,
+ TokendecryptedValuesFun,
+} from './Services/Others.js';
+const commonSubDir = import.meta.env.ENV_COMMON_BASE_URL;
+
+const useSessionManager = (dependencyTrigger) => {
+ const dispatch = useDispatch();
+ const [sessionData, setSessionData] = useState(null);
+
+ // 🔹 Load session
+ useEffect(() => {
+ const CompId = getSession('CompId');
+ const AppId = getSession('AppId');
+ const BranchId = getSession('BranchId');
+ const UserType = getSession('UserType');
+
+ if (CompId && AppId && BranchId) {
+ setSessionData({ CompId, AppId, BranchId, UserType });
+ }
+ }, []);
+
+ // 🔹 Session validity check (same logic, centralized)
+ useEffect(() => {
+ const sessionCheckFun = async () => {
+ const UserId = getSession('UserId');
+ const sessionId = getSession('SessionId');
+ const IsLogout = getSession('Mode');
+
+ let encryptedLoginType = TokendecryptedValuesFun(
+ sessionStorage.getItem('LoginType')
+ );
+
+ if (encryptedLoginType !== 'Kiosk') {
+ const res = await dispatch(
+ checkSession({ UserId, sessionId })
+ ).unwrap();
+ if (res?.data?.statusCode === 1 && res?.data?.response === 'False') {
+ if (IsLogout !== 'Logout') {
+ alert('Session invalid. Redirecting to login...');
+ }
+ clearSession();
+ window.location.replace(commonSubDir);
+ }
+ }
+ };
+
+ sessionCheckFun();
+ }, [dependencyTrigger]);
+
+ // 🔹 Logout (shared everywhere)
+ const logout = async () => {
+ const UserId = getSession('UserId');
+ try {
+ await dispatch(GenerateLogout({ UserId, status: 'N' })).unwrap();
+ } finally {
+ sessionStorage.clear();
+ window.location.replace(commonSubDir);
+ }
+ };
+
+ return { sessionData, logout };
+};
+
+export default useSessionManager;
diff --git a/src/useSubscriptionManager.js b/src/useSubscriptionManager.js
new file mode 100644
index 0000000..b2ffd99
--- /dev/null
+++ b/src/useSubscriptionManager.js
@@ -0,0 +1,55 @@
+import { useEffect, useRef, useState } from 'react';
+import { useDispatch } from 'react-redux';
+import {
+ ChangeAppExpDateData,
+ changeHeightforExpDate,
+ getAppSubscriptionDate,
+} from './Features/BookingScreen/BookingData/BookingData.js';
+
+const useSubscriptionManager = (sessionData, logout) => {
+ const dispatch = useDispatch();
+ const prevRemainingDays = useRef(null);
+ const [remainingDays, setRemainingDays] = useState(null);
+
+ useEffect(() => {
+ if (!sessionData) return;
+
+ const fetchExpDate = async () => {
+ const { CompId, AppId, BranchId, UserType } = sessionData;
+
+ const res = await dispatch(
+ getAppSubscriptionDate({ CompId, BranchId, AppId })
+ ).unwrap();
+
+ const expData = res?.data?.data?.[0];
+ if (!expData) return logout();
+
+ if (prevRemainingDays.current !== expData.RemainingDays) {
+ prevRemainingDays.current = expData.RemainingDays;
+
+ setRemainingDays(expData.RemainingDays);
+ dispatch(ChangeAppExpDateData(expData));
+ dispatch(changeHeightforExpDate(expData.RemainingDays));
+
+ if (
+ expData.RemainingDays < 1 &&
+ expData.RemainingHours < 1 &&
+ expData.RemainingMinutes < 1 &&
+ expData.RemainingSeconds < 1 &&
+ UserType !== 'Super Admin'
+ ) {
+ alert('Subscription expired');
+ logout();
+ }
+ }
+ };
+
+ fetchExpDate();
+ const interval = setInterval(fetchExpDate, 60 * 60 * 1000);
+ return () => clearInterval(interval);
+ }, [sessionData]);
+
+ return remainingDays;
+};
+
+export default useSubscriptionManager;