{"version":3,"sources":["components/global/Drawer/styles.js","components/global/NotificationBar/NotificationsList.jsx","components/global/Drawer/index.jsx","components/global/Modal/index.jsx","components/global/SideMenu/styles.js","components/global/SideMenu/index.jsx","components/global/NotificationBar/index.jsx","components/global/Header/PriceWidget.jsx","components/global/Header/index.jsx","components/global/GlobalFileViewer/index.jsx","components/global/DashboardLayout/styles.js","components/global/DashboardLayout/index.jsx"],"names":["BasicFixedBox","styled","section","withConfig","displayName","componentId","DrawerOverlay","_ref","theme","palette","background","light","_ref2","showDrawer","_ref3","_ref4","enquiryPhotos","css","_ref5","Devices","mobile","DrawerWrapper","_ref6","white","_ref7","_ref8","tablet","_ref9","DrawerHeader","div","IconWrapper","Text","X_LARGE","_ref10","text","black","DrawerBody","ImageWapper","Spacings","SPACING_6","desktop","Image","img","laptop","NotifCardWrapper","SPACING_4B","SPACING_2B","searchgrey","blueLightest","TitleWrapper","H4","MEDIUM","main","TimeWrapper","H6","blue","BOLD_600","SPACING_1B","EmptyStateWrapper","NotificationsWrapper","NotificationsList","notifications","user","dispatch","useDispatch","navigate","useNavigate","navigateOptions","state","showNegotiation","_jsx","DrawerBodyWrapper","children","Array","isArray","length","map","_n","index","_jsxs","onClick","onCardClick","notification","isClient","role","source","title","startsWith","paths","submit_enquiry_quote","edit_auction","admin_manage_enquiry_manage","admin_manage_auction_manage","toggleDrawer","body","moment","updated_at","fromNow","EmptyState","icon","Message","noAction","Drawer","_drawerTypeMeta$choos","_drawerTypeMeta$choos2","_drawerTypeMeta$choos3","useSelector","getIn","drawerType","drawerTypeMeta","location","useLocation","useEffect","closeDrawerHandler","close","renederedComponent","useMemo","renderComponentFromDrawerType","DRAWER_TYPES","ADD_NEW_ENQUIRY_ITEM","CreateItem","label","strings","EDIT_ENQUIRY_ITEM","VIEW_ENQUIRY","ViewEnquiry","data","ADD_NEW_ADDRESS","CreateAddress","SELECT_ADDRESS_FROM_ADDRESSBOOK","SelectAddress","VIEW_OPEN_ENQUIRY","ViewOpenEnquiry","enquiry","ADD_INVENTORY","AddInventory","VIEW_ORDER_INVOICE","ViewInvoice","EDIT_PERSONAL_DETAILS","EditDetails","type","EDIT_ORG_DETAILS","ADMIN_ASSIGN_ENQUIRY","AssignToEmployee","OPEN_SEARCH_PANEL","SearchPanel","ADD_CATEGORY","CreateCategory","EDIT_CATEGORY","ADD_PRODUCT","CreateProduct","EDIT_PRODUCT","ADD_BRAND","CreateBrand","ADD_COMMODITY","CreateCommodity","EDIT_COMMODITY","ADMIN_EDIT_ORDER_INVOICE","AdminEditInvoice","ADMIN_ADD_INVENTORY","AdminAddInventory","ADMIN_ADD_BANNER","ADMIN_EDIT_BANNER","AdminAddBanner","ADMIN_ADD_NEWS","ADMIN_EDIT_NEWS","CreateNews","SHOW_NEWS","News","VIEW_ORDER_SUMMARY","OrderSummary","ADMIN_VIEW_ORDER_SUMMARY","AdminOrderSummary","ADMIN_FETCH_BILL","AdminAddInvoice","ADMIN_ASSIGN_AUCTION","AssignAuctionToEmployee","ADMIN_VIEW_AUCTION_ORDER_SUMMARY","AdminAuctionOrderSummary","HANDLE_AUCTION_QUOTE","QuoteSubmission","ADD_LEDGERS","AddTransaction","ADMIN_USER_DASHBOARD_VIEW","withSuspense","Dashboard","ADD_NEW_LOGISTICS_ITEM","CreateLogisticsItem","EDIT_LOGISTICS_ITEM","ADD_NEW_LOGISTICS_QUOTES","AddLogisticsQuotes","EDIT_LOGISTICS_QUOTES","LOGISTICS_PARTNER_ADD_QUOTES","LOGISTICS_PARTNER_EDIT_QUOTES","LogisticsPartnerQuotes","ADMIN_LOGISTICS_ORDER_INVOICE","AdminEditLogisticsInvoice","ADMIN_SHARE_ENQUIRY","ShareEnquiry","ADD_ORG_REMARKS","OrgRemark","CLOUD_ORDER_INVENTORY_ITEMS","CloudFactoryAddInventoryItems","CLOUD_ORDER_ENQUIRY_ITEMS","CloudFactoryAddEnquiryItems","ADMIN_EDIT_FABRICATION_INVOICE","AdminEditFactoryInvoice","EDIT_FABRICATION_INVOICE","EditFactoryInvoice","MANAGE_FACTORY_ORDER_ITEM_JOURNEY","ManageItemJourney","MANAGE_ORDER_WASTE_ITEM","ManageOrderWasteItem","CLOSING_REASON_ENQUIRY","ClosingReasonForm","LOGISTICS_ADD_PRICE","AddLogisticsPrice","ADMIN_FREIGHT_CALCULATOR","AdminFreightCalculator","FREIGHT_CALCULATOR","FreightCalculator","ADMIN_GENERATE_ESTIMATE","AdminGenerateEstimate","ADMIN_INVOICES","AdminInvoices","ADD_UNDERWRITING","AdminNewReport","UNDERWRITING_STATUS","UnderwritingStatus","UNDERWRITING_PAST_REPORT_STATUS","PastReport","SELES_TEAM_FEEDBACK","AdminSelesTeamFeedback","FINANCE_TEAM_FEEDBACK","AdminFinanceFeedback","CROSS_DIRECTOR_LIST","AdminCrossDirectorList","COMPLETE_YOUR_KYC","CompleteKYCDrawer","ADD_COMMODITY_PRICES","AddCommodityPrice","REQUEST_CREDIT","RequestCredit","NOTIFICATIONS","ADD_ORG_ADDRESS","AddOrgAddress","ADD_ORG_GST","AddGST","ADD_ORG_ROLE","AddOrgRole","ADD_USER_COMMODITY","AddCommodity","COMMODITY_CATEGORY_LIST","CommodityCategoryList","EDIT_ORGANISATION_PAN","EditOrgPanDetails","EDIT_ORGANISATION_NAME","EditOrgName","EDIT_USER_DETAILS","EditUserDetails","ADD_NEW_USER","AddNewUser","ADD_NEW_ORDER_ITEM","AddOrderItem","ADD_NEW_ORGANISATION","AddNewOrganisation","MERGE_ORGANISATION","MergeOrganisation","CHOOSE_PHOTO","AdminChoosePhoto","MANAGE_ENQUIRY_JOURNEY","EnquiryJourney","MANAGE_ORDER_JOURNEY","OrderJourney","ADD_COLLECTION","CreateCollection","COLLECTION_JOURNEY","CollectionJourney","SELECT_SUPPLIER_SCRAP","SelectScrapSupplier","EDIT_TASKS","EditTasks","ADD_LEAD","AddLead","LEAD_COMPLETE","CompleteLead","LEAD_JOURNEY","LeadJourney","EDIT_LEAD_MANAGER","EditLeadManager","ADMIN_MONTHLY_TARGET","MonthlyTarget","DELETE_ADMIN","DeleteAdmin","ADD_BANK_ACCOUNT","AddBank","ADD_PDC","EDIT_PDC","PdcForm","BUSINESS_DETAILS","BusinessDetailsForm","ADHOC_EDIT_INSURER_CREDIT","EditInsurerCredit","FINANCIAL_REMARK","Remark","FINANCIAL_ORG_BANK","BankForm","FINANCIAL_ORG_SECURITY","SecurityForm","FINANCIAL_ORG_PAYMENT_MODE","PaymentModeForm","DATA_CORRECTION_TRADING_EXPENSE","TradingExpenseForm","ADD_BLOG_FAQ","AddFaq","ADD_CREDIT_LIMIT","AddCreditLimit","ORG_SERVICES","OrgServices","ADD_FINANCIAL_DOC","AddFinancialDoc","ORG_INCORPORATION_DATE","EditIncorporationDate","ADD_COST_METRICS","AddCostMetrics","ADD_NEW_SPO_ITEM","EDIT_SPO_ITEM","CreateSpoItem","EDIT_GST_ADDRESS","SelectGst","EDIT_PAYMENT_TERMS","PaymentTermsList","EDIT_SPO_TERMS","EditSpoTerms","OTHER_CHARGES_PO","AddOtherCharges","EDIT_ORG_MANAGER","EditOrgManagers","escapeKeyPress","e","key","document","removeEventListener","addEventListener","_Fragment","chooseEnquiryPhoto","image_paths","src","downloadUrl","ArrowBack","props","ModalOverlay","dark","showModal","ModalWrapper","SPACING_5B","Modal","modalType","modalMeta","stopPropagation","overlayClickable","toggleModal","MODAL_TYPES","CONFIRMATION","ConfirmBox","SideMenuWrapper","showMenu","SPACING_3B","SPACING_0B","SideMenuOverlay","ScrollableMenuWrapper","MenuItem","isManager","selected","_ref11","_ref12","DropdownLavel","_ref13","_ref14","MenuLabel","H5","MenuIcon","LogoWrapper","ProfileWrapper","_ref15","_ref16","InfoWrapper","Avatar","_ref17","messageRed","_ref18","ProfileName","_ref19","greydark","MenuWithSubMenuWrapper","Button","_ref20","MenuTitle","_ref21","_ref22","ConcernedManagerWrapper","_ref23","SMALL","SideMenu","menuCloseHandler","selectedTitle","organisation","usePlatform","getPlatform","userProfile","setUserProfile","useState","selectedCommodity","setSelectedCommodity","isSuperAdmin","commodity_id","commodity_name","selectedLanguage","setLanguage","languages","Object","values","LanguagesConstants","lang","language","onLogout","logout","cookies","Cookies","get","cookieKeys","set","path","logoClick","MB_ROLES","ADMIN","toLowerCase","item","active","showToast","TOAST_TYPE","INFO","renderSubMenu","submenu","_submenu$filter","activeCommodity","commodity","find","filter","_item$title","_item$title$toLowerCa","includes","href","Link","flexgrow","renderMenuItem","useCallback","getRoleBasedMenu","roles","i","languageChangeHandler","value","window","reload","calculateCompleteProfilePercent","percent","user_kyc_data","kycData","pan_verification_details","aadhaar_file_response","documents","_kycData$documents$of","_kycData$documents$of2","_kycData$documents$of3","_kycData$documents$of4","_kycData$documents$of5","_kycData$documents$of6","kyc_video","pan","aadhaar","passport_photo","office_documents","photos","property_type","utitlity_bill","rent_agreement","landlord_noc","gst_certificate","gstR2A","gstR3B","gstR1","bank_statement","cancelled_cheque","warehouse_documents","commodityList","commodityItem","Logo","size","horizontal","clickHandler","Scrollbars","renderView","style","overflowX","scrollbarColor","marginBottom","logistic","Pill","renderProfileMenu","_user$full_name","full_name","ExpandLess","ExpandMore","profile","admin_profile","CircularProgressBar","percentage","ProfileIcon","BusinessCenterIcon","Select","small","displayKey","primaryKey","openBelow","onChange","val","showLoader","successHandler","SUCCESS","dashboard","admin_dashboard","errorHandler","err","console","log","ERROR","finalHandler","updateOrganisation","organisation_id","updatedUserData","toJS","updateUser","commodityhandler","Language","ExitToApp","NotificationBarWrapper","PulseAnimation","keyframes","NotificationCount","red","NotificationBar","newNotif","setNewNotif","setNotification","userId","user_id","msgBody","res","_res$messages","_res$messages$slice","_lastUser","messages","slice","some","_res$user_details","created_by","user_details","mobile_number","enquiry_id","auction_id","_res$user_details2","_res$user_details3","getNotification","then","response","newResponse","catch","messaging","getMessaging","onMessage","payload","Date","now","playNotification","NotificationsIcon","fontSize","onNotificationIconClick","cursor","DivWrapper","pastelBeige","BaseTextWrapper","TextWrapper","flex","PriceWrapper","BOLD_500","ChangeWrapper","EXTRA_SMALL","change","green","TypeWrapper","SPACING_1","borderColor","LocationWrapper","jc","IconStyle","PriceWidget","prices","setPrices","current","setCurrentIndex","changeInPrice","setChange","timeout","setTimeoutState","currentPrice","getLatestCommodityPrices","changePrice","newPrices","assign","multiplier","isBuyer","price_per_ton","Math","ceil","random","clearTimeout","floor","onMouseEnter","onMouseLeave","showAllPrices","product_name","primary_or_secondary","substring","toUpperCase","displayAmount","ArrowUpIcon","ArrowDownIcon","abs","grade","HeaderWrapper","NewsWrapper","border","ButtonWrapper","PageInfo","InternalInfoWrapper","BreadCrumbsWrapper","PageTitle","tableHeader","LINE_HEIGHT_MAX","Crumb","ChevronWrapper","ExtraDivWrapper","BreadCrumbs","crumbs","crumb","elem","Fragment","Header","_headerMeta$breadCrum","_headerMeta$title","menuButtonHandler","headerMeta","showNews","showNewsInHeader","Menu","BackButton","backHandler","breadCrumbs","margin","inHeader","GlobalFileViewer","serverUrl","getServerUrl","showFileViewer","files","local","rest","filesProp","_files","f","toggleFileViewer","FileViewer","show","onClose","DarshboardContainer","Container","Body","IsMac","LoaderBaseWrapper","LoaderWrapper","LoaderBackground","LoaderComponent","Loader","DashboardLayout","forceUpdate","update","useForceUpdate","setShowMenu","getFirebaseUser","u","setUser","app","firebase","isSupported","getToken","vapidKey","currentToken","updateUserFCMToken","code","getOrganisationByUser","setOrganisation","kyc_requested","getOrganisationKycData","adminView","_Object$entries$find","mapObject","OrganisationRouteTitleMap","AdminRouteTitleMap","_p","pathname","admin","logistics","entries","setSideBarTitle","menuClickHandler","flag","home","checkMak","Outlet","Toast","NotificationPlayer"],"mappings":"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","file":"static/js/global_components.442805ff.chunk.js","sourcesContent":["import styled, { css } from 'styled-components'\nimport { Devices, Spacings, Text } from '@styles'\n\nconst BasicFixedBox = styled.section`\n\tposition: fixed;\n\ttransition: all 0.2s cubic-bezier(0, 0, 0.2, 1);\n\tz-index: 501;\n`\n\nexport const DrawerOverlay = styled(BasicFixedBox)`\n\tbackground: ${({ theme }) => theme.palette.background.light};\n\topacity: ${({ showDrawer }) => (showDrawer ? '0.4' : '0')};\n\tvisibility: ${({ showDrawer }) => (showDrawer ? 'visible' : 'hidden')};\n\twidth: 100vw;\n\theight: 100vh;\n\t${({ enquiryPhotos }) => {\n\t\tif (enquiryPhotos) {\n\t\t\treturn css`\n\t\t\t\tdisplay: flex;\n\t\t\t\tflex-direction: row;\n\t\t\t\topacity: ${({ showDrawer }) => (showDrawer ? '0.4' : '0')};\n\t\t\t\tz-index: 501;\n\t\t\t\t@media ${Devices.mobile} {\n\t\t\t\t\topacity: 1;\n\t\t\t\t\tz-index: 1000;\n\t\t\t\t}\n\t\t\t`\n\t\t}\n\t}}\n`\nexport const DrawerWrapper = styled(BasicFixedBox)`\n\twidth: 100vw;\n\tmax-width: 100vw;\n\tmax-height: 100%;\n\theight: fit-content;\n\tmin-height: 100%;\n\tbackground: ${({ theme }) => theme.palette.background.white};\n\tbox-shadow: 0 4px 20px 0 rgb(0 0 0 / 5%);\n\tdisplay: flex;\n\tflex-direction: column;\n\n\tright: 0;\n\tbottom: ${({ showDrawer }) => (showDrawer ? '0' : '-100%')};\n\topacity: ${({ showDrawer }) => (showDrawer ? '1' : '0')};\n\n\t@media ${Devices.tablet} {\n\t\ttop: 0;\n\t\tright: ${({ showDrawer }) => (showDrawer ? '0' : '-100%')};\n\t\theight: 100%;\n\t\twidth: 520px;\n\t\tmax-width: 520px;\n\t\theight: 100%;\n\t\tmax-height: 100%;\n\t\tz-index: 1001;\n\t}\n`\n\nexport const DrawerHeader = styled.div`\n\tmin-height: 48px;\n\tdisplay: flex;\n\tflex-direction: row;\n\talign-items: center;\n\tpadding: 0 12px;\n\tbox-shadow: 0 4px 20px 0 rgb(0 0 0 / 5%);\n`\n\nexport const IconWrapper = styled.div`\n\tdisplay: flex;\n\tjustify-content: center;\n\talign-items: center;\n\tcursor: pointer;\n\tuser-select: none;\n\tmargin-right: 12px;\n\n\t& > svg {\n\t\tfont-size: ${Text.X_LARGE};\n\t\tcolor: ${({ theme }) => theme.palette.text.black};\n\t}\n`\n\nexport const DrawerBody = styled.div`\n\tflex-grow: 1;\n\toverflow-y: scroll;\n\tdisplay: flex;\n\tflex-direction: column;\n\n\t/* Hide scrollbar for Chrome, Safari and Opera */\n\t&::-webkit-scrollbar {\n\t\tdisplay: none;\n\t}\n\t/* Hide scrollbar for IE, Edge and Firefox */\n\t& {\n\t\t-ms-overflow-style: none; /* IE and Edge */\n\t\tscrollbar-width: none; /* Firefox */\n\t}\n`\nexport const ImageWapper = styled.div`\n\tmargin: ${Spacings.SPACING_6};\n\tflex-grow: 1;\n\twidth: 100vw;\n\theight: 100vh;\n\toverflow-y: scroll;\n\toverflow-x: scroll;\n\t@media ${Devices.tablet} {\n\t}\n\t@media ${Devices.desktop} {\n\t}\n`\nexport const Image = styled.img`\n\twidth: 40vw;\n\theight: 100vh;\n\tobject-fit: fill;\n\t@media ${Devices.tablet} {\n\t\twidth: 30vw;\n\t}\n\t@media ${Devices.laptop} {\n\t\twidth: 47vw;\n\t}\n\t@media ${Devices.desktop} {\n\t\twidth: 60vw;\n\t}\n`\n","import moment from 'moment'\nimport styled from 'styled-components'\nimport { useDispatch } from 'react-redux'\nimport { useNavigate } from 'react-router'\nimport { Message } from '@material-ui/icons'\n\nimport { paths } from '@routes'\nimport { Spacings, Text } from '@styles'\nimport { toggleDrawer } from '@data/state/action/root'\nimport { DrawerBodyWrapper, EmptyState, H4, H6 } from '@base'\nimport { isClient } from '@utils/adminFilter'\n\nconst NotifCardWrapper = styled.div`\n\tcursor: pointer;\n\tbackground: ${({ theme }) => theme.palette.background.white};\n\tpadding: ${Spacings.SPACING_4B};\n\ttransition: background 0.15s ease-in;\n\tmargin-bottom: ${Spacings.SPACING_2B};\n\tborder-bottom: 1px solid ${({ theme }) => theme.palette.background.searchgrey};\n\t&:hover {\n\t\tborder-radius: ${Spacings.SPACING_2B};\n\t\tbackground: ${({ theme }) => theme.palette.background.blueLightest};\n\t}\n`\n\nconst TitleWrapper = styled(H4)`\n\tfont-size: ${Text.MEDIUM};\n\tcolor: ${({ theme }) => theme.palette.text.main};\n`\n\nconst TimeWrapper = styled(H6)`\n\tcolor: ${({ theme }) => theme.palette.text.blue};\n\tfont-weight: ${Text.BOLD_600};\n\tmargin-top: ${Spacings.SPACING_1B};\n`\n\nconst EmptyStateWrapper = styled.div`\n\theight: 30rem;\n`\nconst NotificationsWrapper = styled.div``\n\nconst NotificationsList = ({ notifications, user }) => {\n\tconst dispatch = useDispatch()\n\tconst navigate = useNavigate()\n\n\tconst navigateOptions = {\n\t\tstate: {\n\t\t\tshowNegotiation: true,\n\t\t},\n\t}\n\n\tconst onCardClick = (notification) => {\n\t\tif (isClient(user.role)) {\n\t\t\tif (notification.source === 'ENQUIRY' || notification.title.startsWith('E')) {\n\t\t\t\tnavigate(paths.submit_enquiry_quote(notification.title), navigateOptions)\n\t\t\t} else if (notification.source === 'AUCTION' || notification.title.startsWith('A')) {\n\t\t\t\tnavigate(paths.edit_auction(notification.title), navigateOptions)\n\t\t\t}\n\t\t} else {\n\t\t\tif (notification.source === 'ENQUIRY' || notification.title.startsWith('E')) {\n\t\t\t\tnavigate(paths.admin_manage_enquiry_manage(notification.title), navigateOptions)\n\t\t\t} else if (notification.source === 'AUCTION' || notification.title.startsWith('A')) {\n\t\t\t\tnavigate(paths.admin_manage_auction_manage(notification.title), navigateOptions)\n\t\t\t}\n\t\t}\n\n\t\tdispatch(toggleDrawer(false))\n\t}\n\n\tconst renderNotifications = () => {\n\t\tif (!Array.isArray(notifications) || notifications.length === 0) {\n\t\t\treturn (\n\t\t\t\t<EmptyStateWrapper>\n\t\t\t\t\t<EmptyState icon={<Message />} noAction text='No new notifications' />\n\t\t\t\t</EmptyStateWrapper>\n\t\t\t)\n\t\t}\n\t\treturn (\n\t\t\t<NotificationsWrapper>\n\t\t\t\t{notifications.map((_n, index) => (\n\t\t\t\t\t<NotifCardWrapper onClick={() => onCardClick(_n)} key={index}>\n\t\t\t\t\t\t<TitleWrapper>{_n.body}</TitleWrapper>\n\t\t\t\t\t\t<TimeWrapper>{moment(_n?.updated_at).fromNow()}</TimeWrapper>\n\t\t\t\t\t</NotifCardWrapper>\n\t\t\t\t))}\n\t\t\t</NotificationsWrapper>\n\t\t)\n\t}\n\n\treturn <DrawerBodyWrapper>{renderNotifications()}</DrawerBodyWrapper>\n}\n\nexport default NotificationsList\n","import React, { useEffect, useMemo } from 'react'\nimport { useSelector, useDispatch } from 'react-redux'\nimport { useLocation } from 'react-router'\nimport { ArrowBack } from '@material-ui/icons'\n\nimport { DRAWER_TYPES, strings } from '@constants'\nimport { toggleDrawer } from '@data/state/action/root'\n\nimport CreateItem from '@pages/Enquiry/CreateItem'\nimport CreateAddress from '@pages/Profile/CreateAddress'\nimport ViewEnquiry from '@pages/Enquiry/ViewEnquiry'\nimport ViewOpenEnquiry from '@pages/Fulfilment/ViewOpenEnquiry'\nimport AddInventory from '@pages/Inventory/AddInventory'\nimport ViewInvoice from '@pages/Orders/ViewInvoice'\nimport EditDetails from '@pages/Profile/EditDetails'\nimport AssignToEmployee from '@pages/Admin/Enquiry/ManageEnquiries/AssignEnquiry/AssignToEmployee'\nimport { SearchPanel } from '@base'\nimport CreateCategory from '@pages/Admin/Catalog/CreateCategory'\nimport CreateProduct from '@pages/Admin/Catalog/CreateProduct'\nimport AdminEditInvoice from '@pages/Admin/Orders/ManageOrder/EditInvoice'\nimport AdminAddInventory from '@pages/Admin/Inventory/AddInventory'\nimport News from '@pages/Dashboard/News'\nimport OrderSummary from '@pages/Orders/OrderSummary'\nimport AdminOrderSummary from '@pages/Admin/Orders/ManageOrder/OrderSummary'\nimport AdminAddInvoice from '@pages/Admin/Invoice/AddInvoice'\nimport AdminAuctionOrderSummary from '@pages/Admin/AuctionOrders/ManageOrder/OrderSummary'\nimport AssignAuctionToEmployee from '@pages/Admin/Auction/ManageAuctions/AssignAuction/AssignAuctionToEmployee'\nimport SelectAddress from '@pages/Profile/SelectAddress'\nimport QuoteSubmission from '@pages/AuctionBid/QuoteSubmission'\nimport AddTransaction from '@pages/Admin/PaymentSummary/AddTransaction'\nimport CreateLogisticsItem from '@pages/Admin/Logistics/CreateLogistics/CreateLogisticsItem'\nimport AddLogisticsQuotes from '@pages/Admin/Logistics/CreateLogistics/AddLogisticsQuotes'\nimport LogisticsPartnerQuotes from '@pages/Logistics/CreateLogistics/LogisticsPartnerQuotes'\nimport AdminEditLogisticsInvoice from '@pages/Admin/Logistics/ManageLogistics/AdminEditLogisticsInvoice'\nimport ShareEnquiry from '@pages/Admin/Enquiry/ManageEnquiries/AllEnquiries/ShareEnquiry'\nimport CloudFactoryAddInventoryItems from '@pages/Admin/CloudFactory/Orders/CreateOrder/Steps/InputItemsStep/AddInventoryItems'\nimport CloudFactoryAddEnquiryItems from '@pages/Admin/CloudFactory/Orders/CreateOrder/Steps/OuputItemsStep/AddEnquiryItems'\nimport AdminEditFactoryInvoice from '@pages/Admin/CloudFactory/Orders/ManageOrder/Invoices/EditInvoice'\nimport ManageItemJourney from '@pages/Admin/CloudFactory/Orders/ManageOrder/OrderJourney/ManageItemJourney'\n\nimport { DrawerOverlay, DrawerWrapper, DrawerHeader, IconWrapper, DrawerBody, ImageWapper, Image } from './styles'\nimport EditFactoryInvoice from '@pages/CloudFactory/ManageOrders/ManageOrder/Invoices/EditInvoice'\nimport ManageOrderWasteItem from '@pages/Admin/CloudFactory/Orders/ManageOrder/OrderWaste/ManageWasteItem'\nimport ClosingReasonForm from '@pages/Admin/Enquiry/ManageEnquiries/ManageEnquiry/ClosingReasonForm'\nimport AddLogisticsPrice from '@pages/Admin/Logistics/LogisticsPrice/AddLogisticsPrice'\nimport AdminFreightCalculator from '@pages/Admin/Enquiry/ManageEnquiries/ManageEnquiry/FreightCalculator'\nimport AdminGenerateEstimate from '@pages/Admin/Enquiry/ManageEnquiries/ManageEnquiry/GenerateEstimate'\nimport FreightCalculator from '@pages/Fulfilment/FreightCalculator'\nimport AdminInvoices from '@pages/Admin/Invoice/EditInvoice'\nimport AdminNewReport from '@pages/Admin/Underwriting/NewReport'\nimport UnderwritingStatus from '@pages/Admin/Underwriting/UnderwritingStatus'\nimport AdminSelesTeamFeedback from '@pages/Admin/Underwriting/ViewReport/SalesTeam/Sales/index'\nimport AdminFinanceFeedback from '@pages/Admin/Underwriting/ViewReport/SalesTeam/Finance/index'\nimport AdminCrossDirectorList from '@pages/Admin/Underwriting/ViewReport/FinalReport/CrossDirectorList'\nimport CompleteKYCDrawer from '@pages/Profile/CompleteProfile'\nimport AddCommodityPrice from '@pages/Admin/CommodityPrices/AddCommodityPrice'\nimport RequestCredit from '@pages/Profile/RequestCredit/RequestCredit'\nimport PastReport from '@pages/Admin/Underwriting/PastReport'\nimport NotificationsList from '@global/NotificationBar/NotificationsList'\nimport AdminAddBanner from '@pages/Admin/Content/Banner/AddBanner'\nimport CreateBrand from '@pages/Admin/Catalog/BrandList/CreateBrand'\nimport CreateCommodity from '@pages/Admin/Catalog/Commodity/CreateCommodity'\nimport AddOrgAddress from '@pages/Admin/OrgsAndUsers/Organisation/DrawerComponents/AddOrgAddress'\nimport AddGST from '@pages/Admin/OrgsAndUsers/Organisation/DrawerComponents/AddGST'\nimport AddOrgRole from '@pages/Admin/OrgsAndUsers/Organisation/DrawerComponents/AddOrgRole'\nimport EditUserDetails from '@pages/Admin/OrgsAndUsers/Organisation/DrawerComponents/EditUserDetails'\nimport AddNewUser from '@pages/Admin/OrgsAndUsers/Organisation/DrawerComponents/AddNewUser'\nimport OrgRemark from '@pages/Admin/OrgsAndUsers/Organisation/DrawerComponents/OrgRemark'\nimport CreateNews from '@pages/Admin/Content/News/CreateNews'\nimport AddCommodity from '@pages/Admin/OrgsAndUsers/Organisation/DrawerComponents/AddCommodity'\nimport CommodityCategoryList from '@pages/Admin/OrgsAndUsers/Organisation/DrawerComponents/CommodityCategoryList'\nimport AddOrderItem from '@pages/Admin/Orders/ManageOrder/AddOrderItem'\nimport { Dashboard } from '@routes/Routes/OrganisationRoutes'\nimport AddNewOrganisation from '@pages/Admin/OrgsAndUsers/Organisation/DrawerComponents/AddNewOrganisation'\n\nimport OrderJourney from '@pages/Admin/Orders/OrderJourney'\nimport AdminChoosePhoto from '@pages/Admin/Enquiry/CreateEnquiry/Steps/ChoosePhoto'\nimport { downloadUrl } from '@data'\nimport EnquiryJourney from '@pages/Admin/Enquiry/CreateEnquiry/Steps/EnquiryJourney'\nimport EditOrgPanDetails from '@pages/Admin/OrgsAndUsers/Organisation/DrawerComponents/EditOrgPAnDetails'\nimport EditOrgName from '@pages/Admin/OrgsAndUsers/Organisation/DrawerComponents/EditOrgName'\nimport MergeOrganisation from '@pages/Admin/OrgsAndUsers/Organisation/DrawerComponents/MergeOrganisation'\nimport CreateCollection from '@pages/Admin/PaymentSummary/Collections/CreateCollection'\nimport CollectionJourney from '@pages/Admin/PaymentSummary/Collections/CollectionJourney'\nimport { withSuspense } from '@routes/Routes/routeUtils'\nimport SelectScrapSupplier from '@pages/Admin/Orders/ManageOrder/SelectScrapSupplier'\nimport EditTasks from '@pages/Admin/OrgsAndUsers/Organisation/DrawerComponents/AddTasks'\nimport AddLead from '@pages/Admin/OrgsAndUsers/Organisation/DrawerComponents/AddLead'\nimport LeadJourney from '@pages/Admin/OrgsAndUsers/Organisation/DrawerComponents/LeadJourney'\nimport MonthlyTarget from '@pages/Admin/OrgsAndUsers/Organisation/DrawerComponents/MonthlyTarget'\nimport DeleteAdmin from '@pages/Admin/OrgsAndUsers/Organisation/DrawerComponents/DeleteAdmin'\nimport AddBank from '@pages/Admin/OrgsAndUsers/Organisation/DrawerComponents/AddBank'\nimport PdcForm from '@pages/Admin/OrgsAndUsers/Organisation/Financial/Pdc/PdcForm'\nimport BusinessDetailsForm from '@pages/Admin/OrgsAndUsers/Organisation/Financial/BusinessDetails/BusinessDetailsForm'\nimport CompleteLead from '@pages/Admin/OrgsAndUsers/Lead/CompleteLead'\nimport EditLeadManager from '@pages/Admin/OrgsAndUsers/Organisation/DrawerComponents/EditLeadManager'\nimport EditInsurerCredit from '@pages/Admin/OrgsAndUsers/Organisation/Financial/AdhocJourney/EditInsurerCredit'\nimport Remark from '@pages/Admin/OrgsAndUsers/Organisation/Financial/Remarks/Remark'\nimport BankForm from '@pages/Admin/OrgsAndUsers/Organisation/Financial/CustomerDetails/BankForm'\nimport SecurityForm from '@pages/Admin/OrgsAndUsers/Organisation/Financial/CustomerDetails/SecurityForm'\nimport PaymentModeForm from '@pages/Admin/OrgsAndUsers/Organisation/Financial/CustomerDetails/PaymentModeForm'\nimport TradingExpenseForm from '@pages/Admin/Tools/DataCorrection/Ledger/TradingExpenseForm'\nimport AddFaq from '@pages/Admin/Content/Blog/AddFaq'\nimport AddCreditLimit from '@pages/Admin/OrgsAndUsers/Organisation/Financial/CreditLimit/AddCreditLimit'\nimport OrgServices from '@pages/Admin/OrgsAndUsers/Organisation/DrawerComponents/OrgServices'\nimport AddFinancialDoc from '@pages/Admin/OrgsAndUsers/Organisation/Financial/Documents/AddFinancialDoc'\nimport EditIncorporationDate from '@pages/Admin/OrgsAndUsers/Organisation/DrawerComponents/EditIncorporationDate'\n// import PaymentTerms from '@pages/Admin/Orders/ManageOrder/PaymentTerms'\nimport AddCostMetrics from '@pages/Admin/Enquiry/ManageEnquiries/ManageEnquiry/AddCostMetrics/AddCostMetrics'\nimport CreateSpoItem from '@pages/Admin/SalesPurchaseOrder/CreateSPO/SPOForm/CreateItem'\nimport SelectGst from '@pages/Admin/Enquiry/ManageEnquiries/ManageEnquiry/SelectGst'\nimport EditSpoTerms from '@pages/Admin/Enquiry/ManageEnquiries/ManageEnquiry/PreviewPO/EditSpoTerms'\nimport AddOtherCharges from '@pages/Admin/Enquiry/ManageEnquiries/ManageEnquiry/PreviewPO/AddOtherCharges'\nimport EditOrgManagers from '@pages/Admin/OrgsAndUsers/Organisation/DrawerComponents/EditOrgManagers'\nimport PaymentTermsList from '@pages/Admin/Enquiry/ManageEnquiries/ManageEnquiry/PaymentTerms'\n\nconst Drawer = () => {\n\tconst dispatch = useDispatch()\n\tconst showDrawer = useSelector((state) => state.getIn(['root', 'showDrawer']))\n\tconst drawerType = useSelector((state) => state.getIn(['root', 'drawerType']))\n\tconst drawerTypeMeta = useSelector((state) => state.getIn(['root', 'drawerTypeMeta']))\n\n\tconst location = useLocation()\n\n\tuseEffect(() => {\n\t\tif (showDrawer) {\n\t\t\tcloseDrawerHandler()\n\t\t}\n\t}, [location])\n\n\tconst renderComponentFromDrawerType = () => {\n\t\tswitch (drawerType) {\n\t\t\tcase DRAWER_TYPES.ADD_NEW_ENQUIRY_ITEM:\n\t\t\t\treturn <CreateItem label={strings('add_item_details')} {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.EDIT_ENQUIRY_ITEM:\n\t\t\t\treturn <CreateItem label={strings('edit_item_details')} {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.VIEW_ENQUIRY:\n\t\t\t\treturn <ViewEnquiry {...drawerTypeMeta?.data} />\n\t\t\tcase DRAWER_TYPES.ADD_NEW_ADDRESS:\n\t\t\t\treturn <CreateAddress {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.SELECT_ADDRESS_FROM_ADDRESSBOOK:\n\t\t\t\treturn <SelectAddress {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.VIEW_OPEN_ENQUIRY:\n\t\t\t\treturn <ViewOpenEnquiry enquiry={drawerTypeMeta?.data} />\n\t\t\tcase DRAWER_TYPES.ADD_INVENTORY:\n\t\t\t\treturn <AddInventory {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.VIEW_ORDER_INVOICE:\n\t\t\t\treturn <ViewInvoice {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.EDIT_PERSONAL_DETAILS:\n\t\t\t\treturn <EditDetails type={drawerType} label={strings('update_account_details')} {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.EDIT_ORG_DETAILS:\n\t\t\t\treturn <EditDetails type={drawerType} label={strings('update_organisation_details')} {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.ADMIN_ASSIGN_ENQUIRY:\n\t\t\t\treturn <AssignToEmployee {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.OPEN_SEARCH_PANEL:\n\t\t\t\treturn <SearchPanel {...drawerTypeMeta} label={strings('search')} />\n\t\t\tcase DRAWER_TYPES.ADD_CATEGORY:\n\t\t\t\treturn <CreateCategory label={strings('create', 'category')} {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.EDIT_CATEGORY:\n\t\t\t\treturn <CreateCategory label={strings('edit', 'category')} {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.ADD_PRODUCT:\n\t\t\t\treturn <CreateProduct label={strings('create', 'product')} {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.EDIT_PRODUCT:\n\t\t\t\treturn <CreateProduct label={strings('edit', 'product')} {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.ADD_BRAND:\n\t\t\t\treturn <CreateBrand label={strings('create', 'brand')} {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.ADD_COMMODITY:\n\t\t\t\treturn <CreateCommodity label={strings('create', 'commodity')} {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.EDIT_COMMODITY:\n\t\t\t\treturn <CreateCommodity label={strings('edit', 'commodity')} {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.ADMIN_EDIT_ORDER_INVOICE:\n\t\t\t\treturn <AdminEditInvoice {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.ADMIN_ADD_INVENTORY:\n\t\t\t\treturn <AdminAddInventory {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.ADMIN_ADD_BANNER:\n\t\t\t\treturn <AdminAddBanner {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.ADMIN_EDIT_BANNER:\n\t\t\t\treturn <AdminAddBanner {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.ADMIN_ADD_NEWS:\n\t\t\t\treturn <CreateNews {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.ADMIN_EDIT_NEWS:\n\t\t\t\treturn <CreateNews {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.SHOW_NEWS:\n\t\t\t\treturn <News {...drawerTypeMeta} label={strings('latest', 'news')} />\n\t\t\tcase DRAWER_TYPES.VIEW_ORDER_SUMMARY:\n\t\t\t\treturn <OrderSummary {...drawerTypeMeta} label={strings('view_order_summary')} />\n\t\t\tcase DRAWER_TYPES.ADMIN_VIEW_ORDER_SUMMARY:\n\t\t\t\treturn <AdminOrderSummary {...drawerTypeMeta} label={strings('view_order_summary')} />\n\t\t\tcase DRAWER_TYPES.ADMIN_FETCH_BILL:\n\t\t\t\treturn <AdminAddInvoice {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.ADMIN_ASSIGN_AUCTION:\n\t\t\t\treturn <AssignAuctionToEmployee {...drawerTypeMeta} label={strings('assign', 'auction')} />\n\t\t\tcase DRAWER_TYPES.ADMIN_VIEW_AUCTION_ORDER_SUMMARY:\n\t\t\t\treturn <AdminAuctionOrderSummary {...drawerTypeMeta} label={strings('view_order_summary')} />\n\t\t\tcase DRAWER_TYPES.HANDLE_AUCTION_QUOTE:\n\t\t\t\treturn <QuoteSubmission {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.ADD_LEDGERS:\n\t\t\t\treturn <AddTransaction label={strings('add', 'transaction')} {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.ADMIN_USER_DASHBOARD_VIEW:\n\t\t\t\treturn withSuspense(<Dashboard {...drawerTypeMeta} />)\n\t\t\tcase DRAWER_TYPES.ADD_NEW_LOGISTICS_ITEM:\n\t\t\t\treturn <CreateLogisticsItem label={strings('add_item_details')} {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.EDIT_LOGISTICS_ITEM:\n\t\t\t\treturn <CreateLogisticsItem label={strings('edit_item_details')} {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.ADD_NEW_LOGISTICS_QUOTES:\n\t\t\t\treturn <AddLogisticsQuotes label={strings('add', 'quotes')} {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.EDIT_LOGISTICS_QUOTES:\n\t\t\t\treturn <AddLogisticsQuotes label={strings('edit', 'quotes')} {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.LOGISTICS_PARTNER_ADD_QUOTES:\n\t\t\t\treturn <LogisticsPartnerQuotes {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.LOGISTICS_PARTNER_EDIT_QUOTES:\n\t\t\t\treturn <LogisticsPartnerQuotes {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.ADMIN_LOGISTICS_ORDER_INVOICE:\n\t\t\t\treturn <AdminEditLogisticsInvoice {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.ADMIN_SHARE_ENQUIRY:\n\t\t\t\treturn <ShareEnquiry {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.ADD_ORG_REMARKS:\n\t\t\t\treturn <OrgRemark {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.CLOUD_ORDER_INVENTORY_ITEMS:\n\t\t\t\treturn <CloudFactoryAddInventoryItems {...drawerTypeMeta} label={strings('select', 'inventory')} />\n\t\t\tcase DRAWER_TYPES.CLOUD_ORDER_ENQUIRY_ITEMS:\n\t\t\t\treturn <CloudFactoryAddEnquiryItems {...drawerTypeMeta} label={strings('select', 'items')} />\n\t\t\tcase DRAWER_TYPES.ADMIN_EDIT_FABRICATION_INVOICE:\n\t\t\t\treturn <AdminEditFactoryInvoice {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.EDIT_FABRICATION_INVOICE:\n\t\t\t\treturn <EditFactoryInvoice {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.MANAGE_FACTORY_ORDER_ITEM_JOURNEY:\n\t\t\t\treturn <ManageItemJourney {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.MANAGE_ORDER_WASTE_ITEM:\n\t\t\t\treturn <ManageOrderWasteItem {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.CLOSING_REASON_ENQUIRY:\n\t\t\t\treturn <ClosingReasonForm {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.LOGISTICS_ADD_PRICE:\n\t\t\t\treturn <AddLogisticsPrice {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.ADMIN_FREIGHT_CALCULATOR:\n\t\t\t\treturn <AdminFreightCalculator {...drawerTypeMeta} label={strings(['freight', 'calculator'])} />\n\t\t\tcase DRAWER_TYPES.FREIGHT_CALCULATOR:\n\t\t\t\treturn <FreightCalculator {...drawerTypeMeta} label={strings(['freight', 'calculator'])} />\n\t\t\tcase DRAWER_TYPES.ADMIN_GENERATE_ESTIMATE:\n\t\t\t\treturn <AdminGenerateEstimate {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.ADMIN_INVOICES:\n\t\t\t\treturn <AdminInvoices {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.ADD_UNDERWRITING:\n\t\t\t\treturn <AdminNewReport {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.UNDERWRITING_STATUS:\n\t\t\t\treturn <UnderwritingStatus {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.UNDERWRITING_PAST_REPORT_STATUS:\n\t\t\t\treturn <PastReport {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.SELES_TEAM_FEEDBACK:\n\t\t\t\treturn <AdminSelesTeamFeedback {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.FINANCE_TEAM_FEEDBACK:\n\t\t\t\treturn <AdminFinanceFeedback {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.CROSS_DIRECTOR_LIST:\n\t\t\t\treturn <AdminCrossDirectorList {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.COMPLETE_YOUR_KYC:\n\t\t\t\treturn <CompleteKYCDrawer {...drawerTypeMeta} label={strings(['complete', 'your', 'kyc'])} />\n\t\t\tcase DRAWER_TYPES.ADD_COMMODITY_PRICES:\n\t\t\t\treturn <AddCommodityPrice {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.REQUEST_CREDIT:\n\t\t\t\treturn <RequestCredit {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.NOTIFICATIONS:\n\t\t\t\treturn <NotificationsList {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.ADD_ORG_ADDRESS:\n\t\t\t\treturn <AddOrgAddress {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.ADD_ORG_GST:\n\t\t\t\treturn <AddGST {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.ADD_ORG_ROLE:\n\t\t\t\treturn <AddOrgRole {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.ADD_USER_COMMODITY:\n\t\t\t\treturn <AddCommodity {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.COMMODITY_CATEGORY_LIST:\n\t\t\t\treturn <CommodityCategoryList {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.EDIT_ORGANISATION_PAN:\n\t\t\t\treturn <EditOrgPanDetails {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.EDIT_ORGANISATION_NAME:\n\t\t\t\treturn <EditOrgName {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.EDIT_USER_DETAILS:\n\t\t\t\treturn <EditUserDetails {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.ADD_NEW_USER:\n\t\t\t\treturn <AddNewUser {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.ADD_NEW_ORDER_ITEM:\n\t\t\t\treturn <AddOrderItem {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.ADD_NEW_ORGANISATION:\n\t\t\t\treturn <AddNewOrganisation {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.MERGE_ORGANISATION:\n\t\t\t\treturn <MergeOrganisation {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.CHOOSE_PHOTO:\n\t\t\t\treturn <AdminChoosePhoto {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.MANAGE_ENQUIRY_JOURNEY:\n\t\t\t\treturn <EnquiryJourney {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.MANAGE_ORDER_JOURNEY:\n\t\t\t\treturn <OrderJourney {...drawerTypeMeta} />\n\t\t\t// case DRAWER_TYPES.ORDER_PAYMENT_TERMS:\n\t\t\t// \treturn <PaymentTerms {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.ADD_COLLECTION:\n\t\t\t\treturn <CreateCollection {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.COLLECTION_JOURNEY:\n\t\t\t\treturn <CollectionJourney {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.SELECT_SUPPLIER_SCRAP:\n\t\t\t\treturn <SelectScrapSupplier {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.EDIT_TASKS:\n\t\t\t\treturn <EditTasks {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.ADD_LEAD:\n\t\t\t\treturn <AddLead {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.LEAD_COMPLETE:\n\t\t\t\treturn <CompleteLead {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.LEAD_JOURNEY:\n\t\t\t\treturn <LeadJourney {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.EDIT_LEAD_MANAGER:\n\t\t\t\treturn <EditLeadManager {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.ADMIN_MONTHLY_TARGET:\n\t\t\t\treturn <MonthlyTarget {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.DELETE_ADMIN:\n\t\t\t\treturn <DeleteAdmin {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.ADD_BANK_ACCOUNT:\n\t\t\t\treturn <AddBank {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.ADD_PDC:\n\t\t\t\treturn <PdcForm {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.EDIT_PDC:\n\t\t\t\treturn <PdcForm {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.BUSINESS_DETAILS:\n\t\t\t\treturn <BusinessDetailsForm {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.ADHOC_EDIT_INSURER_CREDIT:\n\t\t\t\treturn <EditInsurerCredit {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.FINANCIAL_REMARK:\n\t\t\t\treturn <Remark {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.FINANCIAL_ORG_BANK:\n\t\t\t\treturn <BankForm {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.FINANCIAL_ORG_SECURITY:\n\t\t\t\treturn <SecurityForm {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.FINANCIAL_ORG_PAYMENT_MODE:\n\t\t\t\treturn <PaymentModeForm {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.DATA_CORRECTION_TRADING_EXPENSE:\n\t\t\t\treturn <TradingExpenseForm {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.ADD_BLOG_FAQ:\n\t\t\t\treturn <AddFaq {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.ADD_CREDIT_LIMIT:\n\t\t\t\treturn <AddCreditLimit {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.ORG_SERVICES:\n\t\t\t\treturn <OrgServices {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.ADD_FINANCIAL_DOC:\n\t\t\t\treturn <AddFinancialDoc {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.ORG_INCORPORATION_DATE:\n\t\t\t\treturn <EditIncorporationDate {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.ADD_COST_METRICS:\n\t\t\t\treturn <AddCostMetrics {...drawerTypeMeta} />\n\n\t\t\tcase DRAWER_TYPES.ADD_NEW_SPO_ITEM:\n\t\t\t\treturn <CreateSpoItem {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.EDIT_SPO_ITEM:\n\t\t\t\treturn <CreateSpoItem {...drawerTypeMeta} />\n\n\t\t\tcase DRAWER_TYPES.EDIT_GST_ADDRESS:\n\t\t\t\treturn <SelectGst {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.EDIT_PAYMENT_TERMS:\n\t\t\t\treturn <PaymentTermsList {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.EDIT_SPO_TERMS:\n\t\t\t\treturn <EditSpoTerms {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.OTHER_CHARGES_PO:\n\t\t\t\treturn <AddOtherCharges {...drawerTypeMeta} />\n\t\t\tcase DRAWER_TYPES.EDIT_ORG_MANAGER:\n\t\t\t\treturn <EditOrgManagers {...drawerTypeMeta} />\n\n\t\t\tdefault:\n\t\t\t\treturn null\n\t\t}\n\t}\n\n\tconst closeDrawerHandler = () => {\n\t\tif (drawerTypeMeta.close) {\n\t\t\tdrawerTypeMeta.close()\n\t\t}\n\n\t\tdispatch(toggleDrawer(false))\n\t}\n\n\tconst renederedComponent = useMemo(() => {\n\t\treturn renderComponentFromDrawerType()\n\t}, [drawerType])\n\n\tuseEffect(() => {\n\t\tif (showDrawer) {\n\t\t\tconst escapeKeyPress = (e) => {\n\t\t\t\tif (e.key === 'Escape') {\n\t\t\t\t\tdispatch(toggleDrawer(false))\n\t\t\t\t\tdocument.removeEventListener('keydown', escapeKeyPress)\n\t\t\t\t}\n\t\t\t}\n\t\t\tdocument.addEventListener('keydown', escapeKeyPress)\n\t\t}\n\t}, [showDrawer])\n\n\treturn (\n\t\t<>\n\t\t\t<DrawerOverlay showDrawer={showDrawer} enquiryPhotos={drawerTypeMeta?.chooseEnquiryPhoto?.image_paths}>\n\t\t\t\t{drawerTypeMeta?.chooseEnquiryPhoto?.image_paths && (\n\t\t\t\t\t<ImageWapper>\n\t\t\t\t\t\t<Image src={downloadUrl + drawerTypeMeta?.chooseEnquiryPhoto?.image_paths} />\n\t\t\t\t\t</ImageWapper>\n\t\t\t\t)}\n\t\t\t</DrawerOverlay>\n\t\t\t<DrawerWrapper showDrawer={showDrawer}>\n\t\t\t\t<DrawerHeader>\n\t\t\t\t\t<IconWrapper onClick={closeDrawerHandler}>\n\t\t\t\t\t\t<ArrowBack />\n\t\t\t\t\t</IconWrapper>\n\t\t\t\t\t{drawerTypeMeta?.label || renederedComponent?.props.label}\n\t\t\t\t</DrawerHeader>\n\t\t\t\t<DrawerBody>{renederedComponent}</DrawerBody>\n\t\t\t</DrawerWrapper>\n\t\t</>\n\t)\n}\n\nexport default Drawer\n","import { useDispatch, useSelector } from 'react-redux'\nimport styled from 'styled-components'\nimport { MODAL_TYPES } from '@constants'\nimport { toggleModal } from '@data/state/action/root'\nimport { Devices, Spacings } from '@styles'\nimport { ConfirmBox } from '@base'\n\nconst BasicFixedBox = styled.section`\n\tposition: fixed;\n\ttransition: all 0.2s cubic-bezier(0, 0, 0.2, 1);\n\tz-index: 9998;\n`\n\nconst ModalOverlay = styled(BasicFixedBox)`\n\tbackground: ${({ theme }) => theme.palette.background.dark};\n\topacity: ${({ showModal }) => (showModal ? '0.4' : '0')};\n\tvisibility: ${({ showModal }) => (showModal ? 'visible' : 'hidden')};\n\twidth: 100vw;\n\theight: 100vh;\n`\nconst ModalWrapper = styled(BasicFixedBox)`\n\twidth: 100vw;\n\tmax-width: 100vw;\n\tmax-height: 100%;\n\theight: fit-content;\n\tbackground: ${({ theme }) => theme.palette.background.white};\n\tbox-shadow: 0 ${Spacings.SPACING_1B} ${Spacings.SPACING_5B} 0 rgb(0 0 0 / 5%);\n\tdisplay: flex;\n\tflex-direction: column;\n\toverflow: hidden;\n\n\tborder-top-left-radius: ${Spacings.SPACING_2B};\n\tborder-top-right-radius: ${Spacings.SPACING_2B};\n\n\tright: 0;\n\tbottom: ${({ showModal }) => (showModal ? '0' : '-100%')};\n\topacity: ${({ showModal }) => (showModal ? '1' : '0')};\n\n\t@media ${Devices.tablet} {\n\t\tborder-radius: ${Spacings.SPACING_2B};\n\t\tbottom: ${({ showModal }) => (showModal ? '2rem' : '-100%')};\n\t\tright: 50%;\n\t\ttransform: translateX(50%);\n\t\twidth: fit-content;\n\t\tmin-width: 30rem;\n\t}\n`\n\nconst Modal = () => {\n\tconst dispatch = useDispatch()\n\tconst showModal = useSelector((state) => state.getIn(['root', 'showModal']))\n\tconst modalType = useSelector((state) => state.getIn(['root', 'modalType']))\n\tconst modalMeta = useSelector((state) => state.getIn(['root', 'modalMeta']))\n\n\tconst onClose = (e) => {\n\t\te.stopPropagation()\n\t\tif (modalMeta?.overlayClickable) {\n\t\t\tdispatch(toggleModal(false))\n\t\t}\n\t}\n\n\tconst renderContent = () => {\n\t\tswitch (modalType) {\n\t\t\tcase MODAL_TYPES.CONFIRMATION: {\n\t\t\t\treturn <ConfirmBox {...modalMeta} />\n\t\t\t}\n\t\t\tdefault:\n\t\t\t\treturn null\n\t\t}\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<ModalOverlay showModal={showModal} onClick={onClose} />\n\t\t\t<ModalWrapper showModal={showModal}>{renderContent()}</ModalWrapper>\n\t\t</>\n\t)\n}\n\nexport default Modal\n","import styled, { css } from 'styled-components'\nimport { Button, H5, H6 } from '@base'\nimport { Spacings, Text, Devices } from '@styles'\n\nexport const SideMenuWrapper = styled.section`\n\tmin-width: 18rem;\n\twidth: 18rem;\n\tdisplay: flex;\n\tflex-direction: column;\n\theight: 100%;\n\tbackground: ${({ theme }) => theme.palette.background.white};\n\tz-index: 1000;\n\n\tposition: fixed;\n\ttop: 0;\n\tleft: ${({ showMenu }) => (showMenu ? 0 : '-100%')};\n\ttransition: left 0.2s cubic-bezier(0, 0, 0.2, 1);\n\ttransition-delay: 0.05s;\n\n\tpadding: ${Spacings.SPACING_3B} ${Spacings.SPACING_4B} ${Spacings.SPACING_0B};\n\n\t@media ${Devices.laptop} {\n\t\tposition: static;\n\t\tmin-width: 16rem;\n\t\twidth: 16rem;\n\t\tbox-shadow: 0px 0.25rem 1.25rem 0 rgb(0 0 0 / 5%);\n\t}\n\t@media ${Devices.desktop} {\n\t\tposition: static;\n\t\tmin-width: 18.5rem;\n\t\twidth: 18.5rem;\n\t}\n`\n\nexport const SideMenuOverlay = styled.div`\n\tposition: fixed;\n\ttop: 0;\n\tleft: ${({ showMenu }) => (showMenu ? 0 : '-100%')};\n\twidth: 100vw;\n\theight: 100vh;\n\ttransition: left 0.1s cubic-bezier(0, 0, 0.2, 1);\n\tbackground: ${({ theme }) => theme.palette.background.light};\n\tz-index: 1000;\n\n\t@media ${Devices.laptop} {\n\t\tdisplay: none;\n\t}\n`\n\nexport const ScrollableMenuWrapper = styled.div`\n\toverflow: scroll;\n\tdisplay: flex;\n\tflex-direction: column;\n\theight: 100%;\n\n\t/* Hide scrollbar for Chrome, Safari and Opera */\n\t&::-webkit-scrollbar {\n\t\tdisplay: none;\n\t}\n\t/* Hide scrollbar for IE, Edge and Firefox */\n\t& {\n\t\t-ms-overflow-style: none; /* IE and Edge */\n\t\tscrollbar-width: none; /* Firefox */\n\t}\n`\n\nexport const MenuItem = styled.div`\n\tdisplay: flex;\n\tcolor: ${({ theme }) => theme.palette.text.black};\n\talign-items: center;\n\tpadding: 0 ${Spacings.SPACING_3B};\n\tuser-select: none;\n\tflex-wrap: nowrap;\n\tmargin: 0.125rem 0;\n\tborder-radius: ${Spacings.SPACING_2B};\n\ttransition: all 0.15s ease-in-out;\n\tmin-height: ${({ isManager }) => (isManager ? 0 : `2.75rem`)};\n\n\t${({ selected }) => {\n\t\tif (selected) {\n\t\t\treturn css`\n\t\t\t\tcolor: ${({ theme }) => theme.palette.text.blue};\n\t\t\t\tbackground: ${({ theme }) => theme.palette.background.blueLightest};\n\t\t\t`\n\t\t}\n\t}}\n\n\t${({ isManager }) => {\n\t\tif (!isManager) {\n\t\t\treturn css`\n\t\t\t\tcursor: pointer;\n\t\t\t\t&:hover {\n\t\t\t\t\tcolor: ${({ theme }) => theme.palette.text.blue};\n\t\t\t\t\tbackground: ${({ theme }) => theme.palette.background.blueLightest};\n\t\t\t\t}\n\t\t\t`\n\t\t}\n\t}}\n`\nexport const DropdownLavel = styled.div`\n\tcursor: pointer;\n\ttransition: all 0.15s ease-in-out;\n\tborder-radius: ${Spacings.SPACING_2B};\n\t&:hover {\n\t\tcolor: ${({ theme }) => theme.palette.text.blue};\n\t\tbackground: ${({ theme }) => theme.palette.background.blueLightest};\n\t}\n`\n\nexport const MenuLabel = styled(H5)`\n\tflex-grow: 1;\n`\nexport const MenuIcon = styled.div`\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tmargin-right: ${Spacings.SPACING_3B};\n\t& > svg {\n\t\tfont-size: ${Text.X_LARGE};\n\t}\n`\n\nexport const LogoWrapper = styled.div`\n\tdisplay: flex;\n\tpadding: ${Spacings.SPACING_4B} ${Spacings.SPACING_3B} ${Spacings.SPACING_5B};\n\talign-items: flex-end;\n`\nexport const LogoImage = styled.img`\n\tmargin-right: ${Spacings.SPACING_2B};\n`\nexport const LogoText = styled(H5)`\n\ttext-transform: uppercase;\n\tcolor: ${({ theme }) => theme.palette.text.white};\n`\nexport const ProfileWrapper = styled.div`\n\tmargin: auto 0 ${Spacings.SPACING_2B};\n\tpadding-top: ${Spacings.SPACING_2B};\n\tborder-top: 1px solid ${({ theme }) => theme.palette.background.searchgrey};\n`\nexport const ProfileWrapperSupplier = styled.div`\n\tmargin: auto 0 ${Spacings.SPACING_2B};\n\tpadding-top: ${Spacings.SPACING_2B};\n`\n\nexport const InfoWrapper = styled(MenuItem)`\n\tpointer-events: none;\n\tmargin-bottom: ${Spacings.SPACING_2B};\n`\nexport const Avatar = styled(MenuIcon)`\n\tmin-width: 1.5rem;\n\tmin-height: 1.5rem;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tbackground: ${({ theme }) => theme.palette.background.messageRed};\n\tcolor: ${({ theme }) => theme.palette.text.white};\n\tborder-radius: 50%;\n\tfont-size: ${Text.MEDIUM};\n\tfont-weight: ${Text.BOLD_600};\n`\nexport const ProfileName = styled(MenuLabel)`\n\tcolor: ${({ theme }) => theme.palette.text.greydark};\n\tfont-weight: ${Text.BOLD_600};\n`\nexport const StyledButton = styled(Button)`\n\tmargin: -${Spacings.SPACING_1B} 0 -${Spacings.SPACING_1B} ${Spacings.SPACING_3B};\n`\n\nexport const MenuWithSubMenuWrapper = styled.div`\n\tpadding: ${Spacings.SPACING_2B} 0 ${Spacings.SPACING_2B};\n\tmargin: ${Spacings.SPACING_2B} 0 ${Spacings.SPACING_3B};\n\tborder-bottom: 1px solid ${({ theme }) => theme.palette.background.searchgrey};\n`\nexport const MenuTitle = styled(H6)`\n\tpadding-left: ${Spacings.SPACING_3B};\n\tmargin-bottom: ${Spacings.SPACING_3B};\n\tcolor: ${({ theme, selected }) => (selected ? theme.palette.text.blue : theme.palette.text.greydark)};\n\tuser-select: none;\n\t${({ isManager }) => {\n\t\tif (!isManager) {\n\t\t\treturn css`\n\t\t\t\ttext-transform: uppercase;\n\t\t\t`\n\t\t}\n\t}}\n`\n\nexport const ConcernedManagerWrapper = styled.div`\n\tmargin: auto 0 ${Spacings.SPACING_2B};\n\tpadding-top: ${Spacings.SPACING_2B};\n\tdisplay: flex;\n\tflex-direction: column;\n\n\t& > h6 {\n\t\tcolor: ${({ theme, selected }) => (selected ? theme.palette.text.blue : theme.palette.text.greydark)};\n\t\tfont-size: ${Text.SMALL};\n\t\tpadding-bottom: ${Spacings.SPACING_2B};\n\t}\n\n\t& > span {\n\t\twidth: 100%;\n\t\tfont-size: ${Text.MEDIUM};\n\t}\n`\n","import React, { useCallback, useEffect, useMemo, useState } from 'react'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { useNavigate } from 'react-router-dom'\nimport { Scrollbars } from 'react-custom-scrollbars-2'\n\nimport {\n\tSideMenuWrapper,\n\tSideMenuOverlay,\n\tScrollableMenuWrapper,\n\tMenuItem,\n\tMenuIcon,\n\tMenuLabel,\n\tDropdownLavel,\n\tLogoWrapper,\n\tProfileWrapper,\n\tInfoWrapper,\n\tAvatar,\n\tProfileName,\n\tMenuWithSubMenuWrapper,\n\tMenuTitle,\n\tConcernedManagerWrapper,\n} from './styles'\n\nimport { getRoleBasedMenu, paths } from '@routes'\nimport { Link, Logo, Pill, TOAST_TYPE, CircularProgressBar, Select } from '@base'\nimport { cookieKeys, roles, strings, languages as LanguagesConstants, MB_ROLES } from '@constants'\nimport { getPlatform, logout } from '@utils'\nimport { showLoader, showToast } from '@data/state/action'\nimport { toggleDrawer } from '@data/state/action/root'\nimport { Person as ProfileIcon, BusinessCenter as BusinessCenterIcon, ExitToApp, ExpandMore, ExpandLess, Language } from '@material-ui/icons'\nimport { updateOrganisation, updateUser } from '@data/state/action/user'\nimport Cookies from 'universal-cookie'\nimport { isClient, isSuperAdmin } from '@utils/adminFilter'\n\nconst defaultName = 'Hello'\n\nconst getRoute = (role) => {\n\tif (!isClient(role)) return paths.admin_profile\n\treturn paths.profile\n}\n\nconst SideMenu = ({ user, showMenu, menuCloseHandler }) => {\n\tconst selectedTitle = useSelector((state) => state.getIn(['root', 'sidebarTitle']))\n\tconst organisation = useSelector((state) => state.getIn(['user', 'organisation']))\n\tconst dispatch = useDispatch()\n\tconst navigate = useNavigate()\n\tconst usePlatform = getPlatform()\n\tconst [userProfile, setUserProfile] = useState(true)\n\tconst [selectedCommodity, setSelectedCommodity] = useState(isSuperAdmin(user?.role) ? { commodity_id: 'all', commodity_name: 'ALL' } : {})\n\tconst [selectedLanguage, setLanguage] = useState('en')\n\tconst languages = Object.values(LanguagesConstants).map((lang) => ({ language: lang }))\n\n\tconst onLogout = () => {\n\t\tlogout(navigate, true)\n\t}\n\n\tuseEffect(() => {\n\t\tconst cookies = new Cookies()\n\t\tlet lang = cookies.get(cookieKeys.language)\n\t\tif (!lang) {\n\t\t\tlang = 'en'\n\t\t\tcookies.set(cookieKeys.language, lang, { path: '/' })\n\t\t}\n\t\tsetLanguage(lang)\n\t}, [])\n\n\tconst renderLogo = () => {\n\t\treturn (\n\t\t\t<LogoWrapper>\n\t\t\t\t<Logo size='2.75rem' horizontal clickHandler={logoClick} />\n\t\t\t</LogoWrapper>\n\t\t)\n\t}\n\n\tconst logoClick = () => {\n\t\tmenuCloseHandler(false)\n\t\tif (isClient(user?.role)) {\n\t\t\tnavigate('/')\n\t\t} else {\n\t\t\tnavigate(`/${MB_ROLES.ADMIN.toLowerCase()}`)\n\t\t}\n\t}\n\n\tconst onClick = (item) => () => {\n\t\tmenuCloseHandler(false)\n\t\t// close drawer\n\t\tdispatch(toggleDrawer(false))\n\t\tif (item.active === false) {\n\t\t\tdispatch(showToast(true, strings('msg_available_phase_2'), { type: TOAST_TYPE.INFO }))\n\t\t}\n\t}\n\n\tconst renderSubMenu = (submenu) => {\n\t\tconst activeCommodity = (organisation ? organisation?.commodity : user?.commodity || []).find((item) => item.active)\n\t\treturn submenu\n\t\t\t?.filter((item) => (!activeCommodity ? !item?.title?.toLowerCase()?.includes('create') : item))\n\t\t\t?.map((item, index) => {\n\t\t\t\tlet selected = selectedTitle.toLowerCase() === item.title.toLowerCase()\n\t\t\t\tif (item.href && !item.active) {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Link flexgrow={1} href={item.href} key={`submenu_${index}_${item.title}`} onClick={onClick(item)}>\n\t\t\t\t\t\t\t<MenuItem selected={selected}>\n\t\t\t\t\t\t\t\t<MenuIcon>{item?.icon}</MenuIcon>\n\t\t\t\t\t\t\t\t<MenuLabel>{item.title}</MenuLabel>\n\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t</Link>\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\treturn (\n\t\t\t\t\t<MenuItem selected={selected} key={`submenu_${index}_${item.title}`} onClick={onClick(item)}>\n\t\t\t\t\t\t<MenuIcon>{item?.icon}</MenuIcon>\n\t\t\t\t\t\t<MenuLabel>{item.title}</MenuLabel>\n\t\t\t\t\t</MenuItem>\n\t\t\t\t)\n\t\t\t})\n\t}\n\n\tconst renderMenuItem = useCallback(() => {\n\t\tconst menus = getRoleBasedMenu(user?.role, organisation?.roles)\n\t\treturn menus.map((item, index) => {\n\t\t\tlet selected = selectedTitle.toLowerCase() === item.title.toLowerCase()\n\t\t\tif (item.submenu) {\n\t\t\t\tconst selectedSubMenu = item.submenu.find((i) => i.title.toLowerCase() === selectedTitle.toLowerCase())\n\t\t\t\tif (selectedSubMenu) {\n\t\t\t\t\tselected = true\n\t\t\t\t}\n\t\t\t\treturn (\n\t\t\t\t\t<MenuWithSubMenuWrapper key={`menu_${index}_${item.title}`}>\n\t\t\t\t\t\t<MenuTitle>{item?.title}</MenuTitle>\n\t\t\t\t\t\t{renderSubMenu(item.submenu)}\n\t\t\t\t\t</MenuWithSubMenuWrapper>\n\t\t\t\t)\n\t\t\t} else if (item.active === false) {\n\t\t\t\treturn (\n\t\t\t\t\t<MenuItem key={`menu_${index}_${item.title}`} onClick={onClick(item)}>\n\t\t\t\t\t\t<MenuIcon>{item?.icon}</MenuIcon>\n\t\t\t\t\t\t<MenuLabel>{item?.title}</MenuLabel>\n\t\t\t\t\t</MenuItem>\n\t\t\t\t)\n\t\t\t}\n\t\t\treturn (\n\t\t\t\t<Link href={item.href} key={`menu_${index}_${item.title}`} onClick={onClick(item)}>\n\t\t\t\t\t<MenuItem selected={selected}>\n\t\t\t\t\t\t<MenuIcon>{item?.icon}</MenuIcon>\n\t\t\t\t\t\t<MenuLabel>{item?.title}</MenuLabel>\n\t\t\t\t\t</MenuItem>\n\t\t\t\t</Link>\n\t\t\t)\n\t\t})\n\t}, [user, organisation, selectedTitle])\n\n\tconst languageChangeHandler = (value) => {\n\t\tconst cookies = new Cookies()\n\t\tcookies.set(cookieKeys.language, value.language, { path: '/' })\n\t\tsetLanguage(value.language)\n\t\twindow.location.reload(false)\n\t}\n\n\tconst renderConcernedManager = () => {\n\t\tif (user?.role === roles.logistic) {\n\t\t\treturn (\n\t\t\t\t<ConcernedManagerWrapper>\n\t\t\t\t\t<h6 isManager>{strings('concerned_manager')}</h6>\n\t\t\t\t\t<Pill\n\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<b>Aakash </b>(919871896723)\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</ConcernedManagerWrapper>\n\t\t\t)\n\t\t}\n\n\t\treturn null\n\t}\n\n\tconst calculateCompleteProfilePercent = useMemo(() => {\n\t\tlet percent = 0\n\t\tconst values = {\n\t\t\tfiles: 13, // 3\n\t\t\tmandatory: 5, // 10\n\t\t\toptional: 3, // 3\n\t\t\twarehouse: 2,\n\t\t}\n\t\tif (user?.user_kyc_data) {\n\t\t\tconst kycData = user?.user_kyc_data\n\t\t\tpercent += (kycData.pan_verification_details && values.files) || 0\n\t\t\tpercent += (kycData.aadhaar_file_response && values.files) || 0\n\n\t\t\tif (kycData.documents) {\n\t\t\t\tpercent += (kycData.documents.kyc_video && values.files) || 0\n\n\t\t\t\tpercent += (kycData.documents.pan && values.mandatory) || 0\n\t\t\t\tpercent += (kycData.documents.aadhaar && values.mandatory) || 0\n\t\t\t\tpercent += (kycData.documents.passport_photo && values.mandatory) || 0\n\n\t\t\t\t// office document\n\t\t\t\tpercent += (kycData.documents.office_documents?.photos && values.mandatory) || 0\n\t\t\t\tif (kycData.documents.office_documents?.property_type === 'owned') {\n\t\t\t\t\tpercent += (kycData.documents.office_documents?.utitlity_bill && values.mandatory * 3) || 0\n\t\t\t\t} else {\n\t\t\t\t\tpercent += (kycData.documents.office_documents?.rent_agreement && values.mandatory) || 0\n\t\t\t\t\tpercent += (kycData.documents.office_documents?.utitlity_bill && values.mandatory) || 0\n\t\t\t\t\tpercent += (kycData.documents.office_documents?.landlord_noc && values.mandatory) || 0\n\t\t\t\t}\n\n\t\t\t\t//financials\n\t\t\t\tpercent += (kycData.documents.gst_certificate && values.mandatory) || 0\n\t\t\t\tpercent += (kycData.documents.gstR2A && values.mandatory) || 0\n\t\t\t\tpercent += (kycData.documents.gstR3B && values.mandatory) || 0\n\t\t\t\tpercent += (kycData.documents.gstR1 && values.optional) || 0\n\t\t\t\tpercent += (kycData.documents.bank_statement && values.optional) || 0\n\t\t\t\tpercent += (kycData.documents.cancelled_cheque && values.optional) || 0\n\n\t\t\t\tpercent += (kycData.documents.warehouse_documents && values.warehouse) || 0\n\t\t\t}\n\t\t}\n\t\treturn percent\n\t}, [user])\n\n\tconst commodityhandler = (val) => {\n\t\tsetSelectedCommodity(val)\n\t\tdispatch(showLoader(true))\n\t\tconst successHandler = () => {\n\t\t\tdispatch(showToast(true, 'Updated user successfully', { type: TOAST_TYPE.SUCCESS }))\n\t\t\tdispatch(toggleDrawer(false))\n\t\t\tnavigate(organisation ? paths.dashboard : paths.admin_dashboard)\n\t\t}\n\t\tconst errorHandler = (err) => {\n\t\t\tconsole.log(err)\n\t\t\tdispatch(showToast(true, 'Error while updating user', { type: TOAST_TYPE.ERROR }))\n\t\t}\n\n\t\tconst finalHandler = () => {\n\t\t\tdispatch(showLoader(false))\n\t\t}\n\n\t\tif (organisation) {\n\t\t\tdispatch(updateOrganisation(organisation?.organisation_id, val?.commodity_id, false, successHandler, errorHandler, finalHandler))\n\t\t} else {\n\t\t\tconst commodity = (user?.commodity || []).map((item) => ({\n\t\t\t\t...item,\n\t\t\t\tactive: item?.commodity_id === val?.commodity_id,\n\t\t\t}))\n\t\t\tconst updatedUserData = { ...user.toJS(), commodity }\n\t\t\tdispatch(updateUser(updatedUserData, false, successHandler, errorHandler, finalHandler))\n\t\t}\n\t}\n\n\tconst commodityList = () => {\n\t\tlet commodityItem = organisation ? organisation?.commodity : user?.commodity || []\n\t\treturn isSuperAdmin(user?.role) ? [...commodityItem, { commodity_id: 'all', commodity_name: 'ALL' }] : commodityItem\n\t}\n\n\tconst renderProfileMenu = () => {\n\t\treturn (\n\t\t\t<ProfileWrapper>\n\t\t\t\t<DropdownLavel\n\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\tsetUserProfile(!userProfile)\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<InfoWrapper>\n\t\t\t\t\t\t<Avatar>{user?.full_name ? user?.full_name[0] : 'T'}</Avatar>\n\t\t\t\t\t\t<ProfileName>{user?.full_name ?? defaultName}</ProfileName>\n\t\t\t\t\t\t<MenuIcon>{userProfile ? <ExpandLess /> : <ExpandMore />}</MenuIcon>\n\t\t\t\t\t</InfoWrapper>\n\t\t\t\t</DropdownLavel>\n\n\t\t\t\t{!userProfile && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<Link flexgrow={1} href={getRoute(user?.role)} onClick={onClick({ title: 'User Profile' })}>\n\t\t\t\t\t\t\t<MenuItem selected={selectedTitle === strings('my_profile')}>\n\t\t\t\t\t\t\t\t<MenuIcon>\n\t\t\t\t\t\t\t\t\t{isClient(user?.role) ? <CircularProgressBar percentage={calculateCompleteProfilePercent} /> : <ProfileIcon />}\n\t\t\t\t\t\t\t\t</MenuIcon>\n\t\t\t\t\t\t\t\t<MenuLabel>{strings('my_profile')}</MenuLabel>\n\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t</Link>\n\t\t\t\t\t\t<MenuItem>\n\t\t\t\t\t\t\t<MenuIcon>\n\t\t\t\t\t\t\t\t<BusinessCenterIcon />\n\t\t\t\t\t\t\t</MenuIcon>\n\t\t\t\t\t\t\t<MenuLabel>\n\t\t\t\t\t\t\t\t<Select\n\t\t\t\t\t\t\t\t\tlabel={strings('select', 'commodity')}\n\t\t\t\t\t\t\t\t\tsmall\n\t\t\t\t\t\t\t\t\tdata={commodityList()}\n\t\t\t\t\t\t\t\t\tdisplayKey='commodity_name'\n\t\t\t\t\t\t\t\t\tprimaryKey='commodity_name'\n\t\t\t\t\t\t\t\t\topenBelow={false}\n\t\t\t\t\t\t\t\t\tvalue={\n\t\t\t\t\t\t\t\t\t\tcommodityList().find((item) => item?.commodity_name === selectedCommodity?.commodity_name || item.active) ||\n\t\t\t\t\t\t\t\t\t\tselectedCommodity\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tonChange={(value) => commodityhandler(value)}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</MenuLabel>\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t<MenuItem>\n\t\t\t\t\t\t\t<MenuIcon>\n\t\t\t\t\t\t\t\t<Language />\n\t\t\t\t\t\t\t</MenuIcon>\n\t\t\t\t\t\t\t<MenuLabel>\n\t\t\t\t\t\t\t\t<Select\n\t\t\t\t\t\t\t\t\tlabel={strings('language')}\n\t\t\t\t\t\t\t\t\tsmall\n\t\t\t\t\t\t\t\t\tdata={languages}\n\t\t\t\t\t\t\t\t\tdisplayKey='language'\n\t\t\t\t\t\t\t\t\tprimaryKey='language'\n\t\t\t\t\t\t\t\t\tvalue={{ language: selectedLanguage }}\n\t\t\t\t\t\t\t\t\tonChange={languageChangeHandler}\n\t\t\t\t\t\t\t\t\topenBelow={false}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</MenuLabel>\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t<MenuItem onClick={onLogout}>\n\t\t\t\t\t\t\t<MenuIcon>\n\t\t\t\t\t\t\t\t<ExitToApp />\n\t\t\t\t\t\t\t</MenuIcon>\n\t\t\t\t\t\t\t<MenuLabel>{strings('logout')}</MenuLabel>\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t</>\n\t\t\t\t)}\n\t\t\t</ProfileWrapper>\n\t\t)\n\t}\n\n\tconst menuItemWithScrolls = () => {\n\t\tif (usePlatform !== 'Mac' || usePlatform !== 'iOS') {\n\t\t\treturn (\n\t\t\t\t<Scrollbars\n\t\t\t\t\trenderView={(props) => (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t{...props}\n\t\t\t\t\t\t\tstyle={{ ...props.style, overflowX: 'hidden', scrollbarColor: 'transparent transparent', marginBottom: '0' }}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t{renderMenuItem()}\n\t\t\t\t</Scrollbars>\n\t\t\t)\n\t\t} else {\n\t\t\treturn renderMenuItem()\n\t\t}\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<SideMenuOverlay showMenu={showMenu} onClick={() => menuCloseHandler(false)} />\n\t\t\t<SideMenuWrapper showMenu={showMenu}>\n\t\t\t\t{renderLogo()}\n\t\t\t\t<ScrollableMenuWrapper>{menuItemWithScrolls()}</ScrollableMenuWrapper>\n\t\t\t\t{renderConcernedManager()}\n\t\t\t\t{renderProfileMenu()}\n\t\t\t</SideMenuWrapper>\n\t\t</>\n\t)\n}\n\nexport default SideMenu\n","import React, { useEffect, useState } from 'react'\nimport { getMessaging, onMessage } from 'firebase/messaging'\nimport styled, { keyframes } from 'styled-components'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { Notifications as NotificationsIcon, NotificationsOff as NotificationsOffIcon } from '@material-ui/icons'\nimport { Spacings } from '@styles'\nimport { getNotification } from '@data'\nimport { DRAWER_TYPES, roles } from '@constants'\nimport { playNotification, toggleDrawer } from '@data/state/action/root'\nimport { isClient } from '@utils/adminFilter'\n\nconst NotificationBarWrapper = styled.div`\n\tcolor: ${({ theme }) => theme.palette.text.blue};\n\tposition: relative;\n\tmargin-right: ${Spacings.SPACING_2B};\n\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n`\nconst PulseAnimation = keyframes`\n    0% { transform: scale(0.8) }\n    12% { transform: scale(0.9) }\n    24% { transform: scale(1) }\n    36% { transform: scale(1.1) }\n    48% { transform: scale(1.2) }\n    60% { transform: scale(1.1) }\n    72% { transform: scale(1) }\n    84% { transform: scale(0.9) }\n    100% { transform: scale(0.8) }\n`\n\nconst NotificationCount = styled.div`\n\tposition: absolute;\n\twidth: ${Spacings.SPACING_2B};\n\theight: ${Spacings.SPACING_2B};\n\ttop: 0;\n\tright: 0;\n\tbackground: ${({ theme }) => theme.palette.background.red};\n\tborder-radius: 50%;\n\tanimation-name: ${PulseAnimation};\n\tanimation-duration: 1s;\n\tanimation-iteration-count: infinite;\n`\n\nconst NotificationBar = () => {\n\tconst dispatch = useDispatch()\n\tconst user = useSelector((state) => state.getIn(['user', 'user']))\n\tconst [newNotif, setNewNotif] = useState(false)\n\tconst [notifications, setNotification] = useState([])\n\n\tuseEffect(() => {\n\t\tconst userId = !isClient(user.role) ? null : user.user_id\n\t\tconst msgBody = (res) => {\n\t\t\tconst _lastUser = res?.messages?.slice(-1)?.some((item) => item?.created_by !== res?.user_details?.user_id)\n\t\t\tif (userId) {\n\t\t\t\treturn _lastUser ? (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{'Message received ' +\n\t\t\t\t\t\t\t(isClient(user.role) ? '': `from ${res.user_details.full_name || res.user_details.mobile_number} `) +\n\t\t\t\t\t\t\t`for ${res.source.toLowerCase()}: ${res.enquiry_id || res.auction_id}`}\n\t\t\t\t\t</>\n\t\t\t\t) : (\n\t\t\t\t\t<>{`Message sent for enquiry: (${res?.enquiry_id})`}</>\n\t\t\t\t)\n\t\t\t} else {\n\t\t\t\treturn _lastUser ? (\n\t\t\t\t\t<>{`Message sent to (${res?.user_details?.full_name || res?.user_details?.mobile_number}) for enquiry: (${res?.enquiry_id})`}</>\n\t\t\t\t) : (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{'Message received ' +\n\t\t\t\t\t\t\t(isClient(user.role) ? '' : `from ${res.user_details.full_name || res.user_details.mobile_number} `) +\n\t\t\t\t\t\t\t`for ${res.source.toLowerCase()}: ${res.enquiry_id || res.auction_id}`}\n\t\t\t\t\t</>\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\t\tgetNotification(userId)\n\t\t\t.then((response) => {\n\t\t\t\tconst newResponse = response.map((res) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tupdated_at: res.updated_at,\n\t\t\t\t\t\ttitle: res.enquiry_id,\n\t\t\t\t\t\tsource: res.source,\n\t\t\t\t\t\tbody: msgBody(res),\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\tsetNotification(newResponse)\n\t\t\t})\n\t\t\t.catch((err) => {})\n\t}, [])\n\n\tuseEffect(() => {\n\t\tconst messaging = getMessaging()\n\t\tonMessage(messaging, (payload) => {\n\t\t\tpayload.notification.updated_at = Date.now()\n\t\t\tpayload.notification.body = `You have received a new message for enquiry: ${payload.notification.title}`\n\t\t\tsetNewNotif(true)\n\t\t\tsetNotification([payload.notification, ...notifications])\n\t\t\tdispatch(playNotification(true))\n\t\t})\n\t}, [notifications])\n\n\tconst onNotificationIconClick = () => {\n\t\tsetNewNotif(false)\n\t\tdispatch(toggleDrawer(true, DRAWER_TYPES.NOTIFICATIONS, { notifications, user, label: 'Notifications' }))\n\t}\n\n\treturn (\n\t\t<NotificationBarWrapper>\n\t\t\t<NotificationsIcon fontSize='small' onClick={onNotificationIconClick} style={{ cursor: 'pointer' }} />\n\t\t\t{newNotif && <NotificationCount />}\n\t\t</NotificationBarWrapper>\n\t)\n}\n\nexport default NotificationBar\n","import { useEffect, useState } from 'react'\nimport styled from 'styled-components'\nimport { Devices, Spacings, Text } from '@styles'\nimport { displayAmount } from '@utils'\nimport { ArrowUpward as ArrowUpIcon, ArrowDownward as ArrowDownIcon } from '@material-ui/icons'\nimport { getLatestCommodityPrices } from '@data'\nimport { isBuyer, isClient } from '@utils/adminFilter'\n\nconst DivWrapper = styled.div`\n\twidth: 7.25rem;\n\tmin-height: 1.875rem;\n\tbackground: ${({ theme }) => theme.palette.background.pastelBeige};\n\tborder-radius: 5px;\n\tpadding: ${Spacings.SPACING_1B} ${Spacings.SPACING_2B};\n\tmargin-right: ${Spacings.SPACING_2B};\n\tdisplay: flex;\n\tcursor: wait;\n\toverflow: hidden;\n\n\t@media ${Devices.tablet} {\n\t\twidth: 15rem;\n\t}\n`\n\nconst BaseTextWrapper = styled.div`\n\tdisplay: flex;\n\talign-items: center;\n\tfont-size: ${Text.SMALL};\n`\nconst TextWrapper = styled.div`\n\tflex: ${({ flex }) => flex || 'unset'};\n\tdisplay: flex;\n\tflex-direction: column;\n\toverflow: hidden;\n`\n\nconst PriceWrapper = styled(BaseTextWrapper)`\n\tfont-weight: ${Text.BOLD_500};\n\tflex-direction: column;\n\tjustify-content: flex-end;\n\n\t@media ${Devices.tablet} {\n\t\tflex-direction: row;\n\t}\n`\n\nconst ChangeWrapper = styled(BaseTextWrapper)`\n\tfont-size: ${Text.EXTRA_SMALL};\n\tcolor: ${({ change, theme }) => (change ? theme.palette.text.green : theme.palette.text.red)};\n\tletter-spacing: -0.5px;\n`\n\nconst TypeWrapper = styled(ChangeWrapper)`\n\tmargin-left: ${Spacings.SPACING_1};\n\tcolor: ${({ theme }) => theme.palette.background.borderColor};\n\tletter-spacing: 0px;\n\twhite-space: nowrap;\n`\nconst LocationWrapper = styled(ChangeWrapper)`\n\tmargin-left: ${Spacings.SPACING_1};\n\tcolor: ${({ theme }) => theme.palette.text.black};\n\tletter-spacing: 0px;\n\tfont-weight: ${Text.BOLD_500};\n\tjustify-content:  ${({ jc }) => jc || 'unset'};\n`\n\nconst IconStyle = {\n\tfontSize: Text.EXTRA_SMALL,\n}\n\nconst PriceWidget = ({ user, organisation }) => {\n\tconst [prices, setPrices] = useState([])\n\tconst [current, setCurrentIndex] = useState(0)\n\tconst [changeInPrice, setChange] = useState()\n\tconst [timeout, setTimeoutState] = useState()\n\tlet currentPrice = prices[current]\n\n\tconst showAllPrices = () => {\n\t\t//Open floating div to show all prices\n\t}\n\n\tuseEffect(() => {\n\t\tif (!user) return\n\t\tgetLatestCommodityPrices(0, { source: 'STEELMINT' }).then((res) => changePrice(res.data))\n\t}, [user])\n\n\tconst changePrice = (data) => {\n\t\tif (!user || !isClient(user.role)) {\n\t\t\tsetPrices(data)\n\t\t\treturn\n\t\t}\n\t\t\n\t\tlet newPrices = Object.assign([], data)\n\t\tconst multiplier = isBuyer(organisation?.roles) ? 100 : -100\n\n\t\tnewPrices = newPrices.map((item) => {\n\t\t\titem.price_per_ton += multiplier * Math.ceil(1 + 4 * Math.random())\n\t\t\t// item.prices\n\t\t\treturn item\n\t\t})\n\n\t\tsetPrices(newPrices)\n\t}\n\n\tuseEffect(() => {\n\t\tclearTimeout(timeout)\n\t\t// setTimeoutState(\n\t\t// \tsetTimeout(() => {\n\t\t// \t\tsetCurrentIndex((current + 1) % prices.length)\n\t\t// \t}, 3000)\n\t\t// )\n\t}, [prices, current])\n\n\tuseEffect(() => {\n\t\tif (prices.length !== 0 && currentPrice.prices) {\n\t\t\tconst length = currentPrice.prices.length\n\t\t\tconst change = ((currentPrice.prices[length - 2] - currentPrice.prices[length - 1]) * 100) / currentPrice.prices[length - 2]\n\t\t\tif (change) {\n\t\t\t\tsetChange(Math.floor(change))\n\t\t\t} else {\n\t\t\t\tsetChange()\n\t\t\t}\n\t\t}\n\t}, [currentPrice])\n\n\tif (prices.length === 0) return null\n\tif (!currentPrice) return null\n\n\treturn (\n\t\t<DivWrapper\n\t\t\tonMouseEnter={() => clearTimeout(timeout)}\n\t\t\tonMouseLeave={() => setCurrentIndex((current + 1) % prices.length)}\n\t\t\tonClick={showAllPrices}\n\t\t>\n\t\t\t<TextWrapper>\n\t\t\t\t<BaseTextWrapper>\n\t\t\t\t\t{currentPrice.product_name}\n\t\t\t\t\t{currentPrice.primary_or_secondary && currentPrice.primary_or_secondary.length > 0 && (\n\t\t\t\t\t\t<TypeWrapper>({currentPrice.primary_or_secondary.substring(0, 1).toUpperCase()})</TypeWrapper>\n\t\t\t\t\t)}\n\t\t\t\t</BaseTextWrapper>\n\t\t\t\t<LocationWrapper>{currentPrice.location}</LocationWrapper>\n\t\t\t</TextWrapper>\n\t\t\t<TextWrapper flex={1}>\n\t\t\t\t<PriceWrapper>\n\t\t\t\t\t{displayAmount(currentPrice.price_per_ton / 1000)}\n\t\t\t\t\t{changeInPrice && (\n\t\t\t\t\t\t<ChangeWrapper change={changeInPrice >= 0}>\n\t\t\t\t\t\t\t({changeInPrice >= 0 ? <ArrowUpIcon style={IconStyle} /> : <ArrowDownIcon style={IconStyle} />}\n\t\t\t\t\t\t\t{Math.abs(changeInPrice)}% )\n\t\t\t\t\t\t</ChangeWrapper>\n\t\t\t\t\t)}\n\t\t\t\t</PriceWrapper>\n\t\t\t\t{currentPrice.grade && (\n\t\t\t\t\t<LocationWrapper jc='flex-end'>\n\t\t\t\t\t\t<TypeWrapper>({currentPrice.grade})</TypeWrapper>\n\t\t\t\t\t</LocationWrapper>\n\t\t\t\t)}\n\t\t\t</TextWrapper>\n\t\t</DivWrapper>\n\t)\n}\n\nexport default PriceWidget\n","import React, { Fragment } from 'react'\nimport { useSelector } from 'react-redux'\nimport styled from 'styled-components'\nimport { Menu } from '@material-ui/icons'\nimport { H4, H6, Link, BackButton } from '@base'\nimport { Devices, Spacings, Text } from '@styles'\nimport News from '@pages/Dashboard/News'\nimport NotificationBar from '@global/NotificationBar'\nimport PriceWidget from './PriceWidget'\n\nconst HeaderWrapper = styled.section`\n\tdisplay: flex;\n\tbackground: ${({ theme }) => theme.palette.background.white};\n\tpadding: ${Spacings.SPACING_2B} ${Spacings.SPACING_3B};\n\talign-items: center;\n\tbox-shadow: 0 ${Spacings.SPACING_1B} ${Spacings.SPACING_5B} 0 rgb(0 0 0 / 5%);\n\tmargin-bottom: ${Spacings.SPACING_4B};\n\tposition: sticky;\n\ttop: 0;\n\tz-index: 499;\n\tmin-height: 3.875rem;\n\n\tflex-wrap: wrap;\n`\n\nconst NewsWrapper = styled.div`\n\twidth: 100%;\n\tmargin-top: ${Spacings.SPACING_2B};\n\tpadding: ${Spacings.SPACING_1B} 0;\n\tborder-top: 1px solid ${({ theme }) => theme.palette.background.border};\n`\n\nconst ButtonWrapper = styled.div`\n\talign-items: center;\n\tjustify-content: center;\n\twidth: 1.5rem;\n\theight: 1.5rem;\n\tposition: relative;\n\tdisplay: flex;\n\tflex-direction: column;\n\tcursor: pointer;\n\tuser-select: none;\n\tmargin-left: ${Spacings.SPACING_1B};\n\tmargin-right: ${Spacings.SPACING_4B};\n\n\t@media ${Devices.laptop} {\n\t\tdisplay: none;\n\t}\n\n\t& > div {\n\t\tposition: absolute;\n\t\tleft: 0.125rem;\n\t\ttop: 0.3125rem;\n\t\twidth: calc(100% - 0.25rem);\n\t\theight: 0.125rem;\n\t\tborder-radius: ${Spacings.SPACING_2B};\n\t\tbackground: ${({ theme }) => theme.palette.background.borderColor};\n\t\ttransition: 0.1s background ease-in-out;\n\n\t\t&:nth-child(2) {\n\t\t\ttop: calc(50% - 0.0625rem);\n\t\t}\n\t\t&:last-of-type {\n\t\t\ttop: calc(100% - 0.4375rem);\n\t\t}\n\t}\n\n\t&:hover {\n\t\t& > div {\n\t\t\tbackground: ${({ theme }) => theme.palette.background.dark};\n\t\t}\n\t}\n`\n\nconst PageInfo = styled.div`\n\tdisplay: flex;\n\talign-items: center;\n\tflex-grow: 1;\n`\n\nconst InternalInfoWrapper = styled.div`\n\tflex-grow: 1;\n`\n\nconst BreadCrumbsWrapper = styled.div`\n\tdisplay: flex;\n\talign-items: center;\n\tcursor: pointer;\n`\n\nconst PageTitle = styled(H4)`\n\tcolor: ${({ theme }) => theme.palette.text.tableHeader};\n\tline-height: ${Text.LINE_HEIGHT_MAX};\n`\n\nconst Crumb = styled(H6)`\n\tcolor: ${({ theme }) => theme.palette.text.blue};\n\tline-height: ${Text.LINE_HEIGHT_MAX};\n`\nconst ChevronWrapper = styled.div`\n\theight: 0.5rem;\n\twidth: 0.5rem;\n\toverflow: hidden;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tmargin: 0 0.5rem;\n`\n\nconst ExtraDivWrapper = styled.div`\n\tflex: 1;\n`\n\nconst BreadCrumbs = ({ crumbs }) => {\n\tif (!crumbs?.length) return null\n\n\treturn (\n\t\t<BreadCrumbsWrapper>\n\t\t\t{crumbs.map((crumb, index) => {\n\t\t\t\tlet elem\n\t\t\t\tif (crumb.onClick) {\n\t\t\t\t\telem = <Crumb onClick={crumb.onClick}>{crumb?.label}</Crumb>\n\t\t\t\t} else {\n\t\t\t\t\telem = (\n\t\t\t\t\t\t<Link href={crumb?.href}>\n\t\t\t\t\t\t\t<Crumb>{crumb?.label}</Crumb>\n\t\t\t\t\t\t</Link>\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\treturn (\n\t\t\t\t\t<Fragment key={`breadcrumb-${index}`}>\n\t\t\t\t\t\t{elem}\n\t\t\t\t\t\t<ChevronWrapper>/</ChevronWrapper>\n\t\t\t\t\t</Fragment>\n\t\t\t\t)\n\t\t\t})}\n\t\t</BreadCrumbsWrapper>\n\t)\n}\n\nconst Header = ({ menuButtonHandler }) => {\n\tconst selectedTitle = useSelector((state) => state.getIn(['root', 'sidebarTitle']))\n\tconst headerMeta = useSelector((state) => state.getIn(['root', 'headerMeta']))\n\tconst showNews = !!headerMeta?.showNewsInHeader\n\tconst user = useSelector((state) => state.getIn(['user', 'user']))\n\tconst organisation = useSelector((state)=>state.getIn(['user','organisation']))\n\n\tconst renderMenuButton = () => (\n\t\t<ButtonWrapper onClick={menuButtonHandler}>\n\t\t\t<Menu />\n\t\t</ButtonWrapper>\n\t)\n\n\treturn (\n\t\t<HeaderWrapper>\n\t\t\t{renderMenuButton()}\n\t\t\t<PageInfo>\n\t\t\t\t<BackButton desktop backHandler={headerMeta?.backHandler} />\n\t\t\t\t<InternalInfoWrapper>\n\t\t\t\t\t<BreadCrumbs crumbs={headerMeta?.breadCrumbs ?? []} />\n\t\t\t\t\t<PageTitle>{headerMeta?.title ?? selectedTitle}</PageTitle>\n\t\t\t\t</InternalInfoWrapper>\n\t\t\t\t<ExtraDivWrapper />\n\t\t\t\t<PriceWidget user={user} organisation={organisation} />\n\t\t\t\t<NotificationBar />\n\t\t\t\t<BackButton margin='0' mobile backHandler={headerMeta?.backHandler} />\n\t\t\t</PageInfo>\n\t\t\t{showNews && (\n\t\t\t\t<NewsWrapper>\n\t\t\t\t\t<News inHeader />\n\t\t\t\t</NewsWrapper>\n\t\t\t)}\n\t\t</HeaderWrapper>\n\t)\n}\n\nexport default Header\n","import { useCallback } from 'react'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { FileViewer } from '@base'\nimport { getServerUrl } from '@utils'\nimport { toggleFileViewer } from '@data/state/action/root'\nimport { useMemo } from 'react'\n\nconst GlobalFileViewer = () => {\n\tconst serverUrl = getServerUrl()\n\tconst dispatch = useDispatch()\n\tconst showFileViewer = useSelector((state) => state.getIn(['root', 'showFileViewer']))\n\tconst { files, local, ...rest } = useSelector((state) => state.getIn(['root', 'fileViewerData']))\n\n\tconst filesProp = useMemo(() => {\n\t\tif (local) {\n\t\t\treturn files\n\t\t}\n\t\tif (files) {\n\t\t\tlet _files = files\n\t\t\tif (!Array.isArray(_files)) {\n\t\t\t\t_files = [_files]\n\t\t\t}\n\t\t\treturn _files.map((f) => serverUrl + f)\n\t\t}\n\t\treturn []\n\t}, [files, local])\n\n\tconst close = useCallback(() => {\n\t\tdispatch(toggleFileViewer(false))\n\t}, [])\n\n\treturn <FileViewer show={showFileViewer} files={filesProp} onClose={close} {...rest} />\n}\n\nexport default GlobalFileViewer\n","import styled, { css } from 'styled-components'\nimport { Devices, Spacings } from '@styles'\n\nexport const DarshboardContainer = styled.section`\n\tdisplay: flex;\n\theight: 100%;\n`\nexport const Container = styled.section`\n\tdisplay: flex;\n\tflex: 1;\n\tflex-direction: column;\n\theight: 100%;\n\n\tmax-height: 100%;\n\n\toverflow-y: hidden;\n\toverflow-x: hidden;\n\tposition: relative;\n`\nexport const Body = styled.div`\n\tdisplay: flex;\n\tflex-direction: column;\n\tflex-grow: 1;\n\n\tmax-height: 100%;\n\theight: 100%;\n\n\toverflow-y: scroll;\n\toverflow-x: hidden;\n\t/* scrollbar for Chrome, Safari and Opera */\n\t&::-webkit-scrollbar {\n\t\twidth: 7px;\n\t}\n\t::-webkit-scrollbar-thumb {\n\t\tbackground: rgba(0, 0, 0, 0.2);\n\t\ttransform: translateY(0px);\n\t\tborder-radius: 10px;\n\t}\n\t/* scrollbar for IE, Edge and Firefox */\n\tscrollbar-width: thin;\n\n\t${({ IsMac }) => {\n\t\tif (IsMac) {\n\t\t\treturn css`\n\t\t\t\t/* Hide scrollbar for Chrome, Safari and Opera */\n\t\t\t\t&::-webkit-scrollbar {\n\t\t\t\t\tdisplay: none;\n\t\t\t\t}\n\t\t\t\t/* Hide scrollbar for IE, Edge and Firefox */\n\t\t\t\t& {\n\t\t\t\t\t-ms-overflow-style: none; /* IE and Edge */\n\t\t\t\t\tscrollbar-width: none; /* Firefox */\n\t\t\t\t}\n\t\t\t`\n\t\t}\n\t}}\n\n\t@media ${Devices.tablet} {\n\t\tpadding: 0 ${Spacings.SPACING_4B};\n\t}\n`\n\nconst LoaderBaseWrapper = styled.div`\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\twidth: 100%;\n\theight: 100%;\n`\n\nexport const LoaderWrapper = styled(LoaderBaseWrapper)`\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tuser-select: none;\n\tz-index: 1002;\n`\n\nexport const LoaderBackground = styled(LoaderBaseWrapper)`\n\tbackground: ${({ theme }) => theme.palette.background.white}8f;\n`\n","import React, { useEffect, useState } from 'react'\nimport { Outlet, useNavigate, useLocation } from 'react-router-dom'\nimport { useSelector, useDispatch } from 'react-redux'\nimport { getMessaging, getToken, isSupported } from 'firebase/messaging'\nimport firebase from 'firebase/compat/app'\n\nimport { DRAWER_TYPES, vapidKey } from '@constants'\nimport { Loader, Toast, TOAST_TYPE } from '@base'\nimport { getFirebaseUser, getPlatform } from '@utils'\nimport { setSideBarTitle, setUser, showToast, setOrganisation } from '@data/state/action'\nimport Drawer from '@global/Drawer'\nimport Modal from '@global/Modal'\nimport SideMenu from '@global/SideMenu'\nimport Header from '@global/Header'\nimport GlobalFileViewer from '@global/GlobalFileViewer'\nimport { paths, OrganisationRouteTitleMap, AdminRouteTitleMap } from '@routes'\nimport { DarshboardContainer, Container, Body, LoaderWrapper, LoaderBackground } from './styles'\nimport { getOrganisationByUser, getOrganisationKycData, updateUserFCMToken } from '@data'\nimport { toggleDrawer } from '@data/state/action/root'\nimport NotificationPlayer from '@base/composite/NotificationPlayer'\nimport { useForceUpdate } from '@hooks'\nimport { isClient } from '@utils/adminFilter'\n\nconst LoaderComponent = () => {\n\tconst showLoader = useSelector((state) => state.getIn(['root', 'showLoader']))\n\treturn (\n\t\tshowLoader && (\n\t\t\t<LoaderWrapper>\n\t\t\t\t<LoaderBackground />\n\t\t\t\t<Loader />\n\t\t\t</LoaderWrapper>\n\t\t)\n\t)\n}\n\nfunction DashboardLayout() {\n\tconst navigate = useNavigate()\n\tconst location = useLocation()\n\tconst dispatch = useDispatch()\n\tconst usePlatform = getPlatform()\n\tconst user = useSelector((state) => state.getIn(['user', 'user']))\n\tconst organisation = useSelector((state) => state.getIn(['user', 'organisation']))\n\n\tconst [forceUpdate, update] = useForceUpdate()\n\n\tconst [showMenu, setShowMenu] = useState(false)\n\n\tuseEffect(() => {\n\t\tgetFirebaseUser(navigate, (u) => {\n\t\t\tdispatch(setUser(u))\n\t\t})\n\t}, [])\n\n\tuseEffect(() => {\n\t\tconst app = firebase.app()\n\t\tif (isSupported() && user) {\n\t\t\tconst messaging = getMessaging(app)\n\n\t\t\tgetToken(messaging, { vapidKey })\n\t\t\t\t.then((currentToken) => {\n\t\t\t\t\tif (currentToken) {\n\t\t\t\t\t\t// Send the token to your server and update the UI if necessary\n\t\t\t\t\t\t// ...\n\t\t\t\t\t\treturn updateUserFCMToken(currentToken, user.user_id)\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Show permission request UI\n\t\t\t\t\t\tconsole.log('No registration token available. Request permission to generate one.')\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t.catch((err) => {\n\t\t\t\t\tconsole.log('An error occurred while retrieving token. ', err, typeof err)\n\t\t\t\t\tif (err.code === 'messaging/permission-blocked') {\n\t\t\t\t\t\tdispatch(\n\t\t\t\t\t\t\tshowToast(true, `Notifications are blocked. Please check your browser setting and grant permission`, {\n\t\t\t\t\t\t\t\ttype: TOAST_TYPE.INFO,\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t}\n\t}, [user])\n\n\tuseEffect(() => {\n\t\tif (user?.user_id && isClient(user?.role)) {\n\t\t\tgetOrganisationByUser(user.user_id)\n\t\t\t\t.then((res) => {\n\t\t\t\t\tdispatch(setOrganisation(res))\n\t\t\t\t})\n\t\t\t\t.catch((err) => console.log(err))\n\t\t}\n\t}, [forceUpdate, user])\n\n\tuseEffect(() => {\n\t\tif (isClient(user?.role) && organisation?.kyc_requested) {\n\t\t\tgetOrganisationKycData(organisation?.organisation_id)\n\t\t\t\t.then((res) => {\n\t\t\t\t\tdispatch(toggleDrawer(true, DRAWER_TYPES.COMPLETE_YOUR_KYC, { kycData: res, adminView: !isClient(user?.role), update }))\n\t\t\t\t})\n\t\t\t\t.catch((err) => console.log(err))\n\t\t}\n\t}, [organisation])\n\n\tuseEffect(() => {\n\t\tif (!user) return\n\n\t\tlet mapObject = {}\n\n\t\tif (isClient(user.role)) {\n\t\t\tmapObject = OrganisationRouteTitleMap\n\t\t} else {\n\t\t\tmapObject = AdminRouteTitleMap\n\t\t}\n\n\t\tconst _p = location.pathname.toLowerCase()\n\n\t\tif (_p === paths.admin || _p === paths.logistics) return\n\n\t\tconst [, title] = Object.entries(mapObject).find(([key, val]) => _p.includes(key)) ?? ['', '']\n\t\tdispatch(setSideBarTitle(title))\n\t}, [location.pathname, user, organisation])\n\n\tconst menuClickHandler = (flag) => {\n\t\tsetShowMenu(flag)\n\t}\n\n\tif (!user) return null\n\n\tif (isClient(user.role)) {\n\t\tif (location.pathname.includes(paths.admin)) {\n\t\t\tnavigate(paths.home)\n\t\t}\n\t} else {\n\t\tif (!location.pathname.includes(paths.admin)) {\n\t\t\tnavigate(paths.admin)\n\t\t}\n\t}\n\n\tconst checkMak = usePlatform === 'Mac' || usePlatform === 'iOS'\n\n\treturn (\n\t\t<DarshboardContainer>\n\t\t\t<SideMenu user={user} showMenu={showMenu} menuCloseHandler={menuClickHandler} />\n\t\t\t<Container>\n\t\t\t\t<Header menuButtonHandler={menuClickHandler} />\n\t\t\t\t<Body IsMac={checkMak}>\n\t\t\t\t\t<Outlet />\n\t\t\t\t</Body>\n\t\t\t\t<LoaderComponent />\n\t\t\t</Container>\n\t\t\t<Toast />\n\t\t\t<Drawer />\n\t\t\t<Modal />\n\t\t\t<GlobalFileViewer />\n\t\t\t<NotificationPlayer />\n\t\t</DarshboardContainer>\n\t)\n}\n\nexport default DashboardLayout\n"],"sourceRoot":""}