Sub Category Optimization

This commit is contained in:
vignesh 2026-03-13 16:31:12 +05:30
parent cacf42a8fa
commit 2dc9c40ee4
31 changed files with 1472 additions and 1236 deletions

View File

@ -33,7 +33,7 @@ const isCapacitor = () => !!window.Capacitor?.isNativePlatform?.();
const HOME_PAGES = [ const HOME_PAGES = [
'/app-page/home', // android minimize '/app-page/home', // android minimize
'/apps/retail/app-page/home', '/apps/retail/app-page/home',
'/' // android minimize '/', // android minimize
]; ];
const LOGIN_PAGES = ['signin', 'login', 'auth']; const LOGIN_PAGES = ['signin', 'login', 'auth'];
@ -92,13 +92,13 @@ const AppRoutes = () => {
// 🟢 If session exists allow navigation // 🟢 If session exists allow navigation
if (SessionId) { if (SessionId) {
console.log("Browser back allowed"); console.log('Browser back allowed');
return; return;
} }
// 🔴 Only redirect if user is on protected page // 🔴 Only redirect if user is on protected page
if (!LOGIN_PAGES.some(p => currentPath.includes(p))) { if (!LOGIN_PAGES.some((p) => currentPath.includes(p))) {
console.log("Session missing → redirecting login"); console.log('Session missing → redirecting login');
clearSession(); clearSession();
window.location.replace(`${commonSubDir}`); window.location.replace(`${commonSubDir}`);
} }
@ -108,7 +108,6 @@ const AppRoutes = () => {
window.addEventListener('popstate', handlePopState); window.addEventListener('popstate', handlePopState);
return () => window.removeEventListener('popstate', handlePopState); return () => window.removeEventListener('popstate', handlePopState);
}, [location.pathname]); }, [location.pathname]);
// Android Capacitor back button // Android Capacitor back button
@ -141,14 +140,14 @@ const AppRoutes = () => {
// Stack is empty - check where we are // Stack is empty - check where we are
// 🏠 Home page minimize // 🏠 Home page minimize
if (HOME_PAGES?.some((p) => currentPath?.includes(p))) { if (HOME_PAGES?.some((p) => currentPath?.includes(p))) {
console.log("Home page & empty stack → minimizing app"); console.log('Home page & empty stack → minimizing app');
await CapacitorApp.minimizeApp(); await CapacitorApp.minimizeApp();
return; return;
} }
// 🚪 Login page minimize // 🚪 Login page minimize
if (LOGIN_PAGES?.some((p) => currentPath?.includes(p))) { if (LOGIN_PAGES?.some((p) => currentPath?.includes(p))) {
console.log("Login page & empty stack → minimizing app"); console.log('Login page & empty stack → minimizing app');
await CapacitorApp.minimizeApp(); await CapacitorApp.minimizeApp();
return; return;
} }

View File

@ -69,6 +69,8 @@ const BSBillingTable3overall = () => {
className={ className={
templateData?.BookingLayout?.[0] === 'Layout6' templateData?.BookingLayout?.[0] === 'Layout6'
? 'BSTable3_overall BSTable3_overall-6' ? 'BSTable3_overall BSTable3_overall-6'
: templateData?.BookingLayout?.[0] === 'Layout1' && isMobile
? 'BSTable3_overallLayout1 BSTable3_overall-1'
: 'BSTable3_overall' : 'BSTable3_overall'
} }
style={{ height: containerHeight }} style={{ height: containerHeight }}

View File

@ -1,4 +1,4 @@
import React, { useEffect, useState, useRef, lazy, Suspense } from 'react'; import React, { useEffect, useState, useRef, lazy } from 'react';
import { shallowEqual, useDispatch, useSelector } from 'react-redux'; import { shallowEqual, useDispatch, useSelector } from 'react-redux';
import { useNavigate } from 'react-router-dom'; import { useNavigate } from 'react-router-dom';
import moment from 'moment'; import moment from 'moment';
@ -3646,7 +3646,6 @@ const BSBilling4Payment = () => {
}; };
return ( return (
<Suspense fallback={<span>Loading ...</span>}>
<div className="BSBilling4-price-full"> <div className="BSBilling4-price-full">
<div className="BSBilling4-price-content"> <div className="BSBilling4-price-content">
<div className="Table4-price-icon-container"> <div className="Table4-price-icon-container">
@ -4985,7 +4984,7 @@ const BSBilling4Payment = () => {
/> />
)} )}
</div> </div>
</Suspense>
); );
}; };
export default BSBilling4Payment; export default BSBilling4Payment;

View File

@ -1,4 +1,4 @@
import React, { useEffect, useState, useRef, lazy, Suspense } from 'react'; import React, { useEffect, useState, useRef, lazy } from 'react';
import { shallowEqual, useDispatch, useSelector } from 'react-redux'; import { shallowEqual, useDispatch, useSelector } from 'react-redux';
import { useNavigate } from 'react-router-dom'; import { useNavigate } from 'react-router-dom';
import moment from 'moment'; import moment from 'moment';
@ -3512,7 +3512,6 @@ const BST6Payment = () => {
); );
}; };
return ( return (
<Suspense fallback={<div>Suspense Loading...</div>}>
<> <>
{(addcustomer || hold) && ( {(addcustomer || hold) && (
<FeaturesFunctionalities <FeaturesFunctionalities
@ -4866,7 +4865,7 @@ const BST6Payment = () => {
/> />
</div> </div>
</> </>
</Suspense>
); );
}; };

View File

@ -527,7 +527,6 @@ const StandardTablePayment = () => {
); );
}, [GlobalExtraCharge]); }, [GlobalExtraCharge]);
useEffect(() => { useEffect(() => {
const fetchPrinterMapping = async () => { const fetchPrinterMapping = async () => {
try { try {
if (UserType !== 'Super Admin' && isMobile && MobileA4Print) { if (UserType !== 'Super Admin' && isMobile && MobileA4Print) {
@ -538,19 +537,20 @@ useEffect(() => {
UserId: UserId, UserId: UserId,
}; };
// && isMobile && MobileA4Print // && isMobile && MobileA4Print
const response = await dispatch(getPrinterMappingDetails(data)).unwrap(); const response = await dispatch(
getPrinterMappingDetails(data)
).unwrap();
if (response?.data?.statusCode === 0) { if (response?.data?.statusCode === 0) {
handlePrintMappingClick() handlePrintMappingClick();
} }
console.log(response, "printer mapping response"); console.log(response, 'printer mapping response');
} }
} catch (error) { } catch (error) {
console.error("Error fetching printer mapping:", error); console.error('Error fetching printer mapping:', error);
} }
}; };
fetchPrinterMapping(); fetchPrinterMapping();
}, []); }, []);
const handlePrintMappingClick = () => { const handlePrintMappingClick = () => {
// setReprint1(true) // setReprint1(true)
@ -3427,7 +3427,6 @@ useEffect(() => {
} }
return ( return (
<Suspense fallback={<div>Suspense Loading...</div>}>
<div className="booking-table-footer" style={{ padding: '0' }}> <div className="booking-table-footer" style={{ padding: '0' }}>
<Messages <Messages
messageType={messageType} messageType={messageType}
@ -3561,8 +3560,10 @@ useEffect(() => {
)} )}
{/* Customer Orders */} {/* Customer Orders */}
{(SelCustId && tableOptions?.filter((item) => item.OptionName === 'PreviousBillFetch') {SelCustId &&
.length === 1) && ( tableOptions?.filter(
(item) => item.OptionName === 'PreviousBillFetch'
).length === 1 && (
<Tooltip title="Customer Orders" isMobile={isMobile}> <Tooltip title="Customer Orders" isMobile={isMobile}>
{' '} {' '}
<div <div
@ -3603,10 +3604,7 @@ useEffect(() => {
.map((filteredItem) => ( .map((filteredItem) => (
<React.Fragment key={filteredItem.TemplateOptionsId}> <React.Fragment key={filteredItem.TemplateOptionsId}>
{!OtherServicesglobal && ( {!OtherServicesglobal && (
<TooltipWrapper <TooltipWrapper title="Unpaid Bills" isMobile={isMobile}>
title="Unpaid Bills"
isMobile={isMobile}
>
{' '} {' '}
<PozoUnpaidIcon <PozoUnpaidIcon
className="BSBillingNav-icon-table-icon" className="BSBillingNav-icon-table-icon"
@ -3737,8 +3735,7 @@ useEffect(() => {
opacity: isDisabled ? 0.5 : 1, opacity: isDisabled ? 0.5 : 1,
}} }}
> >
{payBtns?.length > 0 && {payBtns?.length > 0 && currentOrderNetAmount >= previousNetAmount ? (
currentOrderNetAmount >= previousNetAmount ? (
payBtns.map((payment) => { payBtns.map((payment) => {
const mode = payment?.ModeName?.toLowerCase(); const mode = payment?.ModeName?.toLowerCase();
const isSelected = paybtnselected === payment?.ModeId; const isSelected = paybtnselected === payment?.ModeId;
@ -3750,8 +3747,7 @@ useEffect(() => {
mode === 'upi' mode === 'upi'
? () => ? () =>
handleUPIButtonClick(payment?.ModeId, payment?.ModeName) handleUPIButtonClick(payment?.ModeId, payment?.ModeName)
: () => : () => handlePaymentMode(payment?.ModeId, payment?.ModeName);
handlePaymentMode(payment?.ModeId, payment?.ModeName);
return ( return (
<div className="standard-pay-btns" key={payment?.ModeId}> <div className="standard-pay-btns" key={payment?.ModeId}>
@ -3991,10 +3987,9 @@ useEffect(() => {
children={ children={
<> <>
<div> <div>
You have already selected a table. If you click 'OK,' the You have already selected a table. If you click 'OK,' the table
table selection will be removed, and the unpaid flow will selection will be removed, and the unpaid flow will continue. If
continue. If you click 'Cancel,' the dine-in flow will proceed you click 'Cancel,' the dine-in flow will proceed as selected.
as selected.
</div> </div>
</> </>
} }
@ -4250,7 +4245,6 @@ useEffect(() => {
</div> </div>
)} )}
</div> </div>
</Suspense>
); );
}; };

View File

@ -144,7 +144,7 @@ export function SortableCard({ id, children, item }) {
// Add mobile-specific cursor and visual feedback // Add mobile-specific cursor and visual feedback
cursor: isMobile ? 'grab' : 'default', cursor: isMobile ? 'grab' : 'default',
// Add a subtle shadow for mobile to indicate draggability // Add a subtle shadow for mobile to indicate draggability
boxShadow: isMobile && !isDragging ? '0 2px 4px rgba(0,0,0,0.1)' : 'none', boxShadow: isMobile && !isDragging ? '0 0 0 rgba(0,0,0,0.1)' : 'none',
}; };
const draggingComponent = useSelector(GlobaldraggingComponent); const draggingComponent = useSelector(GlobaldraggingComponent);
const allowDrag = draggingComponent === 'card'; const allowDrag = draggingComponent === 'card';
@ -6125,7 +6125,7 @@ const BSItemCard = (props) => {
['Layout4', 'Layout5', 'Layout6'].includes( ['Layout4', 'Layout5', 'Layout6'].includes(
templateData?.BookingLayout?.[0] templateData?.BookingLayout?.[0]
) )
? '4.4rem' ? '3rem'
: ['Layout4', 'Layout5', 'Layout6'].includes( : ['Layout4', 'Layout5', 'Layout6'].includes(
templateData?.BookingLayout?.[0] templateData?.BookingLayout?.[0]
) )

View File

@ -1124,6 +1124,7 @@ const BSNavbar1 = (props, BookingNavbar) => {
<BSNavBarAddons /> <BSNavBarAddons />
</div> </div>
)} )}
{/* Customer Add Select */} {/* Customer Add Select */}
{item?.OptionName == 'AddCustomer' && !preOrderOpen && ( {item?.OptionName == 'AddCustomer' && !preOrderOpen && (
<div className="NavbarCus-Add"> <div className="NavbarCus-Add">

View File

@ -118,18 +118,6 @@ function BSSubCategoryHorizontal(props) {
return () => container.removeEventListener('scroll', updateButtons); return () => container.removeEventListener('scroll', updateButtons);
}, [subCategoryType]); }, [subCategoryType]);
useEffect(() => {
// Accessing the DOM elements
const container = containerRef?.current;
// Checking initial values
const isConditionMet =
container?.scrollLeft + container?.clientWidth === container?.scrollWidth;
if (isConditionMet == true) {
setShowRightButton(true);
}
}, []);
const handleScrollClickLeft = ( const handleScrollClickLeft = (
scrollAmountX, scrollAmountX,
scrollAmountY, scrollAmountY,
@ -397,28 +385,18 @@ function BSSubCategoryHorizontal(props) {
if (!container) return; if (!container) return;
const handleWheel = (e) => { const handleWheel = (e) => {
container.scrollLeft += e.deltaX; if (!isVertical) {
container.scrollLeft += e.deltaY;
e.preventDefault(); e.preventDefault();
}
}; };
container.addEventListener('wheel', handleWheel); container.addEventListener('wheel', handleWheel, { passive: false });
return () => { return () => {
container.removeEventListener('wheel', handleWheel); container.removeEventListener('wheel', handleWheel);
}; };
}, [scrollContainerRef]); }, [scrollContainerRef, isVertical]);
useEffect(() => {
// Accessing the DOM elements
const container = containerRef.current;
// Checking initial values
const isConditionMet =
container?.scrollLeft + container?.clientWidth === container?.scrollWidth;
if (isConditionMet == true) {
setShowRightButton(true);
}
}, []);
const maindiv = document.getElementById('mainDiv'); const maindiv = document.getElementById('mainDiv');
const count = maindiv?.querySelectorAll('div'); const count = maindiv?.querySelectorAll('div');
@ -487,7 +465,7 @@ function BSSubCategoryHorizontal(props) {
overflowX: 'auto', overflowX: 'auto',
width: '100%', width: '100%',
whiteSpace: 'nowrap', whiteSpace: 'nowrap',
margin: '0', margin: '0 6px',
} }
: {} : {}
} }

View File

@ -1,11 +1,4 @@
import { import { useEffect, useRef, useState, useCallback, lazy } from 'react';
useEffect,
useRef,
useState,
useCallback,
Suspense,
lazy,
} from 'react';
import { shallowEqual, useDispatch, useSelector } from 'react-redux'; import { shallowEqual, useDispatch, useSelector } from 'react-redux';
import { import {
getConfigType, getConfigType,
@ -1252,7 +1245,6 @@ const CreditCustSplitPayment = (props) => {
: 'Debit amount not available'; : 'Debit amount not available';
return ( return (
<Suspense fallback={<div>Loading features...</div>}>
<> <>
<Messages messageType={messageType} messageData={messageData} /> <Messages messageType={messageType} messageData={messageData} />
<div className="splitmodal"> <div className="splitmodal">
@ -1386,7 +1378,6 @@ const CreditCustSplitPayment = (props) => {
</div> </div>
)} )}
</> </>
</Suspense>
); );
}; };
export default CreditCustSplitPayment; export default CreditCustSplitPayment;

View File

@ -44,6 +44,7 @@ const StickerPrintTemplates = lazy(
); );
// SCss // SCss
import '../../../../Styles/BookingScreen/Components/OtherConponents/Reprint/BSReprint.scss'; import '../../../../Styles/BookingScreen/Components/OtherConponents/Reprint/BSReprint.scss';
import Loader from '../../../../Components/Loader/Loader.jsx';
const DirectSale = ({ const DirectSale = ({
UomData = [], UomData = [],
TaxData = [], TaxData = [],
@ -950,7 +951,7 @@ const DirectSale = ({
}, []); }, []);
return ( return (
<Suspense fallback={<span>Loading ...</span>}> <Suspense fallback={<Loader />}>
<div className="direct-sale-container"> <div className="direct-sale-container">
<Messages <Messages
messageType={messageType} messageType={messageType}

View File

@ -358,7 +358,11 @@ const BSLayout1 = () => {
style={{ marginTop: '12px' }} style={{ marginTop: '12px' }}
> >
<div <div
className="Layout-bill-Subcontainer" className={
BookingNavbar === 'Navbar3'
? 'Layout-IfNavbar3'
: 'Layout-bill-Subcontainer'
}
style={{ width: OtherServicesglobal ? '10%' : '100%' }} style={{ width: OtherServicesglobal ? '10%' : '100%' }}
> >
{UserType !== 'Employee' && ( {UserType !== 'Employee' && (
@ -542,7 +546,7 @@ const BSLayout1 = () => {
)} )}
</div> </div>
<div className="BSCategory1-Cardcont"> <div className="BSLayout1-Card-Cat-Sub">
{ {
<div <div
style={{ style={{
@ -550,6 +554,7 @@ const BSLayout1 = () => {
SelectedSubCatgColor?.['OverallBackgroundColor'], SelectedSubCatgColor?.['OverallBackgroundColor'],
display: BookingSubCategory ? 'block' : 'none', display: BookingSubCategory ? 'block' : 'none',
}} }}
className="BSLayout1-SubCategoryMain"
> >
{Comboglobal === false && !OtherServicesglobal && ( {Comboglobal === false && !OtherServicesglobal && (
<SubCategory <SubCategory

View File

@ -367,7 +367,11 @@ const BSLayout2 = () => {
style={{ marginTop: '9px' }} style={{ marginTop: '9px' }}
> >
<div <div
className="Layout-bill-Subcontainer" className={
BookingNavbar === 'Navbar3'
? 'Layout-IfNavbar3'
: 'Layout-bill-Subcontainer'
}
style={{ width: OtherServicesglobal ? '10%' : '100%' }} style={{ width: OtherServicesglobal ? '10%' : '100%' }}
> >
{UserType !== 'Employee' && ( {UserType !== 'Employee' && (
@ -378,13 +382,11 @@ const BSLayout2 = () => {
</div> </div>
)} )}
{!OtherServicesglobal && ( {!OtherServicesglobal && (
<Suspense fallback={null}>
<SalesCountComponent <SalesCountComponent
DineInAccess={DineInAccess} DineInAccess={DineInAccess}
GlobalsalesDetailData={GlobalsalesDetailData} GlobalsalesDetailData={GlobalsalesDetailData}
BookingNavbar={BookingNavbar} BookingNavbar={BookingNavbar}
/> />
</Suspense>
)} )}
{SessionData?.FeatureAddonData?.FeatureDtls?.find( {SessionData?.FeatureAddonData?.FeatureDtls?.find(
(item) => (item) =>
@ -423,23 +425,18 @@ const BSLayout2 = () => {
isMobile={isMobile} isMobile={isMobile}
> >
{' '} {' '}
<Suspense fallback={null}>
<BSExpireProductsList /> <BSExpireProductsList />
</Suspense>
</TooltipWrapper> </TooltipWrapper>
)} )}
{Kioskopen && ( {Kioskopen && (
<Suspense fallback={null}>
<BSKioskCounterPayment <BSKioskCounterPayment
Kioskopen={Kioskopen} Kioskopen={Kioskopen}
closeKioskModal={closeModalKiosk} closeKioskModal={closeModalKiosk}
/> />
</Suspense>
)} )}
{SAdminuserPin?.length > 0 && {SAdminuserPin?.length > 0 &&
UserType != 'Super Admin User' && ( UserType != 'Super Admin User' && (
<Suspense fallback={null}>
<div> <div>
<SAdminUserNotification <SAdminUserNotification
SAdminuserPin={SAdminuserPin} SAdminuserPin={SAdminuserPin}
@ -448,7 +445,6 @@ const BSLayout2 = () => {
handlePopOverOpen={handlePopOverOpen} handlePopOverOpen={handlePopOverOpen}
/> />
</div> </div>
</Suspense>
)} )}
{!OtherServicesglobal && ( {!OtherServicesglobal && (
<> <>
@ -536,7 +532,6 @@ const BSLayout2 = () => {
}} }}
> >
{!OtherServicesglobal && ( {!OtherServicesglobal && (
<Suspense fallback={null}>
<CategoryHorizontal <CategoryHorizontal
categoryFunction={dynamicComponentProps( categoryFunction={dynamicComponentProps(
'Category', 'Category',
@ -544,10 +539,8 @@ const BSLayout2 = () => {
BSLayout2Data?.BookingCategory?.[0] BSLayout2Data?.BookingCategory?.[0]
)} )}
/> />
</Suspense>
)} )}
{OtherServicesglobal && ( {OtherServicesglobal && (
<Suspense fallback={null}>
<BSOtherServicesHorizontalcat <BSOtherServicesHorizontalcat
categoryFunction={dynamicComponentProps( categoryFunction={dynamicComponentProps(
'Category', 'Category',
@ -555,7 +548,6 @@ const BSLayout2 = () => {
BSLayout2Data?.BookingCategory?.[0] BSLayout2Data?.BookingCategory?.[0]
)} )}
/> />
</Suspense>
)} )}
</div> </div>
<div <div
@ -588,7 +580,6 @@ const BSLayout2 = () => {
/> />
))} ))}
{Comboglobal === true && !OtherServicesglobal && ( {Comboglobal === true && !OtherServicesglobal && (
<Suspense fallback={null}>
<BSComboItemCard <BSComboItemCard
cardFunctionality={dynamicComponentProps( cardFunctionality={dynamicComponentProps(
'Card', 'Card',
@ -596,10 +587,8 @@ const BSLayout2 = () => {
BSLayout2Data?.BookingCard?.[0] BSLayout2Data?.BookingCard?.[0]
)} )}
/> />
</Suspense>
)} )}
{OtherServicesglobal && ( {OtherServicesglobal && (
<Suspense fallback={null}>
<BSOtherServiceItemCard <BSOtherServiceItemCard
// screenHeight={screenHeight} // screenHeight={screenHeight}
cardFunctionality={dynamicComponentProps( cardFunctionality={dynamicComponentProps(
@ -608,7 +597,6 @@ const BSLayout2 = () => {
BSLayout2Data?.BookingCard?.[0] BSLayout2Data?.BookingCard?.[0]
)} )}
/> />
</Suspense>
)} )}
</div> </div>
</div> </div>
@ -618,7 +606,6 @@ const BSLayout2 = () => {
{action ? ( {action ? (
<BranchTransferComponent /> <BranchTransferComponent />
) : ( ) : (
<Suspense fallback={null}>
<> <>
{BSLayout2Data?.BookingBilling?.[0] == 'Billing1' && ( {BSLayout2Data?.BookingBilling?.[0] == 'Billing1' && (
<BSBillingTable1 /> <BSBillingTable1 />
@ -642,19 +629,14 @@ const BSLayout2 = () => {
<BSBillingTable7 /> <BSBillingTable7 />
)} )}
{BookingBilling == 'Billing8' && ( {BookingBilling == 'Billing8' && <ComboSalesBillTable />}
<ComboSalesBillTable />
)}
{BSLayout2Data?.BookingBilling?.[0] == {BSLayout2Data?.BookingBilling?.[0] ==
'StandardBilling' && ( 'StandardBilling' && (
<div className="BSCategory2New"> <div className="BSCategory2New">
<Suspense fallback={null}>
<StandardTable /> <StandardTable />
</Suspense>
</div> </div>
)} )}
</> </>
</Suspense>
)} )}
</div> </div>
</div> </div>
@ -662,20 +644,16 @@ const BSLayout2 = () => {
</div> </div>
</div> </div>
{BookingModalOpen && ( {BookingModalOpen && (
<Suspense fallback={null}>
<RetailBookingClosing <RetailBookingClosing
PaymentOpen={BookingModalOpen} PaymentOpen={BookingModalOpen}
PaymentClose={HandleBookingModalClose} PaymentClose={HandleBookingModalClose}
/> />
</Suspense>
)} )}
{ListOfInvoices && ( {ListOfInvoices && (
<Suspense fallback={null}>
<ListOfSalesInvoices <ListOfSalesInvoices
ListOfInvoicesOpen={ListOfInvoices} ListOfInvoicesOpen={ListOfInvoices}
handleInvoiceClose={handleInvoiceClose} handleInvoiceClose={handleInvoiceClose}
/> />
</Suspense>
)} )}
<LayoutSubCategoryFetcher /> <LayoutSubCategoryFetcher />

View File

@ -336,7 +336,11 @@ const BSLayout3 = () => {
> >
<div className="Layout-bill-container" style={{ marginTop: '9px' }}> <div className="Layout-bill-container" style={{ marginTop: '9px' }}>
<div <div
className="Layout-bill-Subcontainer" className={
BookingNavbar === 'Navbar3'
? 'Layout-IfNavbar3'
: 'Layout-bill-Subcontainer'
}
style={{ width: OtherServicesglobal ? '10%' : '100%' }} style={{ width: OtherServicesglobal ? '10%' : '100%' }}
> >
{UserType !== 'Employee' && ( {UserType !== 'Employee' && (

View File

@ -347,7 +347,11 @@ const BSLayout4 = () => {
<div className="Layout-bill-container" style={{ margin: '0' }}> <div className="Layout-bill-container" style={{ margin: '0' }}>
<div <div
className="Layout-bill-Subcontainer" className={
BookingNavbar === 'Navbar3'
? 'Layout-IfNavbar3'
: 'Layout-bill-Subcontainer'
}
style={{ width: OtherServicesglobal ? '10%' : '100%' }} style={{ width: OtherServicesglobal ? '10%' : '100%' }}
> >
{UserType !== 'Employee' && ( {UserType !== 'Employee' && (

View File

@ -343,7 +343,11 @@ const BSLayout5 = () => {
> >
<div className="Layout-bill-container"> <div className="Layout-bill-container">
<div <div
className="Layout-bill-Subcontainer" className={
BookingNavbar === 'Navbar3'
? 'Layout-IfNavbar3'
: 'Layout-bill-Subcontainer'
}
style={{ width: OtherServicesglobal ? '10%' : '100%' }} style={{ width: OtherServicesglobal ? '10%' : '100%' }}
> >
{UserType !== 'Employee' && ( {UserType !== 'Employee' && (

View File

@ -346,7 +346,11 @@ const BSLayout6 = () => {
<div className="Layout-bill-container"> <div className="Layout-bill-container">
<div <div
className="Layout-bill-Subcontainer" className={
BookingNavbar === 'Navbar3'
? 'Layout-IfNavbar3'
: 'Layout-bill-Subcontainer'
}
style={{ width: OtherServicesglobal ? '10%' : '100%' }} style={{ width: OtherServicesglobal ? '10%' : '100%' }}
> >
{UserType !== 'Employee' && ( {UserType !== 'Employee' && (

View File

@ -5,7 +5,7 @@ import React, {
useRef, useRef,
useCallback, useCallback,
lazy, lazy,
Suspense,
} from 'react'; } from 'react';
import { Tooltip } from 'antd'; import { Tooltip } from 'antd';
import { import {
@ -482,7 +482,6 @@ const SalesCountComponent = React.memo(
setModalProductDetails([]); setModalProductDetails([]);
}; };
return ( return (
<Suspense fallback={<div>Loading</div>}>
<> <>
<Messages <Messages
messageType={messageType} messageType={messageType}
@ -735,7 +734,6 @@ const SalesCountComponent = React.memo(
onSubmit={handleModalSubmit} onSubmit={handleModalSubmit}
/> />
</> </>
</Suspense>
); );
} }
); );

View File

@ -32,7 +32,7 @@
.BillingTable6-table-th { .BillingTable6-table-th {
padding: 1vh 1vh 1vh 1vh; padding: 1vh 1vh 1vh 1vh;
border: 0.1px solid rgba(168, 168, 168, 0.5019607843); border: 0.1px solid rgba(168, 168, 168, 0.5019607843);
font-family: 'Poppins', sans-serif; font-family: "Poppins", sans-serif;
} }
.BillingTable6-Table1-row { .BillingTable6-Table1-row {
@ -52,8 +52,8 @@
padding: 5px; padding: 5px;
border: 0.1px solid #a8a8a880; border: 0.1px solid #a8a8a880;
border-top: none; border-top: none;
font-family: 'Poppins', sans-serif; font-family: "Poppins", sans-serif;
font-size: 14px; font-size: 12px;
} }
.BillingTable6Table1-body { .BillingTable6Table1-body {

View File

@ -7,10 +7,9 @@
.BSBilling7-tablediv { .BSBilling7-tablediv {
display: block; display: block;
height: 59vh; height: 53vh;
overflow-y: scroll; overflow-y: scroll;
max-height: 59vh; max-height: 59vh;
// height: 90%;
} }
.BSTable3_overall-6 { .BSTable3_overall-6 {
height: 71vh; height: 71vh;
@ -25,7 +24,6 @@
.Table7-tbody { .Table7-tbody {
width: 100%; width: 100%;
// height: 60vh;
overflow-y: scroll; overflow-y: scroll;
} }
@ -546,7 +544,7 @@ hr.Table7-Dotted-Line1 {
display: flex; display: flex;
gap: 0.2rem; gap: 0.2rem;
align-items: center; align-items: center;
font-family: 'Poppins'; font-family: "Poppins";
justify-content: center; justify-content: center;
cursor: pointer; cursor: pointer;
text-transform: capitalize; text-transform: capitalize;
@ -567,7 +565,7 @@ hr.Table7-Dotted-Line1 {
display: flex; display: flex;
gap: 0.2rem; gap: 0.2rem;
align-items: center; align-items: center;
font-family: 'Poppins'; font-family: "Poppins";
justify-content: center; justify-content: center;
cursor: pointer; cursor: pointer;
text-transform: capitalize; text-transform: capitalize;

View File

@ -327,6 +327,19 @@
width: 100% !important; width: 100% !important;
} }
} }
.BSTable3_overallLayout1 {
display: flex;
flex-direction: column;
justify-content: space-between;
overflow: auto;
scrollbar-width: none;
width: inherit;
height: 85vh;
border-radius: 10px;
@media (max-width: 768px) {
width: 100% !important;
}
}
.BSTable3_overall-6 { .BSTable3_overall-6 {
height: 71vh; height: 71vh;

View File

@ -30,6 +30,7 @@
align-items: center; align-items: center;
justify-content: center; justify-content: center;
border: none; border: none;
width: max-content;
} }
.CategoryHorizontal-image { .CategoryHorizontal-image {

View File

@ -39,7 +39,7 @@
display: flex; display: flex;
align-items: center; align-items: center;
width: 100vw; width: 100vw;
height: 42px; height: 45px;
box-shadow: var(--BOX_SHADOW_LEVEL2); box-shadow: var(--BOX_SHADOW_LEVEL2);
padding: 1px 6px; padding: 1px 6px;
gap: 12px; gap: 12px;

View File

@ -10,7 +10,6 @@
.SubCategoryHorizontal-master-container { .SubCategoryHorizontal-master-container {
display: flex; display: flex;
flex-direction: row; flex-direction: row;
// flex-wrap: wrap;
column-gap: 0.7rem; column-gap: 0.7rem;
row-gap: 0.7rem; row-gap: 0.7rem;
width: max-content; width: max-content;
@ -44,15 +43,13 @@
cursor: pointer; cursor: pointer;
} }
.SubCategoryHorizontal-scroll-container { .SubCategoryHorizontal-scroll-container {
overflow-y: scroll; /* Add a vertical scrollbar when content overflows */ overflow-y: auto;
max-height: 300px; /* Set a maximum height for the container */ max-height: 300px;
display: flex; display: flex;
// flex-direction: row;
column-gap: 0.5rem; column-gap: 0.5rem;
} }
.SubCategoryHorizontal-label { .SubCategoryHorizontal-label {
font-family: 'Gilroy'; font-family: "Gilroy";
font-weight: 600; font-weight: 600;
font-size: 14px; font-size: 14px;
} }
@ -61,28 +58,12 @@
display: none !important; display: none !important;
} }
// ::-webkit-scrollbar-button:start {
// background-color: #333;
// border: 1px solid #666;
// }
// /* Style the scroll-down button */
// ::-webkit-scrollbar-button:end {
// background-color: #333;
// border: 1px solid #666;
// }
// ::-webkit-scrollbar {
// display: none;
// }
.SubCategoryHorizontal-btn-option2 { .SubCategoryHorizontal-btn-option2 {
display: flex; display: flex;
align-items: center; align-items: center;
padding: 8px 10px; padding: 8px 10px;
width: max-content !important; width: max-content !important;
cursor: pointer; cursor: pointer;
// border-radius: 20px;
} }
.SubCategoryHorizontal-input-style:checked + span { .SubCategoryHorizontal-input-style:checked + span {
@ -94,19 +75,12 @@
} }
} }
// .SubCategoryHorizontal-btn-option2 {
// display: flex;
// align-items: center;
// padding: 10px 10px;
// width: max-content !important;
// }
.SubCategoryHorizontal-btn-option2-reverse { .SubCategoryHorizontal-btn-option2-reverse {
display: flex; display: flex;
flex-direction: row-reverse; flex-direction: row-reverse;
align-items: center; align-items: center;
padding: 10px 10px; padding: 10px 10px;
width: max-content !important; width: max-content !important;
// border-radius: 20px;
} }
.SubCategoryHorizontal-curved { .SubCategoryHorizontal-curved {
@ -124,7 +98,6 @@
.sampleCard { .sampleCard {
min-width: max-content; min-width: max-content;
// flex-grow: 1;
} }
.sampleCard:active, .sampleCard:active,
@ -143,17 +116,67 @@
} }
.sampleCard { .sampleCard {
/* Your existing styles for sampleCard */
/* ... */
/* Add this to specify the border style */
border: 1px solid transparent; border: 1px solid transparent;
cursor: pointer; /* Optional: add a pointer cursor to indicate clickability */ cursor: pointer;
} }
.sampleCard-border { .sampleCard-border {
border-color: black; /* Specify the border color you want */ border-color: black;
} }
.SubCategoryHorizontal-text { .SubCategoryHorizontal-text {
font-size: 14px; font-size: 14px;
} }
.SubCategoryVertical {
height: 90%;
display: flex;
align-items: center;
flex-direction: column;
gap: 4px;
}
.SubCategoryVertical-scroll-container {
display: flex;
align-items: center;
gap: 6px;
flex-direction: column;
width: 100%;
height: clamp(400px, 75dvh, 900px);
overflow: auto;
scrollbar-width: thin;
padding-bottom: 5rem;
padding: 4px;
}
.SubCategoryVertical-sampleCard {
width: 100%;
border-radius: 2px;
}
.SubCategoryVertical-sub-samplecard {
padding: 3px 5px;
}
.SubCategoryVertical-text {
width: 100px;
white-space: nowrap;
overflow: hidden;
font-size: 15px;
font-weight: 400;
-webkit-text-stroke-width: 0.1px;
text-overflow: ellipsis;
}
.SubCategoryVertical-buttons {
display: flex;
align-items: center;
justify-content: space-around;
width: 100%;
.SubCategoryVertical-icon {
font-size: 15px;
padding: 8px;
border-radius: 6px;
background-color: #d8d8d8;
margin: 3px;
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
border: none;
}
}

View File

@ -12,7 +12,7 @@
.BSLayout1Standard { .BSLayout1Standard {
overflow: hidden; overflow: hidden;
position: relative; position: relative;
top: 3.2rem; top: 2.01rem;
height: 100%; height: 100%;
@media (max-width: 768px) { @media (max-width: 768px) {
@ -62,7 +62,7 @@ body {
height: 98%; height: 98%;
} }
.BSCategory1-Cardcont { .BSLayout1-Card-Cat-Sub {
overflow: hidden; overflow: hidden;
display: flex; display: flex;
height: 85vh; height: 85vh;
@ -77,6 +77,12 @@ body {
gap: 6px; gap: 6px;
padding: 3px 5px; padding: 3px 5px;
.CategoryHorizontalNew {
background-color: #f4f4f4;
padding: 6px 6px;
border-radius: 4px;
}
.BsTable2-Master { .BsTable2-Master {
height: 84vh !important; height: 84vh !important;
} }
@ -106,7 +112,7 @@ body {
opacity: 12% !important; opacity: 12% !important;
} }
.BSCategory1-Cardcont { .BSLayout1-Card-Cat-Sub {
height: 74vh !important; height: 74vh !important;
column-gap: 0 !important; column-gap: 0 !important;
} }
@ -148,7 +154,7 @@ body {
} }
@media (min-width: 500px) and (max-width: 767px) { @media (min-width: 500px) and (max-width: 767px) {
.BSCategory1-Cardcont { .BSLayout1-Card-Cat-Sub {
height: 74vh !important; height: 74vh !important;
} }
@ -197,6 +203,44 @@ body {
flex-wrap: wrap; flex-wrap: wrap;
} }
} }
.Layout-IfNavbar3 {
display: flex;
width: 100%;
justify-content: space-around;
font-weight: 600;
align-items: center;
gap: 2px;
padding: 2px 6px;
background: linear-gradient(to bottom right, #2a3447, #1e2536);
.SalesCountComponent-Master {
color: #fff;
}
.keyboardShortcut {
background-color: #fff;
height: 25px;
border-radius: 4px;
cursor: pointer;
> div {
padding: 3px 10px !important;
}
}
.allpageSettingIcon {
background-color: #fff !important;
}
.price-change-btn {
background-color: #fff;
height: 25px;
width: 45px;
img {
height: 20px !important;
}
}
@media (max-width: 500px) {
font-size: 10px;
flex-wrap: wrap;
}
}
.L .example { .L .example {
width: 80%; width: 80%;
@ -253,7 +297,6 @@ body {
} }
@keyframes shake { @keyframes shake {
0%, 0%,
100% { 100% {
transform: rotate(0deg); transform: rotate(0deg);

View File

@ -25,7 +25,7 @@ body {
.BSLayout2 { .BSLayout2 {
overflow: hidden; overflow: hidden;
position: relative; position: relative;
top: 3.4rem; top: 2.1rem;
height: 100%; height: 100%;
@media (max-width: 768px) { @media (max-width: 768px) {
@ -447,6 +447,45 @@ body {
flex-wrap: wrap; flex-wrap: wrap;
} }
} }
.Layout-IfNavbar3 {
display: flex;
width: 100%;
justify-content: space-around;
font-weight: 600;
align-items: center;
gap: 2px;
padding: 2px 6px;
background: linear-gradient(to bottom right, #2a3447, #1e2536);
.SalesCountComponent-Master {
color: #fff;
}
.keyboardShortcut {
background-color: #fff;
height: 25px;
border-radius: 4px;
cursor: pointer;
> div {
padding: 3px 10px !important;
}
}
.allpageSettingIcon {
background-color: #fff !important;
}
.price-change-btn {
background-color: #fff;
height: 25px;
width: 45px;
img {
height: 20px !important;
}
}
@media (max-width: 500px) {
font-size: 10px;
flex-wrap: wrap;
}
}
.pricing-name-details { .pricing-name-details {
font-family: "Poppins"; font-family: "Poppins";
font-size: 12px; font-size: 12px;

View File

@ -21,7 +21,7 @@
.BSLayout3Standard { .BSLayout3Standard {
overflow: hidden; overflow: hidden;
position: relative; position: relative;
top: 3.3rem; top: 2.2rem;
height: 100%; height: 100%;
@media (max-width: 768px) { @media (max-width: 768px) {
@ -52,6 +52,7 @@
overflow: auto; overflow: auto;
display: flex; display: flex;
height: 100%; height: 100%;
margin-top: 10px;
} }
.BsLayout3-ContentDiv { .BsLayout3-ContentDiv {
@ -66,6 +67,9 @@
margin: 1rem 0.5rem; margin: 1rem 0.5rem;
height: clamp(68vh, 50rem, 50vh); height: clamp(68vh, 50rem, 50vh);
background-color: #fff; background-color: #fff;
@media (max-width: 768px) {
width: 100% !important;
}
} }
@media (min-width: 280px) and (max-width: 499px) { @media (min-width: 280px) and (max-width: 499px) {
@ -458,6 +462,45 @@
flex-wrap: wrap; flex-wrap: wrap;
} }
} }
.Layout-IfNavbar3 {
display: flex;
width: 100%;
justify-content: space-around;
font-weight: 600;
align-items: center;
gap: 2px;
padding: 2px 6px;
background: linear-gradient(to bottom right, #2a3447, #1e2536);
.SalesCountComponent-Master {
color: #fff;
}
.keyboardShortcut {
background-color: #fff;
height: 25px;
border-radius: 4px;
cursor: pointer;
> div {
padding: 3px 10px !important;
}
}
.allpageSettingIcon {
background-color: #fff !important;
}
.price-change-btn {
background-color: #fff;
height: 25px;
width: 45px;
img {
height: 20px !important;
}
}
@media (max-width: 500px) {
font-size: 10px;
flex-wrap: wrap;
}
}
.pricing-name-details { .pricing-name-details {
font-family: "Poppins"; font-family: "Poppins";
font-size: 12px; font-size: 12px;

View File

@ -252,6 +252,44 @@
flex-wrap: wrap; flex-wrap: wrap;
} }
} }
.Layout-IfNavbar3 {
display: flex;
width: 100%;
justify-content: space-around;
font-weight: 600;
align-items: center;
gap: 2px;
padding: 2px 6px;
background: linear-gradient(to bottom right, #2a3447, #1e2536);
.SalesCountComponent-Master {
color: #fff;
}
.keyboardShortcut {
background-color: #fff;
height: 25px;
border-radius: 4px;
cursor: pointer;
> div {
padding: 3px 10px !important;
}
}
.allpageSettingIcon {
background-color: #fff !important;
}
.price-change-btn {
background-color: #fff;
height: 25px;
width: 45px;
img {
height: 20px !important;
}
}
@media (max-width: 500px) {
font-size: 10px;
flex-wrap: wrap;
}
}
.pricing-name-details { .pricing-name-details {
font-family: "Poppins"; font-family: "Poppins";
font-size: 12px; font-size: 12px;

View File

@ -137,6 +137,45 @@
} }
} }
.Layout-IfNavbar3 {
display: flex;
width: 100%;
justify-content: space-around;
font-weight: 600;
align-items: center;
gap: 2px;
padding: 2px 6px;
background: linear-gradient(to bottom right, #2a3447, #1e2536);
.SalesCountComponent-Master {
color: #fff;
}
.keyboardShortcut {
background-color: #fff;
height: 25px;
border-radius: 4px;
cursor: pointer;
> div {
padding: 3px 10px !important;
}
}
.allpageSettingIcon {
background-color: #fff !important;
}
.price-change-btn {
background-color: #fff;
height: 25px;
width: 45px;
img {
height: 20px !important;
}
}
@media (max-width: 500px) {
font-size: 10px;
flex-wrap: wrap;
}
}
.pricing-name-details { .pricing-name-details {
font-family: "Poppins"; font-family: "Poppins";
font-size: 12px; font-size: 12px;

View File

@ -240,6 +240,44 @@
} }
} }
.Layout-IfNavbar3 {
display: flex;
width: 100%;
justify-content: space-around;
font-weight: 600;
align-items: center;
gap: 2px;
padding: 2px 6px;
background: linear-gradient(to bottom right, #2a3447, #1e2536);
.SalesCountComponent-Master {
color: #fff;
}
.keyboardShortcut {
background-color: #fff;
height: 25px;
border-radius: 4px;
cursor: pointer;
> div {
padding: 3px 10px !important;
}
}
.allpageSettingIcon {
background-color: #fff !important;
}
.price-change-btn {
background-color: #fff;
height: 25px;
width: 45px;
img {
height: 20px !important;
}
}
@media (max-width: 500px) {
font-size: 10px;
flex-wrap: wrap;
}
}
.pricing-name-details { .pricing-name-details {
font-family: "Poppins"; font-family: "Poppins";
font-size: 12px; font-size: 12px;

View File

@ -684,7 +684,7 @@ const initSession = () => {
sessionStorage.setItem( sessionStorage.setItem(
'auth', 'auth',
'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9uYW1lIjoiODA3MjMyOTE1MyIsIlBhc3N3b3JkIjoiWkB6MTIzNCIsImF1ZCI6WyJodHRwOi8vMTkyLjE2OC4xLjM3OjgwMTMiLCJodHRwOi8vMTkyLjE2OC4xLjM3OjgwMTIiLCJodHRwOi8vMTkyLjE2OC4xLjM3OjgwMTQiLCJodHRwOi8vMTkyLjE2OC4xLjM3OjgwMTMiXSwiZXhwIjoxNzcyNzM4MDkxLCJpc3MiOiJodHRwOi8vMTkyLjE2OC4xLjM3OjgwMDEifQ.mz8gjByjlstvHvhKoSbHJsQjBYf7f3w1NatAepRx-Ro' 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9uYW1lIjoiODA3MjMyOTE1MyIsIlBhc3N3b3JkIjoiWkB6MTIzNCIsImF1ZCI6WyJodHRwOi8vMTkyLjE2OC4xLjM3OjgwMTMiLCJodHRwOi8vMTkyLjE2OC4xLjM3OjgwMTIiLCJodHRwOi8vMTkyLjE2OC4xLjM3OjgwMTQiLCJodHRwOi8vMTkyLjE2OC4xLjM3OjgwMTMiXSwiZXhwIjoxNzczNDI3NTExLCJpc3MiOiJodHRwOi8vMTkyLjE2OC4xLjM3OjgwMDEifQ.Elg8MMqbF4nMYwcWgzrxVaLfYhxdx3drixoV83RbuAM'
); );
}; };