import { useState, useEffect, useRef, useCallback, useMemo } from 'react'; import { useNavigate } from 'react-router-dom'; import { useDispatch, useSelector, shallowEqual } from 'react-redux'; import { changealldata, changeBookingType, changeComboRedirectionToDefaultLayoutForParking, changeCompoPaymentIconStatus, changeCustomerID, changeEstimateBooking, changeOrderCardDetails, changeOtherServices, changeReorderHoldDetails, changeReorderProductDetails, changeSelectedCustId, changeSelectedOption, GlobalBookingType, GlobalBookingTypeBoth, GlobalComboRedirectionToDefaultLayoutForParking, GlobalCommonPaymentOptions, GlobalEstimateBooking, GlobalFeatAddOnData, GlobalOrderCardDetails, GlobalOrderStatus, GlobalOrderType, GlobalOtherSevices, GlobalSelCustId, PreferenceData, } from '../../../../Features/BookingScreen/BookingData/BookingData.js'; import { ApplicationPreferences, GenerateLogout, GlobalCompBranchData, } from '../../../../Features/BrachLogin/BranchLogin.js'; import { useApplyOfferto_CardDetail } from '../UtillComponents/BSNavBarOffer/BSNavBarOffer_CustomHooks.jsx'; import '../../../../Styles/BookingScreen/Components/BSNavbar/BSNavbar3.scss'; // UI Imports import { Badge, Popconfirm, Tooltip } from 'antd'; import { AiFillHome } from 'react-icons/ai'; import { GoClockFill } from 'react-icons/go'; import { FaPlus, FaHandPaper, FaHeart, FaUserAlt, FaPhoneAlt, FaParking, } from 'react-icons/fa'; import { CiMenuBurger } from 'react-icons/ci'; import { IoClose, IoCloseOutline } from 'react-icons/io5'; import { FaCalendar } from 'react-icons/fa6'; import { RiFullscreenExitFill, RiFullscreenFill, RiPrinterFill, } from 'react-icons/ri'; import { GiShoppingBag } from 'react-icons/gi'; import { PiSignOutFill } from 'react-icons/pi'; import { TfiHandDrag } from 'react-icons/tfi'; import { CgClose } from 'react-icons/cg'; import { DropDowns } from '../../../../Components/Forms/DropDown'; import PozoDineInIcon from '../UtillComponents/Pozo retail icons/PozoDineIn.jsx'; import BSNavBarFavItems from '../UtillComponents/BSNavBarFavItems.jsx'; import BSNavBarAddUser from '../UtillComponents/BSNavBarAddUser.jsx'; import BSCustomerSelect from '../UtillComponents/BSSelectCustomer.jsx'; import FeaturesFunctionalities from '../BookingFunctionality/FeaturesFunctionalities.jsx'; import BSNavBarHand from '../UtillComponents/BSNavBarHand.jsx'; import BSNavBarDragItems from '../UtillComponents/BSNavBarDragItems.jsx'; import CustomerDisplayicon from '../UtillComponents/Pozo retail icons/PozoCustomerDisplayicon.jsx'; import BSNavBarPrinter from '../UtillComponents/BSNavBarPrinter.jsx'; import BSNavBarUserInfo from './BSNavBarUserInfo.jsx'; import { getUserProfile, userDataByUserId, } from '../../../../Features/UserAccount/userData.js'; import { clearSession, getSession, sessionStore, } from '../../../../Services/Others.js'; import UserRelieveManager from '../../Template/RealivingUser.jsx'; import BSNavbarSearchStandard from '../UtillComponents/BSNavbarSearchStandard.jsx'; import { getTemplate, getTemplateData, StoredSessionData, } from '../../../../Features/ThemeChange/ThemeChange.js'; import { CurrentTimeDisplay, CurrentDateDisplay, } from '../UtillComponents/CurrentDateTimeDisplay.jsx'; import BSPrinterSetting from '../UtillComponents/BSPrinterSetting.jsx'; import BSNavBarTable from '../UtillComponents/BSNavBarTable.jsx'; import TooltipWrapper from '../../../../Components/Tooltip/Tooltip.jsx'; import { isMobile } from 'react-device-detect'; import { getCustomerDisplayWindow, setCustomerDisplayWindow, } from '../../../../Features/customerDisplayWindow/customerDisplayWindow.js'; import BSMobilePrintSettings from '../UtillComponents/BSMobilePrintSettings.jsx'; import BSScanTemplate from '../UtillComponents/BSScanTemplate.jsx'; import VerfiedProducts from './verfiedProduct/VerfiedProducts.jsx'; import BSMembership from '../UtillComponents/BSMembership.jsx'; import BranchName from '../../Template/BranchName.jsx'; import BSNavBarAddons from '../UtillComponents/BSNavBarAddons.jsx'; import BSNavBarOffer from '../UtillComponents/BSNavBarOffer/BSNavBarOffer.jsx'; import BSNavBarQuickAdd from '../UtillComponents/BSNavBarQuickAdd.jsx'; import BSNavBarPreOrder from '../UtillComponents/BSNavBarPreOrder.jsx'; import { changepreOrder, changePreOrderAdditem, changepreOrderList, GlobalPreOrderPendingCount, } from '../../../../Features/BookingScreen/PreOrder/PreOrder.js'; import PozoPreOrderIcon from '../UtillComponents/Pozo retail icons/PozoPreOrderIcon.jsx'; import { OtherServicesCardlistdata } from '../../../../Features/OtherServices/OtherServices.js'; import BSNavBarEstimate from '../UtillComponents/BSNavBarEst.jsx'; import BSNavBarWholeSale from '../UtillComponents/BSNavBarWholeSale.jsx'; import { Global_OfferStatus } from '../../../../Features/Offer/Offer.js'; import { globalholddata } from '../../../../Features/BookingScreen/HoldOption/HoldOption.js'; import BSNavBarWeightScale from '../UtillComponents/BSNavBarWeightScale.jsx'; import { CgSearchLoading } from 'react-icons/cg'; import { DefaultModal } from '../../../../Components/Modal/DefaultModal.jsx'; import MultipleSearch from '../UtillComponents/MultipleSearch.jsx'; const subDirectory = import.meta.env.ENV_BASE_URL; const commonUrl = import.meta.env.ENV_COMMON_BASE_URL; const BSNavbar3 = ({ optionNames }) => { const navigate = useNavigate(); const dispatch = useDispatch(); const applyOffer = useApplyOfferto_CardDetail(); const userMenuRef = useRef(null); const searchInputRef = useRef(null); const mobileMenuRef = useRef(null); const SessionData = useSelector(StoredSessionData); const AppId = SessionData?.AppId; const CompId = SessionData?.CompId; const BranchId = SessionData?.BranchId; const userId = getSession('UserId'); const [drawerOpen, setDrawerOpen] = useState({ favourite: false, customer: false, hold: false, dragItem: false, reprint: false, verifyProduct: false, membership: false, wholesale: false, }); const [isHoldEnable, setisisHoldEnable] = useState(false); const [isUserAccOpen, setIsUserAccOpen] = useState(false); const [quickAdd, setQuickAdd] = useState(false); const [isMobileMenuOpen, setIsMobileMenuOpen] = useState(false); const [isFullscreen, setIsFullscreen] = useState(false); const [multiple, setMultiple] = useState(false); const GlobEstBooking = useSelector(GlobalEstimateBooking); const compBranchData = useSelector(GlobalCompBranchData); const userProfileData = useSelector(userDataByUserId); const appPreferences = useSelector(ApplicationPreferences); const preferences = useSelector(PreferenceData); const orderType = useSelector(GlobalOrderType); const bookingType = useSelector(GlobalBookingType, shallowEqual); const layoutData = useSelector(getTemplateData); const OtherServicesglobal = useSelector(GlobalOtherSevices); const preOrderPendingCount = useSelector(GlobalPreOrderPendingCount); const comboRedirectionToDefaultLayoutForParking = useSelector( GlobalComboRedirectionToDefaultLayoutForParking ); const Holddata = useSelector(globalholddata); const OrderCardDetail = useSelector(GlobalOrderCardDetails); const FeatureAddonData = useSelector(GlobalFeatAddOnData); const tableData = useSelector(GlobalOrderStatus); const BookingTypeBoth = useSelector(GlobalBookingTypeBoth); const OrderOfferStatus = useSelector(Global_OfferStatus); const GlobaluseOptions = useSelector(GlobalCommonPaymentOptions); const SelCustId = useSelector(GlobalSelCustId); const Estimation = preferences?.[0]?.SettingDtlDetails?.find( (item) => item.SettingIdName === 'Estimation' ); const ScanLayoutScreen = preferences?.[0]?.SettingDtlDetails?.find( (item) => item.SettingIdName === 'ScanLayout' ); const verifyproduct = preferences?.[0]?.SettingDtlDetails?.find( (item) => item.SettingIdName === 'VerifyProduct' && item.SettingValue === 'Y' ); const Parking = preferences?.[0]?.SettingDtlDetails?.find( (item) => item.SettingIdName === 'Parking' && item.SettingValue === 'Y' ); const commonModulePreference = appPreferences?.find( (preference) => preference?.PreferredCatName === 'Common Module' )?.PreferenceCatDetails; const sportsAppPreference = commonModulePreference?.find( (preference) => preference?.PreferredSubCatName === 'SportsApp' && preference?.PreferredStatus === 'Y' ); const { searchOption, reprintOption, quickAddOption, dineInOption, takeAwayOption, offerOption, extraChargeOption, holdOption, addCustomerOption, } = useMemo(() => { const navbarOptions = layoutData?.BookingNavbar?.[1]; return { searchOption: navbarOptions?.find( (option) => option?.OptionName?.toLowerCase() === 'search' ), reprintOption: navbarOptions?.find( (option) => option?.OptionName?.toLowerCase() === 'reprint' ), quickAddOption: navbarOptions?.find( (option) => option?.OptionName?.toLowerCase() === 'quickadd' ), dineInOption: navbarOptions?.find( (option) => option?.OptionName?.toLowerCase() === 'dinein' ), takeAwayOption: navbarOptions?.find( (option) => option?.OptionName?.toLowerCase() === 'takeaway' ), offerOption: navbarOptions?.find( (option) => option?.OptionName?.toLowerCase() === 'offer' ), extraChargeOption: navbarOptions?.find( (option) => option?.OptionName?.toLowerCase() === 'extracharge' ), holdOption: navbarOptions?.find( (option) => option?.OptionName?.toLowerCase() === 'hold' ), addCustomerOption: navbarOptions?.find( (option) => option?.OptionName?.toLowerCase() === 'addcustomer' ), }; }, [layoutData]); const [preOrderOpen, setPreOrderOpen] = useState(false); const [preOrderhiseandShow, setpreOrderhiseandShow] = useState(false); const [OtherServiceStatus, setOtherServiceStatus] = useState(false); // Memoized preference data const { dineInPreference, takeAwayPreference } = useMemo(() => { const bookingTypePref = appPreferences?.find((p) => p?.PreferredCatName === 'Booking Type') ?.PreferenceCatDetails || []; return { dineInPreference: bookingTypePref.find( (p) => p?.PreferredSubCatName?.toLowerCase() === 'dine in' && p?.PreferredStatus === 'Y' ), takeAwayPreference: bookingTypePref.find( (p) => p?.PreferredSubCatName?.toLowerCase() === 'take away' && p?.PreferredStatus === 'Y' ), }; }, [appPreferences]); const SalesMode = preferences?.[0]?.SettingDtlDetails?.find( (item) => item.SettingIdName === 'Sales Mode' ); const { preferenceOffer, dineIn } = useMemo(() => { return { preferenceOffer: preferences?.[0]?.['SettingDtlDetails']?.find( (item) => item.SettingIdName === 'Offer' )?.SettingValue === 'Y', dineIn: preferences?.[0]?.['SettingDtlDetails'].find( (item) => item.SettingIdName === 'DineIn' && item?.SettingValue === 'Y' ), }; }, [preferences]); console.log(dineIn, dineInPreference, 'dineInPreference'); const BSComboNavbar = useMemo(() => { const layout = optionNames?.BookingLayout?.[0]; return layout === 'Combo1' ? optionNames?.BookingCombo1 : optionNames?.BookingCombo2; }, [optionNames]); const OfferCheckedInSetup = useMemo(() => { return BSComboNavbar?.[1]?.some((opt) => opt.OptionName === 'Offer'); }, [BSComboNavbar]); useEffect(() => { dispatch(getUserProfile({ UserId: userId, ActiveStatus: 'A' })).unwrap(); }, [userId]); useEffect(() => { handleOtherData(); }, []); useEffect(() => { getPaymentOptionFeature(); }, [GlobaluseOptions, SelCustId]); const getPaymentOptionFeature = async () => { const filterSalesPayment = GlobaluseOptions?.filter( (item) => item?.FlowName?.toLowerCase() === 'sales' ); let filterPayCounter = filterSalesPayment?.[0]?.OptionDetails?.filter( (item) => item?.OptionName?.toLowerCase() === 'pay at the counter' ); // If customer NOT selected → remove credit mode if (!SelCustId) { filterPayCounter = filterPayCounter?.map((option) => ({ ...option, ModeDetails: option?.ModeDetails?.filter( (mode) => mode?.ModeName?.toLowerCase() !== 'credit' ), })); } setisisHoldEnable(filterPayCounter?.[0]?.ModeDetails?.length > 0); }; useEffect(() => { const handleClickOutside = (event) => { if (userMenuRef.current && !userMenuRef.current.contains(event.target)) { setIsUserAccOpen(false); } if ( mobileMenuRef.current && !mobileMenuRef.current.contains(event.target) && !event.target.closest('.mobile-toggle-btn') ) { setIsMobileMenuOpen(false); } }; const handleEscKey = (event) => { if (event.key === 'Escape') { setIsUserAccOpen(false); setIsMobileMenuOpen(false); } }; if (isUserAccOpen || isMobileMenuOpen) { document.addEventListener('mousedown', handleClickOutside); document.addEventListener('keydown', handleEscKey); } return () => { document.removeEventListener('mousedown', handleClickOutside); document.removeEventListener('keydown', handleEscKey); }; }, [isUserAccOpen, isMobileMenuOpen]); const handleDineInNavigate = useCallback(async () => { navigate(`${subDirectory}sales/dine-in`); dispatch(changeBookingType('Dine In')); dispatch(changeEstimateBooking('Sales')); if (orderType === 'Hold') { dispatch(changeReorderHoldDetails({})); dispatch(changeReorderProductDetails([])); if (OfferCheckedInSetup && preferenceOffer) { await applyOffer([]); } else { dispatch(changeOrderCardDetails([])); } } }, [ navigate, dispatch, orderType, OfferCheckedInSetup, preferenceOffer, applyOffer, ]); const handleTakeAway = () => dispatch(changeBookingType('TakeAway')); const handleUserAcc = () => setIsUserAccOpen((prev) => !prev); const handleHomePageNavigate = () => navigate(`${subDirectory}app-page/home`); const handleMobileMenuToggle = () => setIsMobileMenuOpen((prev) => !prev); const handleFullscreen = async () => { if (!isFullscreen) { try { await document.documentElement.requestFullscreen(); setIsFullscreen(true); } catch (error) { console.error('Fullscreen error:', error); } } else { try { if (document.fullscreenElement) { await document.exitFullscreen(); } setIsFullscreen(false); } catch (error) { console.error('Exit fullscreen error:', error); } } }; const renderWithTooltip = (element, title, placement = 'bottom') => ( {element} ); const openNewTab = async () => { const initialData = { Paymentgateway: false }; let screenDetails; if ('getScreenDetails' in window) { try { screenDetails = await window.getScreenDetails(); } catch (error) { console.error('Error accessing screen details:', error); } } // Select second monitor if available, otherwise use primary screen const secondScreen = screenDetails?.screens.find( (screen) => screen !== screenDetails.currentScreen ); const targetScreen = secondScreen || window.screen; const customerDisplayWindow = window.open( `${subDirectory}customer-display`, 'CustomerDisplayWindow', `width=${targetScreen.width},height=${targetScreen.height},left=${targetScreen.left || 0},top=${targetScreen.top || 0},scrollbars=yes,resizable=yes` ); if (customerDisplayWindow && !customerDisplayWindow.closed) { setCustomerDisplayWindow(customerDisplayWindow); customerDisplayWindow.onload = () => { setTimeout(() => { // Ensure it moves & resizes correctly customerDisplayWindow.moveTo( targetScreen.left || 0, targetScreen.top || 0 ); customerDisplayWindow.resizeTo( targetScreen.width, targetScreen.height ); // Try fullscreen (Needs user interaction) try { customerDisplayWindow.document.documentElement.requestFullscreen(); } catch (err) { console.warn('Fullscreen request failed:', err); } // Send initial data customerDisplayWindow.postMessage(initialData, '*'); }, 500); }; } else { console.error('Customer display window failed to open.'); } }; const handleQuickAddClose = async () => { dispatch(changeCompoPaymentIconStatus(false)); setQuickAdd(false); }; const handleQuickAddOpen = async () => { dispatch(changeCompoPaymentIconStatus(true)); setQuickAdd(true); }; const handleBackToLogin = () => { clearSession('BranchId'); navigate(`${subDirectory}app-page/branch-login`); }; const handleEditProfile = async () => { navigate(`${subDirectory}app-page/redirect-userprofile`); }; const Logout = async () => { const status = 'N'; // replace with your actual status const res = await dispatch( GenerateLogout({ UserId: userId, status }) ).unwrap(); if (res?.data?.statusCode === 1) { clearSession(); await sessionStore('Mode', 'Logout'); window.location.replace(commonUrl); } }; const openPreOrder = async (e) => { if (e == 'small-screen') { setPreOrderOpen(true); if (!preOrderhiseandShow) { setpreOrderhiseandShow(true); } else { setpreOrderhiseandShow(false); } // setpreOrderhiseandShow(!preOrderhiseandShow) } else { setPreOrderOpen((prevState) => !prevState); if (preOrderOpen) { const customerDisplayWindow = getCustomerDisplayWindow(); if (customerDisplayWindow && !customerDisplayWindow.closed) { const updatedRemovedData = { userData: [], ExtraCharges: [], paymentMethod: 'Cash', type: 'remove', keyValue: 'customer', }; customerDisplayWindow.postMessage(updatedRemovedData, '*'); } else { console.error( 'Customer display window is not available or has been closed.' ); } await dispatch(changepreOrder(false)); await dispatch(changeEstimateBooking('Sales')); await dispatch(changePreOrderAdditem('AddDetails')); await dispatch(changealldata(null)); await dispatch(changepreOrderList(null)); await dispatch(changeCustomerID(null)); await dispatch(changeSelectedCustId(null)); await dispatch(changeSelectedOption(null)); } } }; const preOrderHandleclose = async () => { setPreOrderOpen(false); await dispatch(changepreOrder(false)); setpreOrderhiseandShow(false); }; const handleOtherData = async (e) => { let data = { CompId: CompId, BranchId: BranchId, AppId: AppId, }; let response = await dispatch(OtherServicesCardlistdata(data)).unwrap(); if (response?.data?.statusCode === 1) { setOtherServiceStatus(true); } else { setOtherServiceStatus(false); } }; const handleotherservices = async () => { if (OtherServicesglobal && comboRedirectionToDefaultLayoutForParking) { dispatch(changeComboRedirectionToDefaultLayoutForParking(false)); await dispatch(getTemplate({ CompId, BranchId, AppId })).unwrap(); } dispatch(changeOtherServices(!OtherServicesglobal)); dispatch(changeOrderCardDetails([])); }; return ( <>
{' '}
{' '}
{OtherServiceStatus && Parking && (
)}
{/* Multiple search */}
setMultiple(true)} />
{!sportsAppPreference && searchOption && (
searchInputRef.current?.focus()} >
)} {/* Customer Select - Always visible */}
{addCustomerOption && ( {renderWithTooltip(, 'Add Customer')} )} {/* */}
{offerOption && (
{GlobEstBooking !== 'OvrAllEst' && GlobEstBooking !== 'ParEst' && GlobEstBooking === 'Sales' && preferences?.[0]?.['SettingDtlDetails']?.find( (item) => item.SettingIdName === 'Offer' )?.SettingValue === 'Y' && (
)}
)} {extraChargeOption && !sportsAppPreference && (
)} {!sportsAppPreference && quickAddOption && (
)} {/* Desktop CustomerActions */}
{/* {(takeAwayPreference && takeAwayOption) && renderWithTooltip( , 'Takeaway')} {(dineInPreference && dineIn && dineInOption) && renderWithTooltip( , 'Dine-in')} */} {dineInPreference && dineIn && dineInOption && (
)} {!OtherServicesglobal && ( <> {FeatureAddonData?.FeatureDtls?.find( (item) => item?.FeatureAddonName?.toLowerCase() !== 'weight scale' ) && (
)} {FeatureAddonData?.FeatureDtls?.find( (item) => item?.FeatureAddonName?.toLowerCase() === 'preorder' ) && (
{ openPreOrder(); }} HandleClose={preOrderHandleclose} />
)} )} {preOrderOpen && (
)} {sportsAppPreference && } {!OtherServicesglobal && ( <> {Estimation?.SettingValue === 'Y' && bookingType !== 'Dine In' && !BookingTypeBoth && !OrderOfferStatus && (
)} )} {SalesMode?.SettingValue === 'Y' && !OtherServicesglobal && ( )} {!sportsAppPreference && (
{renderWithTooltip( , 'Favourites' )}
)} {/* {!sportsAppPreference && quickAddOption && renderWithTooltip( , 'QUICK ADD (SHIFT + Q)' )} */} {holdOption && ((bookingType !== 'Dine In' && OrderCardDetail?.length != 0) || (bookingType !== 'Dine In' && Holddata?.length > 0 && OrderCardDetail?.length == 0)) && isHoldEnable && renderWithTooltip( , 'Hold' )} {ScanLayoutScreen?.SettingValue === 'Y' && }
{FeatureAddonData?.FeatureDtls?.find( (item) => item?.FeatureAddonName?.toLowerCase() === 'customer display' ) && (
)} {reprintOption && (
)}
{verifyproduct && (
)}
{isMobile && (
)}
{isFullscreen ? : }
} Logout={Logout} />
{/* Mobile Toggle Button */}
{/* Mobile Menu */}
{isMobileMenuOpen ? ( ) : ( )}
{takeAwayPreference && takeAwayOption && (
Take Away
)} {dineInPreference && dineIn && dineInOption && (
{bookingType}
)} {!sportsAppPreference && (
setDrawerOpen((prev) => ({ ...prev, favourite: !prev?.favourite, })) } >
Favourite
)} {addCustomerOption && (
setDrawerOpen((prev) => ({ ...prev, customer: !prev?.customer, })) } >
Add Customer
)} {quickAddOption && (
{renderWithTooltip(, 'Quick Add', 'top')}
Quick Add
)} {holdOption && ((bookingType !== 'Dine In' && OrderCardDetail?.length != 0) || (bookingType !== 'Dine In' && Holddata?.length > 0 && isHoldEnable && OrderCardDetail?.length == 0)) && (
setDrawerOpen((prev) => ({ ...prev, hold: !prev?.hold })) } >
Hold
)} {ScanLayoutScreen?.SettingValue === 'Y' && }
{ if (e.target === e.currentTarget) { setDrawerOpen((prev) => ({ ...prev, dragItem: !prev?.dragItem, })); } }} >
{ if (e.target === e.currentTarget) { setDrawerOpen((prev) => ({ ...prev, dragItem: !prev?.dragItem, })); } }} > Drag Item
{reprintOption && (
{ if (e.target === e.currentTarget) { setDrawerOpen((prev) => ({ ...prev, reprint: !prev?.reprint, })); } }} >
{ if (e.target === e.currentTarget) { setDrawerOpen((prev) => ({ ...prev, reprint: !prev?.reprint, })); } }} > Re-Print
)} {verifyproduct && (
{ if (e.target === e.currentTarget) { setDrawerOpen((prev) => ({ ...prev, verifyProduct: !prev?.verifyProduct, })); } }} >
{ if (e.target === e.currentTarget) { setDrawerOpen((prev) => ({ ...prev, verifyProduct: !prev?.verifyProduct, })); } }} > Verify Product
)} {sportsAppPreference && (
{ if (e.target === e.currentTarget) { setDrawerOpen((prev) => ({ ...prev, membership: !prev?.membership, })); } }} >
{ if (e.target === e.currentTarget) { setDrawerOpen((prev) => ({ ...prev, membership: !prev?.membership, })); } }} > Membership
)} {!OtherServicesglobal && ( <> {Estimation?.SettingValue === 'Y' && bookingType !== 'Dine In' && !BookingTypeBoth && !OrderOfferStatus && (
{}}>
Estimate
)} )} {SalesMode?.SettingValue === 'Y' && !OtherServicesglobal && (
{ if (e.target === e.currentTarget) { setDrawerOpen((prev) => ({ ...prev, wholesale: !prev?.wholesale, })); } }} >
{ if (e.target === e.currentTarget) { setDrawerOpen((prev) => ({ ...prev, wholesale: !prev?.wholesale, })); } }} > WholeSale
)}
setMultiple(false)} destroyOnClose={true} children={ <> } /> {quickAdd && ( )} ); }; export default BSNavbar3;