{"version":3,"sources":["assets/KbIcons/PRODUCT.png","assets/KbIcons/Dashboard.svg","assets/KbIcons/Product.svg","assets/KbIcons/Channel.svg","assets/KbIcons/AppJourney.svg","assets/KbIcons/TrainingMaterial.svg","assets/KbIcons/Tip.svg","assets/KbIcons/Outages.svg","assets/KbIcons/DashboardSlider.svg","assets/KbIcons/Processs.svg","assets/KbIcons/Complain.svg","assets/KbIcons/Faq.svg","assets/KbIcons/logo.png","assets/KbIcons/Banner1.png","assets/KbIcons/Banner2.png","assets/KbIcons/Disclaimer.svg","app/constants/appUrl.js","AppTopbar.js","AppConfig.js","AppMenu.js","app/features/components/Product.js","app/features/screens/products/pages/Products.js","app/features/screens/faqs/components/AddEditFaq.js","app/features/components/laoder.js","app/features/screens/faqs/pages/FaqByProduct.js","app/features/screens/faqs/pages/FaqChannel.js","app/features/screens/faqs/pages/Faqs.js","app/features/screens/ProcessInformation/components/AddEditProcessInformation.js","app/features/screens/ProcessInformation/components/ViewAttachment.js","app/features/components/CustomDescription.js","app/features/components/CustomVideo.js","app/features/screens/ProcessInformation/pages/ProcessInformation.js","app/features/screens/ComplainHandling/components/AddEditComplaints.js","app/features/screens/ComplainHandling/components/ViewAttachment.js","app/features/screens/ComplainHandling/pages/ComplainHandling.js","app/features/screens/SocialMedia/components/AddEditSocialMedia.js","app/features/screens/SocialMedia/pages/SocialMedia.js","app/features/screens/ManageFaq/pages/ManageFaq.js","app/features/screens/ManageProduct.js/pages/ManageProduct.js","app/features/screens/Dashboard/components/AddEditNew.js","app/features/screens/AdminZAppJourney/components/AddEditAdminApp.js","app/features/screens/AdminZTrainingMaterial/components/AddEditAdminZTraining.js","app/features/screens/AdminZProduct/components/AddEditAdminProduct.js","app/features/screens/AdminTipOfDay/components/AddEditAdminTip.js","app/features/screens/AdminOutage/component/AddEditAdminOutage.js","app/features/screens/AdminDisclaimer/compoenets/AddEditAdminDisclaimer.js","app/features/screens/AdminDashboardSlider/components/AddEditAdminDashboardSlider.js","app/features/screens/Dashboard/pages/Dashboard.js","app/features/screens/UserProcess/components/ViewAttachment.js","app/features/screens/UserProcess/pages/UserProcess.js","app/features/screens/UserComplaint/components/ViewAttachment.js","app/features/screens/UserComplaint/pages/UserComplaint.js","app/features/screens/UserSocialMedia/pages/UserSocialMedia.js","app/features/screens/AgainstProductFaq/pages/AgainstProductFaq.js","app/features/screens/AgainstProductComplaint/components/AddEditComplaints.js","app/features/screens/AgainstProductComplaint/pages/AgainstProductComplaint.js","app/features/screens/AgainstProductSocialMedia/pages/AgainstProductSocialMedia.js","app/features/screens/AgainstProductProcess/pages/AgainstProductProcessView.js","app/features/screens/AgainstProductProcess/pages/AgainstProductProcess.js","app/features/screens/UserChat/pages/UserChat.js","app/features/screens/auth/pages/login_screen.js","app/features/screens/AdminZProduct/components/ViewAttachment.js","app/features/screens/AdminZProduct/pages/AdminZProduct.js","app/features/screens/AdminZAppJourney/components/ViewAttachment.js","app/features/screens/AdminZAppJourney/pages/AdminZAppJourney.js","app/features/screens/AdminZTrainingMaterial/components/ViewAttachment.js","app/features/screens/AdminZTrainingMaterial/pages/AdminZTrainingMaterial.js","app/features/screens/AdminTipOfDay/pages/AdminTipOfDay.js","app/features/screens/AdminOutage/pages/AdminOutage.js","app/features/screens/AdminDisclaimer/pages/AdminDisclaimer.js","app/features/screens/AdminDashboardSlider/components/ViewAttachement.js","app/features/screens/AdminDashboardSlider/pages/AdminDashboardSlider.js","app/features/screens/UserZTrainingMaterial/components/ViewAttachement.js","app/features/screens/UserZAppJourney/pages/UserZAppJourney.js","app/features/screens/UserZTrainingMaterial/pages/UserZTrainingMaterial.js","app/features/screens/UserOutage/pages/Useroutage.js","app/features/screens/UserProduct/pages/UserProduct.js","app/features/screens/Channel/components/ProcessCallCenter.js","app/features/screens/Channel/components/ProcessSocial.js","app/features/screens/Channel/components/ProcessInApp.js","app/features/screens/Channel/components/ChannelProcess.js","app/features/screens/Channel/components/ComplainCallCenter.js","app/features/screens/Channel/components/ComplainInApp.js","app/features/screens/Channel/components/ComplainSocial.js","app/features/screens/Channel/components/ChannelComplains.js","app/features/screens/Channel/pages/Channel.js","app/features/screens/AdminChannel/components/TableComplaintHandling.js","app/features/screens/AdminChannel/components/TableProcessInformation.js","app/features/screens/AdminChannel/components/ProcessInformation.js","app/features/screens/AdminChannel/components/ComplaintHandling.js","app/features/screens/AdminChannel/components/TableFaq.js","app/features/screens/AdminChannel/components/CallCenterFaq.js","app/features/screens/AdminChannel/components/TableVideos.js","app/features/screens/AdminChannel/components/CallCenterVideos.js","app/features/screens/AdminChannel/pages/CallCenter.js","app/features/screens/AdminChannel/components/SocialProcess.js","app/features/screens/AdminChannel/components/SocialComplaint.js","app/features/screens/AdminChannel/components/SocialFaqs.js","app/features/screens/AdminChannel/components/SocialVideos.js","app/features/screens/AdminChannel/pages/SocialMedia.js","app/features/screens/AdminChannel/components/InAppComplaint.js","app/features/screens/AdminChannel/components/InAppprocess.js","app/features/screens/AdminChannel/components/InAppFaqs.js","app/features/screens/AdminChannel/components/InAppVideos.js","app/features/screens/AdminChannel/pages/InApp.js","app/features/screens/Promotions/AddEditPromotion.js","app/features/screens/Promotions/pages/Promtions.js","app/features/screens/Banners.js","App.js","ScrollToTop.js","app/store.js","index.js","assets/KbIcons/Dot.svg"],"names":["module","exports","appUrl","baseUrl","AppTopbar","props","setRes","location","useLocation","currentRouteLabel","setCurrentRouteLabel","useState","disclaimerList","setDisclaimerList","history","useHistory","displayName","setDisplayName","routeLabels","localStorage","getItem","useEffect","currentPath","pathname","handleLogout","window","clear","removeItem","push","user","JSON","parse","console","log","async","token","response","fetch","concat","method","headers","data","json","error","GetAllDisclaimer","React","createElement","className","Link","src","alt","type","onClick","onToggleMenuClick","onMobileTopbarMenuClick","includes","Fragment","InputText","placeholder","style","border","value","searchQuery","onChange","event","query","target","onSearch","fontWeight","width","height","paddingTop","background","length","filter","disclaimer","active","map","index","key","disclaimerDescription","classNames","mobileTopbarMenuActive","AppConfig","setActive","scale","setScale","scales","theme","setTheme","config","useRef","outsideClickListener","unbindOutsideClickListener","useCallback","current","document","removeEventListener","hideConfigurator","preventDefault","bindOutsideClickListener","isOutsideClicked","addEventListener","isSameNode","contains","documentElement","fontSize","configClassName","replaceLink","linkElement","href","callback","isIE","setAttribute","id","getAttribute","cloneLinkElement","cloneNode","parentNode","insertBefore","nextSibling","remove","themeElement","getElementById","test","navigator","userAgent","changeTheme","e","scheme","onColorModeChange","ref","Button","icon","decrementScale","prevState","disabled","item","incrementScale","RadioButton","inputId","name","onInputStyleChange","checked","inputStyle","htmlFor","InputSwitch","rippleEffect","onRippleEffect","onLayoutModeChange","layoutMode","AppSubmenu","activeIndex","setActiveIndex","onMenuItemClick","command","originalEvent","onKeyDown","code","click","renderLink","i","content","submenuIcon","items","badge","Badge","customIcon","label","Ripple","renderLinkContent","to","NavLink","aria-label","role","activeClassName","exact","tabIndex","url","styleClass","badgeStyleClass","root","CSSTransition","timeout","enter","exit","in","unmountOnExit","AppMenu","model","Product","productList","setProductList","ok","Error","getAllProducts","Carousel","numVisible","numScroll","responsiveOptions","breakpoint","itemTemplate","product","productAttachment","attachmentPath","logo","productName","onError","onerror","productDescription","viewProduct","rowData","productId","state","Products","AddEditFaq","_ref","editable","setDialog","onHide","GetAllFaq","productId2","apiRes","setApiRes","channelList","setChannelList","faqFields","setFaqFields","question","answer","loading","setLoading","addValidationSchema","Yup","shape","faqs","of","required","min","updateValidationSchema","formik","useFormik","validationSchema","initialValues","channelID","onSubmit","axios","patch","toast","success","post","_rowData$channelId","setFieldValue","productID","channelId","getAllProduct","getAllChannel","addFaqField","handleFaqChange","field","newFaqFields","ToastContainer","handleSubmit","Dropdown","values","optionLabel","options","optionValue","handleChange","MultiSelect","touched","errors","faq","_formik$errors$faqs","_formik$errors$faqs$i","_formik$errors$faqs2","_formik$errors$faqs2$","_","removeFaqField","Loader","FaqByProduct","faqList","setFaqList","res","dialog","setEditable","rowSelect","setRowSelect","GetAllFAQByID","Authorization","reject","confirm","confirmDialog","header","message","accept","delete","acceptClassName","rejectClassName","ConfirmDialog","Dialog","visible","display","Accordion","AccordionTab","stopPropagation","get","editAction","FaqChannel","activeProductId","setActiveProductId","handleButtonClick","Faqs","expandedId","setExpandedId","filteredData","setFilteredData","rowselect","setRowselect","isAdmin","_item$question","toLowerCase","TabView","channel","TabPanel","channelName","AddEditProcessInformation","setContent","selectedFiles","setSelectedFiles","isChannelSelected","setIsChannelSelected","editor","description","processName","max","policyPrefix","processAttachments","newData","attachment","file","processId","useMemo","readonly","processAttachmentssWithBaseUrl","isImage","endsWith","split","pop","handleRemoveImage","indexToRemove","updatedGallery","color","JoditEditor","onBlur","newContent","files","imagesArray","Array","from","newImagesBase64","forEach","reader","FileReader","onload","base64String","result","readAsDataURL","handleFileUpload","multiple","_attachment$file","ViewAttachment","settings","dots","infinite","speed","slidesToShow","slidesToScroll","autoplay","autoplaySpeed","Slider","imagePath","CustomDescription","CustomVideo","videoAttachments","renderSlider","controls","ProcessInformation","viewAttachmentDialog","setViewAttachmentDialog","selectedAttachment","setSelectedAttachment","descriptionDialog","setDescriptionDialog","descriptionContent","setDescriptionContent","videoAttachmentDialog","setVideoAttachmentDialog","selectedVideoAttachment","setSelectedVideoAttachment","GetProcessById","_item$productName","_item$channelName","_item$processName","_item$policyPrefix","downloadDocuments","documentPaths","documentPath","blob","URL","createObjectURL","link","revokeObjectURL","Promise","resolve","setTimeout","onHideViewAttachment","onHideVideoAttachment","onHideDescriptionDialog","DataTable","scrollable","scrollHeight","rows","paginator","Column","body","title","slice","cursor","textDecoration","Date","createdDate","toLocaleString","day","month","year","hour","minute","hour12","updatedDate","documentsToDownload","hasImage","some","hasVideo","tooltip","minWidth","AddEditComplaints","complaintDescription","complaintPrefix","complaintProcessName","complaintAttachment","complaintID","complaintAttachmentWithBaseUrl","ComplainHandling","complaintList","setComplaintList","GetComplaintById","_item$complaintPrefix","_item$complaintProces","AddEditSocialMedia","sponserList","setSponserList","postTitle","postDescription","sponserID","postAddAttachments","postID","postAddAttachmentsWithBaseUrl","getAllSponser","SocialMedia","socialList","setSocialList","getSocialById","_item$postTitle","_item$sponserName","sponserName","_rowData$sponserName","postAttachments","ManageFaq","GetFaqById","_rowData$channelName","join","ManageProduct","_location$state","selectedProductId","setSelectedProductId","GetProductName","AddEditNew","AddEditAdminApp","appJourneyAttachmentDTOs","appJourneyID","attachmentsModel","appJourneyAttachmentDTOsWithBaseUrl","s","AddEditAdminZTraining","_formik$values","showImage","setShowImage","addAttachmentDTO","trainingMaterialID","trainingAttachment","trainingAttachmentsWithBaseUrl","AddEditAdminProduct","setProductId","overviewSummary","termsAndConditions","obj","productAttachmentsWithBaseUrl","InputTextarea","cols","AddEditAdminTip","AddEditAdminOutage","statusList","setStatusList","status","reason","statusId","getStatus","AddEditAdminDisclaimer","disclaimerID","AddEditAdminDashboardSlider","allowedFileExtensions","imageAttachment","hasInvalidFile","fileExtension","image","updatedFiles","Dashboard","selectedComponent","setSelectedComponent","dialogVisible","setDialogVisible","tipsList","setTipsList","headerText","setHeaderText","outageList","setOutageList","imagesList","setImagesList","imagesBanner","setImagesBanner","arrows","GetAllProducts","GetAllImages","GetAllBanners","GetAllTips","GetOutageDegradation","overflow","objectFit","banner","borderTop","dangerouslySetInnerHTML","__html","isArray","outage","borderRadius","second","banner2","para","path","card","float","UserProcess","processList","setProcessList","isLoading","setIsLoading","GetAllProcess","UserComplaint","GetAllComplaints","UserSocialMedia","globalFilterValue","setGlobalFilterValue","filters","setFilters","global","matchMode","FilterMatchMode","CONTAINS","getSocial","globalFilterFields","html","DOMParser","parseFromString","textContent","AgainstProductFaq","getFaqById","AgainstProductComplaint","downloadDocument","appendChild","removeChild","getComplaintById","hasDocument","find","isPDF","fullDocumentPath","AgainstProductSocialMedia","AgainstProductProcessView","AgainstProductProcess","UserChat","messages","setMessages","inputText","setInputText","setMessage","fileInput","LoginScreen","userName","email","password","_response$data","setItem","stringify","padding","backdropFilter","Password","toggleMask","AdminZProduct","_item$overviewSummary","_item$termsAndConditi","onRowClick","textAlign","images","AdminZAppJourney","appJourneyList","setAppJourneyList","GetAppJourney","_item$title","AdminZTrainingMaterial","trainingList","setTrainingList","GetTrainingMaterial","AdminTipOfDay","tipList","setTipList","tipsID","rowIndex","AdminOutage","expandedRows","setExpandedRows","startDateTime","setStartDateTime","endDateTime","setEndDateTime","filtered","_item$reason","_item$status","itemDateTime","AdminDisclaimer","_item$disclaimerDescr","updatedRow","toggleStatus","ViewAttachement","AdminDashboardSlider","sliderList","setSliderList","imageID","GetAllSliderPicture","UserZAppJourney","actionDocument","GetAllAppJournies","UserZTrainingMaterial","zTrainingList","setZTrainingList","Useroutage","zOutageList","setZOutageList","UserProduct","ProcessCallCenter","callCenter","tableData","setTableData","_rowData$processAttac","_rowData$processAttac2","_attachment$attachmen","_attachment$attachmen2","_attachment$attachmen3","_attachment$attachmen4","_attachment$attachmen5","ProcessSocial","socialMedia","ProcessInApp","inApp","ChannelProcess","setCallCenter","setSocialMedia","setInApp","ComplainCallCenter","_rowData$complaintAtt","_rowData$complaintAtt2","ComplainInApp","ComplainSocial","ChannelComplains","Channel","TableComplaintHandling","_rowData$complaintPro","_rowData$complaintPre","TableProcessInformation","_rowData$processName","_rowData$policyPrefix","ComplaintHandling","GetAllComplaint","TableFaq","_item$answer","CallCenterFaq","_item$channelId","item2","TableVideos","_rowData$postAttachme","CallCenterVideos","postList","setPostList","CallCenter","SocialProcess","SocialComplaint","SocialFaqs","SocialVideos","InAppComplaint","InAppprocess","InAppFaqs","InAppVideos","InApp","AddEditPromotion","Promtions","Banners","App","setLayoutMode","layoutColorMode","setLayoutColorMode","setInputStyle","ripple","setRipple","staticMenuInactive","setStaticMenuInactive","overlayMenuActive","setOverlayMenuActive","mobileMenuActive","setMobileMenuActive","setMobileTopbarMenuActive","setSearchQuery","copyTooltipRef","PrimeReact","login","menuClick","mobileTopbarMenuClick","addClass","removeClass","updateTargetEvents","menu","require","isDesktop","innerWidth","element","classList","add","replace","RegExp","wrapperClass","undefined","backgroundImage","Route","component","onMobileSubTopbarMenuClick","onSidebarClick","Switch","mode","withRouter","scrollTo","children","store","configureStore","reducer","preloadedState","ReactDOM","render","BrowserRouter","ScrollToTop","Provider"],"mappings":"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","file":"static/js/main.2a094c4b.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/PRODUCT.5e343e45.png\";","module.exports = __webpack_public_path__ + \"static/media/Dashboard.728d2da9.svg\";","module.exports = __webpack_public_path__ + \"static/media/Product.629416b7.svg\";","module.exports = __webpack_public_path__ + \"static/media/Channel.b2402ed6.svg\";","module.exports = __webpack_public_path__ + \"static/media/AppJourney.8f2923b5.svg\";","module.exports = __webpack_public_path__ + \"static/media/TrainingMaterial.b1ce1c54.svg\";","module.exports = __webpack_public_path__ + \"static/media/Tip.113026b9.svg\";","module.exports = __webpack_public_path__ + \"static/media/Outages.edf5c368.svg\";","module.exports = __webpack_public_path__ + \"static/media/DashboardSlider.a03e912c.svg\";","module.exports = __webpack_public_path__ + \"static/media/Processs.17f8f9c8.svg\";","module.exports = __webpack_public_path__ + \"static/media/Complain.0a196228.svg\";","module.exports = __webpack_public_path__ + \"static/media/Faq.1cba17aa.svg\";","module.exports = __webpack_public_path__ + \"static/media/logo.da7872b3.png\";","module.exports = __webpack_public_path__ + \"static/media/Banner1.5d831bfa.png\";","module.exports = __webpack_public_path__ + \"static/media/Banner2.ec230676.png\";","module.exports = __webpack_public_path__ + \"static/media/Disclaimer.624b265d.svg\";","const appUrl = {\r\n // baseUrl: 'https://kblive.jappuat.com:8443/',\r\n baseUrl: 'https://qa-knowledgebase.appinsnap.com/',\r\n \r\n\r\n}\r\nexport default appUrl;\r\n ","import React, { useEffect, useState } from 'react';\r\nimport { Link, useLocation } from 'react-router-dom';\r\nimport classNames from 'classnames';\r\nimport { Menubar } from 'primereact/menubar';\r\nimport { confirmDialog } from \"primereact/confirmdialog\";\r\nimport { useHistory } from 'react-router-dom';\r\nimport { useDispatch } from \"react-redux\";\r\nimport { InputText } from 'primereact/inputtext';\r\nimport appUrl from \"../src/app/constants/appUrl\";\r\nexport const AppTopbar = (props, setRes) => {\r\n const location = useLocation();\r\n const [currentRouteLabel, setCurrentRouteLabel] = useState('');\r\n const [disclaimerList, setDisclaimerList] = useState();\r\n const history = useHistory();\r\n const [displayName, setDisplayName] = useState('');\r\n const isAdmin = localStorage.getItem('admin')\r\n // const token= localStorage.setItem(\"token\", response.data.token);\r\n\r\n const hiddenSearchRoutes = ['/', '/path'];\r\n const handleSearchInputChange = (event) => {\r\n const query = event.target.value;\r\n // props.setSearchQuery(query);\r\n props.onSearch(query);\r\n };\r\n\r\n const items = [\r\n {\r\n label: 'Dashboard',\r\n command: () => history.push('/')\r\n\r\n },\r\n {\r\n label: 'Process',\r\n command: () => history.push('/userprocess')\r\n },\r\n {\r\n label: 'Tutorial and video',\r\n command: () => history.push('/usersocialmedia')\r\n },\r\n {\r\n label: 'Complaints',\r\n command: () => history.push('/usercomplaint')\r\n },\r\n {\r\n label: 'FAQs',\r\n command: () => history.push('/userfaq')\r\n },\r\n\r\n ];\r\n const routeLabels = {\r\n '/dashboard': 'Dashboard',\r\n '/adminzproduct': 'Product',\r\n '/adminzapplourney': 'App Journey',\r\n '/admintipofday': 'Tip Of Day',\r\n '/adminoutage': 'Outages/Degradations',\r\n '/admindisclaimer': 'Disclaimer',\r\n '/admindashboardslider': 'Dashboard Slider',\r\n '/faq': 'Faqs',\r\n '/': 'Dashboard',\r\n '/usersocialmedia': 'Tutorial and Video',\r\n '/userzappjourney': 'App Journey',\r\n '/againstproductprocess': 'App Journey',\r\n '/userztrainingmaterial': 'Training Material',\r\n '/useroutage': 'Outages/Degradations',\r\n '/product': 'Product',\r\n '/userfaq': 'FAQs',\r\n '/userchat': 'Chat',\r\n '/usercomplaint': 'Complaints',\r\n '/userprocess': 'Process',\r\n '/adminztrainingmaterial': 'Training Material',\r\n\r\n }\r\n\r\n\r\n useEffect(() => {\r\n const currentPath = location.pathname;\r\n\r\n setCurrentRouteLabel(routeLabels[currentPath] || '');\r\n }, [location, routeLabels]);\r\n\r\n\r\n\r\n const handleLogout = () => {\r\n window.localStorage.clear();\r\n localStorage.removeItem('login');\r\n localStorage.removeItem('admin');\r\n localStorage.removeItem('user');\r\n history.push('./');\r\n };\r\n const GetAllDisclaimer = async () => {\r\n const token = localStorage.getItem('token')\r\n try {\r\n const response = await fetch(`${appUrl.baseUrl}api/Disclaimer/GetAllDisclaimers`,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Authorization': `Bearer ${token}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n\r\n }\r\n )\r\n const data = await response.json();\r\n setDisclaimerList(data)\r\n\r\n }\r\n catch (error) {\r\n\r\n }\r\n }\r\n\r\n\r\n\r\n useEffect(() => {\r\n const user = JSON.parse(localStorage.getItem('user'));\r\n if (user && user.displayName) {\r\n console.log('Retrieved displayName:', user.displayName); // Debugging step\r\n setDisplayName(user.displayName);\r\n } else {\r\n console.log('User object or displayName not found in localStorage');\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n GetAllDisclaimer()\r\n }, [setRes])\r\n const reject = () => {\r\n return\r\n }\r\n\r\n\r\n return (\r\n
\r\n \r\n {/* {currentRouteLabel} */}\r\n \"logo\"\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {!hiddenSearchRoutes.includes(location.pathname) && (\r\n <>\r\n \r\n \r\n \r\n )}\r\n
\r\n \r\n\r\n
\r\n\r\n Disclaimer:\r\n \r\n {disclaimerList && disclaimerList.length > 0 &&\r\n disclaimerList.filter(disclaimer => disclaimer.active).map((disclaimer, index) => (\r\n \r\n {disclaimer?.disclaimerDescription}\r\n\r\n {index !== disclaimerList.filter(disclaimer => disclaimer.active).length - 1 && ' '}\r\n \r\n ))\r\n }\r\n \r\n\r\n
    \r\n {/*
  • \r\n \r\n\r\n
  • */}\r\n
  • \r\n\r\n {displayName}\r\n\r\n\r\n
  • \r\n
  • \r\n \r\n
  • \r\n
\r\n
\r\n );\r\n}\r\n","import React, { useCallback, useEffect, useRef, useState } from 'react';\r\nimport { RadioButton } from 'primereact/radiobutton';\r\nimport { InputSwitch } from 'primereact/inputswitch';\r\nimport classNames from 'classnames';\r\nimport {Button} from \"primereact/button\";\r\n\r\nexport const AppConfig = (props) => {\r\n\r\n const [active, setActive] = useState(false);\r\n const [scale, setScale] = useState(14);\r\n const [scales] = useState([12,13,14,15,16]);\r\n const [theme, setTheme] = useState('lara-light-indigo');\r\n const config = useRef(null);\r\n let outsideClickListener = useRef(null);\r\n\r\n const unbindOutsideClickListener = useCallback(() => {\r\n if (outsideClickListener.current) {\r\n document.removeEventListener('click', outsideClickListener.current);\r\n outsideClickListener.current = null;\r\n }\r\n }, []);\r\n\r\n const hideConfigurator = useCallback((event) => {\r\n setActive(false);\r\n unbindOutsideClickListener();\r\n event.preventDefault();\r\n }, [unbindOutsideClickListener]);\r\n\r\n const bindOutsideClickListener = useCallback(() => {\r\n if (!outsideClickListener.current) {\r\n outsideClickListener.current = (event) => {\r\n if (active && isOutsideClicked(event)) {\r\n hideConfigurator(event);\r\n }\r\n };\r\n document.addEventListener('click', outsideClickListener.current);\r\n }\r\n }, [active, hideConfigurator]);\r\n\r\n useEffect(() => {\r\n if (active) {\r\n bindOutsideClickListener()\r\n }\r\n else {\r\n unbindOutsideClickListener()\r\n }\r\n }, [active, bindOutsideClickListener, unbindOutsideClickListener]);\r\n\r\n const isOutsideClicked = (event) => {\r\n return !(config.current.isSameNode(event.target) || config.current.contains(event.target));\r\n }\r\n\r\n const decrementScale = () => {\r\n setScale((prevState) => --prevState);\r\n }\r\n\r\n const incrementScale = () => {\r\n setScale((prevState) => ++prevState);\r\n }\r\n\r\n useEffect(() => {\r\n document.documentElement.style.fontSize = scale + 'px';\r\n }, [scale])\r\n\r\n // const toggleConfigurator = (event) => {\r\n // setActive(prevState => !prevState);\r\n // }\r\n\r\n const configClassName = classNames('layout-config', {\r\n 'layout-config-active': active\r\n })\r\n\r\n const replaceLink = useCallback((linkElement, href, callback) => {\r\n if (isIE()) {\r\n linkElement.setAttribute('href', href);\r\n\r\n if (callback) {\r\n callback();\r\n }\r\n }\r\n else {\r\n const id = linkElement.getAttribute('id');\r\n const cloneLinkElement = linkElement.cloneNode(true);\r\n\r\n cloneLinkElement.setAttribute('href', href);\r\n cloneLinkElement.setAttribute('id', id + '-clone');\r\n\r\n linkElement.parentNode.insertBefore(cloneLinkElement, linkElement.nextSibling);\r\n\r\n cloneLinkElement.addEventListener('load', () => {\r\n linkElement.remove();\r\n cloneLinkElement.setAttribute('id', id);\r\n\r\n if (callback) {\r\n callback();\r\n }\r\n });\r\n }\r\n },[])\r\n\r\n useEffect(() => {\r\n let themeElement = document.getElementById('theme-link');\r\n const themeHref = 'assets/themes/' + theme + '/theme.css';\r\n replaceLink(themeElement, themeHref);\r\n\r\n },[theme,replaceLink])\r\n\r\n const isIE = () => {\r\n return /(MSIE|Trident\\/|Edge\\/)/i.test(window.navigator.userAgent)\r\n }\r\n\r\n const changeTheme = (e, theme, scheme) => {\r\n props.onColorModeChange(scheme);\r\n setTheme(theme);\r\n }\r\n\r\n return (\r\n
\r\n {/* */}\r\n
\r\n\r\n
Input Style
\r\n
\r\n
\r\n props.onInputStyleChange(e.value)} checked={props.inputStyle === 'outlined'} />\r\n \r\n
\r\n
\r\n props.onInputStyleChange(e.value)} checked={props.inputStyle === 'filled'} />\r\n \r\n
\r\n
\r\n\r\n
Ripple Effect
\r\n \r\n\r\n
Menu Type
\r\n
\r\n
\r\n props.onLayoutModeChange(e.value)} checked={props.layoutMode === 'static'} />\r\n \r\n
\r\n
\r\n props.onLayoutModeChange(e.value)} checked={props.layoutMode === 'overlay'} />\r\n \r\n
\r\n
\r\n\r\n
Themes
\r\n
Bootstrap
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
Material Design
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
Material Design Compact
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
Tailwind
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
Fluent UI
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
PrimeOne Design - 2022
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
PrimeOne Design - 2021
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n \r\n );\r\n}\r\n","import React, { useState } from 'react';\r\nimport { NavLink } from 'react-router-dom';\r\nimport { CSSTransition } from 'react-transition-group';\r\nimport classNames from 'classnames';\r\nimport { Ripple } from \"primereact/ripple\";\r\nimport { Badge } from 'primereact/badge';\r\n\r\nconst AppSubmenu = (props) => {\r\n\r\n const [activeIndex, setActiveIndex] = useState(null)\r\n\r\n const onMenuItemClick = (event, item, index) => {\r\n //avoid processing disabled items\r\n if (item.disabled) {\r\n event.preventDefault();\r\n return true;\r\n }\r\n\r\n //execute command\r\n if (item.command) {\r\n item.command({ originalEvent: event, item: item });\r\n }\r\n\r\n if (index === activeIndex)\r\n setActiveIndex(null);\r\n else\r\n setActiveIndex(index);\r\n\r\n if (props.onMenuItemClick) {\r\n props.onMenuItemClick({\r\n originalEvent: event,\r\n item: item\r\n });\r\n }\r\n }\r\n\r\n const onKeyDown = (event) => {\r\n if (event.code === 'Enter' || event.code === 'Space') {\r\n event.preventDefault();\r\n event.target.click();\r\n }\r\n }\r\n\r\n const renderLinkContent = (item) => {\r\n let submenuIcon = item.items && (\r\n \r\n );\r\n let badge = item.badge && ;\r\n let customIcon = item.icon && (\r\n \r\n );\r\n return (\r\n \r\n {customIcon}\r\n \r\n {item.label}\r\n\r\n {submenuIcon}\r\n {badge}\r\n \r\n \r\n );\r\n }\r\n\r\n const renderLink = (item, i) => {\r\n let content = renderLinkContent(item);\r\n\r\n if (item.to) {\r\n return (\r\n onMenuItemClick(e, item, i)} exact target={item.target}>\r\n {content}\r\n \r\n )\r\n }\r\n else {\r\n return (\r\n onMenuItemClick(e, item, i)} target={item.target}>\r\n {content}\r\n \r\n );\r\n }\r\n }\r\n\r\n let items = props.items && props.items.map((item, i) => {\r\n let active = activeIndex === i;\r\n let styleClass = classNames(item.badgeStyleClass, { 'layout-menuitem-category': props.root, 'active-menuitem': active && !item.to });\r\n\r\n if (props.root) {\r\n return (\r\n
  • \r\n {props.root === true && \r\n
    {item.label}
    \r\n \r\n
    }\r\n
  • \r\n );\r\n }\r\n else {\r\n return (\r\n
  • \r\n {renderLink(item, i)}\r\n \r\n \r\n \r\n
  • \r\n );\r\n }\r\n });\r\n\r\n return items ?
      {items}
    : null;\r\n}\r\n\r\nexport const AppMenu = (props) => {\r\n\r\n return (\r\n
    \r\n \r\n {/* \r\n \"primeblocks\"\r\n */}\r\n
    \r\n );\r\n}\r\n","import React, { useState, useEffect } from 'react';\r\nimport { Carousel } from 'primereact/carousel';\r\nimport { useHistory } from 'react-router-dom';\r\nimport appUrl from '../../constants/appUrl';\r\nimport logo from \"../../../assets/KbIcons/PRODUCT.png\";\r\n\r\nexport default function Product() {\r\n const [productList, setProductList] = useState([]);\r\n const history = useHistory();\r\n\r\n const viewProduct = (rowData) => {\r\n history.push({\r\n pathname: '/product',\r\n state: { data: rowData },\r\n });\r\n };\r\n\r\n const responsiveOptions = [\r\n {\r\n breakpoint: '1400px',\r\n numVisible: 3,\r\n numScroll: 1,\r\n },\r\n {\r\n breakpoint: '1199px',\r\n numVisible: 2,\r\n numScroll: 1,\r\n },\r\n {\r\n breakpoint: '767px',\r\n numVisible: 1,\r\n numScroll: 1,\r\n },\r\n {\r\n breakpoint: '575px',\r\n numVisible: 1,\r\n numScroll: 1,\r\n },\r\n ];\r\n\r\n const getAllProducts = async () => {\r\n const token = localStorage.getItem('token');\r\n try {\r\n const response = await fetch(`${appUrl.baseUrl}api/Product/GetAllProducts`, {\r\n method: 'GET',\r\n headers: {\r\n 'Authorization': `Bearer ${token}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n\r\n if (!response.ok) {\r\n throw new Error('Network response was not ok');\r\n }\r\n\r\n const data = await response.json();\r\n setProductList(data);\r\n } catch (error) {\r\n console.error('Error fetching products:', error);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n getAllProducts();\r\n }, []);\r\n\r\n if (productList.length === 0) {\r\n return
    Loading...
    ;\r\n }\r\n\r\n const productTemplate = (product) => (\r\n
    \r\n
    \r\n 0\r\n ? `${appUrl.baseUrl}/${product.productAttachment[0].attachmentPath}`\r\n : logo\r\n }\r\n className=\"product-image\"\r\n alt={product.productName || 'Product Image'}\r\n onError={(e) => { e.target.onerror = null; e.target.src = logo; }}\r\n />\r\n
    {product.productName}
    \r\n

    {product.productDescription}

    \r\n viewProduct(product.productId)}\r\n >\r\n View More \r\n \r\n
    \r\n
    \r\n );\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n}\r\n","import React, { useState, useEffect } from 'react';\r\nimport Slider from 'react-slick';\r\nimport 'slick-carousel/slick/slick.css';\r\nimport 'slick-carousel/slick/slick-theme.css';\r\nimport appUrl from \"../../../../constants/appUrl\";\r\nimport { Link } from 'react-router-dom/cjs/react-router-dom.min';\r\nimport Product from '../../../components/Product';\r\n\r\nconst Products = () => {\r\n\r\n const [productList, setProductList] = useState([]);\r\n const [imagesList, setImagesList] = useState([]);\r\n const [imagesBanner, setImagesBanner] = useState([]);\r\n const [tipsList, setTipsList] = useState([]);\r\n\r\n const [outageList, setOutageList] = useState();\r\n const settings = {\r\n // dots: true,\r\n infinite: true,\r\n speed: 500,\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n autoplay: true,\r\n autoplaySpeed: 2000,\r\n arrows: true\r\n };\r\n\r\n const GetOutageDegradation = async () => {\r\n try {\r\n const response = await fetch(`${appUrl.baseUrl}api/OutageDegradation/GetAllOutageDegradation`)\r\n const data = await response.json();\r\n setOutageList(data)\r\n }\r\n catch (error) {\r\n\r\n }\r\n }\r\n const GetComponent = async () => {\r\n try {\r\n const response = await fetch(`${appUrl.baseUrl}api/DashboardComponent/GetAllComponents`)\r\n const data = await response.json();\r\n setProductList(data)\r\n\r\n } catch (error) {\r\n error('Error fetching :', error);\r\n }\r\n }\r\n const GetAllImages = async () => {\r\n try {\r\n const response = await fetch(`${appUrl.baseUrl}api/ImageSlider/GetAllImages`)\r\n const data = await response.json();\r\n setImagesList(data)\r\n\r\n } catch (error) {\r\n error('Error fetching :', error);\r\n }\r\n }\r\n const GetAllBanners = async () => {\r\n try {\r\n const response = await fetch(`${appUrl.baseUrl}api/ImageSlider/GetPromotionImages`)\r\n const data = await response.json();\r\n setImagesBanner(data)\r\n\r\n } catch (error) {\r\n error('Error fetching :', error);\r\n }\r\n }\r\n\r\n const GetAllTips = async () => {\r\n try {\r\n const response = await fetch(`${appUrl.baseUrl}api/Tips/GetTips`)\r\n const data = await response.json();\r\n setTipsList(data)\r\n\r\n } catch (error) {\r\n error('Error fetching components:', error);\r\n }\r\n }\r\n function stripHtmlTags(html) {\r\n let tmp = document.createElement(\"DIV\");\r\n tmp.innerHTML = html;\r\n return tmp.textContent || tmp.innerText || \"\";\r\n }\r\n const cards = [\r\n { id: 1, content: \"Call Center\", para: \"Connecting. Resolving. Empowering\", path: \"/callcenter\" },\r\n { id: 2, content: \"Social Media\", para: \"Seamless. Intuitive. Empowering\", path: \"/socialmedia\" },\r\n { id: 3, content: \"In-App\", para: \"Connecting. Engaging. Inspiring\", path: \"/inapp\" },\r\n ];\r\n\r\n useEffect(() => {\r\n GetAllBanners();\r\n GetAllImages();\r\n\r\n GetOutageDegradation()\r\n GetAllTips();\r\n }, []);\r\n\r\n\r\n return (\r\n <>\r\n
    \r\n
    \r\n
    Welcome to Knowledge Base
    \r\n
    \r\n
    \r\n
    \r\n \r\n {imagesList.map((imagePath, index) => (\r\n
    \r\n \"Attachment\"\r\n
    \r\n\r\n ))}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \"logo\"
    \r\n
    Tip of The Day
    \r\n

    Worried about your bills? Zindigi,\r\n has you covered!

    \r\n
    \r\n
    \r\n\r\n\r\n {tipsList.length> 0 &&((\r\n
    \r\n

    \r\n
    \r\n ))}\r\n {/*
    \r\n

    Still waiting for Upgrade your account?

    \r\n
    */}\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n\r\n
    \r\n

    Outages/Degradations

    \r\n
    \r\n\r\n {Array.isArray(outageList) && outageList.length > 0 ? (\r\n outageList.map((outage, index) => (\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \"logo\"\r\n
    \r\n
    \r\n
    \r\n\r\n
    {outage.channelName?.join(', ')}
    \r\n
    \r\n

    {outage.productName}

    \r\n
    \r\n
    \r\n

    \r\n {new Date(outage.createdDate).toLocaleString('en-GB', {\r\n day: '2-digit',\r\n month: '2-digit',\r\n year: 'numeric',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n second: '2-digit',\r\n hour12: true\r\n })}\r\n

    \r\n
    \r\n \r\n {outage.status}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n ))\r\n ) : (\r\n
    \r\n

    No outages reported.

    \r\n
    \r\n )}\r\n
    \r\n
    \r\n
    \r\n

    Promotions

    \r\n\r\n
    \r\n \r\n {imagesBanner.map((imagePath, index) => (\r\n
    \r\n \"Attachment\"\r\n
    \r\n\r\n ))}\r\n
    \r\n
    \r\n\r\n\r\n\r\n
    \r\n\r\n\r\n\r\n \r\n
    \r\n
    \r\n

    Channel

    \r\n
    \r\n {cards.map(card => (\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n\r\n {card.id === 1 &&
    }\r\n {card.id === 2 &&
    }\r\n {card.id === 3 &&
    }\r\n\r\n\r\n\r\n
    \r\n
    \r\n\r\n\r\n
    {card.content}
    \r\n

    {card.para}

    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    {/* */}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n ))}\r\n\r\n
    \r\n\r\n
    \r\n
    \r\n

    Products

    \r\n
    \r\n \r\n
    \r\n \r\n )\r\n}\r\n\r\nexport default Products;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { Button } from 'primereact/button';\r\nimport { InputText } from \"primereact/inputtext\";\r\nimport { useFormik } from 'formik';\r\nimport * as Yup from 'yup';\r\nimport axios from 'axios';\r\nimport appUrl from \"../../../../constants/appUrl\";\r\nimport { ToastContainer, toast } from 'react-toastify';\r\nimport { Dropdown } from 'primereact/dropdown';\r\nimport 'react-toastify/dist/ReactToastify.css';\r\nimport { MultiSelect } from 'primereact/multiselect';\r\n\r\nconst AddEditFaq = ({ editable, setRes, rowData, setDialog, onHide, GetAllFaq, productId2 }) => {\r\n const [apiRes, setApiRes] = useState();\r\n const [productList, setProductList] = useState();\r\n const [channelList, setChannelList] = useState();\r\n const [faqFields, setFaqFields] = useState([{ question: '', answer: '' }]);\r\n const [loading, setLoading] = useState(false);\r\n\r\n const addValidationSchema = Yup.object().shape({\r\n faqs: Yup.array().of(\r\n Yup.object().shape({\r\n question: Yup.string().required('Required'),\r\n answer: Yup.string().required('Required'),\r\n })\r\n ).min(1, 'At least one FAQ is required')\r\n });\r\n\r\n const updateValidationSchema = Yup.object().shape({\r\n question: Yup.string().required('Question is required'),\r\n answer: Yup.string().required('Answer is required'),\r\n });\r\n\r\n const formik = useFormik({\r\n validationSchema: editable ? updateValidationSchema : addValidationSchema,\r\n initialValues: {\r\n productId: productId2 || '',\r\n channelID: [],\r\n ...(editable ? { question: '', answer: '' } : { faqs: faqFields }),\r\n },\r\n onSubmit: async (data) => {\r\n setLoading(true);\r\n const token = localStorage.getItem('token');\r\n if (!token) {\r\n toast.error(\"No token found. Please log in again.\");\r\n return;\r\n }\r\n try {\r\n data.productId = data.productId || null;\r\n data.channelID = data.channelID.length > 0 ? data.channelID : null;\r\n\r\n if (editable) {\r\n data.id = rowData.id;\r\n const response = await axios.patch(`${appUrl.baseUrl}api/FAQ/UpdateFAQ`, data, {\r\n headers: {\r\n 'Authorization': `Bearer ${token}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n setApiRes(response);\r\n toast.success(\"Updated Successfully\");\r\n setRes(response);\r\n } else {\r\n const response = await axios.post(`${appUrl.baseUrl}api/FAQ/AddNewFAQ`, data, {\r\n headers: {\r\n 'Authorization': `Bearer ${token}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n setApiRes(response);\r\n toast.success(\"Added Successfully\");\r\n setRes(response);\r\n }\r\n setDialog(false);\r\n onHide();\r\n } catch (error) {\r\n toast.error(\"Something went wrong\");\r\n } finally {\r\n setLoading(false);\r\n onHide();\r\n }\r\n },\r\n });\r\n\r\n const getAllProduct = async () => {\r\n const token = localStorage.getItem('token')\r\n try {\r\n const response = await fetch(`${appUrl.baseUrl}api/Product/GetAllProducts`, {\r\n headers: {\r\n 'Authorization': `Bearer ${token}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n const data = await response.json();\r\n setProductList(data);\r\n } catch (error) {\r\n console.error(\"Error fetching products:\", error);\r\n }\r\n }\r\n\r\n const getAllChannel = async () => {\r\n const token = localStorage.getItem('token')\r\n try {\r\n const response = await fetch(`${appUrl.baseUrl}api/Channel/GetAllChannels`, {\r\n headers: {\r\n 'Authorization': `Bearer ${token}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n const data = await response.json();\r\n setChannelList(data);\r\n } catch (error) {\r\n console.error(\"Error fetching channels:\", error);\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n if (editable) {\r\n formik.setFieldValue('productId', rowData?.productID);\r\n formik.setFieldValue('question', rowData?.question);\r\n formik.setFieldValue('answer', rowData?.answer);\r\n formik.setFieldValue('channelID', rowData?.channelId?.length > 0 ? rowData?.channelId : []);\r\n }\r\n }, [editable, rowData]);\r\n\r\n useEffect(() => {\r\n getAllProduct();\r\n getAllChannel();\r\n }, []);\r\n\r\n const addFaqField = () => {\r\n setFaqFields([...faqFields, { question: '', answer: '' }]);\r\n };\r\n\r\n const removeFaqField = (index) => {\r\n const newFaqFields = faqFields.filter((_, i) => i !== index);\r\n setFaqFields(newFaqFields);\r\n formik.setFieldValue('faqs', newFaqFields);\r\n };\r\n\r\n const handleFaqChange = (index, field, value) => {\r\n const newFaqFields = [...faqFields];\r\n newFaqFields[index][field] = value;\r\n setFaqFields(newFaqFields);\r\n formik.setFieldValue('faqs', newFaqFields);\r\n };\r\n\r\n return (\r\n <>\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n\r\n {editable ?\r\n <>\r\n
    \r\n \r\n \r\n {formik.touched.question && formik.errors.question ?
    {formik.errors.question}
    : null}\r\n
    \r\n
    \r\n \r\n \r\n {formik.touched.answer && formik.errors.answer ?
    {formik.errors.answer}
    : null}\r\n
    \r\n \r\n :\r\n faqFields.map((faq, index) => (\r\n \r\n
    \r\n \r\n handleFaqChange(index, 'question', e.target.value)}\r\n />\r\n {formik.touched.faqs && formik.errors.faqs?.[index]?.question ?
    {formik.errors.faqs[index].question}
    : null}\r\n
    \r\n
    \r\n \r\n handleFaqChange(index, 'answer', e.target.value)}\r\n />\r\n {formik.touched.faqs && formik.errors.faqs?.[index]?.answer ?
    {formik.errors.faqs[index].answer}
    : null}\r\n
    \r\n {(index === faqFields.length - 1 && index > 0) ? (\r\n
    \r\n
    \r\n ) : null}\r\n {(index === faqFields.length - 1) ? (\r\n
    \r\n
    \r\n ) : null}\r\n\r\n
    \r\n ))}\r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n}\r\n\r\nexport default AddEditFaq;\r\n","import React from \"react\";\r\nimport logo from \"../../../assets/KbIcons/logo.png\";\r\n\r\nconst Loader = ({ }) => {\r\n return (\r\n <>\r\n \r\n
    \r\n \"Logo\"\r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default Loader;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { Accordion, AccordionTab } from \"primereact/accordion\";\r\nimport { Button } from \"primereact/button\";\r\nimport { ToastContainer, toast } from 'react-toastify';\r\nimport { ConfirmDialog, confirmDialog } from 'primereact/confirmdialog';\r\nimport axios from 'axios';\r\nimport appUrl from \"../../../../constants/appUrl\";\r\nimport AddEditFaq from \"../components/AddEditFaq\";\r\nimport { Dialog } from 'primereact/dialog';\r\n\r\nconst FaqByProduct = ({ channelID, productID }) => {\r\n const [faqList, setFaqList] = useState([]);\r\n const [res, setRes] = useState(null);\r\n const [dialog, setDialog] = useState(false);\r\n const [editable, setEditable] = useState(false); // To determine if it's edit mode or add mode\r\n const [rowSelect, setRowSelect] = useState(null); // FAQ being edited\r\n\r\n const GetAllFAQByID = async () => {\r\n const token = localStorage.getItem(\"token\");\r\n try {\r\n if (channelID && productID) {\r\n const response = await fetch(\r\n `${appUrl.baseUrl}api/FAQ/GetFilteredFAQs/${productID}/${channelID}`,\r\n {\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n \"Content-Type\": \"application/json\",\r\n },\r\n }\r\n );\r\n\r\n if (!response.ok) {\r\n throw new Error(\"Network response was not ok\");\r\n }\r\n\r\n const data = await response.json();\r\n setFaqList(data);\r\n }\r\n } catch (error) {\r\n console.error(\"Failed to fetch FAQs:\", error);\r\n }\r\n };\r\n\r\n const accept = async (faq) => {\r\n try {\r\n const response = await axios.delete(`${appUrl.baseUrl}api/FAQ/DeleteFAQByID/${faq.id}`, {\r\n headers: {\r\n 'Authorization': `Bearer ${localStorage.getItem('token')}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n setRes(response.data);\r\n toast.success(\"Deleted Successfully\");\r\n // Refresh the FAQ list after deletion\r\n GetAllFAQByID();\r\n } catch (error) {\r\n toast.error(\"Failed to delete. Please try again.\");\r\n console.error(\"Error deleting FAQ:\", error);\r\n }\r\n };\r\n\r\n const reject = () => {\r\n // Optionally handle reject action here\r\n };\r\n\r\n const confirm = (faq) => {\r\n confirmDialog({\r\n header: (\r\n
    \r\n \r\n
    \r\n ),\r\n message: (\r\n Are you sure you want to delete this FAQ?\r\n ),\r\n accept: () => accept(faq),\r\n reject: reject,\r\n acceptClassName: 'custom-btn-red',\r\n rejectClassName: 'custom-white-red',\r\n className: 'center-buttons no-close-button',\r\n });\r\n };\r\n\r\n const onEdit = (faq) => {\r\n setRowSelect(faq);\r\n setEditable(true);\r\n setDialog(true);\r\n };\r\n\r\n const editAction = async (rowData) => {\r\n const token = localStorage.getItem('token')\r\n try {\r\n const response = await axios.get(`${appUrl.baseUrl}api/FAQ/GetFAQById/${rowData.id}`, {\r\n headers: {\r\n 'Authorization': `Bearer ${token}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n\r\n });\r\n const data = response.data;\r\n setEditable(true);\r\n setRowSelect(data);\r\n setDialog(true);\r\n } catch (error) {\r\n error(\"Error fetching outage data by ID:\", error);\r\n toast.error(\"Failed to fetch data for editing\");\r\n }\r\n };\r\n\r\n const onHide = () => {\r\n setDialog(false);\r\n setRowSelect(null);\r\n };\r\n\r\n useEffect(() => {\r\n GetAllFAQByID();\r\n }, [productID, channelID, res]);\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n\r\n
    \r\n
    \r\n
    \r\n {faqList.length > 0 ? (\r\n \r\n {faqList.map((faq) => (\r\n \r\n
    \r\n {faq.question}\r\n
    \r\n
    \r\n {\r\n e.stopPropagation();\r\n editAction(faq);\r\n }}\r\n icon=\"pi pi-pencil\"\r\n className=\"p-button-rounded p-button-info p-mr-2\"\r\n />\r\n {\r\n e.stopPropagation();\r\n confirm(faq); // Pass the correct FAQ object\r\n }}\r\n icon=\"pi pi-trash\"\r\n className=\"p-button-rounded p-button-danger ml-1\"\r\n />\r\n
    \r\n \r\n }\r\n key={faq.id}\r\n >\r\n {faq.answer}\r\n \r\n ))}\r\n
    \r\n ) : (\r\n
    No FAQs available for this product.
    \r\n )}\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default FaqByProduct;\r\n","import React, { useState, useEffect } from 'react';\r\nimport appUrl from \"../../../../constants/appUrl\";\r\nimport FaqByProduct from './FaqByProduct';\r\nimport './FaqChannel.css';\r\n\r\nconst FaqChannel = ({ channelID }) => {\r\n const [productList, setProductList] = useState([]);\r\n const [activeProductId, setActiveProductId] = useState(null);\r\n\r\n const getAllProduct = async () => {\r\n const token = localStorage.getItem('token');\r\n\r\n try {\r\n const response = await fetch(`${appUrl.baseUrl}api/product/GetAllProducts`, {\r\n headers: {\r\n 'Authorization': `Bearer ${token}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n\r\n if (!response.ok) {\r\n throw new Error('Network response was not ok');\r\n }\r\n\r\n const data = await response.json();\r\n setProductList(data);\r\n if (data.length > 0) {\r\n setActiveProductId(data[0].productId); // Set the first product as active by default\r\n }\r\n } catch (error) {\r\n console.error('Error fetching products:', error);\r\n // Optionally, set an error state here\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n getAllProduct();\r\n }, []);\r\n\r\n const handleButtonClick = (productId) => {\r\n setActiveProductId(productId);\r\n };\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n {productList.map((product) => (\r\n handleButtonClick(product.productId)}\r\n >\r\n {product.productName}\r\n \r\n ))}\r\n
    \r\n
    \r\n {productList.map((product) => (\r\n activeProductId === product.productId && (\r\n \r\n )\r\n ))}\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default FaqChannel;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { Accordion, AccordionTab } from 'primereact/accordion';\r\nimport appUrl from \"../../../../constants/appUrl\";\r\nimport axios from 'axios';\r\nimport { Column } from 'primereact/column';\r\nimport { TabView, TabPanel } from 'primereact/tabview';\r\nimport { DataTable } from 'primereact/datatable';\r\nimport { Button } from 'primereact/button';\r\nimport { Dialog } from 'primereact/dialog';\r\nimport AddEditFaq from '../components/AddEditFaq';\r\nimport { ToastContainer, toast } from 'react-toastify';\r\nimport Loader from '../../../components/laoder';\r\nimport { confirmDialog } from 'primereact/confirmdialog';\r\nimport FaqChannel from './FaqChannel';\r\nconst Faqs = ({ searchQuery }) => {\r\n\r\n const [faqList, setFaqList] = useState([]);\r\n const [expandedId, setExpandedId] = useState('');\r\n const [filteredData, setFilteredData] = useState([]);\r\n const [dialog, setDialog] = useState();\r\n const [editable, setEditable] = useState();\r\n const [res, setRes] = useState(null)\r\n const [loading, setLoading] = useState(false);\r\n const [rowselect, setRowselect] = useState(null)\r\n const [channelList,setChannelList]= useState()\r\n const getAllChannel = async () => {\r\n \r\n const token =localStorage.getItem('token')\r\n \r\n try {\r\n const response = await fetch(`${appUrl.baseUrl}api/Channel/GetAllChannels`, {\r\n headers: {\r\n 'Authorization': `Bearer ${token}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n \r\n const data = await response.json();\r\n setChannelList(data);\r\n }\r\n catch (error) {\r\n \r\n }\r\n }\r\n useEffect(() => {\r\n getAllChannel()\r\n }, [])\r\n const GetAllFaq = async () => {\r\n const token = localStorage.getItem('token')\r\n try {\r\n setLoading(true);\r\n const response = await fetch(`${appUrl.baseUrl}api/FAQ/GetAllFAQ`,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Authorization': `Bearer ${token}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n }\r\n );\r\n const data = await response.json();\r\n setFaqList(data);\r\n setLoading(false);\r\n } catch (error) {\r\n error('Error fetching:', error);\r\n }\r\n };\r\n\r\n const isAdmin = localStorage.getItem('admin')\r\n\r\n const onHide = () => {\r\n setDialog(false)\r\n }\r\n useEffect(() => {\r\n if (searchQuery) {\r\n setFilteredData(\r\n faqList.filter((item) =>\r\n item.question?.toLowerCase().includes(searchQuery?.toLowerCase())\r\n )\r\n );\r\n } else {\r\n setFilteredData(faqList);\r\n }\r\n }, [searchQuery, faqList]);\r\n\r\n\r\n const accept = async (rowData) => {\r\n try {\r\n \r\n const response = await axios.delete(`${appUrl.baseUrl}api/FAQ/DeleteFAQByID/${rowData?.id}`, {\r\n headers: {\r\n 'Authorization': `Bearer ${localStorage.getItem('token')}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n setRes(response.data);\r\n toast.success(\"Deleted Successfully\");\r\n } catch (error) {\r\n toast.error(\"Failed to delete. Please try again.\");\r\n console.error(\"Error deleting disclaimer:\", error);\r\n }\r\n };\r\n const reject = (rowData) => {\r\n return\r\n }\r\n const confirm = (rowData) => {\r\n confirmDialog({\r\n header: (\r\n
    \r\n \r\n\r\n
    \r\n ),\r\n message: (\r\n Are you sure you want to delete this FAQs?\r\n ),\r\n accept: () => accept(rowData),\r\n reject: () => reject(rowData),\r\n acceptClassName: 'custom-btn-red',\r\n rejectClassName: 'custom-white-red',\r\n className: 'center-buttons no-close-button',\r\n });\r\n };\r\n\r\n const actionTemplate = (rowData) => {\r\n return (\r\n
    \r\n
    \r\n );\r\n }\r\n const editAction = async (rowData) => {\r\n const token = localStorage.getItem('token')\r\n try {\r\n const response = await axios.get(`${appUrl.baseUrl}api/FAQ/GetFAQById/${rowData.id}`, {\r\n headers: {\r\n 'Authorization': `Bearer ${token}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n\r\n });\r\n const data = response.data;\r\n setEditable(true);\r\n setRowselect(data);\r\n setDialog(true);\r\n } catch (error) {\r\n error(\"Error fetching outage data by ID:\", error);\r\n toast.error(\"Failed to fetch data for editing\");\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n GetAllFaq();\r\n }, [res]);\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n
    \r\n
    \r\n
    FAQ's
    \r\n
    \r\n \r\n {isAdmin === 'true' || isAdmin === true ? (\r\n
    \r\n
    \r\n ) :\r\n null\r\n }\r\n
    \r\n\r\n
    \r\n\r\n
    \r\n {loading && }\r\n
    \r\n \r\n {channelList?.map((channel, index) => (\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default Faqs;\r\n","\r\n\r\nimport React, { useState, useEffect, useMemo, useRef } from 'react'\r\nimport { Button } from 'primereact/button'\r\nimport { InputText } from \"primereact/inputtext\";\r\nimport { useFormik } from 'formik';\r\nimport * as Yup from 'yup';\r\nimport axios from 'axios';\r\nimport { MultiSelect } from 'primereact/multiselect';\r\nimport appUrl from \"../../../../constants/appUrl\";\r\nimport { Dropdown } from 'primereact/dropdown';\r\nimport { ToastContainer, toast } from 'react-toastify';\r\nimport 'react-toastify/dist/ReactToastify.css';\r\n\r\nimport JoditEditor from 'jodit-react';\r\nconst AddEditProcessInformation = ({ editable, setRes, rowData, setDialog, onHide, placeholder, productId2 }) => {\r\n\r\n const [productList, setProductList] = useState();\r\n const [apiRes, setApiRes] = useState();\r\n const [loading, setLoading] = useState(false);\r\n const [content, setContent] = useState('');\r\n const [channelList, setChannelList] = useState();\r\n const [selectedFiles, setSelectedFiles] = useState([])\r\n const [isChannelSelected, setIsChannelSelected] = useState(false);\r\n const editor = useRef(null);\r\n const allowedFileExtensions = [\r\n '.pdf', '.doc', '.docx', '.xls', '.xlsx', '.mp3', '.mp4', '.png', '.jpg', '.webm', '.mpeg', '.svg','.mov'\r\n ];\r\n const validationSchema = Yup.object({\r\n channelID: Yup.array().min(1, 'Required').of(Yup.string()).required('Required'),\r\n description: Yup.string().required('Required'),\r\n processName: Yup.string().required('Required').max(30, 'Process Name must be 30 characters'),\r\n policyPrefix: Yup.string().required('Required').max(30, 'Policy Prefix must be 30 characters'),\r\n processAttachments: Yup.array().min(1, 'At least one attachment is required').required('Required'),\r\n\r\n\r\n });\r\n const formik = useFormik({\r\n validationSchema: validationSchema,\r\n initialValues: {\r\n description: '',\r\n productId: productId2 || '',\r\n processName: '',\r\n channelID: [],\r\n policyPrefix: '',\r\n processAttachments: []\r\n\r\n },\r\n\r\n onSubmit: async (data) => {\r\n setLoading(true);\r\n // data.description = content;\r\n if (!data.productId) {\r\n data.productId = 0;\r\n }\r\n const token = localStorage.getItem('token');\r\n if (!token) {\r\n toast.error(\"No token found. Please log in again.\");\r\n return;\r\n }\r\n try {\r\n\r\n const newData = {\r\n description: data.description,\r\n policyPrefix: data.policyPrefix,\r\n productId: data.productId,\r\n channelID: data.channelID,\r\n processName: data.processName,\r\n processAttachments: data.processAttachments.map(attachment => ({ attachmentPath: attachment.file }))\r\n };\r\n\r\n if (editable) {\r\n newData.processId = rowData.processId;\r\n newData.channelID = data.channelID.length > 0 ? data.channelID[0] : null;\r\n\r\n const response = await axios.patch(`${appUrl.baseUrl}api/Process/UpdateProcess`, newData, {\r\n headers: {\r\n 'Authorization': `Bearer ${token}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n setApiRes(response);\r\n toast.success(\"updated Succesfully\")\r\n setRes(response);\r\n }\r\n else {\r\n newData.channelID = data.channelID;\r\n const response = await axios.post(`${appUrl.baseUrl}api/Process/AddNewProcess`, newData, {\r\n headers: {\r\n 'Authorization': `Bearer ${token}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n setApiRes(response);\r\n toast.success(\"Added Succesfully\")\r\n setRes(response);\r\n }\r\n\r\n\r\n\r\n setDialog(false);\r\n } catch (error) {\r\n toast.error(\"Something went wrong\");\r\n } finally {\r\n setLoading(true);\r\n onHide();\r\n\r\n\r\n }\r\n },\r\n\r\n });\r\n const config = useMemo(() => ({\r\n readonly: false,\r\n placeholder: placeholder || ''\r\n }), [placeholder]);\r\n\r\n useEffect(() => {\r\n if (editable) {\r\n formik.setFieldValue('productId', rowData?.productId);\r\n formik.setFieldValue('channelID', rowData.channelId?.length > 0 ? rowData?.channelId : []);\r\n formik.setFieldValue('processName', rowData?.processName);\r\n formik.setFieldValue('policyPrefix', rowData?.policyPrefix);\r\n formik.setFieldValue('description', rowData?.description);\r\n if (rowData?.processAttachments) {\r\n const processAttachmentssWithBaseUrl = rowData.processAttachments.map((attachment) => ({\r\n isImage: attachment?.attachmentPath.endsWith('.png') || attachment?.attachmentPath.endsWith('.jpg') || attachment?.attachmentPath.endsWith('.jpeg'),\r\n file: `${attachment?.attachmentPath}`,\r\n name: attachment?.attachmentPath.split('\\\\').pop(),\r\n }));\r\n formik.setFieldValue('processAttachments', processAttachmentssWithBaseUrl);\r\n // setSelectedFiles(processAttachmentssWithBaseUrl);\r\n }\r\n }\r\n }, [editable, rowData]);\r\n\r\n const handleFileUpload = (event) => {\r\n const files = event.target.files;\r\n const imagesArray = Array.from(files);\r\n let newImagesBase64 = [];\r\n let hasInvalidFile = false;\r\n\r\n imagesArray.forEach((file) => {\r\n const fileExtension = file.name.split('.').pop();\r\n // if (!allowedFileExtensions.includes(`.${fileExtension}`)) {\r\n // toast.error(`${file.name} is not a supported file type`);\r\n // hasInvalidFile = true;\r\n // return;\r\n // }\r\n const isImage = file.type.includes('image')\r\n const reader = new FileReader();\r\n reader.onload = () => {\r\n const base64String = reader.result;\r\n newImagesBase64.push({ isImage, file: base64String, name: file.name });\r\n\r\n if (newImagesBase64.length === imagesArray.length) {\r\n formik.setFieldValue(\"processAttachments\", [\r\n ...formik.values.processAttachments,\r\n ...newImagesBase64,\r\n ]);\r\n }\r\n };\r\n reader.readAsDataURL(file);\r\n });\r\n if\r\n (hasInvalidFile) {\r\n event.target.value = null;\r\n\r\n }\r\n };\r\n\r\n const handleRemoveImage = (indexToRemove) => {\r\n const updatedGallery = formik.values.processAttachments.filter(\r\n (_, index) => index !== indexToRemove\r\n );\r\n formik.setFieldValue(\"processAttachments\", updatedGallery);\r\n };\r\n const getAllProduct = async () => {\r\n const token = localStorage.getItem('token')\r\n try {\r\n const response = await fetch(`${appUrl.baseUrl}api/Product/GetAllProducts`, {\r\n headers: {\r\n 'Authorization': `Bearer ${token}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n })\r\n const data = await response.json();\r\n setProductList(data);\r\n }\r\n catch (error) {\r\n error(error)\r\n }\r\n }\r\n const getAllChannel = async () => {\r\n const token = localStorage.getItem('token')\r\n try {\r\n const response = await fetch(`${appUrl.baseUrl}api/Channel/GetAllChannels`, {\r\n headers: {\r\n 'Authorization': `Bearer ${token}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n })\r\n const data = await response.json();\r\n setChannelList(data);\r\n }\r\n catch (error) {\r\n }\r\n }\r\n useEffect(() => {\r\n getAllProduct()\r\n getAllChannel()\r\n }, [])\r\n return (\r\n <>\r\n \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n {/* {formik.touched.productId && formik.errors.productId ?
    {formik.errors.productId}
    : null} */}\r\n
    \r\n
    \r\n \r\n {editable ? (\r\n\r\n \r\n ) : (\r\n \r\n )}\r\n {formik.touched.channelID && formik.errors.channelID ? (\r\n
    {formik.errors.channelID}
    \r\n ) : null}\r\n
    \r\n\r\n
    \r\n \r\n \r\n {formik.touched.processName && formik.errors.processName ?
    {formik.errors.processName}
    : null}\r\n
    \r\n\r\n
    \r\n \r\n \r\n {formik.touched.policyPrefix && formik.errors.policyPrefix ?
    {formik.errors.policyPrefix}
    : null}\r\n
    \r\n\r\n
    \r\n \r\n setContent(newContent)}\r\n onChange={newContent => formik.setFieldValue('description', newContent)}\r\n />\r\n {formik.touched.description && formik.errors.description ?
    {formik.errors.description}
    : null}\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n handleFileUpload(event)}\r\n // accept='image/*'\r\n accept='.pdf,.doc,.docx,.xls,.xlsx,.mp3,.mp4,.png,.jpg,.webm,.mpeg'\r\n multiple\r\n className='d-none my-3 '\r\n />\r\n
    \r\n\r\n\r\n
    \r\n {editable ?\r\n
    \r\n {formik.values.processAttachments.map((attachment, index) => (\r\n
    \r\n\r\n {attachment.isImage ? {`Image : <>{attachment.name}}\r\n {\r\n e.stopPropagation();\r\n handleRemoveImage(index);\r\n }}\r\n />\r\n
    \r\n ))}\r\n\r\n
    \r\n :\r\n
    \r\n {formik.values.processAttachments.map((attachment, index) => (\r\n
    \r\n\r\n {attachment.isImage ? {`Image : <>{attachment.name}}\r\n {\r\n e.stopPropagation();\r\n handleRemoveImage(index);\r\n }}\r\n />\r\n
    \r\n ))}\r\n\r\n
    \r\n }\r\n\r\n\r\n
    \r\n {formik.touched.processAttachments && formik.errors.processAttachments ?
    {formik.errors.processAttachments}
    : null}\r\n\r\n
    \r\n\r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n\r\n\r\n
    \r\n \r\n )\r\n}\r\n\r\nexport default AddEditProcessInformation","import React from 'react';\r\nimport Slider from 'react-slick';\r\nimport 'slick-carousel/slick/slick.css';\r\nimport 'slick-carousel/slick/slick-theme.css';\r\nimport appUrl from \"../../../../constants/appUrl\";\r\n\r\nconst ViewAttachment = ({ attachment }) => {\r\n\r\n const settings = {\r\n dots: true,\r\n infinite: true,\r\n speed: 500,\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n autoplay: true,\r\n autoplaySpeed: 2000,\r\n };\r\n const renderSlider = () => {\r\n if (attachment.length > 1) {\r\n return (\r\n \r\n {attachment.map((imagePath, index) => (\r\n
    \r\n \"Attachment\"\r\n
    \r\n ))}\r\n
    \r\n );\r\n } else if (attachment.length === 1) {\r\n return (\r\n \"Attachment\"\r\n );\r\n } else {\r\n return

    No images available

    ;\r\n }\r\n };\r\n\r\n return (\r\n
    \r\n {renderSlider()}\r\n
    \r\n );\r\n};\r\n\r\nexport default ViewAttachment;\r\n","import React, { useState, useEffect, useMemo, useRef } from 'react';\r\nimport JoditEditor from 'jodit-react';\r\n\r\nconst CustomDescription = ({ placeholder, description }) => {\r\n const [content, setContent] = useState(description);\r\n const editor = useRef(null);\r\n\r\n const config = useMemo(() => ({\r\n readonly: true,\r\n placeholder: placeholder || 'Typing',\r\n }), [placeholder]);\r\n\r\n useEffect(() => {\r\n setContent(description);\r\n }, [description]);\r\n\r\n return (\r\n
    \r\n
    \r\n setContent(newContent)}\r\n />\r\n
    \r\n
    \r\n );\r\n}\r\n\r\nexport default CustomDescription;\r\n","import React from 'react';\r\nimport Slider from 'react-slick';\r\nimport 'slick-carousel/slick/slick.css';\r\nimport 'slick-carousel/slick/slick-theme.css';\r\nimport appUrl from '../../constants/appUrl';\r\n\r\nconst CustomVideo = ({ videoAttachments }) => {\r\n const settings = {\r\n dots: true,\r\n infinite: true,\r\n speed: 500,\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n autoplay: true,\r\n autoplaySpeed: 2000,\r\n };\r\n\r\n const renderSlider = () => {\r\n if (videoAttachments.length > 1) {\r\n return (\r\n \r\n {videoAttachments.map((attachment, index) => (\r\n
    \r\n \r\n
    \r\n ))}\r\n
    \r\n );\r\n } else if (videoAttachments.length === 1) {\r\n const attachment = videoAttachments[0]; // Extract the single attachment\r\n return (\r\n \r\n );\r\n } else {\r\n return

    No videos available

    ;\r\n }\r\n };\r\n\r\n return (\r\n
    \r\n {renderSlider()}\r\n
    \r\n );\r\n};\r\n\r\nexport default CustomVideo;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { Column } from 'primereact/column';\r\nimport { Button } from 'primereact/button';\r\nimport { DataTable } from 'primereact/datatable';\r\nimport { ToastContainer, toast } from 'react-toastify';\r\nimport 'react-toastify/dist/ReactToastify.css';\r\nimport { Dialog } from 'primereact/dialog';\r\nimport axios from 'axios';\r\nimport appUrl from '../../../../constants/appUrl';\r\nimport AddEditProcessInformation from '../components/AddEditProcessInformation';\r\nimport ViewAttachment from '../components/ViewAttachment';\r\n\r\nimport { ConfirmDialog, confirmDialog } from 'primereact/confirmdialog';\r\nimport { FilterMatchMode } from \"primereact/api\";\r\nimport { InputText } from 'primereact/inputtext';\r\nimport CustomDescription from '../../../components/CustomDescription';\r\nimport CustomVideo from '../../../components/CustomVideo';\r\nconst ProcessInformation = ({ product, productId2, searchQuery }) => {\r\n console.log('productId2', productId2)\r\n console.log('productId', product)\r\n\r\n const [dialog, setDialog] = useState();\r\n const [editable, setEditable] = useState();\r\n const [rowselect, setRowselect] = useState(null)\r\n const [res, setRes] = useState();\r\n const [viewAttachmentDialog, setViewAttachmentDialog] = useState(false);\r\n const [selectedAttachment, setSelectedAttachment] = useState(null);\r\n const [productList, setProductList] = useState([]);\r\n\r\n const [filteredData, setFilteredData] = useState([]);\r\n const [descriptionDialog, setDescriptionDialog] = useState(false);\r\n const [descriptionContent, setDescriptionContent] = useState('');\r\n const [videoAttachmentDialog, setVideoAttachmentDialog] = useState(false);\r\n const [selectedVideoAttachment, setSelectedVideoAttachment] = useState(null);\r\n\r\n const GetProcessById = async (productId, productId2) => {\r\n const token =localStorage.getItem('token')\r\n try {\r\n\r\n const response = await fetch(`${appUrl.baseUrl}api/Process/GetProcessByProductId/${productId || productId2}`,\r\n {\r\n method:'GET',\r\n headers:{\r\n 'Authorization':`Bearer ${token}`,\r\n 'Content-Type':'application/json'\r\n }\r\n }\r\n );\r\n\r\n const data = await response.json();\r\n setProductList(data);\r\n\r\n } catch (error) {\r\n error('Error fetching :', error);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if ((product && product?.productId) || productId2) {\r\n GetProcessById(product?.productId, productId2);\r\n }\r\n }, [product, res, productId2]);\r\n\r\n const onHideVideoAttachment = () => {\r\n setVideoAttachmentDialog(false);\r\n };\r\n\r\n const actionDocument = (rowData) => {\r\n const documentsToDownload = rowData.processAttachments.filter(attachment =>\r\n attachment.attachmentPath.endsWith('.docx') ||\r\n attachment.attachmentPath.endsWith('.pdf') ||\r\n attachment.attachmentPath.endsWith('.xlsx')\r\n );\r\n\r\n const documentPaths = documentsToDownload.map(document => document.attachmentPath);\r\n const hasImage = rowData.processAttachments.some(attachment => attachment.attachmentPath.endsWith('.png') || attachment.attachmentPath.endsWith('.jpg') || attachment.attachmentPath.endsWith('.jpeg'));\r\n const hasVideo = rowData.processAttachments.some(attachment => attachment.attachmentPath.endsWith('.mp4') || attachment.attachmentPath.endsWith('.mp5') || attachment.attachmentPath.endsWith('.webm')|| attachment.attachmentPath.endsWith('.mov')|| attachment.attachmentPath.endsWith('.3gp')|| attachment.attachmentPath.endsWith('.3g2')|| attachment.attachmentPath.endsWith('.mpeg'));\r\n\r\n return (\r\n
    \r\n {documentsToDownload.length > 0 && (\r\n downloadDocuments(documentPaths)}\r\n />\r\n )}\r\n {hasImage && (\r\n
    \r\n );\r\n }\r\n\r\n useEffect(() => {\r\n if (searchQuery) {\r\n setFilteredData(\r\n productList?.filter((item) =>\r\n item.productName?.toLowerCase().includes(searchQuery?.toLowerCase())||\r\n item.channelName?.toLowerCase().includes(searchQuery?.toLowerCase())||\r\n item.processName?.toLowerCase().includes(searchQuery?.toLowerCase())||\r\n item.policyPrefix?.toLowerCase().includes(searchQuery?.toLowerCase())\r\n\r\n )\r\n );\r\n } else {\r\n setFilteredData(productList);\r\n }\r\n }, [searchQuery, productList,res]);\r\n\r\n \r\n const accept = async (rowData) => {\r\n try {\r\n const response = await axios.delete(`${appUrl.baseUrl}api/Process/DeleteProcessByID/${rowData.processId}/${rowData.channelId}`, {\r\n headers: {\r\n 'Authorization': `Bearer ${localStorage.getItem('token')}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n setRes(response.data);\r\n toast.success(\"Deleted Successfully\");\r\n } catch (error) {\r\n toast.error(\"Failed to delete. Please try again.\");\r\n console.error(\"Error deleting disclaimer:\", error);\r\n }\r\n };\r\n\r\n const reject = (rowData) => {\r\n return\r\n }\r\n const confirm = (rowData) => {\r\n confirmDialog({\r\n header: (\r\n
    \r\n \r\n \r\n
    \r\n ),\r\n message: (\r\n Are you sure you want to delete this Process ?\r\n ),\r\n accept: () => accept(rowData),\r\n reject: () => reject(rowData),\r\n acceptClassName: 'custom-btn-red' ,\r\n rejectClassName: 'custom-white-red',\r\n className: 'center-buttons no-close-button',\r\n });\r\n };\r\n const isAdmin = localStorage.getItem('admin')\r\n const actionTemplate = (rowData) => {\r\n return (\r\n
    \r\n
    \r\n );\r\n }\r\n const editAction = async (rowData) => {\r\n try {\r\n const response = await axios.get(`${appUrl.baseUrl}api/Process/GetProcessByProcessId/${rowData.processId}/${rowData.channelId}`);\r\n const data = response.data;\r\n setEditable(true);\r\n setRowselect(data);\r\n setDialog(true);\r\n } catch (error) {\r\n error(\"Error fetching outage data by ID:\", error);\r\n toast.error(\"Failed to fetch data for editing\");\r\n }\r\n };\r\n const downloadDocuments = async (documentPaths) => {\r\n try {\r\n for (let i = 0; i < documentPaths.length; i++) {\r\n const documentPath = documentPaths[i];\r\n const response = await fetch(`${appUrl.baseUrl}${documentPath}`);\r\n const blob = await response.blob();\r\n const url = URL.createObjectURL(blob);\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.setAttribute('download', '');\r\n link.setAttribute('target', '_blank');\r\n link.click();\r\n URL.revokeObjectURL(url);\r\n await new Promise(resolve => setTimeout(resolve, 1000)); // Delay each download by 1 second\r\n }\r\n } catch (error) {\r\n console.error(\"Error downloading documents:\", error);\r\n toast.error(\"Failed to download documents\");\r\n }\r\n };\r\n\r\n\r\n const onHide = () => {\r\n setDialog(false)\r\n }\r\n\r\n const onHideViewAttachment = () => {\r\n setViewAttachmentDialog(false);\r\n };\r\n const showDescription = (description) => {\r\n setDescriptionContent(description);\r\n setDescriptionDialog(true);\r\n };\r\n const onHideDescriptionDialog = () => {\r\n setDescriptionDialog(false);\r\n };\r\n\r\n\r\n return (<>\r\n \r\n \r\n \r\n \r\n \r\n \r\n {selectedAttachment && }\r\n \r\n \r\n {selectedVideoAttachment && }\r\n \r\n \r\n \r\n \r\n\r\n
    \r\n
    \r\n {/*
    ProductName
    */}\r\n
    \r\n {isAdmin === 'true' || isAdmin === true ? (\r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n ) : null}\r\n\r\n
    \r\n
    \r\n \r\n \r\n {/* */}\r\n (\r\n \r\n {rowData.channelName.length > 15 ? `${rowData.channelName.slice(0, 15)}...` : rowData.channelName}\r\n \r\n )} />\r\n {/* */}\r\n (\r\n \r\n {rowData.processName.length > 15 ? `${rowData.processName.slice(0, 15)}...` : rowData.processName}\r\n \r\n )} />\r\n (\r\n \r\n {rowData.policyPrefix.length > 15 ? `${rowData.policyPrefix.slice(0, 15)}...` : rowData.policyPrefix}\r\n \r\n )} />\r\n (\r\n {\r\n e.preventDefault();\r\n showDescription(rowData.description);\r\n }}\r\n style={{ cursor: 'pointer', color: '#00b0ab', textDecoration: 'underline' }}\r\n >\r\n View Description\r\n \r\n )}\r\n />\r\n\r\n {/* */}\r\n \r\n new Date(rowData.createdDate).toLocaleString('en-GB', {\r\n day: '2-digit',\r\n month: '2-digit',\r\n year: 'numeric',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n hour12: true\r\n })} />\r\n {\r\n if (!rowData.updatedDate) {\r\n return '-';\r\n }\r\n return new Date(rowData.updatedDate).toLocaleString('en-GB', {\r\n day: '2-digit',\r\n month: '2-digit',\r\n year: 'numeric',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n hour12: true,\r\n });\r\n }}\r\n />\r\n \r\n {isAdmin === 'true' || isAdmin === true ? (\r\n \r\n ) : null}\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default ProcessInformation;\r\n","import React, { useState, useEffect, useMemo, useRef } from 'react';\r\nimport { Button } from 'primereact/button';\r\nimport { InputText } from 'primereact/inputtext';\r\nimport { useFormik } from 'formik';\r\nimport * as Yup from 'yup';\r\nimport axios from 'axios';\r\nimport appUrl from '../../../../constants/appUrl';\r\nimport { ToastContainer, toast } from 'react-toastify';\r\nimport 'react-toastify/dist/ReactToastify.css';\r\nimport { MultiSelect } from 'primereact/multiselect';\r\nimport { Dropdown } from 'primereact/dropdown';\r\n\r\nimport JoditEditor from 'jodit-react';\r\nconst AddEditComplaints = ({ onHide, setDialog, editable, rowData, setRes, placeholder, productId2 }) => {\r\n const [apiRes, setApiRes] = useState();\r\n const [productList, setProductList] = useState();\r\n const [selectedFiles, setSelectedFiles] = useState([]);\r\n const [channelList, setChannelList] = useState();\r\n const [loading, setLoading] = useState(false);\r\n const editor = useRef(null);\r\n const [content, setContent] = useState('');\r\n const allowedFileExtensions = [\r\n '.pdf', '.doc', '.docx', '.xls', '.xlsx', '.mp3', '.mp4', '.png', '.jpg', '.webm', '.mpeg', '.svg','.mov'\r\n ];\r\n const validationSchema = Yup.object({\r\n channelID: Yup.array().min(1, 'Required').of(Yup.string()).required('Required'),\r\n complaintDescription: Yup.string().required('Required'),\r\n complaintPrefix: Yup.string().required('Required').max(30, 'Policy Prefix must be 30 characters'),\r\n complaintProcessName: Yup.string().required('Required').max(30, 'Process Name must be 30 characters'),\r\n complaintAttachment: Yup.array().min(1, 'At least one attachment is required').required('Required'),\r\n\r\n });\r\n\r\n const formik = useFormik({\r\n validationSchema: validationSchema,\r\n initialValues: {\r\n complaintDescription: '',\r\n productId: productId2 || '',\r\n complaintPrefix: '',\r\n complaintProcessName: '',\r\n channelID: [],\r\n complaintAttachment: [],\r\n },\r\n onSubmit: async (data) => {\r\n setLoading(true);\r\n // data.complaintDescription = content;\r\n if (!data.productId) {\r\n data.productId = 0;\r\n }\r\n const token = localStorage.getItem('token');\r\n if (!token) {\r\n toast.error(\"No token found. Please log in again.\");\r\n return;\r\n }\r\n try {\r\n const newData = {\r\n complaintDescription: data?.complaintDescription,\r\n productId: data?.productId,\r\n complaintPrefix: data?.complaintPrefix,\r\n complaintProcessName: data?.complaintProcessName,\r\n channelId: data?.channelID,\r\n complaintAttachment: data.complaintAttachment.map(attachment => ({ attachmentPath: attachment.file }))\r\n };\r\n if (editable) {\r\n newData.complaintID = rowData.complaintID;\r\n newData.channelId = data.channelID.length > 0 ? data.channelID[0] : null;\r\n const response = await axios.patch(`${appUrl.baseUrl}api/Complaint/UpdateComplaint`, newData, {\r\n headers: {\r\n 'Authorization': `Bearer ${token}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n setApiRes(response);\r\n toast.success(\"updated Succesfully\")\r\n setRes(response);\r\n }\r\n\r\n else {\r\n newData.channelId = data.channelID;\r\n const response = await axios.post(`${appUrl.baseUrl}api/Complaint/AddNewComplaint`, newData, {\r\n headers: {\r\n 'Authorization': `Bearer ${token}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n setApiRes(response);\r\n setRes(response);\r\n toast.success(\"Added Successfully\");\r\n setDialog(false);\r\n }\r\n setDialog(false);\r\n } catch (error) {\r\n toast.error(\"Something went wrong\");\r\n } finally {\r\n setLoading(false);\r\n onHide();\r\n }\r\n },\r\n });\r\n useEffect(() => {\r\n if (editable) {\r\n formik.setFieldValue('productId', rowData?.productID);\r\n formik.setFieldValue('channelID', rowData.channelId?.length > 0 ? rowData?.channelId : []);\r\n formik.setFieldValue('complaintProcessName', rowData?.complaintProcessName);\r\n formik.setFieldValue('complaintPrefix', rowData?.complaintPrefix);\r\n formik.setFieldValue('complaintDescription', rowData?.complaintDescription);\r\n if (rowData?.complaintAttachment) {\r\n const complaintAttachmentWithBaseUrl = rowData.complaintAttachment.map((attachment) => ({\r\n isImage: attachment?.attachmentPath.endsWith('.png') || attachment?.attachmentPath.endsWith('.jpg') || attachment?.attachmentPath.endsWith('.jpeg'),\r\n file: `${attachment?.attachmentPath}`,\r\n name: attachment?.attachmentPath.split('\\\\').pop(),\r\n }));\r\n formik.setFieldValue('complaintAttachment', complaintAttachmentWithBaseUrl);\r\n // setSelectedFiles(complaintAttachmentWithBaseUrl);\r\n }\r\n }\r\n }, [editable, rowData]);\r\n const config = useMemo(() => ({\r\n readonly: false,\r\n placeholder: placeholder || ''\r\n }), [placeholder]);\r\n\r\n const handleFileUpload = (event) => {\r\n const files = event.target.files;\r\n const imagesArray = Array.from(files);\r\n let newImagesBase64 = [];\r\n let hasInvalidFile = false;\r\n\r\n imagesArray.forEach((file) => {\r\n const fileExtension = file.name.split('.').pop();\r\n // if (!allowedFileExtensions.includes(`.${fileExtension}`)) {\r\n // toast.error(`${file.name} is not a supported file type`);\r\n // hasInvalidFile = true;\r\n // return;\r\n // }\r\n const isImage = file.type.includes('image')\r\n const reader = new FileReader();\r\n reader.onload = () => {\r\n const base64String = reader.result;\r\n newImagesBase64.push({ isImage, file: base64String, name: file.name });\r\n\r\n if (newImagesBase64.length === imagesArray.length) {\r\n formik.setFieldValue(\"complaintAttachment\", [\r\n ...formik.values.complaintAttachment,\r\n ...newImagesBase64,\r\n ]);\r\n }\r\n };\r\n // setSelectedFiles(newImagesBase64)\r\n reader.readAsDataURL(file);\r\n });\r\n if\r\n (hasInvalidFile) {\r\n event.target.value = null;\r\n\r\n }\r\n };\r\n const handleRemoveImage = (indexToRemove) => {\r\n const updatedGallery = formik.values.complaintAttachment.filter((_, index) => index !== indexToRemove);\r\n formik.setFieldValue(\"complaintAttachment\", updatedGallery);\r\n };\r\n\r\n const getAllProduct = async () => {\r\n const token = localStorage.getItem('token')\r\n try {\r\n const response = await fetch(`${appUrl.baseUrl}api/Product/GetAllProducts`, {\r\n headers: {\r\n 'Authorization': `Bearer ${token}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n const data = await response.json();\r\n setProductList(data);\r\n } catch (error) {\r\n error(error);\r\n }\r\n };\r\n\r\n const getAllChannel = async () => {\r\n const token = localStorage.getItem('token')\r\n try {\r\n const response = await fetch(`${appUrl.baseUrl}api/Channel/GetAllChannels`, {\r\n headers: {\r\n 'Authorization': `Bearer ${token}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n const data = await response.json();\r\n setChannelList(data);\r\n } catch (error) {\r\n error(error);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n getAllProduct();\r\n getAllChannel();\r\n }, []);\r\n\r\n\r\n return (\r\n <>\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n {editable ? (\r\n\r\n \r\n ) : (\r\n \r\n )}\r\n {formik.touched.channelID && formik.errors.channelID ? (\r\n
    {formik.errors.channelID}
    \r\n ) : null}\r\n
    \r\n\r\n
    \r\n \r\n \r\n {formik.touched.complaintProcessName && formik.errors.complaintProcessName ?
    {formik.errors.complaintProcessName}
    : null}\r\n
    \r\n\r\n
    \r\n \r\n \r\n {formik.touched.complaintPrefix && formik.errors.complaintPrefix ?
    {formik.errors.complaintPrefix}
    : null}\r\n
    \r\n\r\n\r\n
    \r\n \r\n setContent(newContent)}\r\n onChange={newContent => formik.setFieldValue('complaintDescription', newContent)}\r\n />\r\n {formik.touched.complaintDescription && formik.errors.complaintDescription ?
    {formik.errors.complaintDescription}
    : null}\r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n handleFileUpload(event)}\r\n accept='.pdf,.doc,.docx,.xls,.xlsx,.mp3,.mp4,.png,.jpg,.webm,.mpeg'\r\n multiple\r\n className='d-none my-3 '\r\n />\r\n
    \r\n
    \r\n {editable ?\r\n
    \r\n {formik.values.complaintAttachment.map((attachment, index) => (\r\n
    \r\n\r\n {attachment.isImage ? {`Image : <>{attachment.name}}\r\n handleRemoveImage(index)}\r\n />\r\n
    \r\n ))}\r\n
    \r\n :\r\n
    \r\n {formik.values.complaintAttachment.map((attachment, index) => (\r\n
    \r\n\r\n {attachment.isImage ? {`Image : <>{attachment.name}}\r\n handleRemoveImage(index)}\r\n />\r\n
    \r\n ))}\r\n
    }\r\n
    \r\n {formik.touched.complaintAttachment && formik.errors.complaintAttachment ?
    {formik.errors.complaintAttachment}
    : null}\r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default AddEditComplaints;\r\n","import React from 'react';\r\nimport Slider from 'react-slick';\r\nimport 'slick-carousel/slick/slick.css';\r\nimport 'slick-carousel/slick/slick-theme.css';\r\nimport appUrl from \"../../../../constants/appUrl\";\r\n\r\nconst ViewAttachment = ({ attachment }) => {\r\n\r\n const settings = {\r\n dots: true,\r\n infinite: true,\r\n speed: 500,\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n autoplay: true,\r\n autoplaySpeed: 2000,\r\n };\r\n const renderSlider = () => {\r\n if (attachment.length > 1) {\r\n return (\r\n \r\n {attachment.map((imagePath, index) => (\r\n
    \r\n \"Attachment\"\r\n
    \r\n ))}\r\n
    \r\n );\r\n } else if (attachment.length === 1) {\r\n return (\r\n \"Attachment\"\r\n );\r\n } else {\r\n return

    No images available

    ;\r\n }\r\n };\r\n\r\n return (\r\n
    \r\n {renderSlider()}\r\n
    \r\n );\r\n};\r\n\r\nexport default ViewAttachment;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { Column } from 'primereact/column';\r\nimport { InputText } from 'primereact/inputtext';\r\nimport { Button } from 'primereact/button';\r\nimport { DataTable } from 'primereact/datatable';\r\nimport axios from 'axios';\r\nimport { ToastContainer, toast } from 'react-toastify';\r\nimport { Dialog } from 'primereact/dialog';\r\nimport appUrl from '../../../../constants/appUrl';\r\nimport AddEditComplaints from '../components/AddEditComplaints';\r\nimport ViewAttachment from '../components/ViewAttachment';\r\nimport { ConfirmDialog, confirmDialog } from 'primereact/confirmdialog';\r\nimport { FilterMatchMode } from \"primereact/api\";\r\nimport CustomDescription from '../../../components/CustomDescription';\r\nimport CustomVideo from '../../../components/CustomVideo';\r\nimport Loader from '../../../components/laoder';\r\nconst ComplainHandling = ({ product, productId2, searchQuery }) => {\r\n const [loading, setLoading] = useState(false);\r\n const [complaintList, setComplaintList] = useState([]);\r\n const [dialog, setDialog] = useState();\r\n const [viewAttachmentDialog, setViewAttachmentDialog] = useState(false);\r\n const [selectedAttachment, setSelectedAttachment] = useState(null);\r\n const [editable, setEditable] = useState();\r\n const [res, setRes] = useState()\r\n const [rowselect, setRowselect] = useState(null)\r\n const [filteredData, setFilteredData] = useState([]);\r\n const [descriptionDialog, setDescriptionDialog] = useState(false);\r\n const [descriptionContent, setDescriptionContent] = useState('');\r\n const [videoAttachmentDialog, setVideoAttachmentDialog] = useState(false);\r\n const [selectedVideoAttachment, setSelectedVideoAttachment] = useState(null);\r\n\r\n const GetComplaintById = async (productId, productId2) => {\r\n const token = localStorage.getItem('token')\r\n try {\r\n setLoading(true);\r\n const response = await fetch(`${appUrl.baseUrl}api/Complaint/GetComplaintByProductId/${productId || productId2}`,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Authorization': `Bearer ${token}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n }\r\n );\r\n const data = await response.json();\r\n setComplaintList(data);\r\n setLoading(false);\r\n\r\n } catch (error) {\r\n error('Error fetching :', error);\r\n }\r\n };\r\n\r\n const actionDocument = (rowData) => {\r\n const documentsToDownload = rowData.complaintAttachment.filter(attachment =>\r\n attachment.attachmentPath.endsWith('.docx') ||\r\n attachment.attachmentPath.endsWith('.pdf') ||\r\n attachment.attachmentPath.endsWith('.xlsx')\r\n );\r\n\r\n const documentPaths = documentsToDownload.map(document => document.attachmentPath);\r\n const hasImage = rowData.complaintAttachment.some(attachment => attachment.attachmentPath.endsWith('.png') || attachment.attachmentPath.endsWith('.jpg') || attachment.attachmentPath.endsWith('.jpeg'));\r\n const hasVideo = rowData.complaintAttachment.some(attachment => attachment.attachmentPath.endsWith('.mp4') || attachment.attachmentPath.endsWith('.mp5') || attachment.attachmentPath.endsWith('.webm') || attachment.attachmentPath.endsWith('.mov') || attachment.attachmentPath.endsWith('.3gp') || attachment.attachmentPath.endsWith('.3g2') || attachment.attachmentPath.endsWith('.mpeg'));\r\n\r\n return (\r\n
    \r\n {documentsToDownload.length > 0 && (\r\n downloadDocuments(documentPaths)}\r\n />\r\n )}\r\n {hasImage && (\r\n
    \r\n );\r\n }\r\n const onHideVideoAttachment = () => {\r\n setVideoAttachmentDialog(false);\r\n };\r\n const downloadDocuments = async (documentPaths) => {\r\n try {\r\n for (let i = 0; i < documentPaths.length; i++) {\r\n const documentPath = documentPaths[i];\r\n const response = await fetch(`${appUrl.baseUrl}${documentPath}`);\r\n const blob = await response.blob();\r\n const url = URL.createObjectURL(blob);\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.setAttribute('download', '');\r\n link.setAttribute('target', '_blank');\r\n link.click();\r\n URL.revokeObjectURL(url);\r\n await new Promise(resolve => setTimeout(resolve, 1000)); // Delay each download by 1 second\r\n }\r\n } catch (error) {\r\n console.error(\"Error downloading documents:\", error);\r\n toast.error(\"Failed to download documents\");\r\n }\r\n };\r\n const isAdmin = localStorage.getItem('admin')\r\n useEffect(() => {\r\n if (product && product.productId || productId2) {\r\n GetComplaintById(product?.productId, productId2);\r\n }\r\n }, [product, productId2, res]);\r\n\r\n useEffect(() => {\r\n if (searchQuery) {\r\n setFilteredData(\r\n complaintList?.filter((item) =>\r\n item.complaintPrefix?.toLowerCase().includes(searchQuery?.toLowerCase()) ||\r\n item.complaintProcessName?.toLowerCase().includes(searchQuery?.toLowerCase())||\r\n item.productName?.toLowerCase().includes(searchQuery?.toLowerCase())||\r\n item.channelName?.toLowerCase().includes(searchQuery?.toLowerCase())\r\n )\r\n );\r\n } else {\r\n setFilteredData(complaintList);\r\n }\r\n }, [searchQuery, complaintList, res]);\r\n\r\n const onHideViewAttachment = () => {\r\n setViewAttachmentDialog(false);\r\n };\r\n const onHide = () => {\r\n setDialog(false)\r\n }\r\n\r\n const accept = async (rowData) => {\r\n try {\r\n const response = await axios.delete(`${appUrl.baseUrl}api/Complaint/DeleteComplaintByID/${rowData?.complaintID}/${rowData.channelId}`, {\r\n headers: {\r\n 'Authorization': `Bearer ${localStorage.getItem('token')}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n setRes(response.data);\r\n toast.success(\"Deleted Successfully\");\r\n } catch (error) {\r\n toast.error(\"Failed to delete. Please try again.\");\r\n console.error(\"Error deleting disclaimer:\", error);\r\n }\r\n };\r\n const reject = (rowData) => {\r\n return\r\n }\r\n const confirm = (rowData) => {\r\n confirmDialog({\r\n header: (\r\n
    \r\n \r\n\r\n
    \r\n ),\r\n message: (\r\n Are you sure you want to delete this Complaint?\r\n ),\r\n accept: () => accept(rowData),\r\n reject: () => reject(rowData),\r\n acceptClassName: 'custom-btn-red',\r\n rejectClassName: 'custom-white-red',\r\n className: 'center-buttons no-close-button',\r\n });\r\n };\r\n\r\n const actionTemplate = (rowData) => {\r\n return (\r\n
    \r\n
    \r\n );\r\n }\r\n const editAction = async (rowData) => {\r\n const token =localStorage.getItem('token')\r\n try {\r\n const response = await axios.get(`${appUrl.baseUrl}api/Complaint/GetComplaintByComplaintId/${rowData.complaintID}/${rowData.channelId}`, {\r\n headers: {\r\n 'Authorization': `Bearer ${token}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n const data = response.data;\r\n setEditable(true);\r\n setRowselect(data);\r\n setDialog(true);\r\n } catch (error) {\r\n error(\"Error fetching outage data by ID:\", error);\r\n toast.error(\"Failed to fetch data for editing\");\r\n }\r\n };\r\n const showDescription = (description) => {\r\n setDescriptionContent(description);\r\n setDescriptionDialog(true);\r\n };\r\n const onHideDescriptionDialog = () => {\r\n setDescriptionDialog(false);\r\n };\r\n\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n {selectedAttachment && }\r\n \r\n \r\n {selectedVideoAttachment && }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
    \r\n
    \r\n \r\n {isAdmin === 'true' || isAdmin === true ? (\r\n
    \r\n
    \r\n ) : null}\r\n
    \r\n {loading && }\r\n
    \r\n \r\n \r\n {/* */}\r\n (\r\n \r\n {rowData.channelName.length > 15 ? `${rowData.channelName.slice(0, 15)}...` : rowData.channelName}\r\n \r\n )} />\r\n {/* */}\r\n (\r\n \r\n {rowData.complaintProcessName.length > 15 ? `${rowData.complaintProcessName.slice(0, 15)}...` : rowData.complaintProcessName}\r\n \r\n )} />\r\n {/* */}\r\n (\r\n \r\n {rowData.complaintPrefix.length > 15 ? `${rowData.complaintPrefix.slice(0, 15)}...` : rowData.complaintPrefix}\r\n \r\n )} />\r\n (\r\n {\r\n e.preventDefault();\r\n showDescription(rowData.complaintDescription);\r\n }}\r\n style={{ cursor: 'pointer', color: '#00b0ab', textDecoration: 'underline' }}\r\n >\r\n View Description\r\n \r\n )}\r\n />\r\n new Date(rowData.createdDate).toLocaleString('en-GB', {\r\n day: '2-digit',\r\n month: '2-digit',\r\n year: 'numeric',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n hour12: true\r\n })} />\r\n {\r\n if (!rowData.updatedDate) {\r\n return '-';\r\n }\r\n return new Date(rowData.updatedDate).toLocaleString('en-GB', {\r\n day: '2-digit',\r\n month: '2-digit',\r\n year: 'numeric',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n hour12: true,\r\n });\r\n }}\r\n />\r\n\r\n \r\n {isAdmin === 'true' || isAdmin === true ? (\r\n \r\n ) : null}\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n )\r\n}\r\n\r\nexport default ComplainHandling","\r\nimport React, { useState, useEffect, useRef, useMemo } from 'react'\r\nimport { Button } from 'primereact/button'\r\nimport { InputText } from \"primereact/inputtext\";\r\nimport { useFormik } from 'formik'\r\nimport { Dropdown } from 'primereact/dropdown';\r\nimport * as Yup from 'yup';\r\nimport axios from 'axios';\r\nimport appUrl from \"../../../../constants/appUrl\";\r\nimport { ToastContainer, toast } from 'react-toastify';\r\nimport { MultiSelect } from 'primereact/multiselect';\r\nimport 'react-toastify/dist/ReactToastify.css';\r\n\r\nimport JoditEditor from 'jodit-react';\r\nconst AddEditSocialMedia = ({ editable, setRes, rowData, setDialog, onHide, placeholder, productId2 }) => {\r\n\r\n const [productList, setProductList] = useState();\r\n const [sponserList, setSponserList] = useState();\r\n const [loading, setLoading] = useState(false);\r\n const [channelList, setChannelList] = useState();\r\n const [selectedFiles, setSelectedFiles] = useState([])\r\n const [apiRes, setApiRes] = useState();\r\n const [content, setContent] = useState('');\r\n const editor = useRef(null);\r\n const allowedFileExtensions = [\r\n '.pdf', '.doc', '.docx', '.xls', '.xlsx', '.mp3', '.mp4', '.png', '.jpg', '.webm', '.mpeg', '.svg','.mov'\r\n ];\r\n const validationSchema = Yup.object({\r\n postTitle: Yup.string().required('Required').max(30, 'Title must be 30 characters'),\r\n postDescription: Yup.string().required('Required'),\r\n // productId: Yup.string().required('Required'),\r\n channelID: Yup.array().min(1, 'Required').of(Yup.string()).required('Required'),\r\n sponserID: Yup.string().required('Required'),\r\n postAddAttachments: Yup.array().min(1, 'At least one attachment is required').required('Required'),\r\n\r\n\r\n\r\n });\r\n const formik = useFormik({\r\n validationSchema: validationSchema,\r\n initialValues: {\r\n postTitle: '',\r\n postDescription: '',\r\n productId: productId2 || '',\r\n sponserID: '',\r\n channelID: [],\r\n postAddAttachments: []\r\n\r\n\r\n },\r\n\r\n onSubmit: async (data) => {\r\n setLoading(true);\r\n // data.postDescription = content;\r\n if (!data.productId) {\r\n data.productId = 0;\r\n }\r\n const token = localStorage.getItem('token');\r\n if (!token) {\r\n toast.error(\"No token found. Please log in again.\");\r\n return;\r\n }\r\n try {\r\n {\r\n const newData = {\r\n postTitle: data.postTitle,\r\n postDescription: data.postDescription,\r\n productId: data.productId,\r\n sponserID: data.sponserID,\r\n channelID: data.channelID,\r\n postAddAttachments: data.postAddAttachments.map(attachment => ({ attachmentPath: attachment.file }))\r\n };\r\n if (editable) {\r\n newData.postID = rowData.postID;\r\n newData.channelID = data.channelID.length > 0 ? data.channelID[0] : null;\r\n const response = await axios.post(`${appUrl.baseUrl}api/Post/UpdateNewPost`, newData, {\r\n headers: {\r\n 'Authorization': `Bearer ${token}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n setApiRes(response);\r\n toast.success(\"updated Succesfully\")\r\n setRes(response);\r\n } else {\r\n newData.channelID = data.channelID;\r\n const response = await axios.post(`${appUrl.baseUrl}api/Post/AddNewPost`, newData, {\r\n headers: {\r\n 'Authorization': `Bearer ${token}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n setApiRes(response);\r\n toast.success(\"Added Succesfully\")\r\n\r\n setRes(response);\r\n }\r\n }\r\n\r\n setDialog(false);\r\n } catch (error) {\r\n toast.error(\"Something went wrong\");\r\n } finally {\r\n setLoading(false);\r\n onHide();\r\n\r\n }\r\n },\r\n\r\n });\r\n\r\n\r\n const handleFileUpload = (event) => {\r\n\r\n const files = event.target.files;\r\n const imagesArray = Array.from(files);\r\n let newImagesBase64 = [];\r\n let hasInvalidFile = false; imagesArray.forEach((file) => {\r\n const fileExtension = file.name.split('.').pop();\r\n // if (!allowedFileExtensions.includes(`.${fileExtension}`)) {\r\n // toast.error(`${file.name} is not a supported file type`);\r\n // hasInvalidFile = true;\r\n // return;\r\n // }\r\n const isImage = file.type.includes('image')\r\n const reader = new FileReader();\r\n reader.onload = () => {\r\n const base64String = reader.result;\r\n newImagesBase64.push({ isImage, file: base64String, name: file.name });\r\n\r\n if (newImagesBase64.length === imagesArray.length) {\r\n formik.setFieldValue(\"postAddAttachments\", [\r\n ...formik.values.postAddAttachments,\r\n ...newImagesBase64,\r\n ]);\r\n }\r\n };\r\n // setSelectedFiles(newImagesBase64)\r\n reader.readAsDataURL(file);\r\n });\r\n if\r\n (hasInvalidFile) {\r\n event.target.value = null;\r\n\r\n }\r\n };\r\n\r\n const handleRemoveImage = (indexToRemove) => {\r\n const updatedGallery = formik.values.postAddAttachments.filter(\r\n (_, index) => index !== indexToRemove\r\n );\r\n formik.setFieldValue(\"postAddAttachments\", updatedGallery);\r\n };\r\n\r\n\r\n const config = useMemo(() => ({\r\n readonly: false,\r\n placeholder: placeholder || ''\r\n }), [placeholder]);\r\n\r\n useEffect(() => {\r\n if (editable) {\r\n formik.setFieldValue('productId', rowData?.productID);\r\n formik.setFieldValue('channelID', rowData.channelId?.length > 0 ? rowData?.channelId : []);\r\n formik.setFieldValue('sponserID', rowData?.sponserID);\r\n formik.setFieldValue('postTitle', rowData?.postTitle);\r\n formik.setFieldValue('postDescription', rowData?.postDescription);\r\n if (rowData?.postAddAttachments) {\r\n console.log('first', rowData?.postAddAttachments)\r\n const postAddAttachmentsWithBaseUrl = rowData.postAddAttachments.map((attachment) => ({\r\n isImage: attachment?.attachmentPath.endsWith('.png') || attachment?.attachmentPath.endsWith('.jpg') || attachment?.attachmentPath.endsWith('.jpeg'),\r\n file: `${attachment?.attachmentPath}`,\r\n name: attachment?.attachmentPath.split('\\\\').pop(),\r\n }));\r\n formik.setFieldValue('postAddAttachments', postAddAttachmentsWithBaseUrl);\r\n //setSelectedFiles(postAddAttachmentsWithBaseUrl);\r\n }\r\n }\r\n }, [editable, rowData]);\r\n\r\n const getAllSponser = async () => {\r\n const token =localStorage.getItem('token')\r\n\r\n try {\r\n const response = await fetch(`${appUrl.baseUrl}api/Post/GetAllSponser`,{\r\n headers: {\r\n 'Authorization': `Bearer ${token}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n })\r\n const data = await response.json();\r\n setSponserList(data);\r\n }\r\n catch (error) {\r\n error(error)\r\n }\r\n }\r\n const getAllProduct = async () => {\r\n const token =localStorage.getItem('token')\r\n try {\r\n const response = await fetch(`${appUrl.baseUrl}api/Product/GetAllProducts`,{\r\n headers: {\r\n 'Authorization': `Bearer ${token}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n })\r\n const data = await response.json();\r\n setProductList(data);\r\n }\r\n catch (error) {\r\n error(error)\r\n }\r\n }\r\n const getAllChannel = async () => {\r\n const token =localStorage.getItem('token')\r\n try {\r\n const response = await fetch(`${appUrl.baseUrl}api/Channel/GetAllChannels`,{\r\n headers: {\r\n 'Authorization': `Bearer ${token}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n })\r\n const data = await response.json();\r\n setChannelList(data);\r\n }\r\n catch (error) {\r\n }\r\n }\r\n useEffect(() => {\r\n getAllProduct()\r\n getAllSponser()\r\n getAllChannel()\r\n }, [])\r\n\r\n return (\r\n <>\r\n \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n {/* {formik.touched.productId && formik.errors.productId ?
    {formik.errors.productId}
    : null} */}\r\n
    \r\n
    \r\n \r\n {editable ? (\r\n\r\n \r\n ) : (\r\n \r\n )}\r\n {formik.touched.channelID && formik.errors.channelID ? (\r\n
    {formik.errors.channelID}
    \r\n ) : null}\r\n
    \r\n
    \r\n \r\n \r\n {formik.touched.sponserID && formik.errors.sponserID ?
    {formik.errors.sponserID}
    : null}\r\n
    \r\n\r\n
    \r\n \r\n \r\n {formik.touched.postTitle && formik.errors.postTitle ?
    {formik.errors.postTitle}
    : null}\r\n
    \r\n
    \r\n \r\n setContent(newContent)}\r\n onChange={newContent => formik.setFieldValue('postDescription', newContent)}\r\n />\r\n {formik.touched.postDescription && formik.errors.postDescription ?
    {formik.errors.postDescription}
    : null}\r\n
    \r\n\r\n\r\n
    \r\n
    \r\n \r\n
    \r\n handleFileUpload(event)}\r\n accept='.pdf,.doc,.docx,.xls,.xlsx,.mp3,.mp4,.png,.jpg,.webm,.mpeg'\r\n multiple\r\n className='d-none my-3 '\r\n />\r\n
    \r\n\r\n\r\n
    \r\n {editable ?\r\n
    \r\n {formik.values.postAddAttachments.map((attachment, index) => (\r\n
    \r\n\r\n {attachment.isImage ? {`Image : <>{attachment.name}}\r\n handleRemoveImage(index)}\r\n />\r\n
    \r\n ))}\r\n
    \r\n :\r\n
    \r\n {formik.values.postAddAttachments.map((attachment, index) => (\r\n
    \r\n\r\n {attachment.isImage ? {`Image : <>{attachment.name}}\r\n handleRemoveImage(index)}\r\n />\r\n
    \r\n ))}\r\n
    }\r\n
    \r\n\r\n {formik.touched.postAddAttachments && formik.errors.postAddAttachments ?
    {formik.errors.postAddAttachments}
    : null}\r\n\r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n\r\n\r\n
    \r\n \r\n )\r\n}\r\n\r\nexport default AddEditSocialMedia","import { Button } from 'primereact/button'\r\nimport { Dialog } from 'primereact/dialog';\r\nimport React, { useState, useEffect } from 'react'\r\nimport AddEditSocialMedia from '../components/AddEditSocialMedia';\r\nimport appUrl from '../../../../constants/appUrl';\r\nimport { DataTable } from 'primereact/datatable';\r\nimport { Column } from 'primereact/column';\r\nimport { ConfirmDialog, confirmDialog } from 'primereact/confirmdialog';\r\nimport { ToastContainer, toast } from 'react-toastify';\r\nimport Loader from '../../../components/laoder';\r\nimport axios from 'axios';\r\nimport ViewAttachment from '../../ProcessInformation/components/ViewAttachment';\r\nimport { FilterMatchMode } from \"primereact/api\";\r\nimport { InputText } from 'primereact/inputtext';\r\nimport CustomDescription from '../../../components/CustomDescription';\r\nimport CustomVideo from '../../../components/CustomVideo';\r\nconst SocialMedia = ({ product, productId2, searchQuery }) => {\r\n const [dialog, setDialog] = useState(false);\r\n const [res, setRes] = useState(false);\r\n const [socialList, setSocialList] = useState([]);\r\n const [viewAttachmentDialog, setViewAttachmentDialog] = useState(false);\r\n const [selectedAttachment, setSelectedAttachment] = useState(null);\r\n const [editable, setEditable] = useState();\r\n const [rowselect, setRowselect] = useState(null)\r\n const [descriptionDialog, setDescriptionDialog] = useState(false);\r\n const [descriptionContent, setDescriptionContent] = useState('');\r\n const [filteredData, setFilteredData] = useState([]);\r\n const [videoAttachmentDialog, setVideoAttachmentDialog] = useState(false);\r\n const [selectedVideoAttachment, setSelectedVideoAttachment] = useState(null);\r\n const [loading, setLoading] = useState(false);\r\n\r\n const getSocialById = async (productId, productId2) => {\r\n const token = localStorage.getItem('token')\r\n try {\r\n setLoading(true);\r\n const response = await fetch(`${appUrl.baseUrl}api/Post/GetPostByProductId/${productId || productId2}`,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Authorization': `Bearer ${token}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n }\r\n );\r\n const data = await response.json();\r\n setSocialList(data);\r\n setLoading(false);\r\n } catch (error) {\r\n error('Error fetching :', error);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (product && product.productId || productId2) {\r\n getSocialById(product?.productId, productId2);\r\n }\r\n }, [product, productId2, res]);\r\n\r\n const onHide = () => {\r\n setDialog(false);\r\n }\r\n\r\n\r\n const actionDocument = (rowData) => {\r\n const documentsToDownload = rowData.postAttachments.filter(attachment =>\r\n attachment.attachmentPath.endsWith('.docx') ||\r\n attachment.attachmentPath.endsWith('.pdf') ||\r\n attachment.attachmentPath.endsWith('.xlsx')\r\n );\r\n\r\n const documentPaths = documentsToDownload.map(document => document.attachmentPath);\r\n const hasImage = rowData.postAttachments.some(attachment => attachment.attachmentPath.endsWith('.png') || attachment.attachmentPath.endsWith('.jpg') || attachment.attachmentPath.endsWith('.jpeg'));\r\n const hasVideo = rowData.postAttachments.some(attachment => attachment.attachmentPath.endsWith('.mp4') || attachment.attachmentPath.endsWith('.mp5') || attachment.attachmentPath.endsWith('.webm') || attachment.attachmentPath.endsWith('.mov') || attachment.attachmentPath.endsWith('.3gp') || attachment.attachmentPath.endsWith('.3g2') || attachment.attachmentPath.endsWith('.mpeg'));\r\n\r\n return (\r\n
    \r\n {documentsToDownload.length > 0 && (\r\n downloadDocuments(documentPaths)}\r\n />\r\n )}\r\n {hasImage && (\r\n
    \r\n );\r\n }\r\n const downloadDocuments = async (documentPaths) => {\r\n try {\r\n for (let i = 0; i < documentPaths.length; i++) {\r\n const documentPath = documentPaths[i];\r\n const response = await fetch(`${appUrl.baseUrl}${documentPath}`);\r\n const blob = await response.blob();\r\n const url = URL.createObjectURL(blob);\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.setAttribute('download', '');\r\n link.setAttribute('target', '_blank');\r\n link.click();\r\n URL.revokeObjectURL(url);\r\n await new Promise(resolve => setTimeout(resolve, 1000)); // Delay each download by 1 second\r\n }\r\n } catch (error) {\r\n console.error(\"Error downloading documents:\", error);\r\n toast.error(\"Failed to download documents\");\r\n }\r\n };\r\n\r\n\r\n const onHideVideoAttachment = () => {\r\n setVideoAttachmentDialog(false);\r\n };\r\n\r\n const accept = async (rowData) => {\r\n try {\r\n const response = await axios.delete(`${appUrl.baseUrl}api/Complaint/DeleteComplaintByID/${rowData?.postID}/${rowData?.channelID}`, {\r\n headers: {\r\n 'Authorization': `Bearer ${localStorage.getItem('token')}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n setRes(response.data);\r\n toast.success(\"Deleted Successfully\");\r\n } catch (error) {\r\n toast.error(\"Failed to delete. Please try again.\");\r\n console.error(\"Error deleting disclaimer:\", error);\r\n }\r\n };\r\n const reject = (rowData) => {\r\n return\r\n }\r\n const confirm = (rowData) => {\r\n confirmDialog({\r\n header: (\r\n
    \r\n \r\n\r\n
    \r\n ),\r\n message: (\r\n Are you sure you want to delete this Tutorial and Videos?\r\n ),\r\n accept: () => accept(rowData),\r\n reject: () => reject(rowData),\r\n acceptClassName: 'custom-btn-red',\r\n rejectClassName: 'custom-white-red',\r\n className: 'center-buttons no-close-button',\r\n });\r\n };\r\n\r\n\r\n const actionTemplate = (rowData) => {\r\n return (\r\n
    \r\n
    \r\n );\r\n }\r\n const editAction = async (rowData) => {\r\n const token =localStorage.getItem('token')\r\n try {\r\n const response = await axios.get(`${appUrl.baseUrl}api/Post/GetPostByPostId/${rowData.postID}/${rowData?.channelID}`, {\r\n headers: {\r\n 'Authorization': `Bearer ${token}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n const data = response.data;\r\n setEditable(true);\r\n setRowselect(data);\r\n setDialog(true);\r\n } catch (error) {\r\n error(\"Error fetching outage data by ID:\", error);\r\n toast.error(\"Failed to fetch data for editing\");\r\n }\r\n };\r\n useEffect(() => {\r\n if (searchQuery) {\r\n setFilteredData(\r\n socialList.filter((item) =>\r\n item.postTitle?.toLowerCase().includes(searchQuery?.toLowerCase())||\r\n item.productName?.toLowerCase().includes(searchQuery?.toLowerCase())||\r\n item.channelName?.toLowerCase().includes(searchQuery?.toLowerCase())||\r\n item.sponserName?.toLowerCase().includes(searchQuery?.toLowerCase())\r\n\r\n\r\n )\r\n );\r\n } else {\r\n setFilteredData(socialList);\r\n }\r\n }, [searchQuery, socialList]);\r\n\r\n const showDescription = (description) => {\r\n setDescriptionContent(description);\r\n setDescriptionDialog(true);\r\n };\r\n const onHideDescriptionDialog = () => {\r\n setDescriptionDialog(false);\r\n };\r\n\r\n\r\n const onHideViewAttachment = () => {\r\n setViewAttachmentDialog(false);\r\n };\r\n const isAdmin = localStorage.getItem('admin')\r\n\r\n const stripHtmlTags = (html) => {\r\n const doc = new DOMParser().parseFromString(html, 'text/html');\r\n return doc.body.textContent || \"\";\r\n };\r\n return (\r\n <>\r\n \r\n \r\n \r\n {selectedAttachment && }\r\n \r\n \r\n {selectedVideoAttachment && }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n {isAdmin === 'true' || isAdmin === true ? (\r\n
    \r\n
    \r\n
    \r\n
    \r\n ) : null}\r\n
    \r\n\r\n
    \r\n\r\n
    \r\n {loading && }\r\n
    \r\n \r\n\r\n\r\n \r\n {/* */}\r\n (\r\n \r\n {rowData.channelName.length > 15 ? `${rowData.channelName.slice(0, 15)}...` : rowData.channelName}\r\n \r\n )} />\r\n {/* */}\r\n (\r\n \r\n {rowData.postTitle.length > 15 ? `${rowData.postTitle.slice(0, 15)}...` : rowData.postTitle}\r\n \r\n )} />\r\n {/* */}\r\n (\r\n \r\n {rowData.sponserName?.length > 15 ? `${rowData.sponserName.slice(0, 15)}...` : rowData.sponserName}\r\n \r\n )} />\r\n\r\n\r\n (\r\n {\r\n e.preventDefault();\r\n showDescription(rowData.postDescription);\r\n }}\r\n style={{ cursor: 'pointer', color: '#00b0ab', textDecoration: 'underline' }}\r\n >\r\n View Description\r\n \r\n )}\r\n />\r\n new Date(rowData.createdDate).toLocaleString('en-GB', {\r\n day: '2-digit',\r\n month: '2-digit',\r\n year: 'numeric',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n hour12: true\r\n })} />\r\n {\r\n if (!rowData.updatedDate) {\r\n return '-';\r\n }\r\n return new Date(rowData.updatedDate).toLocaleString('en-GB', {\r\n day: '2-digit',\r\n month: '2-digit',\r\n year: 'numeric',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n hour12: true,\r\n });\r\n }}\r\n />\r\n {/* */}\r\n \r\n {isAdmin === 'true' || isAdmin === true ? (\r\n \r\n ) : null}\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n )\r\n}\r\n\r\nexport default SocialMedia;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { Column } from 'primereact/column';\r\nimport { Button } from 'primereact/button';\r\nimport { DataTable } from 'primereact/datatable';\r\nimport { ConfirmDialog, confirmDialog } from 'primereact/confirmdialog';\r\nimport { ToastContainer, toast } from 'react-toastify';\r\nimport 'react-toastify/dist/ReactToastify.css';\r\nimport { Dialog } from 'primereact/dialog';\r\nimport appUrl from \"../../../../constants/appUrl\";\r\nimport { FilterMatchMode } from \"primereact/api\";\r\nimport axios from 'axios';\r\nimport { InputText } from 'primereact/inputtext';\r\nimport AddEditFaq from '../../faqs/components/AddEditFaq';\r\nimport Loader from '../../../components/laoder';\r\nconst ManageFaq = ({ product, productId2, searchQuery }) => {\r\n\r\n const [rowselect, setRowselect] = useState(null)\r\n const [dialog, setDialog] = useState();\r\n const [editable, setEditable] = useState();\r\n const [faqList, setFaqList] = useState();\r\n const [res, setRes] = useState(null)\r\n const [loading, setLoading] = useState(false);\r\n const [filteredData, setFilteredData] = useState([]);\r\n const isAdmin = localStorage.getItem('admin')\r\n const GetFaqById = async (productId, productId2) => {\r\n const token = localStorage.getItem('token')\r\n try {\r\n setLoading(true);\r\n const response = await fetch(`${appUrl.baseUrl}api/FAQ/GetFAQByProductId/${productId || productId2}`,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Authorization': `Bearer ${token}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n }\r\n );\r\n const data = await response.json();\r\n setFaqList(data);\r\n setLoading(false);\r\n\r\n } catch (error) {\r\n error('Error fetching :', error);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (product && product.productId || productId2) {\r\n GetFaqById(product?.productId, productId2);\r\n }\r\n }, [product, productId2, res]);\r\n\r\n\r\n\r\n const accept = async (rowData) => {\r\n try {\r\n \r\n const response = await axios.delete(`${appUrl.baseUrl}api/FAQ/DeleteFAQByID/${rowData?.id}`, {\r\n headers: {\r\n 'Authorization': `Bearer ${localStorage.getItem('token')}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n setRes(response.data);\r\n toast.success(\"Deleted Successfully\");\r\n } catch (error) {\r\n toast.error(\"Failed to delete. Please try again.\");\r\n console.error(\"Error deleting disclaimer:\", error);\r\n }\r\n };\r\n const reject = (rowData) => {\r\n return\r\n }\r\n const confirm = (rowData) => {\r\n confirmDialog({\r\n header: (\r\n
    \r\n \r\n\r\n
    \r\n ),\r\n message: (\r\n Are you sure you want to delete this FAQs?\r\n ),\r\n accept: () => accept(rowData),\r\n reject: () => reject(rowData),\r\n acceptClassName: 'custom-btn-red',\r\n rejectClassName: 'custom-white-red',\r\n className: 'center-buttons no-close-button',\r\n });\r\n };\r\n\r\n const actionTemplate = (rowData) => {\r\n return (\r\n
    \r\n
    \r\n );\r\n }\r\n const editAction = async (rowData) => {\r\n const token = localStorage.getItem('token')\r\n try {\r\n const response = await axios.get(`${appUrl.baseUrl}api/FAQ/GetFAQById/${rowData.id}`, {\r\n headers: {\r\n 'Authorization': `Bearer ${token}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n const data = response.data;\r\n setEditable(true);\r\n setRowselect(data);\r\n setDialog(true);\r\n } catch (error) {\r\n error(\"Error fetching outage data by ID:\", error);\r\n toast.error(\"Failed to fetch data for editing\");\r\n }\r\n };\r\n\r\n const onHide = () => {\r\n setDialog(false)\r\n }\r\n\r\n useEffect(() => {\r\n if (searchQuery) {\r\n setFilteredData(\r\n faqList.filter((item) =>\r\n item.question?.toLowerCase().includes(searchQuery?.toLowerCase())\r\n )\r\n );\r\n } else {\r\n setFilteredData(faqList);\r\n }\r\n }, [searchQuery, faqList, res]);\r\n\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n {isAdmin === 'true' || isAdmin === true ? (\r\n
    \r\n\r\n
    \r\n {loading && }\r\n
    \r\n \r\n \r\n rowData.channelName?.join(', ')} />\r\n {/* */}\r\n (\r\n \r\n {rowData.question.length > 20 ? `${rowData.question.slice(0, 20)}...` : rowData.question}\r\n \r\n )} />\r\n {/* */}\r\n (\r\n \r\n {rowData.answer.length > 20 ? `${rowData.answer.slice(0, 20)}...` : rowData.answer}\r\n \r\n )} />\r\n new Date(rowData.createdDate).toLocaleString('en-GB', {\r\n day: '2-digit',\r\n month: '2-digit',\r\n year: 'numeric',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n hour12: true\r\n })} />\r\n {\r\n if (!rowData.updatedDate) {\r\n return '-';\r\n }\r\n return new Date(rowData.updatedDate).toLocaleString('en-GB', {\r\n day: '2-digit',\r\n month: '2-digit',\r\n year: 'numeric',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n hour12: true,\r\n });\r\n }}\r\n />\r\n {isAdmin === 'true' || isAdmin === true ? (\r\n \r\n ) : null}\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n )\r\n}\r\n\r\nexport default ManageFaq","import React, { useState, useEffect } from 'react';\r\nimport ProcessInformation from '../../ProcessInformation/pages/ProcessInformation';\r\nimport ComplainHandling from '../../ComplainHandling/pages/ComplainHandling';\r\nimport SocialMedia from '../../SocialMedia/pages/SocialMedia';\r\nimport ManageFaq from '../../ManageFaq/pages/ManageFaq';\r\nimport Slider from 'react-slick';\r\nimport 'slick-carousel/slick/slick.css';\r\nimport 'slick-carousel/slick/slick-theme.css';\r\nimport appUrl from '../../../../constants/appUrl';\r\nimport { useLocation } from 'react-router-dom/cjs/react-router-dom.min';\r\nimport { TabPanel, TabView } from 'primereact/tabview';\r\n\r\n\r\nconst ManageProduct = ({ searchQuery }) => {\r\n\r\n const location = useLocation()\r\n const productId = location?.state?.data;\r\n const [productList, setProductList] = useState([]);\r\n const [selectedProductId, setSelectedProductId] = useState(null);\r\n\r\n const GetProductName = async () => {\r\n try {\r\n const response = await fetch(`${appUrl.baseUrl}api/Product/GetAllProducts`);\r\n const data = await response.json();\r\n setProductList(data);\r\n\r\n } catch (error) {\r\n console.error('Error fetching :', error);\r\n }\r\n };\r\n\r\n const handleGetId = (productId) => {\r\n setSelectedProductId(productId);\r\n }\r\n useEffect(() => {\r\n GetProductName();\r\n }, []);\r\n\r\n return (\r\n\r\n <>\r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default ManageProduct;\r\n","\r\n\r\nimport React from 'react'\r\nimport { Button } from 'primereact/button'\r\nimport { InputText } from \"primereact/inputtext\";\r\nimport { useFormik } from 'formik'\r\nimport * as Yup from 'yup';\r\nconst AddEditNew = () => {\r\n const validationSchema = Yup.object({\r\n productName: Yup.string().required('Required'),\r\n productCategory: Yup.string().required('Required'),\r\n productAttachment: Yup.string().required('Required'),\r\n\r\n });\r\n const formik = useFormik({\r\n validationSchema: validationSchema,\r\n initialValues: {\r\n productName: '',\r\n productCategory: '',\r\n productAttachment: '',\r\n\r\n },\r\n\r\n \r\n\r\n });\r\n return (\r\n
    \r\n
    \r\n\r\n
    \r\n \r\n \r\n {formik.touched.productName && formik.errors.productName ?
    {formik.errors.productName}
    : null}\r\n
    \r\n\r\n
    \r\n \r\n \r\n {formik.touched.productCategory && formik.errors.productCategory ?
    {formik.errors.productCategory}
    : null}\r\n
    \r\n
    \r\n \r\n \r\n {formik.touched.productAttachment && formik.errors.productAttachment ?
    {formik.errors.productAttachment}
    : null}\r\n
    \r\n\r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n\r\n\r\n
    \r\n )\r\n}\r\n\r\nexport default AddEditNew","import React, { useEffect, useState } from 'react';\r\nimport { Button } from 'primereact/button';\r\nimport { InputText } from 'primereact/inputtext';\r\nimport { useFormik } from 'formik';\r\nimport { Dropdown } from 'primereact/dropdown';\r\nimport * as Yup from 'yup';\r\nimport axios from 'axios';\r\nimport { ToastContainer, toast } from 'react-toastify';\r\nimport 'react-toastify/dist/ReactToastify.css';\r\nimport appUrl from \"../../../../constants/appUrl\";\r\nimport { useHistory } from 'react-router-dom';\r\nimport { MultiSelect } from 'primereact/multiselect';\r\nconst AddEditAdminApp = ({ editable, setRes, rowData, setDialog, onHide }) => {\r\n const [channelList, setChannelList] = useState();\r\n const [productList, setProductList] = useState();\r\n const [apiRes, setApiRes] = useState();\r\n const [selectedFiles, setSelectedFiles] = useState([])\r\n const [loading, setLoading] = useState(false);\r\n const history = useHistory();\r\n const allowedFileExtensions = [\r\n '.pdf', '.doc', '.docx', '.xls', '.xlsx', '.mp3', '.mp4', '.png', '.jpg', '.webm', '.mpeg','.svg','.mov'\r\n ];\r\n const validationSchema = Yup.object().shape({\r\n // productId: Yup.string().required('This is required'),\r\n channelID: Yup.array().min(1, 'Required').of(Yup.string()).required('Required'),\r\n title: Yup.string().required('Required').max(30, 'Title must be 30 characters'),\r\n appJourneyAttachmentDTOs: Yup.array().min(1, 'At least one attachment is required').required('Required'),\r\n });\r\n const formik = useFormik({\r\n validationSchema: validationSchema,\r\n initialValues: {\r\n productId: '',\r\n channelID: [],\r\n title: '',\r\n appJourneyAttachmentDTOs: []\r\n\r\n\r\n },\r\n onSubmit: async (data) => {\r\n setLoading(true);\r\n if (!data.productId) {\r\n data.productId = 0;\r\n }\r\n const token = localStorage.getItem('token');\r\n if (!token) {\r\n toast.error(\"No token found. Please log in again.\");\r\n return;\r\n }\r\n try {\r\n let newData = {\r\n productId: data?.productId,\r\n channelID: data?.channelID,\r\n title: data?.title,\r\n appJourneyAttachmentDTOs: data.appJourneyAttachmentDTOs.map(attachment => ({ attachmentPath: attachment.file }))\r\n }\r\n if (editable) {\r\n newData.appJourneyID = rowData.appJourneyID;\r\n const response = await axios.patch(`${appUrl.baseUrl}api/AppJourney/UpdateAppJourney`, newData,{\r\n headers: {\r\n 'Authorization': `Bearer ${token}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n setApiRes(response);\r\n toast.success(\"Updated Successfully\")\r\n setRes(response);\r\n } else {\r\n\r\n const response = await axios.post(`${appUrl.baseUrl}api/AppJourney/AddNewAppJourney`, newData,{\r\n headers: {\r\n 'Authorization': `Bearer ${token}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n setApiRes(response);\r\n toast.success(\"Added Succesfully\")\r\n setRes(response);\r\n \r\n }\r\n\r\n setDialog(false);\r\n \r\n } catch (error) {\r\n toast.error(\"Something went wrong\");\r\n } finally {\r\n setLoading(false);\r\n onHide();\r\n\r\n }\r\n },\r\n });\r\n\r\n const handleFileUpload = (event) => {\r\n const files = event.target.files;\r\n const imagesArray = Array.from(files);\r\n let newImagesBase64 = [];\r\n let hasInvalidFile = false; \r\n imagesArray.forEach((file) => {\r\n const fileExtension = file.name.split('.').pop();\r\n // if (!allowedFileExtensions.includes(`.${fileExtension}`)) {\r\n // toast.error(`${file.name} is not a supported file type`);\r\n // hasInvalidFile = true;\r\n // return;\r\n // }\r\n const isImage = file.type.includes('image')\r\n const reader = new FileReader();\r\n reader.onload = () => {\r\n const base64String = reader.result;\r\n newImagesBase64.push({ isImage, file: base64String, name: file.name });\r\n\r\n if (newImagesBase64.length === imagesArray.length) {\r\n formik.setFieldValue(\"appJourneyAttachmentDTOs\", [\r\n ...formik.values.appJourneyAttachmentDTOs,\r\n ...newImagesBase64,\r\n ]);\r\n }\r\n };\r\n // setSelectedFiles(newImagesBase64)\r\n reader.readAsDataURL(file);\r\n });\r\n if\r\n (hasInvalidFile) {\r\n event.target.value = null;\r\n \r\n }\r\n };\r\n\r\n const handleRemoveImage = (indexToRemove) => {\r\n const updatedGallery = formik.values.appJourneyAttachmentDTOs.filter(\r\n (_, index) => index !== indexToRemove\r\n );\r\n formik.setFieldValue(\"appJourneyAttachmentDTOs\", updatedGallery);\r\n };\r\n\r\n useEffect(() => {\r\n if (editable) {\r\n formik.setFieldValue('title', rowData?.title);\r\n formik.setFieldValue('productId', rowData?.productId);\r\n formik.setFieldValue('channelID', rowData.channelId?.length > 0 ? rowData?.channelId : []);\r\n if (rowData?.attachmentsModel) {\r\n const appJourneyAttachmentDTOsWithBaseUrl = rowData.attachmentsModel.map((attachment) => ({\r\n isImage: attachment?.attachmentPath.endsWith('.png') || attachment?.attachmentPath.endsWith('.jpg') || attachment?.attachmentPath.endsWith('.jpeg'),\r\n file: `${attachment?.attachmentPath}`,\r\n name: attachment?.attachmentPath.split('\\\\').pop(),\r\n }));\r\n formik.setFieldValue('appJourneyAttachmentDTOs', appJourneyAttachmentDTOsWithBaseUrl);\r\n // setSelectedFiles(appJourneyAttachmentDTOsWithBaseUrl);\r\n }\r\n }\r\n }, [rowData, editable]);\r\n\r\n\r\n\r\n const getAllChannel = async () => {\r\n const token =localStorage.getItem('token')\r\n\r\n try {\r\n const response = await fetch(`${appUrl.baseUrl}api/Channel/GetAllChannels`, {\r\n headers: {\r\n 'Authorization': `Bearer ${token}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n \r\n const data = await response.json();\r\n setChannelList(data);\r\n }\r\n catch (error) {\r\n\r\n }\r\n }\r\n const getAllProduct = async () => {\r\n const token =localStorage.getItem('token')\r\n try {\r\n const response = await fetch(`${appUrl.baseUrl}api/Product/GetAllProducts`, {\r\n headers: {\r\n 'Authorization': `Bearer ${token}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n \r\n const data = await response.json();\r\n setProductList(data);\r\n }\r\n catch (error) {\r\n }\r\n }\r\n useEffect(() => {\r\n getAllChannel()\r\n getAllProduct()\r\n }, [])\r\n return (\r\n <>\r\n \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n {/* {formik.touched.productName && formik.errors.productName ?
    {formik.errors.productName}
    : null} */}\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n \r\n \r\n {formik.touched.channelID && formik.errors.channelID ?
    {formik.errors.channelID}
    : null}\r\n\r\n
    \r\n
    \r\n\r\n\r\n
    \r\n
    \r\n \r\n \r\n {formik.touched.title && formik.errors.title ?
    {formik.errors.title}
    : null}\r\n
    \r\n
    \r\n\r\n\r\n\r\n
    \r\n
    \r\n \r\n
    \r\n handleFileUpload(event)}\r\n accept='.pdf,.doc,.docx,.xls,.xlsx,.mp3,.mp4,.png,.jpg,.webm,.mpeg'\r\n multiple\r\n className='d-none my-3 '\r\n />\r\n
    \r\n\r\n\r\n
    \r\n {editable ?\r\n
    \r\n {/* Image */}\r\n {formik.values.appJourneyAttachmentDTOs.map((attachment, index) => (\r\n
    \r\n\r\n {attachment.isImage ? : <>{attachment.name}}\r\n {\r\n e.stopPropagation();\r\n handleRemoveImage(index);\r\n }}\r\n />\r\n
    \r\n ))}\r\n {/* file */}\r\n
    :\r\n
    \r\n {/* Image */}\r\n {formik.values.appJourneyAttachmentDTOs.map((attachment, index) => (\r\n
    \r\n\r\n {attachment.isImage ? {`Image : <>{attachment.name}}\r\n {\r\n e.stopPropagation();\r\n handleRemoveImage(index);\r\n }}\r\n />\r\n
    \r\n ))}\r\n \r\n
    \r\n }\r\n\r\n\r\n
    \r\n {formik.touched.appJourneyAttachmentDTOs && formik.errors.appJourneyAttachmentDTOs ?
    {formik.errors.appJourneyAttachmentDTOs}
    : null}\r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n )\r\n}\r\n\r\nexport default AddEditAdminApp;","import React, { useEffect, useState, useRef, useMemo } from 'react';\r\nimport { Button } from 'primereact/button';\r\nimport { InputText } from 'primereact/inputtext';\r\nimport { useFormik } from 'formik';\r\nimport { Dropdown } from 'primereact/dropdown';\r\nimport * as Yup from 'yup';\r\nimport axios from 'axios';\r\nimport { ToastContainer, toast } from 'react-toastify';\r\nimport 'react-toastify/dist/ReactToastify.css';\r\nimport appUrl from \"../../../../constants/appUrl\";\r\n\r\nimport { MultiSelect } from 'primereact/multiselect';\r\nimport JoditEditor from 'jodit-react';\r\nconst AddEditAdminZTraining = ({ editable, setRes, rowData, setDialog, onHide, placeholder }) => {\r\n const [channelList, setChannelList] = useState();\r\n const [productList, setProductList] = useState();\r\n\r\n const [content, setContent] = useState('');\r\n const [apiRes, setApiRes] = useState();\r\n const [showImage, setShowImage] = useState(false);\r\n const [selectedFiles, setSelectedFiles] = useState([])\r\n const [loading, setLoading] = useState(false);\r\n const editor = useRef(null);\r\n const allowedFileExtensions = [\r\n '.pdf', '.doc', '.docx', '.xls', '.xlsx', '.mp3', '.mp4', '.png', '.jpg', '.webm', '.mpeg', '.svg','.mov'\r\n ];\r\n const validationSchema = Yup.object().shape({\r\n // productId: Yup.string().required('This is required'),\r\n channelID: Yup.array().min(1, 'Required').of(Yup.string()).required('Required'),\r\n title: Yup.string().required('Required').max(30, 'Title must be 30 characters'),\r\n // description: Yup.string().required('This is required'),\r\n addAttachmentDTO: Yup.array().min(1, 'At least one attachment is required').required('Required'),\r\n\r\n });\r\n const formik = useFormik({\r\n validationSchema: validationSchema,\r\n initialValues: {\r\n productId: '',\r\n channelID: [],\r\n title: '',\r\n description: '',\r\n addAttachmentDTO: []\r\n },\r\n onSubmit: async (data) => {\r\n setLoading(true);\r\n // data.description = content;\r\n const token = localStorage.getItem('token');\r\n if (!token) {\r\n toast.error(\"No token found. Please log in again.\");\r\n return;\r\n }\r\n try {\r\n const newData = {\r\n productId: data.productId,\r\n channelID: data.channelID,\r\n title: data.title,\r\n description: data.description,\r\n addAttachmentDTO: data.addAttachmentDTO.map(attachment => ({ attachmentPath: attachment.file }))\r\n };\r\n if (editable) {\r\n\r\n newData.trainingMaterialID = rowData.trainingMaterialID;\r\n newData.channelID = data.channelID.length > 0 ? data.channelID[0] : null;\r\n const response = await axios.patch(`${appUrl.baseUrl}api/TrainingMaterial/UpdateTrainingMaterial`, newData,{\r\n headers: {\r\n 'Authorization': `Bearer ${token}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n setApiRes(response);\r\n toast.success(\"updated Succesfully\")\r\n setRes(response);\r\n } else {\r\n newData.channelID = data.channelID;\r\n const response = await axios.post(`${appUrl.baseUrl}api/TrainingMaterial/AddTrainingMaterial`, newData,{\r\n headers: {\r\n 'Authorization': `Bearer ${token}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n setApiRes(response);\r\n toast.success(\"Added Succesfully\")\r\n setRes(response);\r\n }\r\n\r\n setDialog(false);\r\n } catch (error) {\r\n toast.error(\"Something went wrong\");\r\n } finally {\r\n setLoading(false);\r\n onHide();\r\n\r\n }\r\n },\r\n });\r\n const config = useMemo(() => ({\r\n readonly: false,\r\n placeholder: placeholder || ''\r\n }), [placeholder]);\r\n\r\n\r\n const handleFileUpload = (event) => {\r\n const files = event.target.files;\r\n const imagesArray = Array.from(files);\r\n let newImagesBase64 = [];\r\n let hasInvalidFile = false; \r\n imagesArray.forEach((file) => {\r\n const fileExtension = file.name.split('.').pop();\r\n // if (!allowedFileExtensions.includes(`.${fileExtension}`)) {\r\n // toast.error(`${file.name} is not a supported file type`);\r\n // hasInvalidFile = true;\r\n // return;\r\n // }\r\n const isImage = file.type.includes('image')\r\n const reader = new FileReader();\r\n reader.onload = () => {\r\n const base64String = reader.result;\r\n newImagesBase64.push({ isImage, file: base64String, name: file.name });\r\n\r\n if (newImagesBase64.length === imagesArray.length) {\r\n formik.setFieldValue(\"addAttachmentDTO\", [\r\n ...formik.values.addAttachmentDTO,\r\n ...newImagesBase64,\r\n ]);\r\n }\r\n };\r\n // setSelectedFiles(newImagesBase64)\r\n reader.readAsDataURL(file);\r\n });\r\n if\r\n (hasInvalidFile) {\r\n event.target.value = null;\r\n \r\n }\r\n };\r\n \r\n \r\n\r\n const handleRemoveImage = (indexToRemove) => {\r\n const updatedGallery = formik.values.addAttachmentDTO.filter(\r\n (_, index) => index !== indexToRemove\r\n );\r\n formik.setFieldValue(\"addAttachmentDTO\", updatedGallery);\r\n };\r\n\r\n useEffect(() => {\r\n if (editable) {\r\n formik.setFieldValue('productId', rowData?.productId);\r\n formik.setFieldValue('channelID', rowData.channelId?.length > 0 ? rowData?.channelId : []);\r\n formik.setFieldValue('description', rowData?.description);\r\n formik.setFieldValue('title', rowData?.title);\r\n if (rowData?.trainingAttachment) {\r\n const trainingAttachmentsWithBaseUrl = rowData.trainingAttachment.map((attachment) => ({\r\n isImage: attachment?.attachmentPath.endsWith('.png') || attachment?.attachmentPath.endsWith('.jpg') || attachment?.attachmentPath.endsWith('.jpeg'),\r\n file: `${attachment?.attachmentPath}`,\r\n name: attachment?.attachmentPath.split('\\\\').pop(),\r\n }));\r\n formik.setFieldValue('addAttachmentDTO', trainingAttachmentsWithBaseUrl);\r\n // setSelectedFiles(trainingAttachmentsWithBaseUrl);\r\n }\r\n }\r\n }, [editable, rowData]);\r\n const getAllChannel = async () => {\r\n const token =localStorage.getItem('token')\r\n try {\r\n const response = await fetch(`${appUrl.baseUrl}api/Channel/GetAllChannels`,{\r\n headers: {\r\n 'Authorization': `Bearer ${token}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n })\r\n const data = await response.json();\r\n setChannelList(data);\r\n }\r\n catch (error) {\r\n error(error)\r\n }\r\n }\r\n const getAllProduct = async () => {\r\n const token =localStorage.getItem('token')\r\n try {\r\n const response = await fetch(`${appUrl.baseUrl}api/Product/GetAllProducts`,{\r\n headers: {\r\n 'Authorization': `Bearer ${token}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n })\r\n const data = await response.json();\r\n setProductList(data);\r\n }\r\n catch (error) {\r\n error(error)\r\n }\r\n }\r\n useEffect(() => {\r\n getAllChannel()\r\n getAllProduct()\r\n }, [])\r\n\r\n return (\r\n <>\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n {editable ? (\r\n\r\n \r\n ) : (\r\n \r\n )}\r\n {formik.touched.channelID && formik.errors.channelID ? (\r\n
    {formik.errors.channelID}
    \r\n ) : null}\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n \r\n {formik.touched.title && formik.errors.title ?
    {formik.errors.title}
    : null}\r\n
    \r\n
    \r\n
    \r\n \r\n formik.setFieldValue('description', newContent)}\r\n onChange={newContent => formik.setFieldValue('description', newContent)}\r\n />\r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n handleFileUpload(event)}\r\n multiple\r\n accept='.pdf,.doc,.docx,.xls,.xlsx,.mp3,.mp4,.png,.jpg,.webm,.mpeg'\r\n className='d-none my-3 '\r\n\r\n />\r\n\r\n
    \r\n\r\n\r\n
    \r\n\r\n {editable\r\n ?\r\n
    \r\n {formik.values.addAttachmentDTO.map((attachment, index) => (\r\n
    \r\n\r\n {`Image\r\n {\r\n e.stopPropagation();\r\n handleRemoveImage(index);\r\n }}\r\n />\r\n
    \r\n ))}\r\n\r\n
    \r\n :\r\n
    \r\n {formik.values.addAttachmentDTO.map((attachment, index) => (\r\n
    \r\n\r\n {attachment.isImage ?\r\n {`Image : <>{attachment.name}}\r\n\r\n {\r\n e.stopPropagation();\r\n handleRemoveImage(index);\r\n }}\r\n />\r\n
    \r\n ))}\r\n\r\n
    \r\n }\r\n
    \r\n\r\n {formik.touched.addAttachmentDTO && formik.errors.addAttachmentDTO ?
    {formik.errors.addAttachmentDTO}
    : null}\r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n )\r\n }\r\n\r\n export default AddEditAdminZTraining","import React, { useState, useEffect } from 'react';\r\nimport { Button } from 'primereact/button';\r\nimport { InputText } from \"primereact/inputtext\";\r\nimport { useFormik } from 'formik';\r\nimport { InputTextarea } from \"primereact/inputtextarea\";\r\nimport * as Yup from 'yup';\r\nimport axios from 'axios';\r\nimport appUrl from \"../../../../constants/appUrl\";\r\nimport { ToastContainer, toast } from 'react-toastify';\r\nimport 'react-toastify/dist/ReactToastify.css';\r\n\r\nconst AddEditAdminProduct = ({ onHide, setDialog, setRes, editable, rowData }) => {\r\n const [apiRes, setApiRes] = useState();\r\n const [channelList, setChannelList] = useState([]);\r\n const [selectedFiles, setSelectedFiles] = useState([]);\r\n const [productId, setProductId] = useState('');\r\n const [loading, setLoading] = useState(false);\r\n const allowedFileExtensions = [\r\n '.pdf', '.doc', '.docx', '.xls', '.xlsx', '.mp3', '.mp4', '.png', '.jpg', '.webm', '.mpeg','.svg','.mov'\r\n ];\r\n const validationSchema = Yup.object({\r\n productName: Yup.string().required('Required').max(30, 'Name must be 30 characters'),\r\n productDescription: Yup.string().required('Required'),\r\n \r\n // overviewSummary: Yup.string().required('Required'),\r\n // termsAndConditions: Yup.string().required('Required'),\r\n productAttachment: Yup.array()\r\n .min(1, 'At least one attachment is required')\r\n .required('Required'),\r\n });\r\n\r\n\r\n const formik = useFormik({\r\n initialValues: {\r\n productName: '',\r\n productDescription: '',\r\n overviewSummary: '',\r\n termsAndConditions: '',\r\n productAttachment: [],\r\n },\r\n validationSchema: validationSchema,\r\n onSubmit: async (data) => {\r\n setLoading(true);\r\n const token = localStorage.getItem('token');\r\n if (!token) {\r\n toast.error(\"No token found. Please log in again.\");\r\n return;\r\n }\r\n try {\r\n let newData = {\r\n productName: data.productName,\r\n overviewSummary: data.overviewSummary,\r\n termsAndConditions: data.termsAndConditions,\r\n productDescription: data.productDescription,\r\n productAttachment: data.productAttachment.map(attachment => ({ attachmentPath: attachment.file }))\r\n };\r\n\r\n if (editable) {\r\n let obj = { ...newData, productID: productId };\r\n const response = await axios.patch(`${appUrl.baseUrl}api/Product/UpdateProduct`, obj, {\r\n headers: {\r\n 'Authorization': `Bearer ${token}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n setApiRes(response);\r\n toast.success(\"Product Updated Successfully\");\r\n setRes(response);\r\n } else {\r\n const response = await axios.post(`${appUrl.baseUrl}api/Product/AddNewProduct`, newData, {\r\n headers: {\r\n 'Authorization': `Bearer ${token}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n setApiRes(response);\r\n setRes(response);\r\n toast.success(\"Product Added Successfully\");\r\n }\r\n setDialog(false);\r\n } catch (error) {\r\n error('Something went wrong', error);\r\n } finally {\r\n setLoading(false);\r\n onHide();\r\n }\r\n },\r\n });\r\n\r\n const getAllChannel = async () => {\r\n const token =localStorage.getItem('token')\r\n try {\r\n const response = await fetch(`${appUrl.baseUrl}api/Channel/GetAllChannels`,\r\n {\r\n method:'GET',\r\n headers:{\r\n 'Authorization':`Bearer ${token}`,\r\n 'Content-Type':'application/json'\r\n }\r\n }\r\n );\r\n const data = await response.json();\r\n setChannelList(data);\r\n } catch (error) {\r\n error('Something went wrong', error);\r\n }\r\n };\r\n\r\n const handleFileUpload = (event) => {\r\n const files = event.target.files;\r\n const imagesArray = Array.from(files);\r\n let newImagesBase64 = [];\r\n let hasInvalidFile = false; \r\n imagesArray.forEach((file) => {\r\n const fileExtension = file.name.split('.').pop();\r\n // if (!allowedFileExtensions.includes(`.${fileExtension}`)) {\r\n // toast.error(`${file.name} is not a supported file type`);\r\n // hasInvalidFile = true;\r\n // return;\r\n // }\r\n\r\n const isImage = file.type.includes('image');\r\n const reader = new FileReader();\r\n reader.onload = () => {\r\n const base64String = reader.result;\r\n newImagesBase64.push({ isImage, file: base64String, name: file.name });\r\n\r\n if (newImagesBase64.length === imagesArray.length) {\r\n formik.setFieldValue(\"productAttachment\", [\r\n ...formik.values.productAttachment,\r\n ...newImagesBase64,\r\n ]);\r\n // setSelectedFiles(newImagesBase64);\r\n }\r\n };\r\n reader.readAsDataURL(file);\r\n });\r\n if\r\n (hasInvalidFile) {\r\n event.target.value = null;\r\n \r\n }\r\n };\r\n\r\n const handleRemoveImage = (indexToRemove) => {\r\n const updatedGallery = formik.values.productAttachment.filter(\r\n (_, index) => index !== indexToRemove\r\n );\r\n formik.setFieldValue(\"productAttachment\", updatedGallery);\r\n // setSelectedFiles(updatedGallery);\r\n };\r\n\r\n useEffect(() => {\r\n if (editable) {\r\n formik.setFieldValue('productName', rowData?.productName);\r\n formik.setFieldValue('overviewSummary', rowData?.overviewSummary);\r\n formik.setFieldValue('termsAndConditions', rowData?.termsAndConditions);\r\n formik.setFieldValue('productDescription', rowData?.productDescription);\r\n setProductId(rowData?.productId);\r\n if (rowData?.productAttachment) {\r\n const productAttachmentsWithBaseUrl = rowData.productAttachment.map((attachment) => ({\r\n isImage: attachment?.attachmentPath.endsWith('.png') || attachment?.attachmentPath.endsWith('.jpg') || attachment?.attachmentPath.endsWith('.jpeg'),\r\n file: `${attachment?.attachmentPath}`,\r\n name: attachment?.attachmentPath.split('\\\\').pop(),\r\n }));\r\n formik.setFieldValue('productAttachment', productAttachmentsWithBaseUrl);\r\n // setSelectedFiles(productAttachmentsWithBaseUrl);\r\n }\r\n }\r\n }, [editable, rowData]);\r\n\r\n useEffect(() => {\r\n getAllChannel();\r\n }, []);\r\n\r\n return (\r\n <>\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n {formik.touched.productName && formik.errors.productName ?
    {formik.errors.productName}
    : null}\r\n
    \r\n
    \r\n \r\n \r\n {formik.touched.productDescription && formik.errors.productDescription ?
    {formik.errors.productDescription}
    : null}\r\n
    \r\n
    \r\n \r\n \r\n {formik.touched.overviewSummary && formik.errors.overviewSummary ?
    {formik.errors.overviewSummary}
    : null}\r\n
    \r\n
    \r\n \r\n \r\n {formik.touched.termsAndConditions && formik.errors.termsAndConditions ?
    {formik.errors.termsAndConditions}
    : null}\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n {editable ?\r\n
    \r\n {formik.values.productAttachment.map((attachment, index) => (\r\n
    \r\n {attachment.isImage ? {`Image : <>{attachment.name}}\r\n {\r\n e.stopPropagation();\r\n handleRemoveImage(index);\r\n }}\r\n />\r\n
    \r\n ))}\r\n
    :\r\n
    \r\n {formik.values.productAttachment.map((attachment, index) => (\r\n
    \r\n {attachment.isImage ? {`Image : <>{attachment.name}}\r\n {\r\n e.stopPropagation();\r\n handleRemoveImage(index);\r\n }}\r\n />\r\n
    \r\n ))}\r\n
    \r\n }\r\n\r\n
    \r\n {formik.touched.productAttachment && formik.errors.productAttachment ?
    {formik.errors.productAttachment}
    : null}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default AddEditAdminProduct;\r\n","import React, { useState, useEffect, useRef, useMemo } from 'react'\r\nimport { Button } from 'primereact/button'\r\nimport { useFormik } from 'formik'\r\nimport * as Yup from 'yup';\r\nimport axios from 'axios';\r\nimport appUrl from \"../../../../constants/appUrl\";\r\nimport { ToastContainer, toast } from 'react-toastify';\r\nimport 'react-toastify/dist/ReactToastify.css';\r\nimport { Dropdown } from 'primereact/dropdown';\r\nimport JoditEditor from 'jodit-react';\r\nconst AddEditAdminTip = ({ onHide, setDialog, editable, rowData, setRes, placeholder }) => {\r\n\r\n const [apiRes, setApiRes] = useState();\r\n const [productList, setProductList] = useState();\r\n const [content, setContent] = useState('');\r\n const editor = useRef(null);\r\n const [loading, setLoading] = useState(false);\r\n const validationSchema = Yup.object({\r\n description: Yup.string().required('Required'),\r\n });\r\n const formik = useFormik({\r\n validationSchema: validationSchema,\r\n initialValues: {\r\n description: '',\r\n // productId: '',\r\n\r\n },\r\n\r\n onSubmit: async (data) => {\r\n setLoading(true);\r\n data.description = content;\r\n // if (!data.productId) {\r\n // data.productId = 0;\r\n // }\r\n const token = localStorage.getItem('token');\r\n if (!token) {\r\n toast.error(\"No token found. Please log in again.\");\r\n return;\r\n }\r\n try {\r\n const response = await axios.post(`${appUrl.baseUrl}api/Tips/AddNewTips`, data, {\r\n headers: {\r\n 'Authorization': `Bearer ${token}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n setApiRes(response);\r\n toast.success(\"Added Succesfully\")\r\n setRes(response);\r\n setDialog(false);\r\n } catch (error) {\r\n toast.error(\"Something went wrong\");\r\n } finally {\r\n setLoading(false);\r\n onHide();\r\n\r\n }\r\n },\r\n });\r\n\r\n const getAllProduct = async () => {\r\n const token = localStorage.getItem('token')\r\n try {\r\n const response = await fetch(`${appUrl.baseUrl}api/Product/GetAllProducts`, {\r\n headers: {\r\n 'Authorization': `Bearer ${token}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n })\r\n const data = await response.json();\r\n setProductList(data);\r\n }\r\n catch (error) {\r\n }\r\n }\r\n const config = useMemo(() => ({\r\n readonly: false,\r\n placeholder: placeholder || 'Start typings...'\r\n }), [placeholder]);\r\n\r\n useEffect(() => {\r\n getAllProduct()\r\n }, [])\r\n\r\n return (\r\n <>\r\n \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n setContent(newContent)}\r\n onChange={newContent => formik.setFieldValue('description', newContent)}\r\n />\r\n\r\n {formik.touched.description && formik.errors.description ?
    {formik.errors.description}
    : null}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n\r\n\r\n
    \r\n \r\n )\r\n}\r\n\r\nexport default AddEditAdminTip","import React, { useEffect, useState } from 'react';\r\nimport { Button } from 'primereact/button';\r\nimport { InputText } from 'primereact/inputtext';\r\nimport { useFormik } from 'formik';\r\nimport { Dropdown } from 'primereact/dropdown';\r\nimport * as Yup from 'yup';\r\nimport axios from 'axios';\r\nimport { ToastContainer, toast } from 'react-toastify';\r\nimport 'react-toastify/dist/ReactToastify.css';\r\n\r\nimport { MultiSelect } from 'primereact/multiselect';\r\nimport appUrl from \"../../../../constants/appUrl\";\r\n\r\nconst AddEditAdminOutage = ({ editable, setRes, rowData, setDialog, onHide }) => {\r\n const [channelList, setChannelList] = useState();\r\n const [productList, setProductList] = useState();\r\n const [statusList, setStatusList] = useState();\r\n const [apiRes, setApiRes] = useState();\r\n const [loading, setLoading] = useState(false);\r\n\r\n const validationSchema = Yup.object().shape({\r\n // channelID: Yup.array().min(1, 'Required').of(Yup.string()).required('Required'),\r\n // reason: Yup.string().required('Required').max(150, 'Reason must be 150 characters'),\r\n status: Yup.string().required('Required'),\r\n });\r\n\r\n const formik = useFormik(\r\n {\r\n validationSchema: validationSchema,\r\n initialValues: {\r\n productID: '',\r\n // channelID: [],\r\n status: '',\r\n reason: '',\r\n },\r\n onSubmit: async (data) => {\r\n setLoading(true);\r\n if (!data.productID) {\r\n data.productID = 0;\r\n }\r\n const token = localStorage.getItem('token');\r\n if (!token) {\r\n toast.error(\"No token found. Please log in again.\");\r\n return;\r\n }\r\n try {\r\n if (editable) {\r\n data.id = rowData.id;\r\n const response = await axios.patch(`${appUrl.baseUrl}api/OutageDegradation/UpdateOutageDegradation`, data, {\r\n headers: {\r\n 'Authorization': `Bearer ${token}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n setApiRes(response);\r\n toast.success(\"Update Successfully\");\r\n setRes(response);\r\n } else {\r\n const response = await axios.post(`${appUrl.baseUrl}api/OutageDegradation/AddNewOutageDegradation`, data, {\r\n headers: {\r\n 'Authorization': `Bearer ${token}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n setApiRes(response);\r\n toast.success(\"Added Successfully\");\r\n setRes(response);\r\n }\r\n setDialog(false);\r\n } catch (error) {\r\n toast.error(\"Something went wrong\");\r\n } finally {\r\n setLoading(true);\r\n onHide();\r\n }\r\n },\r\n });\r\n\r\n useEffect(() => {\r\n if (rowData) {\r\n\r\n formik.setFieldValue('productID', rowData.productID);\r\n // formik.setFieldValue('channelID', rowData.channelId?.length > 0 ? rowData?.channelId : []);\r\n formik.setFieldValue('reason', rowData.reason);\r\n formik.setFieldValue('status', rowData.statusId);\r\n }\r\n }, [rowData]);\r\n\r\n const getAllChannel = async () => {\r\n const token = localStorage.getItem('token')\r\n try {\r\n const response = await fetch(`${appUrl.baseUrl}api/Channel/GetAllChannels`, {\r\n headers: {\r\n 'Authorization': `Bearer ${token}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n const data = await response.json();\r\n setChannelList(data);\r\n } catch (error) {\r\n error(error);\r\n }\r\n }\r\n\r\n const getStatus = async () => {\r\n const token = localStorage.getItem('token')\r\n try {\r\n const response = await fetch(`${appUrl.baseUrl}api/OutageDegradation/GetOutageStatus`, {\r\n headers: {\r\n 'Authorization': `Bearer ${token}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n const data = await response.json();\r\n setStatusList(data);\r\n } catch (error) {\r\n error(error);\r\n }\r\n }\r\n\r\n const getAllProduct = async () => {\r\n const token =localStorage.getItem('token')\r\n try {\r\n const response = await fetch(`${appUrl.baseUrl}api/Product/GetAllProducts`,{\r\n headers: {\r\n 'Authorization': `Bearer ${token}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n const data = await response.json();\r\n setProductList(data);\r\n } catch (error) {\r\n error(error);\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n getAllChannel();\r\n getAllProduct();\r\n getStatus();\r\n }, []);\r\n return (\r\n <>\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n {/*
    \r\n
    \r\n \r\n \r\n {formik.touched.channelID && formik.errors.channelID ?
    {formik.errors.channelID}
    : null}\r\n
    \r\n
    */}\r\n
    \r\n
    \r\n \r\n \r\n {/* {formik.touched.reason && formik.errors.reason ?
    {formik.errors.reason}
    : null} */}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n {formik.touched.status && formik.errors.status ?
    {formik.errors.status}
    : null}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n}\r\n\r\nexport default AddEditAdminOutage;\r\n","\r\n\r\nimport React, { useState, useEffect, } from 'react'\r\nimport { Button } from 'primereact/button'\r\nimport { InputText } from \"primereact/inputtext\";\r\nimport { useFormik } from 'formik'\r\nimport * as Yup from 'yup';\r\nimport axios from 'axios';\r\nimport appUrl from \"../../../../constants/appUrl\";\r\nimport { ToastContainer, toast } from 'react-toastify';\r\nimport 'react-toastify/dist/ReactToastify.css';\r\n\r\nconst AddEditAdminDisclaimer = ({ onHide, setDialog, editable, rowData, setRes}) => {\r\n const [apiRes, setApiRes] = useState();\r\n const [loading, setLoading] = useState(false);\r\n const validationSchema = Yup.object({\r\n disclaimerDescription: Yup.string().required('Required').max(150, 'Disclaimer description must be 150 characters'),\r\n\r\n });\r\n const formik = useFormik({\r\n validationSchema: validationSchema,\r\n initialValues: {\r\n disclaimerDescription: '',\r\n },\r\n\r\n onSubmit: async (data) => {\r\n setLoading(true); \r\n const token = localStorage.getItem('token');\r\n if (!token) {\r\n toast.error(\"No token found. Please log in again.\");\r\n return;\r\n }\r\n try {\r\n if (editable) {\r\n const response = await axios.patch(`${appUrl.baseUrl}api/Disclaimer/UpdateDisclaimer`, data,{\r\n headers: {\r\n 'Authorization': `Bearer ${token}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n setApiRes(response);\r\n toast.success(\"updated Succesfully\")\r\n setRes(response);\r\n } else {\r\n const response = await axios.post(`${appUrl.baseUrl}api/Disclaimer/AddNewDisclaimer`, data,{\r\n headers: {\r\n 'Authorization': `Bearer ${token}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n setApiRes(response);\r\n toast.success(\"Added Succesfully\")\r\n setRes(response);\r\n\r\n }\r\n\r\n setDialog(false);\r\n } catch (error) {\r\n toast.error(\"Error occurred!\");\r\n } finally {\r\n setLoading(false);\r\n onHide();\r\n\r\n }\r\n },\r\n });\r\n \r\n useEffect(() => {\r\n if(editable)\r\n {\r\n formik.setFieldValue('disclaimerDescription', rowData?.disclaimerDescription);\r\n formik.setFieldValue('disclaimerID', rowData?.disclaimerID);\r\n }\r\n}, [editable,rowData]);\r\n return (\r\n <> \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n \r\n {formik.touched.disclaimerDescription && formik.errors.disclaimerDescription ?
    {formik.errors.disclaimerDescription}
    : null}\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n\r\n\r\n
    \r\n \r\n )\r\n}\r\n\r\nexport default AddEditAdminDisclaimer","import React, { useState } from 'react';\r\nimport { Button } from 'primereact/button';\r\nimport { useFormik } from 'formik';\r\nimport * as Yup from 'yup';\r\nimport axios from 'axios';\r\nimport { ToastContainer, toast } from 'react-toastify';\r\nimport 'react-toastify/dist/ReactToastify.css';\r\nimport appUrl from \"../../../../constants/appUrl\";\r\n\r\nconst AddEditAdminDashboardSlider = ({ onHide, setDialog, setRes, editable }) => {\r\n const [apiRes, setApiRes] = useState();\r\n const [selectedFiles, setSelectedFiles] = useState([])\r\n const [loading, setLoading] = useState(false);\r\n const allowedFileExtensions = [\r\n '.png', '.jpg', '.svg'\r\n ];\r\n const validationSchema = Yup.object({\r\n imageAttachment: Yup.array().required('Required'),\r\n imageAttachment: Yup.array().min(1, 'At least one attachment is required').required('Required'),\r\n\r\n });\r\n\r\n const formik = useFormik({\r\n validationSchema: validationSchema,\r\n initialValues: {\r\n imageAttachment: [],\r\n },\r\n onSubmit: async (data) => {\r\n setLoading(true);\r\n const token = localStorage.getItem('token');\r\n if (!token) {\r\n toast.error(\"No token found. Please log in again.\");\r\n return;\r\n }\r\n try {\r\n let newData = {\r\n imageAttachment: selectedFiles.map(file => ({ imagePath: file }))\r\n }\r\n {\r\n const response = await axios.post(`${appUrl.baseUrl}api/ImageSlider/AddNewImages`, newData , {\r\n headers: {\r\n 'Authorization': `Bearer ${token}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n setApiRes(response);\r\n\r\n setRes(response);\r\n toast.success(\"Added Succesfully\")\r\n setDialog(false);\r\n }\r\n\r\n }\r\n catch (error) {\r\n toast.error(\"Something went wrong\");\r\n } finally {\r\n setLoading(false);\r\n onHide();\r\n }\r\n },\r\n });\r\n\r\n const handleFileUpload = (event) => {\r\n const files = event.target.files;\r\n const imagesArray = Array.from(files);\r\n let newImagesBase64 = [];\r\n let hasInvalidFile = false;\r\n imagesArray.forEach((file) => {\r\n const fileExtension = file.name.split('.').pop();\r\n if (!allowedFileExtensions.includes(`.${fileExtension}`)) {\r\n toast.error(`${file.name} is not a supported file type`);\r\n hasInvalidFile = true;\r\n return;\r\n }\r\n const reader = new FileReader();\r\n reader.onload = () => {\r\n const base64String = reader.result;\r\n newImagesBase64.push(base64String);\r\n\r\n if (newImagesBase64.length === imagesArray.length) {\r\n formik.setFieldValue(\"imageAttachment\", [\r\n ...formik.values.imageAttachment,\r\n ...newImagesBase64,\r\n ]);\r\n }\r\n };\r\n setSelectedFiles(newImagesBase64)\r\n reader.readAsDataURL(file);\r\n });\r\n if\r\n (hasInvalidFile) {\r\n event.target.value = null;\r\n\r\n }\r\n };\r\n\r\n\r\n const handleRemoveImage = (indexToRemove) => {\r\n const updatedFiles = selectedFiles.filter((_, index) => index !== indexToRemove);\r\n setSelectedFiles(updatedFiles);\r\n formik.setFieldValue(\r\n 'imageAttachment',\r\n formik.values.imageAttachment.filter((_, index) => index !== indexToRemove)\r\n );\r\n };\r\n\r\n return (\r\n <>\r\n \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n handleFileUpload(event)}\r\n accept='image/*'\r\n multiple\r\n className='d-none my-3'\r\n />\r\n
    \r\n\r\n
    \r\n\r\n
    \r\n {formik.values.imageAttachment.map((image, index) => (\r\n
    \r\n {`Image\r\n {\r\n e.stopPropagation();\r\n handleRemoveImage(index);\r\n }}\r\n />\r\n
    \r\n ))}\r\n
    \r\n
    \r\n {formik.touched.imageAttachment && formik.errors.imageAttachment ?
    {formik.errors.imageAttachment}
    : null}\r\n\r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n}\r\n\r\nexport default AddEditAdminDashboardSlider;\r\n\r\n","import { Button } from 'primereact/button';\r\nimport React, { useState, useEffect } from 'react';\r\nimport { Link } from 'react-router-dom/cjs/react-router-dom.min';\r\nimport AddEditNew from '../components/AddEditNew';\r\nimport Slider from 'react-slick';\r\nimport 'slick-carousel/slick/slick.css';\r\nimport 'slick-carousel/slick/slick-theme.css';\r\nimport appUrl from \"../../../../constants/appUrl\";\r\nimport { Dialog } from 'primereact/dialog';\r\nimport { SplitButton } from 'primereact/splitbutton';\r\nimport { Card } from 'primereact/card';\r\nimport banner from \"../../../../../assets/KbIcons/Banner1.png\";\r\nimport banner2 from \"../../../../../assets/KbIcons/Banner2.png\";\r\nimport AddEditAdminApp from '../../AdminZAppJourney/components/AddEditAdminApp';\r\nimport AddEditAdminZTraining from '../../AdminZTrainingMaterial/components/AddEditAdminZTraining';\r\nimport AddEditAdminProduct from '../../AdminZProduct/components/AddEditAdminProduct';\r\nimport AddEditAdminTip from '../../AdminTipOfDay/components/AddEditAdminTip';\r\nimport AddEditAdminOutage from '../../AdminOutage/component/AddEditAdminOutage';\r\nimport AddEditAdminDisclaimer from '../../AdminDisclaimer/compoenets/AddEditAdminDisclaimer';\r\nimport AddEditAdminDashboardSlider from '../../AdminDashboardSlider/components/AddEditAdminDashboardSlider';\r\nimport AddEditSocialMedia from '../../SocialMedia/components/AddEditSocialMedia';\r\nimport AddEditComplaints from '../../ComplainHandling/components/AddEditComplaints';\r\nimport AddEditFaq from '../../faqs/components/AddEditFaq';\r\nimport Product from '../../../components/Product';\r\nimport AddEditProcessInformation from '../../ProcessInformation/components/AddEditProcessInformation';\r\nconst Dashboard = () => {\r\n\r\n const [dialog, setDialog] = useState();\r\n const [selectedComponent, setSelectedComponent] = useState(null);\r\n const [dialogVisible, setDialogVisible] = useState(false);\r\n const [editable, setEditable] = useState();\r\n const [tipsList, setTipsList] = useState([]);\r\n const [headerText, setHeaderText] = useState('');\r\n\r\n const [outageList, setOutageList] = useState();\r\n const [productList, setProductList] = useState();\r\n const [imagesList, setImagesList] = useState([]);\r\n const [imagesBanner, setImagesBanner] = useState([]);\r\n // Array of objects containing content for each card\r\n const cards = [\r\n { id: 1, content: \"Call Center\", para: \"Connecting. Resolving. Empowering\", path: \"/callcenter\" },\r\n { id: 2, content: \"Social Media\", para: \"Seamless. Intuitive. Empowering\", path: \"/socialmedia\" },\r\n { id: 3, content: \"In-App\", para: \"Connecting. Engaging. Inspiring\", path: \"/inapp\" },\r\n\r\n ];\r\n const settings = {\r\n // dots: true,\r\n infinite: true,\r\n speed: 500,\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n autoplay: true,\r\n autoplaySpeed: 2000,\r\n arrows: true\r\n };\r\n // const onHide = () => {\r\n // setDialog(false)\r\n // }\r\n const GetAllBanners = async () => {\r\n const token = localStorage.getItem('token')\r\n try {\r\n const response = await fetch(`${appUrl.baseUrl}api/ImageSlider/GetPromotionImages`,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Authorization': `Bearer ${token}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n }\r\n )\r\n const data = await response.json();\r\n setImagesBanner(data)\r\n\r\n } catch (error) {\r\n error('Error fetching :', error);\r\n }\r\n }\r\n const GetAllImages = async () => {\r\n const token = localStorage.getItem('token')\r\n try {\r\n const response = await fetch(`${appUrl.baseUrl}api/ImageSlider/GetAllImages`,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Authorization': `Bearer ${token}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n }\r\n )\r\n const data = await response.json();\r\n setImagesList(data)\r\n\r\n } catch (error) {\r\n error('Error fetching :', error);\r\n }\r\n }\r\n const GetAllTips = async () => {\r\n const token = localStorage.getItem('token')\r\n try {\r\n const response = await fetch(`${appUrl.baseUrl}api/Tips/GetTips`,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Authorization': `Bearer ${token}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n }\r\n )\r\n const data = await response.json();\r\n setTipsList(data)\r\n\r\n } catch (error) {\r\n error('Error fetching components:', error);\r\n }\r\n }\r\n const GetAllProducts = async () => {\r\n const token = localStorage.getItem('token')\r\n try {\r\n const response = await fetch(`${appUrl.baseUrl}api/Product/GetAllProducts`,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Authorization': `Bearer ${token}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n }\r\n )\r\n const data = await response.json();\r\n setProductList(data)\r\n\r\n } catch (error) {\r\n\r\n }\r\n }\r\n const GetOutageDegradation = async () => {\r\n const token = localStorage.getItem('token')\r\n console.log('token', token)\r\n try {\r\n const response = await fetch(`${appUrl.baseUrl}api/OutageDegradation/GetAllOutageDegradation`,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Authorization': `Bearer ${token}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n }\r\n )\r\n const data = await response.json();\r\n setOutageList(data)\r\n }\r\n catch (error) {\r\n\r\n }\r\n }\r\n\r\n const items = [\r\n {\r\n label: 'Process',\r\n command: () => {\r\n setSelectedComponent();\r\n setHeaderText('Add New Process');\r\n setDialogVisible(true);\r\n }\r\n },\r\n {\r\n label: 'Product',\r\n command: () => {\r\n setSelectedComponent();\r\n setHeaderText('Add New Product');\r\n setDialogVisible(true);\r\n }\r\n },\r\n {\r\n label: 'App Journey',\r\n command: () => {\r\n setSelectedComponent();\r\n setHeaderText('Add New App Journey');\r\n setDialogVisible(true);\r\n }\r\n },\r\n {\r\n label: 'Training Material',\r\n command: () => {\r\n setSelectedComponent();\r\n setHeaderText('Add New Training Material');\r\n setDialogVisible(true);\r\n }\r\n },\r\n {\r\n label: 'Tip of the day',\r\n command: () => {\r\n setSelectedComponent();\r\n setHeaderText('Add New Tip of the Day');\r\n setDialogVisible(true);\r\n }\r\n },\r\n {\r\n label: 'Outages / Degradations',\r\n command: () => {\r\n setSelectedComponent();\r\n setHeaderText('Add New Outages / Degradations');\r\n setDialogVisible(true);\r\n }\r\n },\r\n {\r\n label: 'Outages / Disclaimer',\r\n command: () => {\r\n setSelectedComponent();\r\n setHeaderText('Add New Outages / Disclaimer');\r\n setDialogVisible(true);\r\n }\r\n },\r\n {\r\n label: 'Dashboard Slider',\r\n command: () => {\r\n setSelectedComponent();\r\n setHeaderText('Add New Dashboard Slider');\r\n setDialogVisible(true);\r\n }\r\n },\r\n {\r\n label: 'Tutorials and Videos',\r\n command: () => {\r\n setSelectedComponent();\r\n setHeaderText('Add New Tutorials and Videos');\r\n setDialogVisible(true);\r\n }\r\n },\r\n {\r\n label: 'Complaint Handling',\r\n command: () => {\r\n setSelectedComponent();\r\n setHeaderText('Add New Complaint Handling');\r\n setDialogVisible(true);\r\n }\r\n },\r\n {\r\n label: 'FAQs',\r\n command: () => {\r\n setSelectedComponent();\r\n setHeaderText('Add New FAQs');\r\n setDialogVisible(true);\r\n }\r\n }\r\n ];\r\n\r\n\r\n const header = (\r\n \"Card\"\r\n );\r\n const footer = (\r\n <>\r\n \r\n View More \r\n \r\n \r\n );\r\n\r\n const onHide = () => {\r\n setDialogVisible(false);\r\n }\r\n\r\n const formatDate = (dateString) => {\r\n const options = { year: 'numeric', month: '2-digit', day: '2-digit', hour: '2-digit', minute: '2-digit' };\r\n return new Date(dateString).toLocaleDateString('en-GB', options).replace(',', '');\r\n };\r\n\r\n\r\n useEffect(() => {\r\n GetAllProducts();\r\n GetAllImages();\r\n GetAllBanners();\r\n GetAllTips();\r\n GetOutageDegradation()\r\n }, []);\r\n\r\n return (\r\n <>\r\n\r\n \r\n {selectedComponent}\r\n \r\n\r\n
    \r\n
    \r\n

    Welcome to Zindigi Knowledge Base System

    \r\n
    \r\n
    \r\n {/* */}\r\n
    \r\n
    \r\n
    \r\n {imagesList.length > 0 ? (\r\n imagesList.length === 1 ? (\r\n // If there is only one image, display it without the slider\r\n
    \r\n \r\n
    \r\n ) : (\r\n // If there are multiple images, display them in the slider\r\n \r\n {imagesList.map((imagePath, index) => (\r\n
    \r\n \r\n
    \r\n ))}\r\n
    \r\n )\r\n ) : (\r\n // If there are no images, display a dummy image\r\n
    \r\n \r\n
    \r\n )}\r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \"logo\"
    \r\n
    Tip of The Day
    \r\n {/*

    Worried about your bills? Zindigi,\r\n has you covered!

    */}\r\n
    \r\n
    \r\n\r\n\r\n {tipsList.length > 0 && ((\r\n
    \r\n

    \r\n
    \r\n ))}\r\n
    \r\n {/*

    Still waiting for Upgrade your account?

    */}\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n

    Outages/Degradations

    \r\n
    \r\n\r\n {Array.isArray(outageList) && outageList.length > 0 ? (\r\n outageList.map((outage, index) => (\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \"logo\"\r\n
    \r\n
    \r\n
    \r\n\r\n
    {outage.productName}
    \r\n
    \r\n

    {outage.reason}

    \r\n
    \r\n
    \r\n

    \r\n {new Date(outage.createdDate).toLocaleString('en-GB', {\r\n day: '2-digit',\r\n month: '2-digit',\r\n year: 'numeric',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n second: '2-digit',\r\n hour12: true\r\n })}\r\n

    \r\n

    \r\n {outage.updatedDate\r\n ? new Date(outage.updatedDate).toLocaleString('en-GB', {\r\n day: '2-digit',\r\n month: '2-digit',\r\n year: 'numeric',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n second: '2-digit',\r\n hour12: true\r\n })\r\n : '-'\r\n }\r\n

    \r\n
    \r\n \r\n {outage.status}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n ))\r\n ) : (\r\n
    \r\n

    No outages reported.

    \r\n
    \r\n )}\r\n
    \r\n
    \r\n
    \r\n

    Promotions

    \r\n\r\n
    \r\n {imagesBanner.length > 0 ? (\r\n imagesBanner.length === 1 ? (\r\n // If there is only one image, display it without the slider\r\n
    \r\n \r\n
    \r\n ) : (\r\n // If there are multiple images, display them in the slider\r\n \r\n {imagesBanner.map((imagePath, index) => (\r\n
    \r\n \r\n
    \r\n ))}\r\n
    \r\n )\r\n ) : (\r\n // If there are no images, display a dummy image\r\n
    \r\n \r\n
    \r\n )}\r\n\r\n
    \r\n\r\n\r\n\r\n
    \r\n \r\n\r\n\r\n\r\n
    \r\n
    \r\n

    Channel

    \r\n
    \r\n {cards.map(card => (\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n\r\n {card.id === 1 &&
    }\r\n {card.id === 2 &&
    }\r\n {card.id === 3 &&
    }\r\n\r\n\r\n\r\n
    \r\n
    \r\n\r\n\r\n
    {card.content}
    \r\n

    {card.para}

    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    {/* */}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n ))}\r\n\r\n
    \r\n\r\n
    \r\n
    \r\n

    Products

    \r\n
    \r\n \r\n
    \r\n\r\n\r\n\r\n\r\n\r\n \r\n );\r\n}\r\n\r\nexport default Dashboard;\r\n","import React from 'react';\r\nimport Slider from 'react-slick';\r\nimport 'slick-carousel/slick/slick.css';\r\nimport 'slick-carousel/slick/slick-theme.css';\r\nimport appUrl from \"../../../../constants/appUrl\";\r\nconst ViewAttachment = ({ attachment }) => {\r\n\r\n const settings = {\r\n dots: true,\r\n infinite: true,\r\n speed: 500,\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n autoplay: true,\r\n autoplaySpeed: 2000,\r\n };\r\n const renderSlider = () => {\r\n if (attachment.length > 1) {\r\n return (\r\n \r\n {attachment.map((imagePath, index) => (\r\n
    \r\n \"Attachment\"\r\n
    \r\n ))}\r\n
    \r\n );\r\n } else if (attachment.length === 1) {\r\n return (\r\n \"Attachment\"\r\n );\r\n } else {\r\n return

    No images available

    ;\r\n }\r\n };\r\n\r\n return (\r\n
    \r\n {renderSlider()}\r\n
    \r\n );\r\n};\r\n\r\nexport default ViewAttachment;\r\n","import React, { useState, useEffect } from 'react';\r\nimport appUrl from \"../../../../constants/appUrl\";\r\nimport { Button } from 'primereact/button';\r\nimport { FilterMatchMode } from \"primereact/api\";\r\nimport { Dialog } from 'primereact/dialog';\r\nimport ViewAttachment from '../components/ViewAttachment';\r\nimport AddEditProcessInformation from '../../ProcessInformation/components/AddEditProcessInformation';\r\nimport { DataTable } from 'primereact/datatable';\r\nimport { Column } from 'primereact/column';\r\nimport { InputText } from 'primereact/inputtext';\r\nimport { ConfirmDialog, confirmDialog } from 'primereact/confirmdialog';\r\nimport axios from 'axios';\r\nimport { ToastContainer, toast } from 'react-toastify';\r\nimport Loader from '../../../components/laoder';\r\nimport CustomDescription from '../../../components/CustomDescription';\r\nimport CustomVideo from '../../../components/CustomVideo';\r\nconst UserProcess = ({ searchQuery }) => {\r\n console.log(\"search key\",searchQuery)\r\n\r\n \r\n const [processList, setProcessList] = useState([]);\r\n const [isLoading, setIsLoading] = useState(true);\r\n const [viewAttachmentDialog, setViewAttachmentDialog] = useState(false);\r\n const [selectedAttachment, setSelectedAttachment] = useState(null);\r\n const [dialog, setDialog] = useState();\r\n const [editable, setEditable] = useState();\r\n const [rowselect, setRowselect] = useState(null)\r\n const [res, setRes] = useState();\r\n const [filteredData, setFilteredData] = useState([]);\r\n const [descriptionDialog, setDescriptionDialog] = useState(false);\r\n const [descriptionContent, setDescriptionContent] = useState('');\r\n const [videoAttachmentDialog, setVideoAttachmentDialog] = useState(false);\r\n const [selectedVideoAttachment, setSelectedVideoAttachment] = useState(null);\r\n const [loading, setLoading] = useState(false);\r\n const GetAllProcess = async () => {\r\n const token = localStorage.getItem('token')\r\n try {\r\n setLoading(true);\r\n const response = await fetch(`${appUrl.baseUrl}api/Process/GetAllProcess`,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Authorization': `Bearer ${token}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n }\r\n );\r\n const data = await response.json();\r\n setProcessList(data);\r\n setLoading(false);;\r\n } catch (error) {\r\n error('Error fetching processes:', error);\r\n }\r\n };\r\n const onHide = () => {\r\n setDialog(false)\r\n }\r\n\r\n const onHideViewAttachment = () => {\r\n setViewAttachmentDialog(false);\r\n };\r\n useEffect(() => {\r\n if (searchQuery) {\r\n setFilteredData(\r\n processList.filter((item) =>\r\n item.policyPrefix?.toLowerCase().includes(searchQuery?.toLowerCase()) ||\r\n item.processName?.toLowerCase().includes(searchQuery?.toLowerCase()) ||\r\n item.productName?.toLowerCase().includes(searchQuery?.toLowerCase()) ||\r\n item.channelName?.toLowerCase().includes(searchQuery?.toLowerCase())\r\n )\r\n );\r\n } else {\r\n setFilteredData(processList);\r\n }\r\n }, [searchQuery, processList]);\r\n\r\n const isAdmin = localStorage.getItem('admin')\r\n const actionDocument = (rowData) => {\r\n const documentsToDownload = rowData.processAttachments.filter(attachment =>\r\n attachment.attachmentPath.endsWith('.docx') ||\r\n attachment.attachmentPath.endsWith('.pdf') ||\r\n attachment.attachmentPath.endsWith('.xlsx')\r\n );\r\n\r\n const documentPaths = documentsToDownload.map(document => document.attachmentPath);\r\n const hasImage = rowData.processAttachments.some(attachment => attachment.attachmentPath.endsWith('.png') || attachment.attachmentPath.endsWith('.jpg') || attachment.attachmentPath.endsWith('.jpeg'));\r\n const hasVideo = rowData.processAttachments.some(attachment => attachment.attachmentPath.endsWith('.mp4') || attachment.attachmentPath.endsWith('.mp5') || attachment.attachmentPath.endsWith('.webm') || attachment.attachmentPath.endsWith('.mov') || attachment.attachmentPath.endsWith('.3gp') || attachment.attachmentPath.endsWith('.3g2') || attachment.attachmentPath.endsWith('.mpeg'));\r\n\r\n return (\r\n
    \r\n {documentsToDownload.length > 0 && (\r\n downloadDocuments(documentPaths)}\r\n />\r\n )}\r\n {hasImage && (\r\n
    \r\n );\r\n }\r\n const onHideVideoAttachment = () => {\r\n setVideoAttachmentDialog(false);\r\n };\r\n\r\n\r\n const downloadDocuments = async (documentPaths) => {\r\n try {\r\n for (let i = 0; i < documentPaths.length; i++) {\r\n const documentPath = documentPaths[i];\r\n const response = await fetch(`${appUrl.baseUrl}${documentPath}`);\r\n const blob = await response.blob();\r\n const url = URL.createObjectURL(blob);\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.setAttribute('download', '');\r\n link.setAttribute('target', '_blank');\r\n link.click();\r\n URL.revokeObjectURL(url);\r\n await new Promise(resolve => setTimeout(resolve, 1000)); // Delay each download by 1 second\r\n }\r\n } catch (error) {\r\n console.error(\"Error downloading documents:\", error);\r\n toast.error(\"Failed to download documents\");\r\n }\r\n };\r\n\r\n\r\n\r\n const accept = async (rowData) => {\r\n try {\r\n const response = await axios.delete(`${appUrl.baseUrl}api/Process/DeleteProcessByID/${rowData.processId}/${rowData.channelId}`, {\r\n headers: {\r\n 'Authorization': `Bearer ${localStorage.getItem('token')}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n setRes(response.data);\r\n toast.success(\"Deleted Successfully\");\r\n } catch (error) {\r\n toast.error(\"Failed to delete. Please try again.\");\r\n console.error(\"Error deleting disclaimer:\", error);\r\n }\r\n };\r\n const reject = (rowData) => {\r\n return\r\n }\r\n const confirm = (rowData) => {\r\n confirmDialog({\r\n header: (\r\n
    \r\n \r\n\r\n
    \r\n ),\r\n message: (\r\n Are you sure you want to delete this Process?\r\n ),\r\n accept: () => accept(rowData),\r\n reject: () => reject(rowData),\r\n acceptClassName: 'custom-btn-red',\r\n rejectClassName: 'custom-white-red',\r\n className: 'center-buttons no-close-button',\r\n });\r\n };\r\n\r\n const actionTemplate = (rowData) => {\r\n return (\r\n
    \r\n
    \r\n );\r\n }\r\n const editAction = async (rowData) => {\r\n const token = localStorage.getItem('token')\r\n try {\r\n const response = await axios.get(`${appUrl.baseUrl}api/Process/GetProcessByProcessId/${rowData.processId}/${rowData.channelId}`, {\r\n headers: {\r\n 'Authorization': `Bearer ${token}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n const data = response.data;\r\n setEditable(true);\r\n setRowselect(data);\r\n setDialog(true);\r\n } catch (error) {\r\n error(\"Error fetching outage data by ID:\", error);\r\n toast.error(\"Failed to fetch data for editing\");\r\n }\r\n };\r\n const showDescription = (description) => {\r\n setDescriptionContent(description);\r\n setDescriptionDialog(true);\r\n };\r\n const onHideDescriptionDialog = () => {\r\n setDescriptionDialog(false);\r\n };\r\n\r\n useEffect(() => {\r\n GetAllProcess();\r\n }, [res]);\r\n\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n {selectedVideoAttachment && }\r\n \r\n \r\n {selectedAttachment && }\r\n \r\n \r\n \r\n \r\n\r\n\r\n {isAdmin === 'true' || isAdmin === true ? (\r\n
    \r\n
    \r\n
    Process
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n ) :\r\n
    \r\n
    \r\n
    Process
    \r\n
    \r\n
    \r\n\r\n
    \r\n\r\n
    \r\n }\r\n\r\n\r\n
    \r\n
    \r\n {loading && }\r\n
    \r\n \r\n \r\n (\r\n \r\n {rowData.channelName.length > 15 ? `${rowData.channelName.slice(0, 15)}...` : rowData.channelName}\r\n \r\n )} />\r\n {/* */}\r\n (\r\n \r\n {rowData.processName.length > 15 ? `${rowData.processName.slice(0, 15)}...` : rowData.processName}\r\n \r\n )} />\r\n (\r\n \r\n {rowData.policyPrefix.length > 15 ? `${rowData.policyPrefix.slice(0, 15)}...` : rowData.policyPrefix}\r\n \r\n )} />\r\n (\r\n {\r\n e.preventDefault();\r\n showDescription(rowData.description);\r\n }}\r\n style={{ cursor: 'pointer', color: '#00b0ab', textDecoration: 'underline' }}\r\n >\r\n View Description\r\n \r\n )}\r\n />\r\n new Date(rowData.createdDate).toLocaleString('en-GB', {\r\n day: '2-digit',\r\n month: '2-digit',\r\n year: 'numeric',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n hour12: true\r\n })} />\r\n {\r\n if (!rowData.updatedDate) {\r\n return '-';\r\n }\r\n return new Date(rowData.updatedDate).toLocaleString('en-GB', {\r\n day: '2-digit',\r\n month: '2-digit',\r\n year: 'numeric',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n hour12: true,\r\n });\r\n }}\r\n />\r\n\r\n \r\n {isAdmin === 'true' || isAdmin === true ? (\r\n \r\n ) : null}\r\n \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n );\r\n};\r\n\r\nexport default UserProcess;\r\n","import React from 'react';\r\nimport Slider from 'react-slick';\r\nimport 'slick-carousel/slick/slick.css';\r\nimport 'slick-carousel/slick/slick-theme.css';\r\nimport appUrl from \"../../../../constants/appUrl\";\r\nconst ViewAttachment = ({ attachment }) => {\r\n\r\n const settings = {\r\n dots: true,\r\n infinite: true,\r\n speed: 500,\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n autoplay: true,\r\n autoplaySpeed: 2000,\r\n };\r\n const renderSlider = () => {\r\n if (attachment.length > 1) {\r\n return (\r\n \r\n {attachment.map((imagePath, index) => (\r\n
    \r\n \"Attachment\"\r\n
    \r\n ))}\r\n
    \r\n );\r\n } else if (attachment.length === 1) {\r\n return (\r\n \"Attachment\"\r\n );\r\n } else {\r\n return

    No images available

    ;\r\n }\r\n };\r\n\r\n return (\r\n
    \r\n {renderSlider()}\r\n
    \r\n );\r\n};\r\n\r\nexport default ViewAttachment;\r\n","import { Column } from 'primereact/column';\r\nimport { DataTable } from 'primereact/datatable';\r\nimport React, { useState, useEffect } from 'react';\r\nimport appUrl from \"../../../../constants/appUrl\";\r\nimport { Button } from 'primereact/button';\r\n\r\nimport { Dialog } from 'primereact/dialog';\r\nimport ViewAttachment from '../components/ViewAttachment';\r\nimport AddEditProcessInformation from '../../ProcessInformation/components/AddEditProcessInformation';\r\nimport AddEditComplaints from '../../ComplainHandling/components/AddEditComplaints';\r\nimport { InputText } from 'primereact/inputtext';\r\nimport { FilterMatchMode } from \"primereact/api\";\r\nimport { ToastContainer, toast } from 'react-toastify';\r\nimport axios from 'axios';\r\nimport { ConfirmDialog, confirmDialog } from 'primereact/confirmdialog';\r\nimport CustomDescription from '../../../components/CustomDescription';\r\nimport CustomVideo from '../../../components/CustomVideo';\r\nimport Loader from '../../../components/laoder';\r\nconst UserComplaint = ({ searchQuery }) => {\r\n console.log('Okkkkkkkkkk', searchQuery)\r\n const [complaintList, setComplaintList] = useState([]);\r\n const [viewAttachmentDialog, setViewAttachmentDialog] = useState(false);\r\n const [selectedAttachment, setSelectedAttachment] = useState(null);\r\n const [dialog, setDialog] = useState();\r\n const [editable, setEditable] = useState();\r\n const [rowselect, setRowselect] = useState(null)\r\n const [loading, setLoading] = useState(false);\r\n const [isLoading, setIsLoading] = useState(true);\r\n const [res, setRes] = useState();\r\n const [filteredData, setFilteredData] = useState([]);\r\n const [descriptionDialog, setDescriptionDialog] = useState(false);\r\n const [descriptionContent, setDescriptionContent] = useState('');\r\n const [videoAttachmentDialog, setVideoAttachmentDialog] = useState(false);\r\n const [selectedVideoAttachment, setSelectedVideoAttachment] = useState(null);\r\n\r\n const isAdmin = localStorage.getItem('admin')\r\n const GetAllComplaints = async () => {\r\n const token = localStorage.getItem('token')\r\n try {\r\n setLoading(true);\r\n const response = await fetch(`${appUrl.baseUrl}api/Complaint/GetAllComplaint`,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Authorization': `Bearer ${token}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n }\r\n );\r\n const data = await response.json();\r\n setComplaintList(data);\r\n setIsLoading(false);\r\n setLoading(false);\r\n } catch (error) {\r\n error('Error fetching complaints:', error);\r\n }\r\n };\r\n\r\n const accept = async (rowData) => {\r\n try {\r\n const response = await axios.delete(`${appUrl.baseUrl}api/Complaint/DeleteComplaintByID/${rowData?.complaintID}/${rowData.channelId}`, {\r\n headers: {\r\n 'Authorization': `Bearer ${localStorage.getItem('token')}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n setRes(response.data);\r\n toast.success(\"Deleted Successfully\");\r\n } catch (error) {\r\n toast.error(\"Failed to delete. Please try again.\");\r\n console.error(\"Error deleting disclaimer:\", error);\r\n }\r\n };\r\n const reject = (rowData) => {\r\n return\r\n }\r\n const confirm = (rowData) => {\r\n confirmDialog({\r\n header: (\r\n
    \r\n \r\n\r\n
    \r\n ),\r\n message: (\r\n Are you sure you want to delete this Complaint?\r\n ),\r\n accept: () => accept(rowData),\r\n reject: () => reject(rowData),\r\n acceptClassName: 'custom-btn-red',\r\n rejectClassName: 'custom-white-red',\r\n className: 'center-buttons no-close-button',\r\n });\r\n };\r\n\r\n const actionTemplate = (rowData) => {\r\n return (\r\n
    \r\n
    \r\n );\r\n }\r\n const editAction = async (rowData) => {\r\n const token = localStorage.getItem('token')\r\n try {\r\n const response = await axios.get(`${appUrl.baseUrl}api/Complaint/GetComplaintByComplaintId/${rowData.complaintID}/${rowData.channelId}`, {\r\n headers: {\r\n 'Authorization': `Bearer ${token}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n const data = response.data;\r\n setEditable(true);\r\n setRowselect(data);\r\n setDialog(true);\r\n } catch (error) {\r\n error(\"Error fetching outage data by ID:\", error);\r\n toast.error(\"Failed to fetch data for editing\");\r\n }\r\n };\r\n const onHideVideoAttachment = () => {\r\n setVideoAttachmentDialog(false);\r\n };\r\n const onHideViewAttachment = () => {\r\n setViewAttachmentDialog(false);\r\n };\r\n const onHide = () => {\r\n setDialog(false)\r\n }\r\n const actionDocument = (rowData) => {\r\n const documentsToDownload = rowData.complaintAttachment.filter(attachment =>\r\n attachment.attachmentPath.endsWith('.docx') ||\r\n attachment.attachmentPath.endsWith('.pdf') ||\r\n attachment.attachmentPath.endsWith('.xlsx')\r\n );\r\n\r\n const documentPaths = documentsToDownload.map(document => document.attachmentPath);\r\n const hasImage = rowData.complaintAttachment.some(attachment => attachment.attachmentPath.endsWith('.png') || attachment.attachmentPath.endsWith('.jpg') || attachment.attachmentPath.endsWith('.jpeg'));\r\n const hasVideo = rowData.complaintAttachment.some(attachment => attachment.attachmentPath.endsWith('.mp4') || attachment.attachmentPath.endsWith('.mp5') || attachment.attachmentPath.endsWith('.webm') || attachment.attachmentPath.endsWith('.mov') || attachment.attachmentPath.endsWith('.3gp') || attachment.attachmentPath.endsWith('.3g2') || attachment.attachmentPath.endsWith('.mpeg'));\r\n\r\n return (\r\n
    \r\n {documentsToDownload.length > 0 && (\r\n downloadDocuments(documentPaths)}\r\n />\r\n )}\r\n {hasImage && (\r\n
    \r\n );\r\n }\r\n\r\n\r\n\r\n const downloadDocuments = async (documentPaths) => {\r\n try {\r\n for (let i = 0; i < documentPaths.length; i++) {\r\n const documentPath = documentPaths[i];\r\n const response = await fetch(`${appUrl.baseUrl}${documentPath}`);\r\n const blob = await response.blob();\r\n const url = URL.createObjectURL(blob);\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.setAttribute('download', '');\r\n link.setAttribute('target', '_blank');\r\n link.click();\r\n URL.revokeObjectURL(url);\r\n await new Promise(resolve => setTimeout(resolve, 1000)); // Delay each download by 1 second\r\n }\r\n } catch (error) {\r\n console.error(\"Error downloading documents:\", error);\r\n toast.error(\"Failed to download documents\");\r\n }\r\n };\r\n\r\n const stripHtmlTags = (html) => {\r\n const doc = new DOMParser().parseFromString(html, 'text/html');\r\n return doc.body.textContent || \"\";\r\n };\r\n const showDescription = (description) => {\r\n setDescriptionContent(description);\r\n setDescriptionDialog(true);\r\n };\r\n const onHideDescriptionDialog = () => {\r\n setDescriptionDialog(false);\r\n };\r\n\r\n\r\n useEffect(() => {\r\n if (searchQuery) {\r\n setFilteredData(\r\n complaintList.filter((item) =>\r\n item.complaintPrefix?.toLowerCase().includes(searchQuery?.toLowerCase()) ||\r\n item.complaintProcessName?.toLowerCase().includes(searchQuery?.toLowerCase()) ||\r\n item.productName?.toLowerCase().includes(searchQuery?.toLowerCase()) ||\r\n item.channelName?.toLowerCase().includes(searchQuery?.toLowerCase())\r\n )\r\n );\r\n } else {\r\n setFilteredData(complaintList);\r\n }\r\n }, [searchQuery, complaintList]);\r\n useEffect(() => {\r\n GetAllComplaints();\r\n }, [res]);\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n {selectedAttachment && }\r\n \r\n \r\n {selectedVideoAttachment && }\r\n \r\n \r\n \r\n \r\n
    \r\n\r\n\r\n
    \r\n
    \r\n
    Complaint Handling
    \r\n
    \r\n \r\n {isAdmin === 'true' || isAdmin === true ? (\r\n
    \r\n
    \r\n ) :\r\n null\r\n }\r\n
    \r\n\r\n
    \r\n\r\n
    \r\n
    \r\n {loading && }\r\n
    \r\n \r\n \r\n (\r\n \r\n {rowData.channelName.length > 15 ? `${rowData.channelName.slice(0, 15)}...` : rowData.channelName}\r\n \r\n )} />\r\n {/* */}\r\n (\r\n \r\n {rowData.complaintProcessName.length > 15 ? `${rowData.complaintProcessName.slice(0, 15)}...` : rowData.complaintProcessName}\r\n \r\n )} />\r\n {/* */}\r\n (\r\n \r\n {rowData.complaintPrefix.length > 15 ? `${rowData.complaintPrefix.slice(0, 15)}...` : rowData.complaintPrefix}\r\n \r\n )} />\r\n (\r\n {\r\n e.preventDefault();\r\n showDescription(rowData.complaintDescription);\r\n }}\r\n style={{ cursor: 'pointer', color: '#00b0ab', textDecoration: 'underline' }}\r\n >\r\n View Description\r\n \r\n )}\r\n />\r\n new Date(rowData.createdDate).toLocaleString('en-GB', {\r\n day: '2-digit',\r\n month: '2-digit',\r\n year: 'numeric',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n hour12: true\r\n })} />\r\n {\r\n if (!rowData.updatedDate) {\r\n return '-';\r\n }\r\n return new Date(rowData.updatedDate).toLocaleString('en-GB', {\r\n day: '2-digit',\r\n month: '2-digit',\r\n year: 'numeric',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n hour12: true,\r\n });\r\n }}\r\n />\r\n \r\n {isAdmin === 'true' || isAdmin === true ? (\r\n \r\n ) : null}\r\n \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default UserComplaint;\r\n","import React, { useState, useEffect } from 'react';\r\nimport appUrl from \"../../../../constants/appUrl\";\r\nimport { Dialog } from 'primereact/dialog';\r\nimport AddEditSocialMedia from '../../SocialMedia/components/AddEditSocialMedia';\r\nimport { Button } from 'primereact/button';\r\nimport { DataTable } from 'primereact/datatable';\r\nimport { Column } from 'primereact/column';\r\nimport ViewAttachment from '../../ProcessInformation/components/ViewAttachment';\r\nimport { InputText } from 'primereact/inputtext';\r\n\r\nimport { FilterMatchMode } from \"primereact/api\";\r\nconst UserSocialMedia = () => {\r\n const [socialList, setSocialList] = useState([]);\r\n const [dialog, setDialog] = useState(false);\r\n const [channelList, setChannelList] = useState([]);\r\n const [res, setRes] = useState([]);\r\n const [viewAttachmentDialog, setViewAttachmentDialog] = useState(false);\r\n const [selectedAttachment, setSelectedAttachment] = useState(null);\r\n const [globalFilterValue, setGlobalFilterValue] = useState(\"\");\r\n const [filters, setFilters] = useState({\r\n global: { value: null, matchMode: FilterMatchMode.CONTAINS },\r\n });\r\n\r\n const onGlobalFilterChange = (e) => {\r\n const value = e.target.value;\r\n let _filters = { ...filters };\r\n _filters[\"global\"].value = value;\r\n setFilters(_filters);\r\n setGlobalFilterValue(value);\r\n };\r\n const isAdmin = localStorage.getItem('admin');\r\n\r\n const getSocial = async () => {\r\n try {\r\n const response = await fetch(`${appUrl.baseUrl}api/Post/GetAllPost`);\r\n const data = await response.json();\r\n setSocialList(data);\r\n } catch (error) {\r\n error('Error fetching products:', error);\r\n }\r\n };\r\n\r\n const getAllChannel = async () => {\r\n try {\r\n const response = await fetch(`${appUrl.baseUrl}api/Channel/GetAllChannels`);\r\n const data = await response.json();\r\n setChannelList(data);\r\n } catch (error) {\r\n error(error);\r\n }\r\n };\r\n\r\n const onHide = () => {\r\n setDialog(false);\r\n };\r\n const onHideViewAttachment = () => {\r\n setViewAttachmentDialog(false);\r\n };\r\n const actionEye = (rowData) => {\r\n return (\r\n
    \r\n
    \r\n );\r\n }\r\n const stripHtmlTags = (html) => {\r\n const doc = new DOMParser().parseFromString(html, 'text/html');\r\n return doc.body.textContent || \"\";\r\n};\r\n useEffect(() => {\r\n getSocial();\r\n getAllChannel();\r\n }, [res]);\r\n\r\n return (\r\n <>\r\n \r\n {selectedAttachment && }\r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n
    \r\n
    Tutorials and Videos
    \r\n
    \r\n\r\n {/* */}\r\n
    \r\n {isAdmin === 'true' || isAdmin === true ? (\r\n
    \r\n
    \r\n ) :\r\n null\r\n }\r\n\r\n
    \r\n\r\n
    \r\n\r\n
    \r\n
    \r\n \r\n \r\n \r\n {/* */}\r\n (\r\n \r\n )}\r\n />\r\n new Date(rowData.createdDate).toLocaleString('en-GB', {\r\n day: '2-digit',\r\n month: '2-digit',\r\n year: 'numeric',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n hour12: true\r\n })} />\r\n \r\n\r\n \r\n\r\n
    \r\n
    \r\n
    \r\n\r\n \r\n );\r\n};\r\n\r\nexport default UserSocialMedia;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { Accordion, AccordionTab } from 'primereact/accordion';\r\nimport appUrl from \"../../../../constants/appUrl\";\r\nimport { DataTable } from 'primereact/datatable';\r\nimport { Column } from 'primereact/column';\r\nimport { FilterMatchMode } from \"primereact/api\";\r\nimport { InputText } from 'primereact/inputtext';\r\nimport Loader from '../../../components/laoder';\r\nconst AgainstProductFaq = ({ product, productId2, searchQuery }) => {\r\n const [faqList, setFaqList] = useState([]);\r\n const [loading, setLoading] = useState(false);\r\n const [filteredData, setFilteredData] = useState([]);\r\n const getFaqById = async (productId) => {\r\n try {\r\n setLoading(true);\r\n const response = await fetch(`${appUrl.baseUrl}api/FAQ/GetFAQByProductId/${productId || productId2}`);\r\n const data = await response.json();\r\n setFaqList(data);\r\n setLoading(false);\r\n } catch (error) {\r\n error('Error fetching FAQs:', error);\r\n }\r\n };\r\n useEffect(() => {\r\n if (searchQuery) {\r\n setFilteredData(\r\n faqList.filter((item) =>\r\n item.question?.toLowerCase().includes(searchQuery?.toLowerCase())\r\n )\r\n );\r\n } else {\r\n setFilteredData(faqList);\r\n }\r\n }, [searchQuery, faqList]);\r\n\r\n useEffect(() => {\r\n if (product && product.productId || productId2) {\r\n getFaqById(product?.productId, productId2);\r\n }\r\n }, [product, productId2]);\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n\r\n {/* */}\r\n
    \r\n {loading && }\r\n \r\n\r\n \r\n \r\n new Date(rowData.createdDate).toLocaleString('en-GB', {\r\n day: '2-digit',\r\n month: '2-digit',\r\n year: 'numeric',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n hour12: true\r\n })} />\r\n new Date(rowData.updatedDate).toLocaleString('en-GB', {\r\n day: '2-digit',\r\n month: '2-digit',\r\n year: 'numeric',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n hour12: true\r\n })} />\r\n \r\n
    \r\n\r\n );\r\n};\r\n\r\nexport default AgainstProductFaq;\r\n","\r\n\r\nimport React, { useState, useEffect } from 'react'\r\nimport { Button } from 'primereact/button'\r\nimport { InputText } from \"primereact/inputtext\";\r\nimport { useFormik } from 'formik'\r\nimport * as Yup from 'yup';\r\nimport axios from 'axios';\r\nimport appUrl from \"../../../../constants/appUrl\";\r\nimport { ToastContainer, toast } from 'react-toastify';\r\nimport 'react-toastify/dist/ReactToastify.css';\r\n\r\nimport { Dropdown } from 'primereact/dropdown';\r\nconst AddEditComplaints = ({ onHide, setDialog, editable, rowData, setRes }) => {\r\n const [apiRes, setApiRes] = useState();\r\n const [productList, setProductList] = useState();\r\n const [selectedFiles, setSelectedFiles] = useState([])\r\n const validationSchema = Yup.object({\r\n complaintDescription: Yup.string().required('Required'),\r\n productId: Yup.string().required('Required'),\r\n complaintPrefix: Yup.string().required('Required'),\r\n\r\n });\r\n const formik = useFormik({\r\n validationSchema: validationSchema,\r\n initialValues: {\r\n complaintDescription: '',\r\n productId: '',\r\n complaintPrefix: '',\r\n complaintAttachment: []\r\n\r\n\r\n },\r\n\r\n onSubmit: async (data) => {\r\n try {\r\n let newData = {\r\n complaintDescription: data?.complaintDescription,\r\n productId: data?.productId,\r\n complaintPrefix: data?.complaintPrefix,\r\n complaintAttachment: selectedFiles.map(file => ({ attachmentPath: file }))\r\n }\r\n const response = await axios.post(`${appUrl.baseUrl}api/Complaint/AddNewComplaint`, newData);\r\n setApiRes(response);\r\n setRes(response);\r\n toast.success(\"Added Succesfully\")\r\n setDialog(false);\r\n } catch (error) {\r\n toast.error(\"Error occurred!\");\r\n } finally {\r\n onHide();\r\n\r\n }\r\n },\r\n });\r\n const handleFileUpload = (event) => {\r\n const files = event.target.files;\r\n const imagesArray = Array.from(files);\r\n let newImagesBase64 = [];\r\n\r\n imagesArray.forEach((file) => {\r\n const reader = new FileReader();\r\n reader.onload = () => {\r\n const base64String = reader.result;\r\n newImagesBase64.push(base64String);\r\n\r\n if (newImagesBase64.length === imagesArray.length) {\r\n formik.setFieldValue(\"complaintAttachment\", [\r\n ...formik.values.complaintAttachment,\r\n ...newImagesBase64,\r\n ]);\r\n }\r\n };\r\n setSelectedFiles(newImagesBase64)\r\n reader.readAsDataURL(file);\r\n });\r\n };\r\n\r\n const handleRemoveImage = (indexToRemove) => {\r\n const updatedGallery = formik.values.complaintAttachment.filter(\r\n (_, index) => index !== indexToRemove\r\n );\r\n formik.setFieldValue(\"complaintAttachment\", updatedGallery);\r\n };\r\n\r\n\r\n const getAllProduct = async () => {\r\n\r\n try {\r\n const response = await fetch(`${appUrl.baseUrl}api/Product/GetAllProducts`)\r\n const data = await response.json();\r\n setProductList(data);\r\n }\r\n catch (error) {\r\n error(error)\r\n }\r\n }\r\n useEffect(() => {\r\n getAllProduct()\r\n }, [])\r\n\r\n return (\r\n <> \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n \r\n {formik.touched.complaintDescription && formik.errors.complaintDescription ?
    {formik.errors.complaintDescription}
    : null}\r\n
    \r\n
    \r\n \r\n \r\n {formik.touched.complaintPrefix && formik.errors.complaintPrefix ?
    {formik.errors.complaintPrefix}
    : null}\r\n
    \r\n
    \r\n \r\n \r\n {formik.touched.productId && formik.errors.productId ?
    {formik.errors.productId}
    : null}\r\n\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n handleFileUpload(event)}\r\n accept='image/*'\r\n multiple\r\n className='d-none my-3 '\r\n />\r\n
    \r\n\r\n\r\n
    \r\n\r\n
    \r\n {formik.values.complaintAttachment.map((image, index) => (\r\n
    \r\n {`Image\r\n {\r\n e.stopPropagation();\r\n handleRemoveImage(index);\r\n }}\r\n />\r\n
    \r\n ))}\r\n\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n\r\n\r\n
    \r\n \r\n )\r\n}\r\n\r\nexport default AddEditComplaints","import React, { useState, useEffect } from 'react';\r\nimport { Column } from 'primereact/column';\r\nimport { DataTable } from 'primereact/datatable';\r\nimport appUrl from '../../../../constants/appUrl';\r\nimport { Dialog } from 'primereact/dialog';\r\nimport AddEditComplaints from '../components/AddEditComplaints';\r\nimport { FilterMatchMode } from \"primereact/api\";\r\nimport { InputText } from 'primereact/inputtext';\r\nimport { Button } from 'primereact/button';\r\nimport ViewAttachment from '../../ProcessInformation/components/ViewAttachment';\r\nimport CustomDescription from '../../../components/CustomDescription';\r\nimport CustomVideo from '../../../components/CustomVideo';\r\nimport Loader from '../../../components/laoder';\r\nconst AgainstProductComplaint = ({ product, productId2, searchQuery }) => {\r\n const [complaintList, setComplaintList] = useState([]);\r\n const [dialog, setDialog] = useState();\r\n const [res, setRes] = useState()\r\n const [viewAttachmentDialog, setViewAttachmentDialog] = useState(false);\r\n const [selectedAttachment, setSelectedAttachment] = useState(null);\r\n const [descriptionDialog, setDescriptionDialog] = useState(false);\r\n const [descriptionContent, setDescriptionContent] = useState('');\r\n const [videoAttachmentDialog, setVideoAttachmentDialog] = useState(false);\r\n const [selectedVideoAttachment, setSelectedVideoAttachment] = useState(null);\r\n const [loading, setLoading] = useState(false);\r\n const [filteredData, setFilteredData] = useState([]);\r\n const getComplaintById = async (productId, productId2) => {\r\n try {\r\n setLoading(true);\r\n const response = await fetch(`${appUrl.baseUrl}api/Complaint/GetComplaintByProductId/${productId || productId2}`);\r\n const data = await response.json();\r\n setComplaintList(data);\r\n setLoading(false);\r\n } catch (error) {\r\n error('Error fetching complaints:', error);\r\n }\r\n };\r\n const onHide = () => {\r\n setDialog(false)\r\n }\r\n\r\n useEffect(() => {\r\n if (searchQuery) {\r\n setFilteredData(\r\n complaintList.filter((item) =>\r\n item.productName?.toLowerCase().includes(searchQuery?.toLowerCase())\r\n )\r\n );\r\n } else {\r\n setFilteredData(complaintList);\r\n }\r\n }, [searchQuery, complaintList]);\r\n const actionDocument = (rowData) => {\r\n const hasDocument = rowData.complaintAttachment.some(attachment => attachment.attachmentPath.endsWith('.docx') || attachment.attachmentPath.endsWith('.pdf')|| attachment.attachmentPath.endsWith('.xlsx'));\r\n const hasImage = rowData.complaintAttachment.some(attachment => attachment.attachmentPath.endsWith('.png') || attachment.attachmentPath.endsWith('.jpg') || attachment.attachmentPath.endsWith('.jpeg'));\r\n const hasVideo = rowData.complaintAttachment.some(attachment => attachment.attachmentPath.endsWith('.mp4') || attachment.attachmentPath.endsWith('.mp5') || attachment.attachmentPath.endsWith('.webm')|| attachment.attachmentPath.endsWith('.mov')|| attachment.attachmentPath.endsWith('.3gp')|| attachment.attachmentPath.endsWith('.3g2')|| attachment.attachmentPath.endsWith('.mpeg'));\r\n\r\n return (\r\n
    \r\n {hasDocument && (\r\n
    \r\n );\r\n }\r\n const downloadDocument = (documentPath) => {\r\n let link = document.createElement('a');\r\n link.href = documentPath;\r\n link.setAttribute('download', '');\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n }\r\n const showDescription = (description) => {\r\n setDescriptionContent(description);\r\n setDescriptionDialog(true);\r\n };\r\n const onHideDescriptionDialog = () => {\r\n setDescriptionDialog(false);\r\n };\r\n\r\n const onHideVideoAttachment = () => {\r\n setVideoAttachmentDialog(false);\r\n };\r\n const onHideViewAttachment = () => {\r\n setViewAttachmentDialog(false);\r\n };\r\n const stripHtmlTags = (html) => {\r\n const doc = new DOMParser().parseFromString(html, 'text/html');\r\n return doc.body.textContent || \"\";\r\n };\r\n useEffect(() => {\r\n if (product && product.productId || productId2) {\r\n getComplaintById(product?.productId, productId2);\r\n }\r\n }, [product, res, productId2]);\r\n\r\n return (\r\n <>\r\n \r\n {selectedAttachment && }\r\n \r\n \r\n \r\n \r\n \r\n {selectedVideoAttachment && }\r\n \r\n\r\n \r\n \r\n \r\n\r\n
    \r\n
    \r\n
    \r\n\r\n {/* */}\r\n
    \r\n {loading && }\r\n
    \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n (\r\n {\r\n e.preventDefault();\r\n showDescription(rowData.complaintDescription);\r\n }}\r\n style={{ cursor: 'pointer', color: '#00b0ab', textDecoration: 'underline' }}\r\n >\r\n View Description\r\n \r\n )}\r\n />\r\n new Date(rowData.createdDate).toLocaleString('en-GB', {\r\n day: '2-digit',\r\n month: '2-digit',\r\n year: 'numeric',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n hour12: true\r\n })} />\r\n new Date(rowData.updatedDate).toLocaleString('en-GB', {\r\n day: '2-digit',\r\n month: '2-digit',\r\n year: 'numeric',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n hour12: true\r\n })} />\r\n \r\n \r\n
    \r\n\r\n
    \r\n\r\n \r\n );\r\n};\r\n\r\nexport default AgainstProductComplaint;\r\n","import React, { useState, useEffect } from 'react'\r\nimport appUrl from \"../../../../constants/appUrl\";\r\nimport { Column } from 'primereact/column';\r\nimport { DataTable } from 'primereact/datatable';\r\nimport { FilterMatchMode } from \"primereact/api\";\r\nimport { InputText } from 'primereact/inputtext';\r\nimport { Button } from 'primereact/button';\r\nimport { Dialog } from 'primereact/dialog';\r\nimport ViewAttachment from '../../ProcessInformation/components/ViewAttachment';\r\nimport CustomDescription from '../../../components/CustomDescription';\r\nimport CustomVideo from '../../../components/CustomVideo';\r\nimport Loader from '../../../components/laoder';\r\nconst AgainstProductSocialMedia = ({ product, productId2, searchQuery }) => {\r\n const [socialList, setSocialList] = useState([]);\r\n const [viewAttachmentDialog, setViewAttachmentDialog] = useState(false);\r\n const [selectedAttachment, setSelectedAttachment] = useState(null);\r\n const [descriptionDialog, setDescriptionDialog] = useState(false);\r\n const [descriptionContent, setDescriptionContent] = useState('');\r\n const [videoAttachmentDialog, setVideoAttachmentDialog] = useState(false);\r\n const [selectedVideoAttachment, setSelectedVideoAttachment] = useState(null);\r\n const [loading, setLoading] = useState(false);\r\n const [filteredData, setFilteredData] = useState([]);\r\n const getSocialById = async (productId, productId2) => {\r\n try {\r\n setLoading(true);\r\n const response = await fetch(`${appUrl.baseUrl}api/Post/GetPostByProductId/${productId || productId2}`);\r\n const data = await response.json();\r\n setSocialList(data);\r\n setLoading(false);\r\n } catch (error) {\r\n error('Error fetching :', error);\r\n }\r\n };\r\n\r\n\r\n const showDescription = (description) => {\r\n setDescriptionContent(description);\r\n setDescriptionDialog(true);\r\n };\r\n const onHideDescriptionDialog = () => {\r\n setDescriptionDialog(false);\r\n };\r\n\r\n\r\n\r\n useEffect(() => {\r\n if (searchQuery) {\r\n setFilteredData(\r\n socialList.filter((item) =>\r\n item.postTitle?.toLowerCase().includes(searchQuery?.toLowerCase())\r\n )\r\n );\r\n } else {\r\n setFilteredData(socialList);\r\n }\r\n }, [searchQuery, socialList]);\r\n\r\n const onHideViewAttachment = () => {\r\n setViewAttachmentDialog(false);\r\n };\r\n\r\n\r\n const actionDocument = (rowData) => {\r\n const hasDocument = rowData.postAttachments.some(attachment => attachment.attachmentPath.endsWith('.docx') || attachment.attachmentPath.endsWith('.pdf')|| attachment.attachmentPath.endsWith('.xlsx'));\r\n const hasImage = rowData.postAttachments.some(attachment => attachment.attachmentPath.endsWith('.png') || attachment.attachmentPath.endsWith('.jpg') || attachment.attachmentPath.endsWith('.jpeg'));\r\n const hasVideo = rowData.postAttachments.some(attachment => attachment.attachmentPath.endsWith('.mp4') || attachment.attachmentPath.endsWith('.mp5') || attachment.attachmentPath.endsWith('.webm') || attachment.attachmentPath.endsWith('.mov') || attachment.attachmentPath.endsWith('.3gp') || attachment.attachmentPath.endsWith('.3g2') || attachment.attachmentPath.endsWith('.mpeg'));\r\n\r\n return (\r\n
    \r\n {hasDocument && (\r\n
    \r\n );\r\n }\r\n const downloadDocument = (documentPath) => {\r\n let link = document.createElement('a');\r\n link.href = documentPath;\r\n link.setAttribute('download', '');\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n }\r\n const onHideVideoAttachment = () => {\r\n setVideoAttachmentDialog(false);\r\n };\r\n useEffect(() => {\r\n if (product && product.productId || productId2) {\r\n getSocialById(product?.productId, productId2);\r\n }\r\n }, [product, productId2]);\r\n return (\r\n <>\r\n \r\n {selectedAttachment && }\r\n \r\n \r\n {selectedVideoAttachment && }\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n {/* */}\r\n
    \r\n {loading && }\r\n
    \r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n (\r\n {\r\n e.preventDefault();\r\n showDescription(rowData.postDescription);\r\n }}\r\n style={{ cursor: 'pointer', color: '#00b0ab', textDecoration: 'underline' }}\r\n >\r\n View Description\r\n \r\n )}\r\n />\r\n new Date(rowData.createdDate).toLocaleString('en-GB', {\r\n day: '2-digit',\r\n month: '2-digit',\r\n year: 'numeric',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n hour12: true\r\n })} />\r\n new Date(rowData.updatedDate).toLocaleString('en-GB', {\r\n day: '2-digit',\r\n month: '2-digit',\r\n year: 'numeric',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n hour12: true\r\n })} />\r\n\r\n\r\n \r\n \r\n
    \r\n
    \r\n \r\n )\r\n}\r\n\r\nexport default AgainstProductSocialMedia","import React, { useEffect, useState } from 'react';\r\nimport appUrl from '../../../../constants/appUrl';\r\nimport { DataTable } from 'primereact/datatable';\r\nimport { Column } from 'primereact/column';\r\nimport { InputText } from 'primereact/inputtext';\r\nimport { Button } from 'primereact/button';\r\nimport { Dialog } from 'primereact/dialog';\r\nimport { FilterMatchMode } from \"primereact/api\";\r\nimport ViewAttachment from '../../ProcessInformation/components/ViewAttachment';\r\nimport CustomDescription from '../../../components/CustomDescription';\r\nimport CustomVideo from '../../../components/CustomVideo';\r\nconst AgainstProductProcessView = ({ product, productId2, searchQuery }) => {\r\n\r\n const [productList, setProductList] = useState([]);\r\n const [viewAttachmentDialog, setViewAttachmentDialog] = useState(false);\r\n const [selectedAttachment, setSelectedAttachment] = useState(null);\r\n const [descriptionDialog, setDescriptionDialog] = useState(false);\r\n const [descriptionContent, setDescriptionContent] = useState('');\r\n const [videoAttachmentDialog, setVideoAttachmentDialog] = useState(false);\r\n const [selectedVideoAttachment, setSelectedVideoAttachment] = useState(null);\r\n\r\n const [filteredData, setFilteredData] = useState([]);\r\n const GetProcessById = async (productId, productId2) => {\r\n try {\r\n const response = await fetch(`${appUrl.baseUrl}api/Process/GetProcessByProductId/${productId || productId2}`);\r\n const data = await response.json();\r\n setProductList(data);\r\n } catch (error) {\r\n error('Error fetching products:', error);\r\n }\r\n };\r\n\r\n const actionEye = (rowData) => {\r\n return (\r\n
    \r\n
    \r\n );\r\n }\r\n useEffect(() => {\r\n if (searchQuery) {\r\n setFilteredData(\r\n productList.filter((item) =>\r\n item.productName?.toLowerCase().includes(searchQuery?.toLowerCase())\r\n )\r\n );\r\n } else {\r\n setFilteredData(productList);\r\n }\r\n }, [searchQuery, productList]);\r\n\r\n const onHideViewAttachment = () => {\r\n setViewAttachmentDialog(false);\r\n };\r\n const stripHtmlTags = (html) => {\r\n const doc = new DOMParser().parseFromString(html, 'text/html');\r\n return doc.body.textContent || \"\";\r\n };\r\n\r\n const showDescription = (description) => {\r\n setDescriptionContent(description);\r\n setDescriptionDialog(true);\r\n };\r\n const onHideDescriptionDialog = () => {\r\n setDescriptionDialog(false);\r\n };\r\n\r\n const actionDocument = (rowData) => {\r\n const hasDocument = rowData.processAttachments.some(attachment => attachment.attachmentPath.endsWith('.docx') || attachment.attachmentPath.endsWith('.pdf')|| attachment.attachmentPath.endsWith('.xlsx'));\r\n const hasImage = rowData.processAttachments.some(attachment => attachment.attachmentPath.endsWith('.png') || attachment.attachmentPath.endsWith('.jpg') || attachment.attachmentPath.endsWith('.jpeg'));\r\n const hasVideo = rowData.processAttachments.some(attachment => attachment.attachmentPath.endsWith('.mp4') || attachment.attachmentPath.endsWith('.mp5') || attachment.attachmentPath.endsWith('.webm')|| attachment.attachmentPath.endsWith('.mov')|| attachment.attachmentPath.endsWith('.3gp')|| attachment.attachmentPath.endsWith('.3g2')|| attachment.attachmentPath.endsWith('.mpeg'));\r\n\r\n return (\r\n
    \r\n {hasDocument && (\r\n
    \r\n );\r\n }\r\n const downloadDocument = (documentPath) => {\r\n let link = document.createElement('a');\r\n link.href = documentPath;\r\n link.setAttribute('download', '');\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n }\r\n\r\n const onHideVideoAttachment = () => {\r\n setVideoAttachmentDialog(false);\r\n };\r\n useEffect(() => {\r\n if (product && product.productId || productId2) {\r\n GetProcessById(product?.productId, productId2);\r\n }\r\n }, [product, , productId2]);\r\n\r\n return (\r\n
    \r\n \r\n {selectedAttachment && }\r\n \r\n \r\n {selectedVideoAttachment && }\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n {/* */}\r\n
    \r\n
    \r\n
    \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n (\r\n {\r\n e.preventDefault();\r\n showDescription(rowData.description);\r\n }}\r\n style={{ cursor: 'pointer', color: '#00b0ab', textDecoration: 'underline' }}\r\n >\r\n View Description\r\n \r\n )}\r\n />\r\n new Date(rowData.createdDate).toLocaleString('en-GB', {\r\n day: '2-digit',\r\n month: '2-digit',\r\n year: 'numeric',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n hour12: true\r\n })} />\r\n new Date(rowData.updatedDate).toLocaleString('en-GB', {\r\n day: '2-digit',\r\n month: '2-digit',\r\n year: 'numeric',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n hour12: true\r\n })} />\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default AgainstProductProcessView;\r\n","import React,{useState,useEffect} from 'react';\r\nimport { TabView, TabPanel } from 'primereact/tabview';\r\n\r\nimport Slider from 'react-slick';\r\nimport 'slick-carousel/slick/slick.css';\r\nimport 'slick-carousel/slick/slick-theme.css';\r\nimport AgainstProductFaq from '../../AgainstProductFaq/pages/AgainstProductFaq';\r\nimport AgainstProductComplaint from '../../AgainstProductComplaint/pages/AgainstProductComplaint';\r\nimport AgainstProductSocialMedia from '../../AgainstProductSocialMedia/pages/AgainstProductSocialMedia';\r\nimport AgainstProductProcessView from './AgainstProductProcessView';\r\n\r\nimport { useLocation } from 'react-router-dom/cjs/react-router-dom.min';\r\nimport appUrl from '../../../../constants/appUrl';\r\nimport AgainstProductOverView from '../../AgainstProductOverView/pages/AgainstProductOverView';\r\n\r\nconst AgainstProductProcess = ({searchQuery}) => {\r\n const location = useLocation()\r\n const productId = location?.state?.data;\r\n const [productList, setProductList] = useState([]);\r\n const [selectedProductId, setSelectedProductId] = useState(null);\r\n\r\n const GetProductName = async () => {\r\n try {\r\n const response = await fetch(`${appUrl.baseUrl}api/Product/GetAllProducts`);\r\n const data = await response.json();\r\n setProductList(data);\r\n\r\n } catch (error) {\r\n error('Error fetching products:', error);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n GetProductName();\r\n }, []);\r\n const handleGetId = (productId) => {\r\n setSelectedProductId(productId);\r\n }\r\n const settings = {\r\n dots: true,\r\n infinite: true,\r\n speed: 500,\r\n slidesToShow: 4,\r\n slidesToScroll: 1,\r\n autoplay: true,\r\n autoplaySpeed: 2000,\r\n centerMode: true, \r\n };\r\n\r\n\r\n return (\r\n <>\r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default AgainstProductProcess;\r\n","import React, { useState,useRef } from 'react';\r\nimport { InputText } from \"primereact/inputtext\";\r\nimport { Button } from \"primereact/button\";\r\n\r\nconst UserChat = () => {\r\n const [messages, setMessages] = useState([]);\r\n const [inputText, setInputText] = useState('');\r\n const [message, setMessage] = useState(\"\");\r\n\r\n const fileInput = useRef(null);\r\n const handleButtonClick = (e) => {\r\n e.preventDefault();\r\n fileInput.current.click();\r\n};\r\n\r\n const handleSendMessage = () => {\r\n if (inputText.trim() !== '') {\r\n const newMessage = {\r\n id: messages.length + 1,\r\n text: inputText.trim(),\r\n sender: 'user' \r\n };\r\n setMessages([...messages, newMessage]);\r\n setInputText('');\r\n }\r\n };\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n setMessage(e.target.value)} value={message} placeholder=\"Message\" />\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default UserChat;\r\n","import React, { useState } from 'react';\r\nimport { Button } from 'primereact/button';\r\nimport { InputText } from 'primereact/inputtext';\r\nimport { Password } from 'primereact/password';\r\nimport axios from 'axios';\r\nimport appUrl from \"../../../../constants/appUrl\";\r\nimport { useFormik } from 'formik';\r\nimport * as Yup from 'yup';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { ToastContainer, toast } from 'react-toastify';\r\nimport 'react-toastify/dist/ReactToastify.css';\r\n\r\nconst LoginScreen = () => {\r\n const [loading, setLoading] = useState(false);\r\n const history = useHistory();\r\n\r\n const validationSchema = Yup.object({\r\n userName: Yup.string().required('Email is required').email('Invalid email format'),\r\n password: Yup.string().required('Password is required'),\r\n });\r\n\r\n const formik = useFormik({\r\n validationSchema: validationSchema,\r\n initialValues: {\r\n userName: '',\r\n password: '',\r\n },\r\n onSubmit: async (values) => {\r\n try {\r\n setLoading(true);\r\n const response = await axios.post(\r\n `${appUrl.baseUrl}api/Auth/Login`,\r\n values,\r\n {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n }\r\n );\r\n\r\n if (response.status === 200 && response.data?.token) {\r\n localStorage.setItem(\"login\", true);\r\n localStorage.setItem(\"admin\", response.data.isAdmin);\r\n localStorage.setItem(\"user\", JSON.stringify(response.data));\r\n localStorage.setItem(\"token\", response.data.token);\r\n\r\n toast.success('User Login Successfully');\r\n setTimeout(() => {\r\n history.push('./');\r\n }, 1000);\r\n } else {\r\n // Show error message from the API response\r\n toast.error(response.data.message || 'Login failed. Please check your credentials.');\r\n }\r\n } catch (error) {\r\n console.error('Login error:', error);\r\n if (error.response && error.response.data && error.response.data.message) {\r\n // Show specific error message from the API response\r\n toast.error(error.response.data.message);\r\n } else {\r\n // Show a generic error message if the response does not contain a message\r\n toast.error('Login failed due to a network error. Please try again.');\r\n }\r\n } finally {\r\n setLoading(false);\r\n }\r\n },\r\n });\r\n\r\n return (\r\n
    \r\n \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n \"logo\"\r\n
    \r\n

    Log in to your account

    \r\n

    Welcome back! Please enter your details.

    \r\n \r\n
    \r\n \r\n \r\n {formik.touched.userName && formik.errors.userName ? (\r\n
    {formik.errors.userName}
    \r\n ) : null}\r\n
    \r\n
    \r\n \r\n \r\n {formik.touched.password && formik.errors.password ? (\r\n
    {formik.errors.password}
    \r\n ) : null}\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default LoginScreen;\r\n","import React from 'react';\r\nimport Slider from 'react-slick';\r\nimport 'slick-carousel/slick/slick.css';\r\nimport 'slick-carousel/slick/slick-theme.css';\r\nimport appUrl from \"../../../../constants/appUrl\";\r\n\r\nconst ViewAttachment = ({ attachment }) => {\r\n\r\n const settings = {\r\n dots: true,\r\n infinite: true,\r\n speed: 500,\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n autoplay: true,\r\n autoplaySpeed: 2000,\r\n };\r\n const renderSlider = () => {\r\n if (attachment.length > 1) {\r\n return (\r\n \r\n {attachment.map((imagePath, index) => (\r\n
    \r\n \"Attachment\"\r\n
    \r\n ))}\r\n
    \r\n );\r\n } else if (attachment.length === 1) {\r\n return (\r\n \"Attachment\"\r\n );\r\n } else {\r\n return

    No images available

    ;\r\n }\r\n };\r\n\r\n return (\r\n
    \r\n {renderSlider()}\r\n
    \r\n );\r\n};\r\n\r\nexport default ViewAttachment;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { DataTable } from 'primereact/datatable';\r\nimport { Column } from 'primereact/column';\r\nimport { Button } from 'primereact/button';\r\nimport { Dialog } from 'primereact/dialog';\r\nimport AddEditAdminProduct from '../components/AddEditAdminProduct';\r\nimport appUrl from \"../../../../constants/appUrl\";\r\nimport { useHistory } from 'react-router-dom';\r\nimport ViewAttachment from '../components/ViewAttachment';\r\nimport axios from 'axios';\r\nimport { ToastContainer, toast } from 'react-toastify';\r\nimport 'react-toastify/dist/ReactToastify.css';\r\nimport { ConfirmDialog, confirmDialog } from 'primereact/confirmdialog';\r\nimport { FilterMatchMode } from \"primereact/api\";\r\nimport { InputText } from 'primereact/inputtext';\r\nimport { Card } from 'primereact/card';\r\nimport CustomVideo from '../../../components/CustomVideo';\r\nimport Loader from '../../../components/laoder';\r\n\r\nconst AdminZProduct = ({ searchQuery }) => {\r\n\r\n const [dialog, setDialog] = useState();\r\n const [productList, setProductList] = useState();\r\n const [viewAttachmentDialog, setViewAttachmentDialog] = useState(false);\r\n const [selectedAttachment, setSelectedAttachment] = useState(null);\r\n const [res, setRes] = useState(null)\r\n const [rowselect, setRowselect] = useState(null)\r\n const [editable, setEditable] = useState();\r\n const [videoAttachmentDialog, setVideoAttachmentDialog] = useState(false);\r\n const [selectedVideoAttachment, setSelectedVideoAttachment] = useState(null);\r\n const [loading, setLoading] = useState(false);\r\n const [filteredData, setFilteredData] = useState([]);\r\n const history = useHistory();\r\n\r\n const GetAllProducts = async () => {\r\n const token = localStorage.getItem('token')\r\n try {\r\n setLoading(true);\r\n const response = await fetch(`${appUrl.baseUrl}api/Product/GetAllProducts`,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Authorization': `Bearer ${token}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n }\r\n )\r\n const data = await response.json();\r\n setProductList(data)\r\n setLoading(false);\r\n\r\n } catch (error) {\r\n\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n const onHide = () => {\r\n setDialog(false)\r\n setEditable(false)\r\n }\r\n const onHideViewAttachment = () => {\r\n setViewAttachmentDialog(false);\r\n };\r\n const editAction = (rowData) => {\r\n setEditable(true);\r\n setEditable(rowData);\r\n setDialog(true);\r\n setRowselect(rowData)\r\n }\r\n const onHideVideoAttachment = () => {\r\n setVideoAttachmentDialog(false);\r\n };\r\n\r\n const actionTemplate = (rowData) => {\r\n return (\r\n
    \r\n\r\n
    \r\n );\r\n }\r\n\r\n const accept = async (rowData) => {\r\n try {\r\n const response = await axios.delete(`${appUrl.baseUrl}api/Product/DeleteProductByID/${rowData?.productId}`, {\r\n headers: {\r\n 'Authorization': `Bearer ${localStorage.getItem('token')}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n setRes(response.data);\r\n toast.success(\"Deleted Successfully\");\r\n } catch (error) {\r\n toast.error(\"Failed to delete. Please try again.\");\r\n console.error(\"Error deleting disclaimer:\", error);\r\n }\r\n };\r\n const reject = (rowData) => {\r\n return\r\n }\r\n const confirm = (rowData) => {\r\n confirmDialog({\r\n header: (\r\n
    \r\n \r\n\r\n
    \r\n ),\r\n message: (\r\n Are you sure you want to delete this Product?\r\n ),\r\n accept: () => accept(rowData),\r\n reject: () => reject(rowData),\r\n acceptClassName: 'custom-btn-red',\r\n rejectClassName: 'custom-white-red',\r\n className: 'center-buttons no-close-button',\r\n });\r\n };\r\n\r\n const actionDocument = (rowData) => {\r\n const documentsToDownload = rowData.productAttachment.filter(attachment =>\r\n attachment.attachmentPath.endsWith('.docx') ||\r\n attachment.attachmentPath.endsWith('.pdf') ||\r\n attachment.attachmentPath.endsWith('.xlsx')\r\n );\r\n\r\n const documentPaths = documentsToDownload.map(document => document.attachmentPath);\r\n\r\n const hasImage = rowData.productAttachment.some(attachment => attachment.attachmentPath.endsWith('.png') || attachment.attachmentPath.endsWith('.jpg') || attachment.attachmentPath.endsWith('.jpeg'));\r\n\r\n const hasVideo = rowData.productAttachment.some(attachment => attachment.attachmentPath.endsWith('.mp4') || attachment.attachmentPath.endsWith('.mp5') || attachment.attachmentPath.endsWith('.webm') || attachment.attachmentPath.endsWith('.mov') || attachment.attachmentPath.endsWith('.3gp') || attachment.attachmentPath.endsWith('.3g2') || attachment.attachmentPath.endsWith('.mpeg'));\r\n\r\n return (\r\n
    \r\n {documentsToDownload.length > 0 && (\r\n downloadDocuments(documentPaths)}\r\n />\r\n )}\r\n {hasImage && (\r\n
    \r\n );\r\n }\r\n\r\n\r\n const downloadDocuments = async (documentPaths) => {\r\n try {\r\n for (let i = 0; i < documentPaths.length; i++) {\r\n const documentPath = documentPaths[i];\r\n console.log('documentPath', documentPath)\r\n const response = await fetch(`${appUrl.baseUrl}${documentPath}`);\r\n const blob = await response.blob();\r\n const url = URL.createObjectURL(blob);\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.setAttribute('download', '');\r\n link.setAttribute('target', '_blank');\r\n link.click();\r\n URL.revokeObjectURL(url);\r\n await new Promise(resolve => setTimeout(resolve, 1000)); // Delay each download by 1 second\r\n }\r\n } catch (error) {\r\n console.error(\"Error downloading documents:\", error);\r\n toast.error(\"Failed to download documents\");\r\n }\r\n };\r\n\r\n const viewProduct = (rowData) => {\r\n\r\n\r\n history.push({\r\n pathname: '/product',\r\n state: { data: rowData },\r\n });\r\n }\r\n useEffect(() => {\r\n if (searchQuery) {\r\n setFilteredData(\r\n productList?.filter((item) =>\r\n item.productName?.toLowerCase().includes(searchQuery?.toLowerCase()) ||\r\n item.overviewSummary?.toLowerCase().includes(searchQuery?.toLowerCase()) ||\r\n item.termsAndConditions?.toLowerCase().includes(searchQuery?.toLowerCase())\r\n )\r\n );\r\n } else {\r\n setFilteredData(productList);\r\n }\r\n }, [searchQuery, productList]);\r\n const isAdmin = localStorage.getItem('admin')\r\n useEffect(() => {\r\n GetAllProducts()\r\n }, [res])\r\n return (\r\n <>\r\n \r\n \r\n \r\n {selectedAttachment && }\r\n \r\n \r\n {selectedVideoAttachment && }\r\n \r\n \r\n \r\n \r\n\r\n\r\n
    \r\n
    \r\n
    Product
    \r\n
    \r\n\r\n {isAdmin === 'true' || isAdmin === true ? (\r\n
    \r\n
    \r\n
    \r\n
    \r\n ) : null}\r\n\r\n
    \r\n {loading && }\r\n
    \r\n\r\n viewProduct(e.data.productId)}\r\n >\r\n
    \r\n
    \r\n
    \r\n\r\n\r\n\r\n \r\n )\r\n}\r\nexport default AdminZProduct","import React from 'react';\r\nimport Slider from 'react-slick';\r\nimport 'slick-carousel/slick/slick.css';\r\nimport 'slick-carousel/slick/slick-theme.css';\r\nimport appUrl from \"../../../../constants/appUrl\";\r\n\r\nconst ViewAttachment = ({ attachment }) => {\r\n const settings = {\r\n dots: true,\r\n infinite: true,\r\n speed: 500,\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n autoplay: true,\r\n autoplaySpeed: 2000,\r\n };\r\n const images = attachment.filter(item => item.attachmentPath.endsWith('.png') || item.attachmentPath.endsWith('.jpg'));\r\n const renderSlider = () => {\r\n if (images.length > 1) {\r\n return (\r\n \r\n {images.map((imagePath, index) => (\r\n
    \r\n \"Attachment\"\r\n
    \r\n ))}\r\n
    \r\n );\r\n } else if (images.length === 1) {\r\n return (\r\n \"Attachment\"\r\n );\r\n } else {\r\n return

    No images available

    ;\r\n }\r\n };\r\n return (\r\n
    \r\n {renderSlider()}\r\n
    \r\n );\r\n};\r\n\r\nexport default ViewAttachment;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { DataTable } from 'primereact/datatable';\r\nimport { Column } from 'primereact/column';\r\nimport { Button } from 'primereact/button';\r\nimport { Dialog } from 'primereact/dialog';\r\nimport AddEditAdminApp from '../components/AddEditAdminApp';\r\nimport appUrl from \"../../../../constants/appUrl\";\r\nimport axios from 'axios';\r\nimport { ToastContainer, toast } from 'react-toastify';\r\nimport 'react-toastify/dist/ReactToastify.css';\r\nimport { ConfirmDialog, confirmDialog } from 'primereact/confirmdialog';\r\nimport ViewAttachment from '../components/ViewAttachment';\r\nimport CustomVideo from '../../../components/CustomVideo';\r\nimport Loader from '../../../components/laoder';\r\nconst AdminZAppJourney = ({ searchQuery }) => {\r\n const [editable, setEditable] = useState(false);\r\n const [rowselect, setRowselect] = useState(null);\r\n const [appJourneyList, setAppJourneyList] = useState([]);\r\n const [res, setRes] = useState(null);\r\n const [loading, setLoading] = useState(false);\r\n const [dialog, setDialog] = useState(false);\r\n const [viewAttachmentDialog, setViewAttachmentDialog] = useState(false);\r\n const [selectedAttachment, setSelectedAttachment] = useState(null);\r\n const [filteredData, setFilteredData] = useState([]);\r\n const [videoAttachmentDialog, setVideoAttachmentDialog] = useState(false);\r\n const [selectedVideoAttachment, setSelectedVideoAttachment] = useState(null);\r\n\r\n\r\n const GetAppJourney = async () => {\r\n const token =localStorage.getItem('token')\r\n try {\r\n setLoading(true);\r\n const response = await fetch(`${appUrl.baseUrl}api/AppJourney/GetAllAppJournies`,\r\n {\r\n method:'GET',\r\n headers:{\r\n 'Authorization':`Bearer ${token}`,\r\n 'Content-Type':'application/json'\r\n }\r\n }\r\n );\r\n const data = await response.json();\r\n setAppJourneyList(data);\r\n setLoading(false);\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n };\r\n\r\n const actionTemplate = (rowData) => {\r\n return (\r\n
    \r\n
    \r\n );\r\n };\r\n\r\n const accept = async (rowData) => {\r\n try {\r\n const response = await axios.delete(`${appUrl.baseUrl}api/AppJourney/DeleteAppJourneyByID/${rowData?.appJourneyID}`, {\r\n headers: {\r\n 'Authorization': `Bearer ${localStorage.getItem('token')}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n setRes(response.data);\r\n toast.success(\"Deleted Successfully\");\r\n } catch (error) {\r\n toast.error(\"Failed to delete. Please try again.\");\r\n console.error(\"Error deleting disclaimer:\", error);\r\n }\r\n };\r\n const reject = () => {};\r\n\r\n const confirm = (rowData) => {\r\n confirmDialog({\r\n header:
    ,\r\n message: Are you sure you want to delete this App Journey?,\r\n accept: () => accept(rowData),\r\n reject: () => reject(),\r\n acceptClassName: 'custom-btn-red',\r\n rejectClassName: 'custom-white-red',\r\n className: 'center-buttons no-close-button',\r\n });\r\n };\r\n\r\n const editAction = async (rowData) => {\r\n const token =localStorage.getItem('token')\r\n try {\r\n const response = await axios.get(`${appUrl.baseUrl}api/AppJourney/GetAppJourneyById/${rowData.appJourneyID}?${rowData.productId}`, {\r\n headers: {\r\n 'Authorization': `Bearer ${token}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n \r\n const data = response.data;\r\n setEditable(true);\r\n setRowselect(data);\r\n setDialog(true);\r\n } catch (error) {\r\n console.error(\"Error fetching App Journey data by ID:\", error);\r\n toast.error(\"Failed to fetch data for editing\");\r\n }\r\n };\r\n\r\n const actionDocument = (rowData) => {\r\n const documentsToDownload = rowData.attachmentsModel.filter(attachment =>\r\n attachment.attachmentPath.endsWith('.docx') ||\r\n attachment.attachmentPath.endsWith('.pdf') ||\r\n attachment.attachmentPath.endsWith('.xlsx')\r\n );\r\n\r\n const documentPaths = documentsToDownload.map(document => document.attachmentPath);\r\n const hasImage = rowData.attachmentsModel.some(attachment => attachment.attachmentPath.endsWith('.png') || attachment.attachmentPath.endsWith('.jpg') || attachment.attachmentPath.endsWith('.jpeg'));\r\n const hasVideo = rowData.attachmentsModel.some(attachment => attachment.attachmentPath.endsWith('.mp4') || attachment.attachmentPath.endsWith('.mp5') || attachment.attachmentPath.endsWith('.webm') || attachment.attachmentPath.endsWith('.mov') || attachment.attachmentPath.endsWith('.3gp') || attachment.attachmentPath.endsWith('.3g2') || attachment.attachmentPath.endsWith('.mpeg'));\r\n\r\n return (\r\n
    \r\n {documentsToDownload.length > 0 && (\r\n downloadDocuments(documentPaths)}\r\n />\r\n )}\r\n {hasImage && (\r\n {\r\n setSelectedAttachment(rowData.attachmentsModel.filter(attachment =>\r\n attachment.attachmentPath.endsWith('.png') ||\r\n attachment.attachmentPath.endsWith('.jpg') ||\r\n attachment.attachmentPath.endsWith('.jpeg')\r\n ));\r\n setViewAttachmentDialog(true);\r\n }}\r\n />\r\n )}\r\n {hasVideo && (\r\n {\r\n setSelectedVideoAttachment(rowData.attachmentsModel.filter(attachment =>\r\n attachment.attachmentPath.endsWith('.mp4') ||\r\n attachment.attachmentPath.endsWith('.mp5') ||\r\n attachment.attachmentPath.endsWith('.webm') ||\r\n attachment.attachmentPath.endsWith('.mov') ||\r\n attachment.attachmentPath.endsWith('.3gp') ||\r\n attachment.attachmentPath.endsWith('.3g2') ||\r\n attachment.attachmentPath.endsWith('.mpeg')\r\n ));\r\n setVideoAttachmentDialog(true);\r\n }}\r\n />\r\n )}\r\n {(documentsToDownload.length === 0 && !hasImage && !hasVideo) && (\r\n \r\n )}\r\n
    \r\n );\r\n };\r\n\r\n const downloadDocuments = async (documentPaths) => {\r\n try {\r\n for (let i = 0; i < documentPaths.length; i++) {\r\n const documentPath = documentPaths[i];\r\n const response = await fetch(`${appUrl.baseUrl}${documentPath}`);\r\n const blob = await response.blob();\r\n const url = URL.createObjectURL(blob);\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.setAttribute('download', '');\r\n link.setAttribute('target', '_blank');\r\n link.click();\r\n URL.revokeObjectURL(url);\r\n await new Promise(resolve => setTimeout(resolve, 1000)); // Delay each download by 1 second\r\n }\r\n } catch (error) {\r\n console.error(\"Error downloading documents:\", error);\r\n toast.error(\"Failed to download documents\");\r\n }\r\n };\r\n\r\n const onHideViewAttachment = () => {\r\n setViewAttachmentDialog(false);\r\n };\r\n\r\n const onHide = () => {\r\n setDialog(false);\r\n };\r\n\r\n useEffect(() => {\r\n GetAppJourney();\r\n }, [res]);\r\n\r\n useEffect(() => {\r\n if (searchQuery) {\r\n setFilteredData(\r\n appJourneyList?.filter(item =>\r\n item.productName?.toLowerCase().includes(searchQuery?.toLowerCase())||\r\n item.channelName?.toLowerCase().includes(searchQuery?.toLowerCase())||\r\n item.title?.toLowerCase().includes(searchQuery?.toLowerCase())\r\n )\r\n );\r\n } else {\r\n setFilteredData(appJourneyList);\r\n }\r\n }, [searchQuery, appJourneyList]);\r\n const isAdmin = localStorage.getItem('admin')\r\n return (\r\n <> \r\n \r\n \r\n \r\n {selectedAttachment && }\r\n \r\n setVideoAttachmentDialog(false)} header=\"View Video Attachment\" style={{ width: '50vw' }}>\r\n {selectedVideoAttachment && }\r\n \r\n \r\n \r\n \r\n\r\n
    \r\n
    \r\n
    App Journey
    \r\n
    \r\n \r\n {isAdmin === 'true' || isAdmin === true ? (\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n ) : null}\r\n\r\n \r\n
    \r\n {loading && }\r\n
    \r\n \r\n \r\n (\r\n \r\n {rowData.channelName?.length > 1 ? `${rowData.channelName.slice(0, 1)}...` : rowData.channelName}\r\n \r\n )} />\r\n \r\n new Date(rowData.createdDate).toLocaleString('en-GB', {\r\n day: '2-digit',\r\n month: '2-digit',\r\n year: 'numeric',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n hour12: true\r\n })}\r\n />\r\n {\r\n if (!rowData.updatedDate) {\r\n return '-';\r\n }\r\n return new Date(rowData.updatedDate).toLocaleString('en-GB', {\r\n day: '2-digit',\r\n month: '2-digit',\r\n year: 'numeric',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n hour12: true,\r\n });\r\n }}\r\n />\r\n \r\n {isAdmin === 'true' || isAdmin === true ? (\r\n \r\n ) : null}\r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default AdminZAppJourney;\r\n","import React from 'react';\r\nimport Slider from 'react-slick';\r\nimport 'slick-carousel/slick/slick.css';\r\nimport 'slick-carousel/slick/slick-theme.css';\r\nimport appUrl from \"../../../../constants/appUrl\";\r\n\r\nconst ViewAttachment = ({ attachment }) => {\r\n\r\n const settings = {\r\n dots: true,\r\n infinite: true,\r\n speed: 500,\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n autoplay: true,\r\n autoplaySpeed: 2000,\r\n };\r\n const renderSlider = () => {\r\n if (attachment.length > 1) {\r\n return (\r\n \r\n {attachment.map((imagePath, index) => (\r\n
    \r\n \"Attachment\"\r\n
    \r\n ))}\r\n
    \r\n );\r\n } else if (attachment.length === 1) {\r\n return (\r\n \"Attachment\"\r\n );\r\n } else {\r\n return

    No images available

    ;\r\n }\r\n };\r\n\r\n return (\r\n
    \r\n {renderSlider()}\r\n
    \r\n );\r\n};\r\n\r\nexport default ViewAttachment;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { DataTable } from 'primereact/datatable';\r\nimport { Column } from 'primereact/column';\r\nimport { Button } from 'primereact/button';\r\nimport { Dialog } from 'primereact/dialog';\r\nimport AddEditAdminZTraining from '../components/AddEditAdminZTraining';\r\nimport appUrl from \"../../../../constants/appUrl\";\r\nimport axios from 'axios';\r\nimport { ToastContainer, toast } from 'react-toastify';\r\nimport 'react-toastify/dist/ReactToastify.css';\r\nimport Loader from '../../../components/laoder';\r\nimport { ConfirmDialog, confirmDialog } from 'primereact/confirmdialog';\r\nimport ViewAttachment from '../components/ViewAttachment';\r\nimport { FilterMatchMode } from \"primereact/api\";\r\nimport { InputText } from 'primereact/inputtext';\r\nimport CustomDescription from '../../../components/CustomDescription';\r\nimport CustomVideo from '../../../components/CustomVideo';\r\nconst AdminZTrainingMaterial = ({ searchQuery }) => {\r\n const [loading, setLoading] = useState(false);\r\n const [editable, setEditable] = useState();\r\n const [rowselect, setRowselect] = useState(null)\r\n const [dialog, setDialog] = useState();\r\n const [trainingList, setTrainingList] = useState();\r\n const [res, setRes] = useState(null)\r\n const [viewAttachmentDialog, setViewAttachmentDialog] = useState(false);\r\n const [selectedAttachment, setSelectedAttachment] = useState(null);\r\n const [expandedId, setExpandedId] = useState('');\r\n const [descriptionDialog, setDescriptionDialog] = useState(false);\r\n const [descriptionContent, setDescriptionContent] = useState('');\r\n const [videoAttachmentDialog, setVideoAttachmentDialog] = useState(false);\r\n const [selectedVideoAttachment, setSelectedVideoAttachment] = useState(null);\r\n\r\n const [filteredData, setFilteredData] = useState([]);\r\n\r\n const GetTrainingMaterial = async () => {\r\n const token = localStorage.getItem('token')\r\n try {\r\n setLoading(true);\r\n const response = await fetch(`${appUrl.baseUrl}api/TrainingMaterial/GetAllTrainingMaterial`,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Authorization': `Bearer ${token}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n }\r\n )\r\n const data = await response.json();\r\n setTrainingList(data)\r\n setLoading(false);\r\n }\r\n catch (error) {\r\n\r\n }\r\n }\r\n const actionTemplate = (rowData) => {\r\n return (\r\n
    \r\n
    \r\n );\r\n }\r\n\r\n const accept = async (rowData) => {\r\n try {\r\n const response = await axios.delete(`${appUrl.baseUrl}api/TrainingMaterial/DeleteTrainingByID/${rowData?.trainingMaterialID}/${rowData.channelId}`, {\r\n headers: {\r\n 'Authorization': `Bearer ${localStorage.getItem('token')}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n setRes(response.data);\r\n toast.success(\"Deleted Successfully\");\r\n } catch (error) {\r\n toast.error(\"Failed to delete. Please try again.\");\r\n console.error(\"Error deleting disclaimer:\", error);\r\n }\r\n };\r\n const reject = (rowData) => {\r\n return\r\n }\r\n\r\n const confirm = (rowData) => {\r\n confirmDialog({\r\n header: (\r\n
    \r\n \r\n\r\n
    \r\n ),\r\n message: (\r\n Are you sure you want to delete this Training Material?\r\n ),\r\n accept: () => accept(rowData),\r\n reject: () => reject(rowData),\r\n acceptClassName: 'custom-btn-red',\r\n rejectClassName: 'custom-white-red',\r\n className: 'center-buttons no-close-button',\r\n });\r\n };\r\n\r\n const editAction = async (rowData) => {\r\n const token = localStorage.getItem('token')\r\n try {\r\n const response = await axios.get(`${appUrl.baseUrl}api/TrainingMaterial/GetTrainingMaterialById/${rowData?.trainingMaterialID}/${rowData.channelId}`, {\r\n headers: {\r\n 'Authorization': `Bearer ${token}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n const data = response.data;\r\n setEditable(true);\r\n setRowselect(data);\r\n setDialog(true);\r\n } catch (error) {\r\n error(\"Error fetching outage data by ID:\", error);\r\n toast.error(\"Failed to fetch data for editing\");\r\n }\r\n };\r\n useEffect(() => {\r\n if (searchQuery) {\r\n setFilteredData(\r\n trainingList?.filter((item) =>\r\n item.productName?.toLowerCase().includes(searchQuery?.toLowerCase())||\r\n item.title?.toLowerCase().includes(searchQuery?.toLowerCase())\r\n )\r\n );\r\n } else {\r\n setFilteredData(trainingList);\r\n }\r\n }, [searchQuery, trainingList]);\r\n\r\n const onHide = () => {\r\n setDialog(false)\r\n }\r\n const onHideViewAttachment = () => {\r\n setViewAttachmentDialog(false);\r\n };\r\n\r\n const showDescription = (description) => {\r\n setDescriptionContent(description);\r\n setDescriptionDialog(true);\r\n };\r\n const onHideDescriptionDialog = () => {\r\n setDescriptionDialog(false);\r\n };\r\n const onHideVideoAttachment = () => {\r\n setVideoAttachmentDialog(false);\r\n };\r\n\r\n\r\n\r\n\r\n\r\n const actionDocument = (rowData) => {\r\n const documentsToDownload = rowData.trainingAttachment.filter(attachment =>\r\n attachment.attachmentPath.endsWith('.docx') ||\r\n attachment.attachmentPath.endsWith('.pdf') ||\r\n attachment.attachmentPath.endsWith('.xlsx')\r\n );\r\n\r\n const documentPaths = documentsToDownload.map(document => document.attachmentPath);\r\n const hasImage = rowData.trainingAttachment.some(attachment => attachment.attachmentPath.endsWith('.png') || attachment.attachmentPath.endsWith('.jpg') || attachment.attachmentPath.endsWith('.jpeg'));\r\n const hasVideo = rowData.trainingAttachment.some(attachment => attachment.attachmentPath.endsWith('.mp4') || attachment.attachmentPath.endsWith('.mp5') || attachment.attachmentPath.endsWith('.webm') || attachment.attachmentPath.endsWith('.mov') || attachment.attachmentPath.endsWith('.3gp') || attachment.attachmentPath.endsWith('.3g2') || attachment.attachmentPath.endsWith('.mpeg'));\r\n\r\n return (\r\n
    \r\n {documentsToDownload.length > 0 && (\r\n downloadDocuments(documentPaths)}\r\n />\r\n )}\r\n {hasImage && (\r\n
    \r\n );\r\n }\r\n\r\n\r\n\r\n const downloadDocuments = async (documentPaths) => {\r\n try {\r\n for (let i = 0; i < documentPaths.length; i++) {\r\n const documentPath = documentPaths[i];\r\n const response = await fetch(`${appUrl.baseUrl}${documentPath}`);\r\n const blob = await response.blob();\r\n const url = URL.createObjectURL(blob);\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.setAttribute('download', '');\r\n link.setAttribute('target', '_blank');\r\n link.click();\r\n URL.revokeObjectURL(url);\r\n await new Promise(resolve => setTimeout(resolve, 1000)); // Delay each download by 1 second\r\n }\r\n } catch (error) {\r\n console.error(\"Error downloading documents:\", error);\r\n toast.error(\"Failed to download documents\");\r\n }\r\n };\r\n\r\n const stripHtmlTags = (html) => {\r\n const doc = new DOMParser().parseFromString(html, 'text/html');\r\n return doc.body.textContent || \"\";\r\n };\r\n const isAdmin = localStorage.getItem('admin')\r\n\r\n useEffect(() => {\r\n GetTrainingMaterial()\r\n }, [res])\r\n return (\r\n <>\r\n \r\n \r\n \r\n {selectedAttachment && }\r\n \r\n \r\n {selectedVideoAttachment && }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
    \r\n
    \r\n
    Training Material
    \r\n
    \r\n \r\n {isAdmin === 'true' || isAdmin === true ? (\r\n
    \r\n
    \r\n
    \r\n
    \r\n ) : null}\r\n\r\n
    \r\n {loading && }\r\n
    \r\n \r\n \r\n (\r\n \r\n {rowData.channelName.length > 15 ? `${rowData.channelName.slice(0, 15)}...` : rowData.channelName}\r\n \r\n )} />\r\n \r\n (\r\n \r\n {rowData.title.length > 15 ? `${rowData.title.slice(0, 15)}...` : rowData.title}\r\n \r\n )} />\r\n\r\n (\r\n {\r\n e.preventDefault();\r\n showDescription(rowData.description);\r\n }}\r\n style={{ cursor: 'pointer', color: '#00b0ab', textDecoration: 'underline' }}\r\n >\r\n View Description\r\n \r\n )}\r\n />\r\n new Date(rowData.createdDate).toLocaleString('en-GB', {\r\n day: '2-digit',\r\n month: '2-digit',\r\n year: 'numeric',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n hour12: true\r\n })}\r\n />\r\n {\r\n if (!rowData.updatedDate) {\r\n return '-';\r\n }\r\n return new Date(rowData.updatedDate).toLocaleString('en-GB', {\r\n day: '2-digit',\r\n month: '2-digit',\r\n year: 'numeric',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n hour12: true,\r\n });\r\n }}\r\n />\r\n \r\n {isAdmin === 'true' || isAdmin === true ? (\r\n \r\n ) : null}\r\n \r\n
    \r\n
    \r\n
    \r\n\r\n \r\n )\r\n}\r\n\r\nexport default AdminZTrainingMaterial","import React, { useState, useEffect } from 'react';\r\nimport { DataTable } from 'primereact/datatable';\r\nimport { Column } from 'primereact/column';\r\nimport { Button } from 'primereact/button';\r\nimport AddEditAdminTip from '../components/AddEditAdminTip';\r\nimport { Dialog } from 'primereact/dialog';\r\nimport appUrl from \"../../../../constants/appUrl\";\r\nimport CustomDescription from '../../../components/CustomDescription';\r\nimport { ConfirmDialog, confirmDialog } from 'primereact/confirmdialog';\r\nimport { ToastContainer, toast } from 'react-toastify';\r\nimport axios from 'axios';\r\nimport Loader from '../../../components/laoder';\r\nconst AdminTipOfDay = () => {\r\n\r\n const [dialog, setDialog] = useState();\r\n const [tipList, setTipList] = useState();\r\n const [res, setRes] = useState();\r\n const [descriptionDialog, setDescriptionDialog] = useState(false);\r\n const [descriptionContent, setDescriptionContent] = useState('');\r\n const [loading, setLoading] = useState(false);\r\n const GetAllTips = async () => {\r\n const token = localStorage.getItem('token')\r\n try {\r\n setLoading(true);\r\n const response = await fetch(`${appUrl.baseUrl}api/Tips/GetTips`,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Authorization': `Bearer ${token}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n }\r\n )\r\n const data = await response.json();\r\n setTipList(data)\r\n setLoading(false);\r\n }\r\n catch (error) {\r\n toast.error('Token expire. Please login again.');\r\n console.error('Error fetching channels:', error);\r\n }\r\n }\r\n\r\n const onHide = () => {\r\n setDialog(false)\r\n }\r\n\r\n const isAdmin = localStorage.getItem('admin')\r\n const stripHtmlTags = (html) => {\r\n const doc = new DOMParser().parseFromString(html, 'text/html');\r\n return doc.body.textContent || \"\";\r\n };\r\n const showDescription = (description) => {\r\n setDescriptionContent(description);\r\n setDescriptionDialog(true);\r\n };\r\n const onHideDescriptionDialog = () => {\r\n setDescriptionDialog(false);\r\n };\r\n const actionTemplate = (rowData) => (\r\n
    \r\n
    \r\n );\r\n\r\n\r\n const accept = async (rowData) => {\r\n try {\r\n const response = await axios.delete(`${appUrl.baseUrl}api/Tips/DeleteTip/${rowData?.tipsID}`, {\r\n headers: {\r\n 'Authorization': `Bearer ${localStorage.getItem('token')}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n setRes(response.data);\r\n toast.success(\"Deleted Successfully\");\r\n } catch (error) {\r\n toast.error(\"Failed to delete. Please try again.\");\r\n console.error(\"Error deleting disclaimer:\", error);\r\n }\r\n };\r\n const reject = (rowData) => { };\r\n\r\n const confirm = (rowData) => {\r\n confirmDialog({\r\n header: (\r\n
    \r\n \r\n\r\n
    \r\n ),\r\n message: (\r\n Are you sure you want to delete this Tip of the day?\r\n ),\r\n accept: () => accept(rowData),\r\n reject: () => reject(rowData),\r\n acceptClassName: 'custom-btn-red',\r\n rejectClassName: 'custom-white-red',\r\n className: 'center-buttons no-close-button',\r\n });\r\n };\r\n\r\n\r\n useEffect(() => {\r\n GetAllTips()\r\n }, [res])\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
    \r\n
    \r\n
    Tip of the day
    \r\n
    \r\n \r\n {isAdmin === 'true' || isAdmin === true ? (\r\n
    \r\n
    \r\n
    \r\n
    \r\n ) : null}\r\n\r\n
    \r\n {loading && }\r\n
    \r\n \r\n {\r\n return index.rowIndex + 1;\r\n }}\r\n header=\"Sr. No.\"\r\n />\r\n (\r\n {\r\n e.preventDefault();\r\n showDescription(rowData.description);\r\n }}\r\n style={{ cursor: 'pointer', color: '#00b0ab', textDecoration: 'underline' }}\r\n >\r\n View Description\r\n \r\n )}\r\n />\r\n new Date(rowData.createdDate).toLocaleString('en-GB', {\r\n day: '2-digit',\r\n month: '2-digit',\r\n year: 'numeric',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n hour12: true,\r\n })} />\r\n\r\n {isAdmin === 'true' || isAdmin === true ? (\r\n \r\n ) : null}\r\n \r\n
    \r\n
    \r\n
    \r\n\r\n \r\n )\r\n}\r\n\r\nexport default AdminTipOfDay","import React, { useState, useEffect } from 'react';\r\nimport { DataTable } from 'primereact/datatable';\r\nimport { Column } from 'primereact/column';\r\nimport { Button } from 'primereact/button';\r\nimport { Dialog } from 'primereact/dialog';\r\nimport appUrl from \"../../../../constants/appUrl\";\r\nimport axios from 'axios';\r\nimport { ToastContainer, toast } from 'react-toastify';\r\nimport 'react-toastify/dist/ReactToastify.css';\r\nimport { FilterMatchMode } from \"primereact/api\";\r\nimport { InputText } from 'primereact/inputtext';\r\nimport { ConfirmDialog, confirmDialog } from 'primereact/confirmdialog';\r\nimport AddEditAdminOutage from '../component/AddEditAdminOutage';\r\nimport Loader from '../../../components/laoder';\r\n\r\nconst AdminOutage = ({ searchQuery }) => {\r\n const [outageList, setOutageList] = useState([]);\r\n const [expandedRows, setExpandedRows] = useState(null);\r\n const [res, setRes] = useState(null);\r\n const [dialog, setDialog] = useState(false);\r\n const [editable, setEditable] = useState(false);\r\n const [rowselect, setRowselect] = useState(null);\r\n const [filteredData, setFilteredData] = useState([]);\r\n const [loading, setLoading] = useState(false);\r\n\r\n const [startDateTime, setStartDateTime] = useState('');\r\n const [endDateTime, setEndDateTime] = useState('');\r\n\r\n const GetOutageDegradation = async () => {\r\n const token = localStorage.getItem('token');\r\n try {\r\n setLoading(true);\r\n const response = await fetch(`${appUrl.baseUrl}api/OutageDegradation/GetAllOutageDegradation`, {\r\n method: 'GET',\r\n headers: {\r\n 'Authorization': `Bearer ${token}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n const data = await response.json();\r\n setOutageList(data);\r\n setLoading(false);\r\n } catch (error) {\r\n toast.error(\"Failed to fetch data\");\r\n }\r\n };\r\n\r\n const editAction = async (rowData) => {\r\n const token = localStorage.getItem('token');\r\n try {\r\n const response = await axios.get(`${appUrl.baseUrl}api/OutageDegradation/GetOutageDegradationById/${rowData.id}`, {\r\n headers: {\r\n 'Authorization': `Bearer ${token}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n const data = response.data;\r\n setEditable(true);\r\n setRowselect(data);\r\n setDialog(true);\r\n } catch (error) {\r\n toast.error(\"Failed to fetch data for editing\");\r\n }\r\n };\r\n\r\n const actionTemplate = (rowData) => (\r\n
    \r\n
    \r\n );\r\n\r\n const accept = async (rowData) => {\r\n try {\r\n const response = await axios.delete(`${appUrl.baseUrl}api/OutageDegradation/DeleteOutageDegradationByID/${rowData?.id}`, {\r\n headers: {\r\n 'Authorization': `Bearer ${localStorage.getItem('token')}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n setRes(response.data);\r\n toast.success(\"Deleted Successfully\");\r\n } catch (error) {\r\n toast.error(\"Failed to delete. Please try again.\");\r\n }\r\n };\r\n\r\n const reject = () => { };\r\n\r\n const confirm = (rowData) => {\r\n confirmDialog({\r\n header: (\r\n
    \r\n \r\n
    \r\n ),\r\n message: (\r\n Are you sure you want to delete this outage / degradation?\r\n ),\r\n accept: () => accept(rowData),\r\n reject: () => reject(rowData),\r\n acceptClassName: 'custom-btn-red',\r\n rejectClassName: 'custom-white-red',\r\n className: 'center-buttons no-close-button',\r\n });\r\n };\r\n\r\n const onHide = () => {\r\n setDialog(false);\r\n setRowselect(null);\r\n };\r\n\r\n useEffect(() => {\r\n GetOutageDegradation();\r\n }, [res]);\r\n\r\n useEffect(() => {\r\n let filtered = outageList;\r\n\r\n if (searchQuery) {\r\n filtered = filtered.filter((item) =>\r\n item.productName?.toLowerCase().includes(searchQuery?.toLowerCase()) ||\r\n item.reason?.toLowerCase().includes(searchQuery?.toLowerCase()) ||\r\n item.status?.toLowerCase().includes(searchQuery?.toLowerCase())\r\n );\r\n }\r\n\r\n if (startDateTime && endDateTime) {\r\n filtered = filtered.filter((item) => {\r\n const itemDateTime = new Date(item.createdDate);\r\n return itemDateTime >= new Date(startDateTime) && itemDateTime <= new Date(endDateTime);\r\n });\r\n }\r\n\r\n setFilteredData(filtered);\r\n }, [searchQuery, outageList, startDateTime, endDateTime]);\r\n\r\n const handleStartDateTimeChange = (e) => {\r\n setStartDateTime(e.target.value);\r\n };\r\n\r\n const handleEndDateTimeChange = (e) => {\r\n setEndDateTime(e.target.value);\r\n };\r\n\r\n const isAdmin = localStorage.getItem('admin');\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n\r\n
    \r\n
    \r\n
    Outages / Degradations
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n {isAdmin === 'true' || isAdmin === true ? (\r\n
    \r\n
    \r\n ) : null}\r\n
    \r\n {loading && }\r\n
    \r\n \r\n\r\n \r\n (\r\n \r\n {rowData.reason.length > 15 ? `${rowData.reason.slice(0, 15)}...` : rowData.reason}\r\n \r\n )} />\r\n\r\n \r\n new Date(rowData.createdDate).toLocaleString('en-GB', {\r\n day: '2-digit',\r\n month: '2-digit',\r\n year: 'numeric',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n hour12: true,\r\n })} />\r\n {\r\n if (!rowData.updatedDate) {\r\n return '-';\r\n }\r\n return new Date(rowData.updatedDate).toLocaleString('en-GB', {\r\n day: '2-digit',\r\n month: '2-digit',\r\n year: 'numeric',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n hour12: true,\r\n });\r\n }}\r\n />\r\n\r\n {isAdmin === 'true' || isAdmin === true ? (\r\n \r\n ) : null}\r\n\r\n\r\n \r\n
    \r\n
    \r\n
    \r\n\r\n \r\n );\r\n}\r\nexport default AdminOutage","import React, { useState, useEffect } from 'react';\r\nimport { DataTable } from 'primereact/datatable';\r\nimport { Column } from 'primereact/column';\r\nimport { Button } from 'primereact/button';\r\nimport { Dialog } from 'primereact/dialog';\r\nimport appUrl from \"../../../../constants/appUrl\";\r\nimport axios from 'axios';\r\nimport { ToastContainer, toast } from 'react-toastify';\r\nimport 'react-toastify/dist/ReactToastify.css';\r\nimport { ConfirmDialog, confirmDialog } from 'primereact/confirmdialog';\r\nimport { InputSwitch } from \"primereact/inputswitch\";\r\nimport AddEditAdminDisclaimer from '../compoenets/AddEditAdminDisclaimer';\r\nimport Loader from '../../../components/laoder';\r\n\r\nconst AdminDisclaimer = ({ searchQuery }) => {\r\n const [rowselect, setRowselect] = useState(null);\r\n const [dialog, setDialog] = useState(false);\r\n const [editable, setEditable] = useState(false);\r\n const [res, setRes] = useState(null);\r\n const [disclaimerList, setDisclaimerList] = useState([]);\r\n const [filteredData, setFilteredData] = useState([]);\r\n const [loading, setLoading] = useState(false);\r\n const GetAllDisclaimer = async () => {\r\n const token = localStorage.getItem('token')\r\n try {\r\n setLoading(true);\r\n const response = await fetch(`${appUrl.baseUrl}api/Disclaimer/GetAllDisclaimers`,\r\n {\r\n method: 'GET',\r\n headers: {\r\n 'Authorization': `Bearer ${token}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n }\r\n );\r\n const data = await response.json();\r\n setDisclaimerList(data);\r\n setLoading(false);\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n GetAllDisclaimer();\r\n }, [res]);\r\n\r\n useEffect(() => {\r\n if (searchQuery) {\r\n setFilteredData(\r\n disclaimerList.filter((item) =>\r\n item.disclaimerDescription?.toLowerCase().includes(searchQuery?.toLowerCase())\r\n )\r\n );\r\n } else {\r\n setFilteredData(disclaimerList);\r\n }\r\n }, [searchQuery, disclaimerList]);\r\n\r\n const toggleStatus = async (rowData) => {\r\n const updatedRow = { ...rowData, active: !rowData.active };\r\n try {\r\n const response = await axios.patch(`${appUrl.baseUrl}api/Disclaimer/ActiveDeactiveDisclaimer/${rowData?.disclaimerID}`, updatedRow);\r\n setRes(response);\r\n toast.success(\"Status Updated Successfully\");\r\n } catch (error) {\r\n console.error(error);\r\n toast.error(\"Error Updating Status\");\r\n }\r\n };\r\n\r\n const statusBodyTemplate = (rowData) => (\r\n toggleStatus(rowData)} />\r\n );\r\n\r\n const actionTemplate = (rowData) => (\r\n
    \r\n
    \r\n );\r\n\r\n const accept = async (rowData) => {\r\n try {\r\n const response = await axios.delete(`${appUrl.baseUrl}api/Disclaimer/DeleteDisclaimerByID/${rowData?.disclaimerID}`, {\r\n headers: {\r\n 'Authorization': `Bearer ${localStorage.getItem('token')}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n setRes(response.data);\r\n toast.success(\"Deleted Successfully\");\r\n } catch (error) {\r\n toast.error(\"Failed to delete. Please try again.\");\r\n console.error(\"Error deleting disclaimer:\", error);\r\n }\r\n };\r\n const reject = () => { };\r\n\r\n const confirm = (rowData) => {\r\n confirmDialog({\r\n header: (\r\n
    \r\n \r\n
    \r\n ),\r\n message: (\r\n Are you sure you want to delete this disclaimer?\r\n ),\r\n accept: () => accept(rowData),\r\n reject: () => reject(),\r\n acceptClassName: 'custom-btn-red',\r\n rejectClassName: 'custom-white-red',\r\n className: 'center-buttons no-close-button',\r\n });\r\n };\r\n\r\n const editAction = (rowData) => {\r\n setEditable(true);\r\n setRowselect(rowData);\r\n setDialog(true);\r\n };\r\n\r\n const onHide = () => {\r\n setDialog(false);\r\n };\r\n\r\n const isAdmin = localStorage.getItem('admin');\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n\r\n
    \r\n
    \r\n
    Disclaimer
    \r\n
    \r\n \r\n {isAdmin === 'true' || isAdmin === true ? (\r\n
    \r\n
    \r\n ) : null}\r\n
    \r\n {loading && }\r\n
    \r\n \r\n (\r\n \r\n {rowData.disclaimerDescription.length > 15 ? `${rowData.disclaimerDescription.slice(0, 15)}...` : rowData.disclaimerDescription}\r\n \r\n )} />\r\n\r\n new Date(rowData.createdDate).toLocaleString('en-GB', {\r\n day: '2-digit',\r\n month: '2-digit',\r\n year: 'numeric',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n hour12: true,\r\n })} />\r\n {\r\n if (!rowData.updatedDate) {\r\n return '-';\r\n }\r\n return new Date(rowData.updatedDate).toLocaleString('en-GB', {\r\n day: '2-digit',\r\n month: '2-digit',\r\n year: 'numeric',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n hour12: true,\r\n });\r\n }}\r\n />\r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n}\r\n\r\nexport default AdminDisclaimer;\r\n\r\n","import React from 'react'\r\nimport appUrl from \"../../../../constants/appUrl\";\r\nconst ViewAttachement = ({attachment}) => {\r\n return (\r\n \"Attachment\"\r\n )\r\n}\r\n\r\nexport default ViewAttachement","import React, { useState, useEffect } from 'react';\r\nimport { DataTable } from 'primereact/datatable';\r\nimport { Column } from 'primereact/column';\r\nimport { Button } from 'primereact/button';\r\nimport appUrl from \"../../../../constants/appUrl\";\r\nimport { Dialog } from 'primereact/dialog';\r\nimport AddEditAdminDashboardSlider from '../components/AddEditAdminDashboardSlider';\r\nimport ViewAttachement from '../components/ViewAttachement';\r\nimport axios from 'axios';\r\nimport { ToastContainer, toast } from 'react-toastify';\r\nimport 'react-toastify/dist/ReactToastify.css';\r\nimport { ConfirmDialog, confirmDialog } from 'primereact/confirmdialog';\r\nimport Loader from '../../../components/laoder';\r\nconst AdminDashboardSlider = () => {\r\n\r\n const [dialog, setDialog] = useState();\r\n const [res, setRes] = useState();\r\n const [editable, setEditable] = useState();\r\n \r\n const [viewAttachmentDialog, setViewAttachmentDialog] = useState(false);\r\n const [selectedAttachment, setSelectedAttachment] = useState(null);\r\n const [sliderList, setSliderList] = useState();\r\n const [loading, setLoading] = useState(false);\r\n const GetAllSliderPicture = async () => {\r\n const token =localStorage.getItem('token')\r\n try {\r\n setLoading(true);\r\n const response = await fetch(`${appUrl.baseUrl}api/ImageSlider/GetAllImages`,\r\n {\r\n method:'GET',\r\n headers:{\r\n 'Authorization':`Bearer ${token}`,\r\n 'Content-Type':'application/json'\r\n }\r\n }\r\n )\r\n const data = await response.json();\r\n setSliderList(data)\r\n setLoading(false);\r\n\r\n } catch (error) {\r\n\r\n }\r\n }\r\n\r\n const actionEye = (rowData) => {\r\n return (\r\n
    \r\n
    \r\n );\r\n }\r\n const onHideViewAttachment = () => {\r\n setViewAttachmentDialog(false);\r\n };\r\n\r\n const onHide = () => {\r\n setDialog(false)\r\n }\r\n const actionTemplate = (rowData) => (\r\n
    \r\n {/*
    \r\n );\r\n\r\n \r\n const accept = async (rowData) => {\r\n try {\r\n const response = await axios.delete(`${appUrl.baseUrl}api/ImageSlider/DeleteImage/${rowData?.imageID}`, {\r\n headers: {\r\n 'Authorization': `Bearer ${localStorage.getItem('token')}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n setRes(response.data);\r\n toast.success(\"Deleted Successfully\");\r\n } catch (error) {\r\n toast.error(\"Failed to delete. Please try again.\");\r\n console.error(\"Error deleting disclaimer:\", error);\r\n }\r\n };\r\n\r\n const reject = () => { };\r\n\r\n const confirm = (rowData) => {\r\n confirmDialog({\r\n header: (\r\n
    \r\n \r\n
    \r\n ),\r\n message: (\r\n Are you sure you want to delete this Banner?\r\n ),\r\n accept: () => accept(rowData),\r\n reject: () => reject(),\r\n acceptClassName: 'custom-btn-red',\r\n rejectClassName: 'custom-white-red',\r\n className: 'center-buttons no-close-button',\r\n });\r\n };\r\n\r\n\r\n const isAdmin = localStorage.getItem('admin')\r\n\r\n useEffect(() => {\r\n GetAllSliderPicture()\r\n }, [res])\r\n return (\r\n <>\r\n \r\n \r\n \r\n {selectedAttachment && }\r\n \r\n \r\n \r\n \r\n\r\n
    \r\n
    \r\n {/*
    \r\n
    Dashboard Slider
    \r\n
    \r\n
    \r\n
    */}\r\n {isAdmin === 'true' || isAdmin === true ? (\r\n
    \r\n
    \r\n
    \r\n
    \r\n ) : null\r\n }\r\n
    \r\n {loading && }\r\n
    \r\n \r\n {\r\n return index.rowIndex + 1;\r\n }}\r\n header=\"Sr. No.\"\r\n />\r\n \r\n \r\n new Date(rowData.createdDate).toLocaleString('en-GB', {\r\n day: '2-digit',\r\n month: '2-digit',\r\n year: 'numeric',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n hour12: true\r\n })} />\r\n {isAdmin === 'true' || isAdmin === true ? (\r\n \r\n ) : null}\r\n \r\n
    \r\n
    \r\n
    \r\n\r\n \r\n );\r\n}\r\n\r\nexport default AdminDashboardSlider;\r\n","import React from 'react';\r\nimport Slider from 'react-slick';\r\nimport 'slick-carousel/slick/slick.css';\r\nimport 'slick-carousel/slick/slick-theme.css';\r\nimport appUrl from \"../../../../constants/appUrl\";\r\n\r\nconst ViewAttachment = ({ attachment }) => {\r\n\r\n const settings = {\r\n dots: true,\r\n infinite: true,\r\n speed: 500,\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n autoplay: true,\r\n autoplaySpeed: 2000,\r\n };\r\n const renderSlider = () => {\r\n if (attachment.length > 1) {\r\n return (\r\n \r\n {attachment.map((imagePath, index) => (\r\n
    \r\n \"Attachment\"\r\n
    \r\n ))}\r\n
    \r\n );\r\n } else if (attachment.length === 1) {\r\n return (\r\n \"Attachment\"\r\n );\r\n } else {\r\n return

    No images available

    ;\r\n }\r\n };\r\n\r\n return (\r\n
    \r\n {renderSlider()}\r\n
    \r\n );\r\n};\r\n\r\nexport default ViewAttachment;\r\n","import React, { useState, useEffect } from 'react'\r\nimport { Column } from 'primereact/column';\r\nimport { DataTable } from 'primereact/datatable';\r\nimport appUrl from \"../../../../constants/appUrl\";\r\nimport { Button } from 'primereact/button';\r\nimport { Dialog } from 'primereact/dialog';\r\nimport ViewAttachment from '../../UserZTrainingMaterial/components/ViewAttachement';\r\nimport { FilterMatchMode } from \"primereact/api\";\r\nimport { InputText } from 'primereact/inputtext';\r\nimport CustomVideo from '../../../components/CustomVideo';\r\nconst UserZAppJourney = ({ searchQuery }) => {\r\n const [appJourneyList, setAppJourneyList] = useState([]);\r\n const [viewAttachmentDialog, setViewAttachmentDialog] = useState(false);\r\n const [selectedAttachment, setSelectedAttachment] = useState(null);\r\n const [filteredData, setFilteredData] = useState([]);\r\n const [videoAttachmentDialog, setVideoAttachmentDialog] = useState(false);\r\n const [selectedVideoAttachment, setSelectedVideoAttachment] = useState(null);\r\n\r\n const [expandedRows, setExpandedRows] = useState(null);\r\n const [expandedId, setExpandedId] = useState('');\r\n\r\n const GetAllAppJournies = async () => {\r\n try {\r\n const response = await fetch(`${appUrl.baseUrl}api/AppJourney/GetAllAppJournies`);\r\n const data = await response.json();\r\n setAppJourneyList(data);\r\n } catch (error) {\r\n error('Error fetching ', error);\r\n }\r\n };\r\n const onHideViewAttachment = () => {\r\n setViewAttachmentDialog(false);\r\n };\r\n const actionEye = (rowData) => {\r\n return (\r\n
    \r\n
    \r\n );\r\n }\r\n\r\n const allowExpansion = (rowData) => {\r\n return rowData.length > 0;\r\n };\r\n useEffect(() => {\r\n if (searchQuery) {\r\n setFilteredData(\r\n appJourneyList.filter((item) =>\r\n item.productName?.toLowerCase().includes(searchQuery?.toLowerCase())\r\n )\r\n );\r\n } else {\r\n setFilteredData(appJourneyList);\r\n }\r\n }, [searchQuery, appJourneyList]);\r\n const onHideVideoAttachment = () => {\r\n setVideoAttachmentDialog(false);\r\n };\r\n\r\n const onRowExpand = (rowData) => {\r\n setExpandedId(rowData?.data?.productID)\r\n }\r\n const actionDocument = (rowData) => {\r\n const hasDocument = rowData.attachmentsModel.some(attachment => attachment.attachmentPath.endsWith('.docx') || attachment.attachmentPath.endsWith('.pdf')|| attachment.attachmentPath.endsWith('.xlsx'));\r\n const hasImage = rowData.attachmentsModel.some(attachment => attachment.attachmentPath.endsWith('.png') || attachment.attachmentPath.endsWith('.jpg') || attachment.attachmentPath.endsWith('.jpeg'));\r\n const hasVideo = rowData.attachmentsModel.some(attachment => attachment.attachmentPath.endsWith('.mp4') || attachment.attachmentPath.endsWith('.mp5') || attachment.attachmentPath.endsWith('.webm')|| attachment.attachmentPath.endsWith('.mov')|| attachment.attachmentPath.endsWith('.3gp')|| attachment.attachmentPath.endsWith('.3g2')|| attachment.attachmentPath.endsWith('.mpeg'));\r\n\r\n return (\r\n
    \r\n {hasDocument && (\r\n
    \r\n );\r\n }\r\n\r\n\r\n const downloadDocument = (documentPath) => {\r\n let link = document.createElement('a');\r\n link.href = documentPath;\r\n link.setAttribute('download', '');\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n }\r\n\r\n const rowExpansionTemplate = (rowData) => {\r\n return (\r\n
    \r\n \r\n\r\n \r\n \r\n new Date(rowData.createdDate).toLocaleString('en-GB', {\r\n day: '2-digit',\r\n month: '2-digit',\r\n year: 'numeric',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n })}\r\n />\r\n \r\n \r\n
    \r\n );\r\n };\r\n\r\n\r\n\r\n useEffect(() => {\r\n GetAllAppJournies();\r\n }, []);\r\n return (\r\n
    \r\n \r\n {selectedAttachment && }\r\n \r\n \r\n {selectedVideoAttachment && }\r\n \r\n
    \r\n
    \r\n\r\n
    App Journey
    \r\n
    \r\n
    \r\n {/* \r\n */}\r\n
    \r\n\r\n\r\n\r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n new Date(rowData.createdDate).toLocaleString('en-GB', {\r\n day: '2-digit',\r\n month: '2-digit',\r\n year: 'numeric',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n hour12: true\r\n })} />\r\n new Date(rowData.updatedDate).toLocaleString('en-GB', {\r\n day: '2-digit',\r\n month: '2-digit',\r\n year: 'numeric',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n hour12: true\r\n })} />\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n )\r\n}\r\n\r\nexport default UserZAppJourney","import React, { useState, useEffect } from 'react'\r\nimport { Column } from 'primereact/column';\r\nimport { DataTable } from 'primereact/datatable';\r\nimport appUrl from \"../../../../constants/appUrl\";\r\nimport { Button } from 'primereact/button';\r\nimport { FilterMatchMode } from \"primereact/api\";\r\nimport { Dialog } from 'primereact/dialog';\r\nimport ViewAttachement from '../components/ViewAttachement';\r\nimport { InputText } from 'primereact/inputtext';\r\nimport CustomDescription from '../../../components/CustomDescription';\r\nimport CustomVideo from '../../../components/CustomVideo';\r\nconst UserZTrainingMaterial = ({ searchQuery }) => {\r\n const [zTrainingList, setZTrainingList] = useState([]);\r\n const [viewAttachmentDialog, setViewAttachmentDialog] = useState(false);\r\n const [selectedAttachment, setSelectedAttachment] = useState(null);\r\n const [expandedId, setExpandedId] = useState('');\r\n const [expandedRows, setExpandedRows] = useState(null);\r\n const [descriptionDialog, setDescriptionDialog] = useState(false);\r\n const [descriptionContent, setDescriptionContent] = useState('');\r\n const [videoAttachmentDialog, setVideoAttachmentDialog] = useState(false);\r\n const [selectedVideoAttachment, setSelectedVideoAttachment] = useState(null);\r\n\r\n const [filteredData, setFilteredData] = useState([]);\r\n\r\n\r\n const GetAllAppJournies = async () => {\r\n try {\r\n const response = await fetch(`${appUrl.baseUrl}api/TrainingMaterial/GetAllTrainingMaterial`);\r\n const data = await response.json();\r\n setZTrainingList(data);\r\n } catch (error) {\r\n error('Error fetching ', error);\r\n }\r\n };\r\n const onHideViewAttachment = () => {\r\n setViewAttachmentDialog(false);\r\n };\r\n\r\n const allowExpansion = (rowData) => {\r\n return rowData.length > 0;\r\n };\r\n\r\n useEffect(() => {\r\n if (searchQuery) {\r\n setFilteredData(\r\n zTrainingList.filter((item) =>\r\n item.productName?.toLowerCase().includes(searchQuery?.toLowerCase())\r\n )\r\n );\r\n } else {\r\n setFilteredData(zTrainingList);\r\n }\r\n }, [searchQuery, zTrainingList]);\r\n\r\n const onRowExpand = (rowData) => {\r\n setExpandedId(rowData?.data?.productID)\r\n }\r\n const stripHtmlTags = (html) => {\r\n const doc = new DOMParser().parseFromString(html, 'text/html');\r\n return doc.body.textContent || \"\";\r\n };\r\n const onHideVideoAttachment = () => {\r\n setVideoAttachmentDialog(false);\r\n };\r\n\r\n\r\n const actionDocument = (rowData) => {\r\n const hasDocument = rowData.trainingAttachment.some(attachment => attachment.attachmentPath.endsWith('.docx')|| attachment.attachmentPath.endsWith('.xlsx') || attachment.attachmentPath.endsWith('.pdf'));\r\n const hasImage = rowData.trainingAttachment.some(attachment => attachment.attachmentPath.endsWith('.png') || attachment.attachmentPath.endsWith('.jpg') || attachment.attachmentPath.endsWith('.jpeg'));\r\n const hasVideo = rowData.trainingAttachment.some(attachment => attachment.attachmentPath.endsWith('.mp4') || attachment.attachmentPath.endsWith('.mp5') || attachment.attachmentPath.endsWith('.webm')|| attachment.attachmentPath.endsWith('.mov')|| attachment.attachmentPath.endsWith('.3gp')|| attachment.attachmentPath.endsWith('.3g2')|| attachment.attachmentPath.endsWith('.mpeg'));\r\n\r\n return (\r\n
    \r\n {hasDocument && (\r\n
    \r\n );\r\n }\r\n\r\n\r\n const downloadDocument = (documentPath) => {\r\n let link = document.createElement('a');\r\n link.href = documentPath;\r\n link.setAttribute('download', '');\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n }\r\n\r\n const showDescription = (description) => {\r\n setDescriptionContent(description);\r\n setDescriptionDialog(true);\r\n };\r\n const onHideDescriptionDialog = () => {\r\n setDescriptionDialog(false);\r\n };\r\n\r\n\r\n useEffect(() => {\r\n GetAllAppJournies();\r\n }, []);\r\n\r\n\r\n return (\r\n
    \r\n \r\n {selectedAttachment && }\r\n \r\n \r\n {selectedVideoAttachment && }\r\n \r\n \r\n \r\n \r\n
    \r\n\r\n
    \r\n\r\n
    Training Material
    \r\n
    \r\n
    \r\n\r\n {/* */}\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n (\r\n {\r\n e.preventDefault();\r\n showDescription(rowData.description);\r\n }}\r\n style={{ cursor: 'pointer', color: '#00b0ab', textDecoration: 'underline' }}\r\n >\r\n View Description\r\n \r\n )}\r\n />\r\n new Date(rowData.createdDate).toLocaleString('en-GB', {\r\n day: '2-digit',\r\n month: '2-digit',\r\n year: 'numeric',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n hour12: true\r\n })}\r\n />\r\n new Date(rowData.updatedDate).toLocaleString('en-GB', {\r\n day: '2-digit',\r\n month: '2-digit',\r\n year: 'numeric',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n hour12: true\r\n })} />\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n )\r\n}\r\n\r\nexport default UserZTrainingMaterial","import React, { useState, useEffect } from 'react'\r\nimport { Column } from 'primereact/column';\r\nimport { DataTable } from 'primereact/datatable';\r\nimport appUrl from \"../../../../constants/appUrl\";\r\nimport { FilterMatchMode } from \"primereact/api\";\r\nimport { InputText } from 'primereact/inputtext';\r\n\r\nconst Useroutage = ({searchQuery}) => {\r\n const [zOutageList, setZOutageList] = useState([]);\r\n const [expandedRows, setExpandedRows] = useState(null);\r\n \r\n const [filteredData, setFilteredData] = useState([]);\r\n \r\n const GetAllAppJournies = async () => {\r\n try {\r\n const response = await fetch(`${appUrl.baseUrl}api/OutageDegradation/GetAllOutageDegradation`);\r\n const data = await response.json();\r\n setZOutageList(data);\r\n } catch (error) {\r\n error('Error fetching :', error);\r\n }\r\n };\r\n const allowExpansion = (rowData) => {\r\n return rowData.orders.length > 0;\r\n };\r\n\r\n \r\n\r\n useEffect(() => {\r\n if (searchQuery) {\r\n setFilteredData(\r\n zOutageList.filter((item) =>\r\n item.productName?.toLowerCase().includes(searchQuery?.toLowerCase())\r\n )\r\n );\r\n } else {\r\n setFilteredData(zOutageList);\r\n }\r\n }, [searchQuery, zOutageList]);\r\n\r\n\r\n useEffect(() => {\r\n GetAllAppJournies();\r\n }, []);\r\n return (\r\n
    \r\n\r\n\r\n
    \r\n
    \r\n
    Outages / Degradations
    \r\n
    \r\n
    \r\n\r\n \r\n
    \r\n\r\n\r\n\r\n
    \r\n
    \r\n \r\n {/* */}\r\n \r\n \r\n\r\n \r\n new Date(rowData.createdDate).toLocaleString('en-GB', {\r\n day: '2-digit',\r\n month: '2-digit',\r\n year: 'numeric',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n hour12: true\r\n })} />\r\n new Date(rowData.updatedDate).toLocaleString('en-GB', {\r\n day: '2-digit',\r\n month: '2-digit',\r\n year: 'numeric',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n hour12: true\r\n })} />\r\n\r\n \r\n \r\n\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n )\r\n}\r\n\r\nexport default Useroutage","import React, { useState, useEffect } from 'react';\r\nimport { DataTable } from 'primereact/datatable';\r\nimport { Column } from 'primereact/column';\r\nimport { Button } from 'primereact/button';\r\nimport { Dialog } from 'primereact/dialog';\r\nimport appUrl from \"../../../../constants/appUrl\";\r\nimport { useHistory } from 'react-router-dom';\r\nimport axios from 'axios';\r\nimport { ToastContainer, toast } from 'react-toastify';\r\nimport 'react-toastify/dist/ReactToastify.css';\r\nimport { confirmDialog } from 'primereact/confirmdialog';\r\nimport { FilterMatchMode } from \"primereact/api\";\r\nimport { InputText } from 'primereact/inputtext';\r\nimport ViewAttachment from '../../ProcessInformation/components/ViewAttachment';\r\nimport CustomVideo from '../../../components/CustomVideo';\r\nconst UserProduct = ({ searchQuery }) => {\r\n\r\n const [dialog, setDialog] = useState();\r\n const [productList, setProductList] = useState();\r\n const [viewAttachmentDialog, setViewAttachmentDialog] = useState(false);\r\n const [selectedAttachment, setSelectedAttachment] = useState(null);\r\n const [res, setRes] = useState(null)\r\n const [rowselect, setRowselect] = useState(null)\r\n const [editable, setEditable] = useState();\r\n const [videoAttachmentDialog, setVideoAttachmentDialog] = useState(false);\r\n const [selectedVideoAttachment, setSelectedVideoAttachment] = useState(null);\r\n\r\n const history = useHistory();\r\n\r\n const [filteredData, setFilteredData] = useState([]);\r\n const GetAllProducts = async () => {\r\n try {\r\n const response = await fetch(`${appUrl.baseUrl}api/Product/GetAllProducts`)\r\n const data = await response.json();\r\n setProductList(data)\r\n\r\n } catch (error) {\r\n\r\n }\r\n }\r\n\r\n\r\n\r\n const actionEye = (rowData) => (\r\n
    \r\n {\r\n setSelectedAttachment(rowData.productAttachment);\r\n setViewAttachmentDialog(true);\r\n }}\r\n />\r\n
    \r\n );\r\n\r\n useEffect(() => {\r\n if (searchQuery) {\r\n setFilteredData(\r\n productList.filter((item) =>\r\n item.productName?.toLowerCase().includes(searchQuery?.toLowerCase())\r\n )\r\n );\r\n } else {\r\n setFilteredData(productList);\r\n }\r\n }, [searchQuery, productList]);\r\n\r\n\r\n const onHide = () => {\r\n setDialog(false)\r\n setEditable(false)\r\n }\r\n const onHideViewAttachment = () => {\r\n setViewAttachmentDialog(false);\r\n };\r\n const editAction = (rowData) => {\r\n setEditable(true);\r\n setEditable(rowData);\r\n setDialog(true);\r\n setRowselect(rowData)\r\n }\r\n\r\n const actionTemplate = (rowData) => {\r\n return (\r\n
    \r\n\r\n
    \r\n );\r\n }\r\n const accept = async (rowData) => {\r\n const response = await axios.delete(`${appUrl.baseUrl}api/Product/DeleteProductByID/${rowData?.productId}`)\r\n setRes(response)\r\n toast.success(\"Delete Succesfully\")\r\n }\r\n const reject = (rowData) => {\r\n return\r\n }\r\n const confirm = (rowData) => {\r\n confirmDialog({\r\n header: 'Delete',\r\n message: 'Are u sure want to delete data',\r\n accept: () => accept(rowData),\r\n reject: () => reject(rowData),\r\n acceptClassName: 'custom-bg',\r\n rejectClassName: 'custom-white',\r\n })\r\n }\r\n const viewProduct = (rowData) => {\r\n\r\n\r\n history.push({\r\n pathname: '/AgainstProductProcess',\r\n state: { data: rowData },\r\n });\r\n }\r\n const onHideVideoAttachment = () => {\r\n setVideoAttachmentDialog(false);\r\n };\r\n\r\n const actionDocument = (rowData) => {\r\n const hasDocument = rowData.productAttachment.some(attachment => attachment.attachmentPath.endsWith('.docx') || attachment.attachmentPath.endsWith('.pdf')|| attachment.attachmentPath.endsWith('.xlsx'));\r\n const hasImage = rowData.productAttachment.some(attachment => attachment.attachmentPath.endsWith('.png') || attachment.attachmentPath.endsWith('.jpg') || attachment.attachmentPath.endsWith('.jpeg'));\r\n const hasVideo = rowData.productAttachment.some(attachment => attachment.attachmentPath.endsWith('.mp4') || attachment.attachmentPath.endsWith('.mp5') || attachment.attachmentPath.endsWith('.webm')|| attachment.attachmentPath.endsWith('.mov')|| attachment.attachmentPath.endsWith('.3gp')|| attachment.attachmentPath.endsWith('.3g2')|| attachment.attachmentPath.endsWith('.mpeg'));\r\n\r\n return (\r\n
    \r\n {hasDocument && (\r\n
    \r\n );\r\n }\r\n\r\n\r\n const downloadDocument = (documentPath) => {\r\n let link = document.createElement('a');\r\n link.href = documentPath;\r\n link.setAttribute('download', '');\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n }\r\n\r\n useEffect(() => {\r\n GetAllProducts()\r\n }, [res])\r\n return (\r\n <>\r\n \r\n \r\n {selectedAttachment && }\r\n \r\n \r\n {selectedVideoAttachment && }\r\n \r\n
    \r\n
    \r\n\r\n
    Product
    \r\n\r\n
    \r\n
    \r\n {/* */}\r\n
    \r\n\r\n {/*
    \r\n
    \r\n
    \r\n
    */}\r\n\r\n
    \r\n
    \r\n \r\n {\r\n return index.rowIndex + 1;\r\n }}\r\n header=\"Sr. No.\"\r\n />\r\n
    \r\n
    \r\n
    \r\n\r\n \r\n )\r\n}\r\nexport default UserProduct","import { Column } from 'primereact/column';\r\nimport { DataTable } from 'primereact/datatable';\r\nimport React, { useState, useEffect } from 'react';\r\nimport { Button } from 'primereact/button';\r\nimport appUrl from \"../../../../constants/appUrl\";\r\nimport { Dialog } from 'primereact/dialog';\r\nimport ViewAttachment from '../../ComplainHandling/components/ViewAttachment';\r\nconst ProcessCallCenter = ({callCenter}) => {\r\n\r\n const [viewAttachmentDialog, setViewAttachmentDialog] = useState(false);\r\n const [selectedAttachment, setSelectedAttachment] = useState(null);\r\n const [dialog, setDialog] = useState();\r\n const [tableData, setTableData] = useState([]);\r\n\r\n useEffect(()=>{\r\n setTableData(callCenter)\r\n },[callCenter])\r\n\r\n const onHideViewAttachment = () => {\r\n setViewAttachmentDialog(false);\r\n };\r\n const onHide = () => {\r\n setDialog(false)\r\n }\r\n const actionDocument = (rowData) => {\r\n const hasDocument = rowData?.processAttachments?.some(attachment => attachment?.attachmentPath?.endsWith('.docx') || attachment?.attachmentPath?.endsWith('.pdf'));\r\n const hasImage = rowData?.processAttachments?.some(attachment => attachment?.attachmentPath?.endsWith('.png') || attachment?.attachmentPath?.endsWith('.jpg') || attachment?.attachmentPath?.endsWith('.jpeg'));\r\n\r\n return (\r\n
    \r\n {hasDocument && (\r\n
    \r\n );\r\n }\r\n\r\n const downloadDocument = (documentPath) => {\r\n let link = document.createElement('a');\r\n link.href = documentPath;\r\n link.setAttribute('download', '');\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n }\r\n\r\n \r\n return (\r\n <>\r\n\r\n \r\n {selectedAttachment && }\r\n \r\n\r\n
    \r\n\r\n\r\n
    \r\n
    \r\n
    \r\n \r\n {/* */}\r\n \r\n \r\n \r\n new Date(rowData.createdDate).toLocaleString('en-GB', {\r\n day: '2-digit',\r\n month: '2-digit',\r\n year: 'numeric',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n })} />\r\n\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n\r\n \r\n );\r\n};\r\n\r\nexport default ProcessCallCenter;\r\n","import { Column } from 'primereact/column';\r\nimport { DataTable } from 'primereact/datatable';\r\nimport React, { useState, useEffect } from 'react';\r\nimport { Button } from 'primereact/button';\r\nimport { Dialog } from 'primereact/dialog';\r\nimport appUrl from \"../../../../constants/appUrl\";\r\nimport ViewAttachment from '../../ComplainHandling/components/ViewAttachment';\r\nconst ProcessSocial = ({socialMedia}) => {\r\n\r\n const [viewAttachmentDialog, setViewAttachmentDialog] = useState(false);\r\n const [selectedAttachment, setSelectedAttachment] = useState(null);\r\n const [dialog, setDialog] = useState();\r\n const [tableData, setTableData] = useState([]);\r\n\r\n useEffect(()=>{\r\n setTableData(socialMedia)\r\n },[socialMedia])\r\n\r\n const onHideViewAttachment = () => {\r\n setViewAttachmentDialog(false);\r\n };\r\n const onHide = () => {\r\n setDialog(false)\r\n }\r\n const actionDocument = (rowData) => {\r\n const hasDocument = rowData?.processAttachments?.some(attachment => attachment?.attachmentPath?.endsWith('.docx') || attachment?.attachmentPath?.endsWith('.pdf'));\r\n const hasImage = rowData?.processAttachments?.some(attachment => attachment?.attachmentPath?.endsWith('.png') || attachment?.attachmentPath?.endsWith('.jpg') || attachment?.attachmentPath?.endsWith('.jpeg'));\r\n\r\n return (\r\n
    \r\n {hasDocument && (\r\n
    \r\n );\r\n }\r\n\r\n const downloadDocument = (documentPath) => {\r\n let link = document.createElement('a');\r\n link.href = documentPath;\r\n link.setAttribute('download', '');\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n }\r\n\r\n \r\n return (\r\n <>\r\n\r\n \r\n {selectedAttachment && }\r\n \r\n\r\n
    \r\n\r\n\r\n
    \r\n
    \r\n
    \r\n \r\n {/* */}\r\n \r\n \r\n \r\n new Date(rowData.createdDate).toLocaleString('en-GB', {\r\n day: '2-digit',\r\n month: '2-digit',\r\n year: 'numeric',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n })} />\r\n\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n\r\n \r\n );\r\n};\r\n\r\nexport default ProcessSocial;\r\n","import { Column } from 'primereact/column';\r\nimport { DataTable } from 'primereact/datatable';\r\nimport React, { useState, useEffect } from 'react';\r\nimport { Button } from 'primereact/button';\r\nimport { Dialog } from 'primereact/dialog';\r\nimport appUrl from \"../../../../constants/appUrl\";\r\nimport ViewAttachment from '../../ComplainHandling/components/ViewAttachment';\r\nconst ProcessInApp = ({inApp}) => {\r\n\r\n const [viewAttachmentDialog, setViewAttachmentDialog] = useState(false);\r\n const [selectedAttachment, setSelectedAttachment] = useState(null);\r\n const [dialog, setDialog] = useState();\r\n const [tableData, setTableData] = useState([]);\r\n\r\n useEffect(()=>{\r\n setTableData(inApp)\r\n },[inApp])\r\n\r\n const onHideViewAttachment = () => {\r\n setViewAttachmentDialog(false);\r\n };\r\n const onHide = () => {\r\n setDialog(false)\r\n }\r\n const actionDocument = (rowData) => {\r\n const hasDocument = rowData?.processAttachments?.some(attachment => attachment?.attachmentPath?.endsWith('.docx') || attachment?.attachmentPath?.endsWith('.pdf'));\r\n const hasImage = rowData?.processAttachments?.some(attachment => attachment?.attachmentPath?.endsWith('.png') || attachment?.attachmentPath?.endsWith('.jpg') || attachment?.attachmentPath?.endsWith('.jpeg'));\r\n\r\n return (\r\n
    \r\n {hasDocument && (\r\n
    \r\n );\r\n }\r\n\r\n const downloadDocument = (documentPath) => {\r\n let link = document.createElement('a');\r\n link.href = documentPath;\r\n link.setAttribute('download', '');\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n }\r\n\r\n \r\n return (\r\n <>\r\n\r\n \r\n {selectedAttachment && }\r\n \r\n\r\n
    \r\n\r\n\r\n
    \r\n
    \r\n
    \r\n \r\n {/* */}\r\n \r\n \r\n \r\n new Date(rowData.createdDate).toLocaleString('en-GB', {\r\n day: '2-digit',\r\n month: '2-digit',\r\n year: 'numeric',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n })} />\r\n\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n\r\n \r\n );\r\n};\r\n\r\nexport default ProcessInApp;\r\n","import React,{useState,useEffect} from 'react'\r\nimport { TabView, TabPanel } from 'primereact/tabview';\r\nimport appUrl from \"../../../../constants/appUrl\";\r\nimport ProcessCallCenter from './ProcessCallCenter';\r\nimport ProcessSocial from './ProcessSocial';\r\nimport ProcessInApp from './ProcessInApp';\r\n\r\nconst ChannelProcess = () => {\r\n\r\n const [callCenter, setCallCenter] = useState([]);\r\n const [socialMedia, setSocialMedia] = useState([]);\r\n const [inApp, setInApp] = useState([]);\r\n\r\n const GetAllProcess = async () => {\r\n try {\r\n const response = await fetch(`${appUrl.baseUrl}api/Process/GetAllProcess`);\r\n const data = await response.json();\r\n \r\n setCallCenter(data?.filter(item => item?.channelId === 3))\r\n setSocialMedia(data?.filter(item => item?.channelId === 1))\r\n setInApp(data?.filter(item => item?.channelId === 2))\r\n } catch (error) {\r\n error('Error fetching complaints:', error);\r\n }\r\n };\r\n\r\n\r\n useEffect(() => {\r\n GetAllProcess();\r\n }, []);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n )\r\n}\r\n\r\nexport default ChannelProcess","import { Column } from 'primereact/column';\r\nimport { DataTable } from 'primereact/datatable';\r\nimport React, { useState, useEffect } from 'react';\r\nimport { Button } from 'primereact/button';\r\nimport { Dialog } from 'primereact/dialog';\r\nimport appUrl from \"../../../../constants/appUrl\";\r\nimport './custom.css'; \r\nimport ViewAttachment from '../../ComplainHandling/components/ViewAttachment';\r\nconst ComplainCallCenter = ({callCenter}) => {\r\n\r\n const [viewAttachmentDialog, setViewAttachmentDialog] = useState(false);\r\n const [selectedAttachment, setSelectedAttachment] = useState(null);\r\n const [dialog, setDialog] = useState();\r\n const [tableData, setTableData] = useState([]);\r\n\r\n useEffect(()=>{\r\n setTableData(callCenter)\r\n },[callCenter])\r\n\r\n const onHideViewAttachment = () => {\r\n setViewAttachmentDialog(false);\r\n };\r\n const onHide = () => {\r\n setDialog(false)\r\n }\r\n const actionDocument = (rowData) => {\r\n const hasDocument = rowData?.complaintAttachment?.some(attachment => attachment?.attachmentPath?.endsWith('.docx') || attachment?.attachmentPath?.endsWith('.pdf'));\r\n const hasImage = rowData?.complaintAttachment?.some(attachment => attachment?.attachmentPath?.endsWith('.png') || attachment?.attachmentPath?.endsWith('.jpg') || attachment?.attachmentPath?.endsWith('.jpeg'));\r\n\r\n return (\r\n
    \r\n {hasDocument && (\r\n
    \r\n );\r\n }\r\n\r\n const downloadDocument = (documentPath) => {\r\n let link = document.createElement('a');\r\n link.href = documentPath;\r\n link.setAttribute('download', '');\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n }\r\n\r\n \r\n return (\r\n <>\r\n\r\n \r\n {selectedAttachment && }\r\n \r\n\r\n
    \r\n\r\n\r\n
    \r\n
    \r\n
    \r\n \r\n {/* */}\r\n \r\n \r\n \r\n new Date(rowData.createdDate).toLocaleString('en-GB', {\r\n day: '2-digit',\r\n month: '2-digit',\r\n year: 'numeric',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n })} />\r\n\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n\r\n \r\n );\r\n};\r\n\r\nexport default ComplainCallCenter;\r\n","import { Column } from 'primereact/column';\r\nimport { DataTable } from 'primereact/datatable';\r\nimport React, { useState, useEffect } from 'react';\r\nimport { Button } from 'primereact/button';\r\nimport { Dialog } from 'primereact/dialog';\r\nimport appUrl from \"../../../../constants/appUrl\";\r\nimport ViewAttachment from '../../ComplainHandling/components/ViewAttachment';\r\nconst ComplainInApp = ({inApp}) => {\r\n\r\n const [viewAttachmentDialog, setViewAttachmentDialog] = useState(false);\r\n const [selectedAttachment, setSelectedAttachment] = useState(null);\r\n const [dialog, setDialog] = useState();\r\n const [tableData, setTableData] = useState([]);\r\n \r\n\r\n useEffect(()=>{\r\n setTableData(inApp)\r\n },[inApp])\r\n\r\n const onHideViewAttachment = () => {\r\n setViewAttachmentDialog(false);\r\n };\r\n const onHide = () => {\r\n setDialog(false)\r\n }\r\n const actionDocument = (rowData) => {\r\n const hasDocument = rowData?.complaintAttachment?.some(attachment => attachment?.attachmentPath?.endsWith('.docx') || attachment?.attachmentPath?.endsWith('.pdf'));\r\n const hasImage = rowData?.complaintAttachment?.some(attachment => attachment?.attachmentPath?.endsWith('.png') || attachment?.attachmentPath?.endsWith('.jpg') || attachment?.attachmentPath?.endsWith('.jpeg'));\r\n\r\n return (\r\n
    \r\n {hasDocument && (\r\n
    \r\n );\r\n }\r\n\r\n const downloadDocument = (documentPath) => {\r\n let link = document.createElement('a');\r\n link.href = documentPath;\r\n link.setAttribute('download', '');\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n }\r\n\r\n \r\n return (\r\n <>\r\n\r\n \r\n {selectedAttachment && }\r\n \r\n\r\n
    \r\n\r\n\r\n
    \r\n
    \r\n
    \r\n \r\n {/* */}\r\n \r\n \r\n \r\n new Date(rowData.createdDate).toLocaleString('en-GB', {\r\n day: '2-digit',\r\n month: '2-digit',\r\n year: 'numeric',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n })} />\r\n\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n\r\n \r\n );\r\n};\r\n\r\nexport default ComplainInApp;\r\n","import { Column } from 'primereact/column';\r\nimport { DataTable } from 'primereact/datatable';\r\nimport React, { useState, useEffect } from 'react';\r\nimport { Button } from 'primereact/button';\r\nimport { Dialog } from 'primereact/dialog';\r\nimport appUrl from \"../../../../constants/appUrl\";\r\nimport ViewAttachment from '../../ComplainHandling/components/ViewAttachment';\r\nconst ComplainSocial = ({socialMedia}) => {\r\n\r\n const [viewAttachmentDialog, setViewAttachmentDialog] = useState(false);\r\n const [selectedAttachment, setSelectedAttachment] = useState(null);\r\n const [dialog, setDialog] = useState();\r\n const [tableData, setTableData] = useState([]);\r\n\r\n useEffect(()=>{\r\n setTableData(socialMedia)\r\n },[socialMedia])\r\n\r\n const onHideViewAttachment = () => {\r\n setViewAttachmentDialog(false);\r\n };\r\n const onHide = () => {\r\n setDialog(false)\r\n }\r\n const actionDocument = (rowData) => {\r\n const hasDocument = rowData?.complaintAttachment?.some(attachment => attachment?.attachmentPath?.endsWith('.docx') || attachment?.attachmentPath?.endsWith('.pdf'));\r\n const hasImage = rowData?.complaintAttachment?.some(attachment => attachment?.attachmentPath?.endsWith('.png') || attachment?.attachmentPath?.endsWith('.jpg') || attachment?.attachmentPath?.endsWith('.jpeg'));\r\n\r\n return (\r\n
    \r\n {hasDocument && (\r\n
    \r\n );\r\n }\r\n\r\n const downloadDocument = (documentPath) => {\r\n let link = document.createElement('a');\r\n link.href = documentPath;\r\n link.setAttribute('download', '');\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n }\r\n\r\n \r\n return (\r\n <>\r\n\r\n \r\n {selectedAttachment && }\r\n \r\n\r\n
    \r\n\r\n\r\n
    \r\n
    \r\n
    \r\n \r\n {/* */}\r\n \r\n \r\n \r\n new Date(rowData.createdDate).toLocaleString('en-GB', {\r\n day: '2-digit',\r\n month: '2-digit',\r\n year: 'numeric',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n })} />\r\n\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n\r\n \r\n );\r\n};\r\n\r\nexport default ComplainSocial;\r\n","import React, { useState, useEffect } from 'react'\r\nimport { TabView, TabPanel } from 'primereact/tabview';\r\nimport ComplainCallCenter from './ComplainCallCenter';\r\nimport ComplainInApp from './ComplainInApp';\r\nimport ComplainSocial from './ComplainSocial';\r\nimport appUrl from \"../../../../constants/appUrl\";\r\nimport './custom.css'; \r\nconst ChannelComplains = () => {\r\n const [callCenter, setCallCenter] = useState([]);\r\n const [socialMedia, setSocialMedia] = useState([]);\r\n const [inApp, setInApp] = useState([]);\r\n\r\n const GetAllComplaints = async () => {\r\n try {\r\n const response = await fetch(`${appUrl.baseUrl}api/Complaint/GetAllComplaint`);\r\n const data = await response.json();\r\n \r\n setCallCenter(data?.filter(item => item?.channelID === 3))\r\n setSocialMedia(data?.filter(item => item?.channelID === 1))\r\n setInApp(data?.filter(item => item?.channelID === 2))\r\n \r\n } catch (error) {\r\n error('Error fetching complaints:', error);\r\n }\r\n };\r\n useEffect(() => {\r\n GetAllComplaints();\r\n }, []);\r\n return (\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n )\r\n}\r\n\r\nexport default ChannelComplains","import React from 'react'\r\n\r\nimport { TabView, TabPanel } from 'primereact/tabview';\r\nimport ChannelProcess from '../components/ChannelProcess';\r\nimport ChannelComplains from '../components/ChannelComplains';\r\n\r\nconst Channel = () => {\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default Channel","import { Column } from 'primereact/column';\r\nimport { DataTable } from 'primereact/datatable';\r\nimport React, { useState, useEffect } from 'react';\r\nimport { Button } from 'primereact/button';\r\nimport { Dialog } from 'primereact/dialog';\r\nimport ViewAttachment from '../../ComplainHandling/components/ViewAttachment';\r\nimport CustomDescription from '../../../components/CustomDescription';\r\nimport CustomVideo from '../../../components/CustomVideo';\r\nimport { ToastContainer, toast } from 'react-toastify';\r\nimport appUrl from \"../../../../constants/appUrl\";\r\nimport 'react-toastify/dist/ReactToastify.css';\r\nconst TableComplaintHandling = ({ callCenter, searchQuery }) => {\r\n\r\n const [viewAttachmentDialog, setViewAttachmentDialog] = useState(false);\r\n const [selectedAttachment, setSelectedAttachment] = useState(null);\r\n const [dialog, setDialog] = useState();\r\n const [tableData, setTableData] = useState([]);\r\n const [filteredData, setFilteredData] = useState([]);\r\n const [descriptionDialog, setDescriptionDialog] = useState(false);\r\n const [descriptionContent, setDescriptionContent] = useState('');\r\n const [videoAttachmentDialog, setVideoAttachmentDialog] = useState(false);\r\n const [selectedVideoAttachment, setSelectedVideoAttachment] = useState(null);\r\n useEffect(() => {\r\n setTableData(callCenter)\r\n }, [callCenter])\r\n\r\n const onHideViewAttachment = () => {\r\n setViewAttachmentDialog(false);\r\n };\r\n const onHide = () => {\r\n setDialog(false)\r\n }\r\n const actionDocument = (rowData) => {\r\n const documentsToDownload = rowData.complaintAttachment.filter(attachment =>\r\n attachment.attachmentPath.endsWith('.docx') ||\r\n attachment.attachmentPath.endsWith('.pdf') ||\r\n attachment.attachmentPath.endsWith('.xlsx')\r\n );\r\n\r\n const documentPaths = documentsToDownload.map(document => document.attachmentPath);\r\n const hasImage = rowData?.complaintAttachment?.some(attachment => attachment?.attachmentPath?.endsWith('.png') || attachment?.attachmentPath?.endsWith('.jpg') || attachment?.attachmentPath?.endsWith('.jpeg'));\r\n const hasVideo = rowData.complaintAttachment.some(attachment => attachment.attachmentPath.endsWith('.mp4') || attachment.attachmentPath.endsWith('.mp5') || attachment.attachmentPath.endsWith('.webm') || attachment.attachmentPath.endsWith('.mov') || attachment.attachmentPath.endsWith('.3gp') || attachment.attachmentPath.endsWith('.3g2') || attachment.attachmentPath.endsWith('.mpeg'));\r\n\r\n return (\r\n
    \r\n {documentsToDownload.length > 0 && (\r\n downloadDocuments(documentPaths)}\r\n />\r\n )}\r\n {hasImage && (\r\n
    \r\n );\r\n }\r\n\r\n const downloadDocuments = async (documentPaths) => {\r\n try {\r\n for (let i = 0; i < documentPaths.length; i++) {\r\n const documentPath = documentPaths[i];\r\n const response = await fetch(`${appUrl.baseUrl}${documentPath}`);\r\n const blob = await response.blob();\r\n const url = URL.createObjectURL(blob);\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.setAttribute('download', '');\r\n link.setAttribute('target', '_blank');\r\n link.click();\r\n URL.revokeObjectURL(url);\r\n await new Promise(resolve => setTimeout(resolve, 1000)); // Delay each download by 1 second\r\n }\r\n } catch (error) {\r\n console.error(\"Error downloading documents:\", error);\r\n toast.error(\"Failed to download documents\");\r\n }\r\n };\r\n\r\n const showDescription = (description) => {\r\n setDescriptionContent(description);\r\n setDescriptionDialog(true);\r\n };\r\n const onHideDescriptionDialog = () => {\r\n setDescriptionDialog(false);\r\n };\r\n const onHideVideoAttachment = () => {\r\n setVideoAttachmentDialog(false);\r\n };\r\n\r\n useEffect(() => {\r\n if (searchQuery) {\r\n setFilteredData(\r\n tableData?.filter((item) =>\r\n item.complaintPrefix?.toLowerCase().includes(searchQuery?.toLowerCase()) ||\r\n item.complaintProcessName?.toLowerCase().includes(searchQuery?.toLowerCase())||\r\n item.productName?.toLowerCase().includes(searchQuery?.toLowerCase())||\r\n item.channelName?.toLowerCase().includes(searchQuery?.toLowerCase())\r\n )\r\n );\r\n } else {\r\n setFilteredData(tableData);\r\n }\r\n }, [searchQuery, tableData]);\r\n\r\n\r\n return (\r\n <>\r\n \r\n \r\n {selectedAttachment && }\r\n \r\n \r\n \r\n \r\n \r\n {selectedVideoAttachment && }\r\n \r\n\r\n
    \r\n\r\n\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n {/* \r\n\r\n */}\r\n (\r\n \r\n {rowData.complaintProcessName?.length > 15 ? `${rowData.complaintProcessName.slice(0, 15)}...` : rowData.complaintProcessName}\r\n \r\n )} />\r\n (\r\n \r\n {rowData.complaintPrefix?.length > 15 ? `${rowData.complaintPrefix.slice(0, 15)}...` : rowData.complaintPrefix}\r\n \r\n )} />\r\n (\r\n {\r\n e.preventDefault();\r\n showDescription(rowData.complaintDescription);\r\n }}\r\n style={{ cursor: 'pointer', color: '#00b0ab', textDecoration: 'underline' }}\r\n >\r\n View Description\r\n \r\n )}\r\n />\r\n\r\n new Date(rowData.createdDate).toLocaleString('en-GB', {\r\n day: '2-digit',\r\n month: '2-digit',\r\n year: 'numeric',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n })} />\r\n\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n\r\n \r\n );\r\n};\r\n\r\nexport default TableComplaintHandling;\r\n","import { Column } from 'primereact/column';\r\nimport { DataTable } from 'primereact/datatable';\r\nimport React, { useState, useEffect } from 'react';\r\nimport { Button } from 'primereact/button';\r\nimport { Dialog } from 'primereact/dialog';\r\nimport ViewAttachment from '../../ComplainHandling/components/ViewAttachment';\r\nimport CustomDescription from '../../../components/CustomDescription';\r\nimport CustomVideo from '../../../components/CustomVideo';\r\nimport { ToastContainer, toast } from 'react-toastify';\r\nimport 'react-toastify/dist/ReactToastify.css';\r\nimport appUrl from \"../../../../constants/appUrl\";\r\nconst TableProcessInformation = ({ callCenter, searchQuery }) => {\r\n\r\n const [viewAttachmentDialog, setViewAttachmentDialog] = useState(false);\r\n const [selectedAttachment, setSelectedAttachment] = useState(null);\r\n const [dialog, setDialog] = useState();\r\n const [tableData, setTableData] = useState([]);\r\n const [descriptionDialog, setDescriptionDialog] = useState(false);\r\n const [descriptionContent, setDescriptionContent] = useState('');\r\n const [filteredData, setFilteredData] = useState([]);\r\n const [videoAttachmentDialog, setVideoAttachmentDialog] = useState(false);\r\n const [selectedVideoAttachment, setSelectedVideoAttachment] = useState(null);\r\n useEffect(() => {\r\n setTableData(callCenter)\r\n }, [callCenter])\r\n\r\n const onHideViewAttachment = () => {\r\n setViewAttachmentDialog(false);\r\n };\r\n const onHide = () => {\r\n setDialog(false)\r\n }\r\n const actionDocument = (rowData) => {\r\n const documentsToDownload = rowData.processAttachments.filter(attachment =>\r\n attachment.attachmentPath.endsWith('.docx') ||\r\n attachment.attachmentPath.endsWith('.pdf') ||\r\n attachment.attachmentPath.endsWith('.xlsx')\r\n );\r\n\r\n const documentPaths = documentsToDownload.map(document => document.attachmentPath);\r\n const hasImage = rowData?.processAttachments?.some(attachment => attachment?.attachmentPath?.endsWith('.png') || attachment?.attachmentPath?.endsWith('.jpg') || attachment?.attachmentPath?.endsWith('.jpeg'));\r\n const hasVideo = rowData.processAttachments.some(attachment => attachment.attachmentPath.endsWith('.mp4') || attachment.attachmentPath.endsWith('.mp5') || attachment.attachmentPath.endsWith('.webm')|| attachment.attachmentPath.endsWith('.mov')|| attachment.attachmentPath.endsWith('.3gp')|| attachment.attachmentPath.endsWith('.3g2')|| attachment.attachmentPath.endsWith('.mpeg'));\r\n\r\n return (\r\n
    \r\n {documentsToDownload.length > 0 && (\r\n downloadDocuments(documentPaths)}\r\n />\r\n )}\r\n {hasImage && (\r\n
    \r\n );\r\n }\r\n const showDescription = (description) => {\r\n setDescriptionContent(description);\r\n setDescriptionDialog(true);\r\n };\r\n const onHideDescriptionDialog = () => {\r\n setDescriptionDialog(false);\r\n };\r\n\r\n const onHideVideoAttachment = () => {\r\n setVideoAttachmentDialog(false);\r\n };\r\n useEffect(() => {\r\n if (searchQuery) {\r\n setFilteredData(\r\n tableData?.filter((item) =>\r\n item.policyPrefix?.toLowerCase().includes(searchQuery?.toLowerCase()) ||\r\n item.processName?.toLowerCase().includes(searchQuery?.toLowerCase()) ||\r\n item.productName?.toLowerCase().includes(searchQuery?.toLowerCase()) ||\r\n item.channelName?.toLowerCase().includes(searchQuery?.toLowerCase())\r\n )\r\n );\r\n } else {\r\n setFilteredData(tableData);\r\n }\r\n }, [searchQuery, tableData]);\r\n\r\n const downloadDocuments = async (documentPaths) => {\r\n try {\r\n for (let i = 0; i < documentPaths.length; i++) {\r\n const documentPath = documentPaths[i];\r\n const response = await fetch(`${appUrl.baseUrl}${documentPath}`);\r\n const blob = await response.blob();\r\n const url = URL.createObjectURL(blob);\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.setAttribute('download', '');\r\n link.setAttribute('target', '_blank');\r\n link.click();\r\n URL.revokeObjectURL(url);\r\n await new Promise(resolve => setTimeout(resolve, 1000)); // Delay each download by 1 second\r\n }\r\n } catch (error) {\r\n console.error(\"Error downloading documents:\", error);\r\n toast.error(\"Failed to download documents\");\r\n }\r\n };\r\n\r\n return (\r\n <> \r\n\r\n \r\n {selectedAttachment && }\r\n \r\n \r\n \r\n \r\n \r\n {selectedVideoAttachment && }\r\n \r\n\r\n
    \r\n\r\n\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n {/* */}\r\n (\r\n \r\n {rowData.processName?.length > 15 ? `${rowData.processName.slice(0, 15)}...` : rowData.processName}\r\n \r\n )} />\r\n \r\n (\r\n \r\n {rowData.policyPrefix?.length > 15 ? `${rowData.policyPrefix.slice(0, 15)}...` : rowData.policyPrefix}\r\n \r\n )} />\r\n\r\n\r\n (\r\n {\r\n e.preventDefault();\r\n showDescription(rowData.description);\r\n }}\r\n style={{ cursor: 'pointer', color: '#00b0ab', textDecoration: 'underline' }}\r\n >\r\n View Description\r\n \r\n )}\r\n />\r\n new Date(rowData.createdDate).toLocaleString('en-GB', {\r\n day: '2-digit',\r\n month: '2-digit',\r\n year: 'numeric',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n })} />\r\n\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n\r\n \r\n );\r\n};\r\n\r\nexport default TableProcessInformation;\r\n","import React, { useState, useEffect } from 'react'\r\n\r\nimport appUrl from \"../../../../constants/appUrl\";\r\nimport TableProcessInformation from './TableProcessInformation';\r\nconst ProcessInformation = ({searchQuery}) => {\r\n const [processList, setProcessList] = useState();\r\n\r\n const GetAllProcess = async () => {\r\n const token =localStorage.getItem('token')\r\n try {\r\n const response = await fetch(`${appUrl.baseUrl}api/Process/GetAllProcess`,\r\n {\r\n method:'GET',\r\n headers:{\r\n 'Authorization':`Bearer ${token}`,\r\n 'Content-Type':'application/json'\r\n }\r\n }\r\n );\r\n const data = await response.json();\r\n // setComplaintList(data)\r\n setProcessList(data?.filter(item => item?.channelId === 3))\r\n }\r\n catch (error) {\r\n\r\n }\r\n }\r\n useEffect(() => {\r\n GetAllProcess();\r\n }, []);\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport default ProcessInformation","import React, { useState, useEffect } from 'react'\r\n\r\nimport appUrl from \"../../../../constants/appUrl\";\r\nimport TableComplaintHandling from './TableComplaintHandling';\r\nconst ComplaintHandling = ({ searchQuery }) => {\r\n const [complaintList, setComplaintList] = useState();\r\n\r\n const GetAllComplaint = async () => {\r\n const token =localStorage.getItem('token')\r\n try {\r\n const response = await fetch(`${appUrl.baseUrl}api/Complaint/GetAllComplaint`,\r\n {\r\n method:'GET',\r\n headers:{\r\n 'Authorization':`Bearer ${token}`,\r\n 'Content-Type':'application/json'\r\n }\r\n }\r\n );\r\n const data = await response.json();\r\n setComplaintList(data?.filter(item => item?.channelId === 3))\r\n }\r\n catch (error) {\r\n\r\n }\r\n }\r\n useEffect(() => {\r\n GetAllComplaint();\r\n }, []);\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport default ComplaintHandling","import { Column } from 'primereact/column';\r\nimport { DataTable } from 'primereact/datatable';\r\nimport React, { useState, useEffect } from 'react';\r\nimport { Button } from 'primereact/button';\r\nimport { Dialog } from 'primereact/dialog';\r\nimport ViewAttachment from '../../ComplainHandling/components/ViewAttachment';\r\nconst TableFaq = ({ callCenter,searchQuery }) => {\r\n\r\n const [viewAttachmentDialog, setViewAttachmentDialog] = useState(false);\r\n const [selectedAttachment, setSelectedAttachment] = useState(null);\r\n const [dialog, setDialog] = useState();\r\n const [tableData, setTableData] = useState([]);\r\n const [filteredData, setFilteredData] = useState([]);\r\n \r\n useEffect(() => {\r\n setTableData(callCenter)\r\n }, [callCenter])\r\n\r\n const onHideViewAttachment = () => {\r\n setViewAttachmentDialog(false);\r\n };\r\n const onHide = () => {\r\n setDialog(false)\r\n }\r\n \r\n\r\n useEffect(() => {\r\n if (searchQuery) {\r\n setFilteredData(\r\n tableData?.filter((item) =>\r\n item.question?.toLowerCase().includes(searchQuery?.toLowerCase())||\r\n item.answer?.toLowerCase().includes(searchQuery?.toLowerCase())||\r\n item.productName?.toLowerCase().includes(searchQuery?.toLowerCase())\r\n )\r\n );\r\n } else {\r\n setFilteredData(tableData);\r\n }\r\n }, [searchQuery, tableData]);\r\n \r\n\r\n return (\r\n <>\r\n\r\n \r\n {selectedAttachment && }\r\n \r\n\r\n
    \r\n\r\n\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n rowData.channelName?.join(', ')} />\r\n (\r\n \r\n {rowData.question.length > 30 ? `${rowData.question.slice(0, 30)}...` : rowData.question}\r\n \r\n )} />\r\n {/* */}\r\n (\r\n \r\n {rowData.answer.length > 30 ? `${rowData.answer.slice(0, 30)}...` : rowData.answer}\r\n \r\n )} />\r\n \r\n\r\n \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n\r\n \r\n );\r\n};\r\n\r\nexport default TableFaq;\r\n","import React, { useState, useEffect } from 'react'\r\n\r\nimport appUrl from \"../../../../constants/appUrl\";\r\nimport TableProcessInformation from './TableProcessInformation';\r\nimport TableFaq from './TableFaq';\r\nconst CallCenterFaq = ({searchQuery}) => {\r\n const [faqList, setFaqList] = useState();\r\n\r\n const GetAllProcess = async () => {\r\n const token =localStorage.getItem('token')\r\n try {\r\n const response = await fetch(`${appUrl.baseUrl}api/FAQ/GetAllFAQ`,\r\n {\r\n method:'GET',\r\n headers:{\r\n 'Authorization':`Bearer ${token}`,\r\n 'Content-Type':'application/json'\r\n }\r\n }\r\n );\r\n const data = await response.json();\r\n // setComplaintList(data)\r\n console.log(\"data faq\",data)\r\n let result = data?.filter(item => item?.channelId?.filter(item2 => item2?.channelId == 3))\r\n console.log('res', result)\r\n setFaqList(result)\r\n }\r\n catch (error) {\r\n\r\n }\r\n }\r\n useEffect(() => {\r\n GetAllProcess();\r\n }, []);\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport default CallCenterFaq","import { Column } from 'primereact/column';\r\nimport { DataTable } from 'primereact/datatable';\r\nimport React, { useState, useEffect } from 'react';\r\nimport { Button } from 'primereact/button';\r\nimport { Dialog } from 'primereact/dialog';\r\nimport ViewAttachment from '../../ComplainHandling/components/ViewAttachment';\r\nimport CustomDescription from '../../../components/CustomDescription';\r\nimport CustomVideo from '../../../components/CustomVideo';\r\nimport { ToastContainer, toast } from 'react-toastify';\r\nimport 'react-toastify/dist/ReactToastify.css';\r\nimport appUrl from \"../../../../constants/appUrl\";\r\nconst TableVideos = ({ callCenter, searchQuery }) => {\r\n\r\n const [viewAttachmentDialog, setViewAttachmentDialog] = useState(false);\r\n const [selectedAttachment, setSelectedAttachment] = useState(null);\r\n const [dialog, setDialog] = useState();\r\n const [tableData, setTableData] = useState([]);\r\n const [filteredData, setFilteredData] = useState([]);\r\n const [descriptionDialog, setDescriptionDialog] = useState(false);\r\n const [descriptionContent, setDescriptionContent] = useState('');\r\n const [videoAttachmentDialog, setVideoAttachmentDialog] = useState(false);\r\n const [selectedVideoAttachment, setSelectedVideoAttachment] = useState(null);\r\n\r\n useEffect(() => {\r\n setTableData(callCenter)\r\n }, [callCenter])\r\n\r\n const onHideViewAttachment = () => {\r\n setViewAttachmentDialog(false);\r\n };\r\n const onHide = () => {\r\n setDialog(false)\r\n }\r\n const actionDocument = (rowData) => {\r\n const documentsToDownload = rowData.postAttachments.filter(attachment =>\r\n attachment.attachmentPath.endsWith('.docx') ||\r\n attachment.attachmentPath.endsWith('.pdf') ||\r\n attachment.attachmentPath.endsWith('.xlsx')\r\n );\r\n\r\n const documentPaths = documentsToDownload.map(document => document.attachmentPath);\r\n const hasImage = rowData?.postAttachments?.some(attachment => attachment?.attachmentPath?.endsWith('.png') || attachment?.attachmentPath?.endsWith('.jpg') || attachment?.attachmentPath?.endsWith('.jpeg'));\r\n const hasVideo = rowData.postAttachments.some(attachment => attachment.attachmentPath.endsWith('.mp4') || attachment.attachmentPath.endsWith('.mp5') || attachment.attachmentPath.endsWith('.webm') || attachment.attachmentPath.endsWith('.mov') || attachment.attachmentPath.endsWith('.3gp') || attachment.attachmentPath.endsWith('.3g2') || attachment.attachmentPath.endsWith('.mpeg'));\r\n\r\n return (\r\n
    \r\n {documentsToDownload.length > 0 && (\r\n downloadDocuments(documentPaths)}\r\n />\r\n )}\r\n {hasImage && (\r\n
    \r\n );\r\n }\r\n\r\n const downloadDocuments = async (documentPaths) => {\r\n try {\r\n for (let i = 0; i < documentPaths.length; i++) {\r\n const documentPath = documentPaths[i];\r\n const response = await fetch(`${appUrl.baseUrl}${documentPath}`);\r\n const blob = await response.blob();\r\n const url = URL.createObjectURL(blob);\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.setAttribute('download', '');\r\n link.setAttribute('target', '_blank');\r\n link.click();\r\n URL.revokeObjectURL(url);\r\n await new Promise(resolve => setTimeout(resolve, 1000)); // Delay each download by 1 second\r\n }\r\n } catch (error) {\r\n console.error(\"Error downloading documents:\", error);\r\n toast.error(\"Failed to download documents\");\r\n }\r\n };\r\n\r\n const showDescription = (description) => {\r\n setDescriptionContent(description);\r\n setDescriptionDialog(true);\r\n };\r\n const onHideDescriptionDialog = () => {\r\n setDescriptionDialog(false);\r\n };\r\n\r\n const onHideVideoAttachment = () => {\r\n setVideoAttachmentDialog(false);\r\n };\r\n useEffect(() => {\r\n if (searchQuery) {\r\n setFilteredData(\r\n tableData?.filter((item) =>\r\n item.postTitle?.toLowerCase().includes(searchQuery?.toLowerCase())||\r\n item.productName?.toLowerCase().includes(searchQuery?.toLowerCase())\r\n )\r\n );\r\n } else {\r\n setFilteredData(tableData);\r\n }\r\n }, [searchQuery, tableData]);\r\n return (\r\n <>\r\n \r\n \r\n {selectedAttachment && }\r\n \r\n \r\n \r\n \r\n \r\n {selectedVideoAttachment && }\r\n \r\n\r\n
    \r\n\r\n\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n\r\n (\r\n {\r\n e.preventDefault();\r\n showDescription(rowData.postDescription);\r\n }}\r\n style={{ cursor: 'pointer', color: '#00b0ab', textDecoration: 'underline' }}\r\n >\r\n View Description\r\n \r\n )}\r\n />\r\n\r\n\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n\r\n \r\n );\r\n};\r\n\r\nexport default TableVideos;\r\n","import React, { useState, useEffect } from 'react'\r\n\r\nimport appUrl from \"../../../../constants/appUrl\";\r\nimport TableProcessInformation from './TableProcessInformation';\r\nimport TableVideos from './TableVideos';\r\nconst CallCenterVideos = ({searchQuery}) => {\r\n const [postList, setPostList] = useState();\r\n\r\n const GetAllProcess = async () => {\r\n const token =localStorage.getItem('token')\r\n try {\r\n const response = await fetch(`${appUrl.baseUrl}api/Post/GetAllPost`,\r\n {\r\n method:'GET',\r\n headers:{\r\n 'Authorization':`Bearer ${token}`,\r\n 'Content-Type':'application/json'\r\n }\r\n }\r\n );\r\n const data = await response.json();\r\n console.log('data', data)\r\n // setComplaintList(data)\r\n setPostList(data?.filter(item => item?.channelID === 3))\r\n }\r\n catch (error) {\r\n\r\n }\r\n }\r\n useEffect(() => {\r\n GetAllProcess();\r\n }, []);\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport default CallCenterVideos","import React from 'react'\r\n\r\nimport { TabView, TabPanel } from 'primereact/tabview';\r\nimport TableProcess from '../../Channel/components/TableProcess';\r\nimport TableComplaintHandling from '../components/TableComplaintHandling';\r\nimport ProcessInformation from '../components/ProcessInformation';\r\nimport ComplaintHandling from '../components/ComplaintHandling';\r\nimport CallCenterFaq from '../components/CallCenterFaq';\r\nimport CallCenterVideos from '../components/CallCenterVideos';\r\n\r\n\r\nconst CallCenter = ({searchQuery}) => {\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n )\r\n}\r\n\r\nexport default CallCenter","import React, { useState, useEffect } from 'react'\r\n\r\nimport appUrl from \"../../../../constants/appUrl\";\r\nimport TableProcessInformation from './TableProcessInformation';\r\nconst SocialProcess = ({searchQuery}) => {\r\n const [processList, setProcessList] = useState();\r\n\r\n const GetAllProcess = async () => {\r\n const token =localStorage.getItem('token')\r\n try {\r\n const response = await fetch(`${appUrl.baseUrl}api/Process/GetAllProcess`,\r\n {\r\n method:'GET',\r\n headers:{\r\n 'Authorization':`Bearer ${token}`,\r\n 'Content-Type':'application/json'\r\n }\r\n }\r\n );\r\n const data = await response.json();\r\n setProcessList(data?.filter(item => item?.channelId === 1))\r\n }\r\n catch (error) {\r\n\r\n }\r\n }\r\n useEffect(() => {\r\n GetAllProcess();\r\n }, []);\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport default SocialProcess","import React,{useState,useEffect} from 'react'\r\n\r\nimport appUrl from \"../../../../constants/appUrl\";\r\nimport TableComplaintHandling from './TableComplaintHandling';\r\nconst SocialComplaint = ({searchQuery}) => {\r\n const [complaintList, setComplaintList] = useState();\r\n \r\n const GetAllComplaint = async () => {\r\n const token =localStorage.getItem('token')\r\n try {\r\n const response = await fetch(`${appUrl.baseUrl}api/Complaint/GetAllComplaint`,\r\n {\r\n method:'GET',\r\n headers:{\r\n 'Authorization':`Bearer ${token}`,\r\n 'Content-Type':'application/json'\r\n }\r\n }\r\n );\r\n const data = await response.json();\r\n setComplaintList(data?.filter(item => item?.channelId === 1))\r\n }\r\n catch (error) {\r\n\r\n }\r\n }\r\n useEffect(() => {\r\n GetAllComplaint();\r\n }, []);\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport default SocialComplaint","import React, { useState, useEffect } from 'react'\r\n\r\nimport appUrl from \"../../../../constants/appUrl\";\r\nimport TableProcessInformation from './TableProcessInformation';\r\nimport TableFaq from './TableFaq';\r\nconst SocialFaqs = ({searchQuery}) => {\r\n const [faqList, setFaqList] = useState();\r\n\r\n const GetAllProcess = async () => {\r\n const token =localStorage.getItem('token')\r\n try {\r\n const response = await fetch(`${appUrl.baseUrl}api/FAQ/GetAllFAQ`, {\r\n method:'GET',\r\n headers:{\r\n 'Authorization':`Bearer ${token}`,\r\n 'Content-Type':'application/json'\r\n }\r\n });\r\n const data = await response.json();\r\n \r\n // let result = data?.filter(item => item?.channelId?.filter(item2 => item2?.channelId === 1))\r\n let result = data.filter(item => item.channelId && item.channelId.includes(1));\r\n \r\n setFaqList(result)\r\n \r\n }\r\n catch (error) {\r\n\r\n }\r\n }\r\n useEffect(() => {\r\n GetAllProcess();\r\n }, []);\r\n console.log('faqList', faqList)\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport default SocialFaqs","import React, { useState, useEffect } from 'react'\r\n\r\nimport appUrl from \"../../../../constants/appUrl\";\r\nimport TableProcessInformation from './TableProcessInformation';\r\nimport TableVideos from './TableVideos';\r\nconst SocialVideos = ({searchQuery}) => {\r\n const [postList, setPostList] = useState();\r\n\r\n const GetAllProcess = async () => {\r\n const token =localStorage.getItem('token')\r\n try {\r\n const response = await fetch(`${appUrl.baseUrl}api/Post/GetAllPost`,\r\n {\r\n method:'GET',\r\n headers:{\r\n 'Authorization':`Bearer ${token}`,\r\n 'Content-Type':'application/json'\r\n }\r\n }\r\n );\r\n const data = await response.json();\r\n setPostList(data?.filter(item => item?.channelID === 1))\r\n }\r\n catch (error) {\r\n\r\n }\r\n }\r\n useEffect(() => {\r\n GetAllProcess();\r\n }, []);\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport default SocialVideos","import React from 'react'\r\n\r\nimport { TabView, TabPanel } from 'primereact/tabview';\r\nimport TableProcess from '../../Channel/components/TableProcess';\r\nimport TableComplaintHandling from '../components/TableComplaintHandling';\r\nimport ProcessInformation from '../components/ProcessInformation';\r\nimport ComplaintHandling from '../components/ComplaintHandling';\r\nimport SocialProcess from '../components/SocialProcess';\r\nimport SocialComplaint from '../components/SocialComplaint';\r\nimport SocialFaqs from '../components/SocialFaqs';\r\nimport SocialVideos from '../components/SocialVideos';\r\n\r\n\r\nconst SocialMedia = ({searchQuery}) => {\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default SocialMedia","import React,{useState,useEffect} from 'react'\r\n\r\nimport appUrl from \"../../../../constants/appUrl\";\r\nimport TableComplaintHandling from './TableComplaintHandling';\r\nconst InAppComplaint = ({searchQuery}) => {\r\n const [complaintList, setComplaintList] = useState();\r\n \r\n const GetAllComplaint = async () => {\r\n const token =localStorage.getItem('token')\r\n try {\r\n const response = await fetch(`${appUrl.baseUrl}api/Complaint/GetAllComplaint`,\r\n {\r\n method:'GET',\r\n headers:{\r\n 'Authorization':`Bearer ${token}`,\r\n 'Content-Type':'application/json'\r\n }\r\n }\r\n );\r\n const data = await response.json();\r\n setComplaintList(data?.filter(item => item?.channelId === 2))\r\n }\r\n catch (error) {\r\n\r\n }\r\n }\r\n useEffect(() => {\r\n GetAllComplaint();\r\n }, []);\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport default InAppComplaint","import React, { useState, useEffect } from 'react'\r\n\r\nimport appUrl from \"../../../../constants/appUrl\";\r\nimport TableProcessInformation from './TableProcessInformation';\r\nconst InAppprocess = ({searchQuery}) => {\r\n const [processList, setProcessList] = useState();\r\n\r\n const GetAllProcess = async () => {\r\n const token =localStorage.getItem('token')\r\n try {\r\n const response = await fetch(`${appUrl.baseUrl}api/Process/GetAllProcess`,\r\n {\r\n method:'GET',\r\n headers:{\r\n 'Authorization':`Bearer ${token}`,\r\n 'Content-Type':'application/json'\r\n }\r\n }\r\n );\r\n const data = await response.json();\r\n setProcessList(data?.filter(item => item?.channelId === 2))\r\n }\r\n catch (error) {\r\n\r\n }\r\n }\r\n useEffect(() => {\r\n GetAllProcess();\r\n }, []);\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport default InAppprocess","import React, { useState, useEffect } from 'react'\r\n\r\nimport appUrl from \"../../../../constants/appUrl\";\r\nimport TableProcessInformation from './TableProcessInformation';\r\nimport TableFaq from './TableFaq';\r\nconst InAppFaqs = ({searchQuery}) => {\r\n const [faqList, setFaqList] = useState();\r\n\r\n const GetAllProcess = async () => {\r\n const token =localStorage.getItem('token')\r\n try {\r\n const response = await fetch(`${appUrl.baseUrl}api/FAQ/GetAllFAQ`,\r\n {\r\n method:'GET',\r\n headers:{\r\n 'Authorization':`Bearer ${token}`,\r\n 'Content-Type':'application/json'\r\n }\r\n }\r\n );\r\n const data = await response.json();\r\n // setComplaintList(data)\r\n // setFaqList(data?.filter(item => item?.channelId?.filter(item2 => item2?.channelId == 2)))\r\n let result = data.filter(item => item.channelId && item.channelId.includes(2));\r\n setFaqList(result)\r\n }\r\n catch (error) {\r\n\r\n }\r\n }\r\n useEffect(() => {\r\n GetAllProcess();\r\n }, []);\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport default InAppFaqs","import React, { useState, useEffect } from 'react'\r\n\r\nimport appUrl from \"../../../../constants/appUrl\";\r\nimport TableProcessInformation from './TableProcessInformation';\r\nimport TableVideos from './TableVideos';\r\nconst InAppVideos = ({searchQuery}) => {\r\n const [postList, setPostList] = useState();\r\n\r\n const GetAllProcess = async () => {\r\n const token =localStorage.getItem('token')\r\n try {\r\n const response = await fetch(`${appUrl.baseUrl}api/Post/GetAllPost`,\r\n {\r\n method:'GET',\r\n headers:{\r\n 'Authorization':`Bearer ${token}`,\r\n 'Content-Type':'application/json'\r\n }\r\n }\r\n );\r\n const data = await response.json();\r\n setPostList(data?.filter(item => item?.channelID === 2))\r\n }\r\n catch (error) {\r\n\r\n }\r\n }\r\n useEffect(() => {\r\n GetAllProcess();\r\n }, []);\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport default InAppVideos","import React from 'react'\r\n\r\nimport { TabView, TabPanel } from 'primereact/tabview';\r\nimport TableProcess from '../../Channel/components/TableProcess';\r\nimport TableComplaintHandling from '../components/TableComplaintHandling';\r\nimport ProcessInformation from '../components/ProcessInformation';\r\nimport ComplaintHandling from '../components/ComplaintHandling';\r\nimport InAppComplaint from '../components/InAppComplaint';\r\nimport InAppprocess from '../components/InAppprocess';\r\nimport InAppFaqs from '../components/InAppFaqs';\r\nimport InAppVideos from '../components/InAppVideos';\r\n\r\n\r\nconst InApp = ({searchQuery}) => {\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default InApp","import React, { useState } from 'react';\r\nimport { Button } from 'primereact/button';\r\nimport { useFormik } from 'formik';\r\nimport * as Yup from 'yup';\r\nimport axios from 'axios';\r\nimport { ToastContainer, toast } from 'react-toastify';\r\nimport 'react-toastify/dist/ReactToastify.css';\r\nimport appUrl from \"../../../constants/appUrl\";\r\n\r\nconst AddEditPromotion = ({ onHide, setDialog, setRes, editable }) => {\r\n const [apiRes, setApiRes] = useState();\r\n const [selectedFiles, setSelectedFiles] = useState([])\r\n const [loading, setLoading] = useState(false);\r\n const allowedFileExtensions = [\r\n '.png', '.jpg', '.svg'\r\n ];\r\n const validationSchema = Yup.object({\r\n imageAttachment: Yup.array().required('Required'),\r\n imageAttachment: Yup.array().min(1, 'At least one attachment is required').required('Required'),\r\n\r\n });\r\n\r\n const formik = useFormik({\r\n validationSchema: validationSchema,\r\n initialValues: {\r\n imageAttachment: [],\r\n },\r\n onSubmit: async (data) => {\r\n setLoading(true);\r\n const token = localStorage.getItem('token');\r\n if (!token) {\r\n toast.error(\"No token found. Please log in again.\");\r\n return;\r\n }\r\n try {\r\n let newData = {\r\n imageAttachment: selectedFiles.map(file => ({ imagePath: file }))\r\n }\r\n {\r\n const response = await axios.post(`${appUrl.baseUrl}api/ImageSlider/AddPromotionImages`, newData, {\r\n headers: {\r\n 'Authorization': `Bearer ${token}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n setApiRes(response);\r\n\r\n setRes(response);\r\n toast.success(\"Added Succesfully\")\r\n setDialog(false);\r\n }\r\n\r\n }\r\n catch (error) {\r\n toast.error(\"Something went wrong\");\r\n } finally {\r\n setLoading(false);\r\n onHide();\r\n }\r\n },\r\n });\r\n\r\n const handleFileUpload = (event) => {\r\n const files = event.target.files;\r\n const imagesArray = Array.from(files);\r\n let newImagesBase64 = [];\r\n let hasInvalidFile = false;\r\n imagesArray.forEach((file) => {\r\n const fileExtension = file.name.split('.').pop();\r\n if (!allowedFileExtensions.includes(`.${fileExtension}`)) {\r\n toast.error(`${file.name} is not a supported file type`);\r\n hasInvalidFile = true;\r\n return;\r\n }\r\n const reader = new FileReader();\r\n reader.onload = () => {\r\n const base64String = reader.result;\r\n newImagesBase64.push(base64String);\r\n\r\n if (newImagesBase64.length === imagesArray.length) {\r\n formik.setFieldValue(\"imageAttachment\", [\r\n ...formik.values.imageAttachment,\r\n ...newImagesBase64,\r\n ]);\r\n }\r\n };\r\n setSelectedFiles(newImagesBase64)\r\n reader.readAsDataURL(file);\r\n });\r\n if\r\n (hasInvalidFile) {\r\n event.target.value = null;\r\n\r\n }\r\n };\r\n\r\n const handleRemoveImage = (indexToRemove) => {\r\n const updatedFiles = selectedFiles.filter((_, index) => index !== indexToRemove);\r\n setSelectedFiles(updatedFiles);\r\n formik.setFieldValue(\r\n 'imageAttachment',\r\n formik.values.imageAttachment.filter((_, index) => index !== indexToRemove)\r\n );\r\n };\r\n\r\n return (\r\n <>\r\n \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n handleFileUpload(event)}\r\n accept='.png,.jpg,'\r\n multiple\r\n className='d-none my-3'\r\n />\r\n
    \r\n\r\n
    \r\n\r\n
    \r\n {formik.values.imageAttachment.map((image, index) => (\r\n
    \r\n {`Image\r\n {\r\n e.stopPropagation();\r\n handleRemoveImage(index);\r\n }}\r\n />\r\n
    \r\n ))}\r\n
    \r\n
    \r\n {formik.touched.imageAttachment && formik.errors.imageAttachment ?
    {formik.errors.imageAttachment}
    : null}\r\n\r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n}\r\n\r\nexport default AddEditPromotion;\r\n\r\n","import React, { useState, useEffect } from 'react';\r\nimport { DataTable } from 'primereact/datatable';\r\nimport { Column } from 'primereact/column';\r\nimport { Button } from 'primereact/button';\r\nimport appUrl from \"../../../../constants/appUrl\";\r\nimport { Dialog } from 'primereact/dialog';\r\nimport axios from 'axios';\r\nimport { ToastContainer, toast } from 'react-toastify';\r\nimport 'react-toastify/dist/ReactToastify.css';\r\n// import AddEditAdminDashboardSlider from '../components/AddEditAdminDashboardSlider';\r\n// import ViewAttachement from '../components/ViewAttachement';\r\nimport AddEditPromotion from '../AddEditPromotion';\r\nimport { confirmDialog } from 'primereact/confirmdialog';\r\nimport Loader from '../../../components/laoder';\r\nimport ViewAttachement from '../../AdminDashboardSlider/components/ViewAttachement';\r\nconst Promtions = () => {\r\n const [dialog, setDialog] = useState();\r\n const [res, setRes] = useState();\r\n const [editable, setEditable] = useState();\r\n const [viewAttachmentDialog, setViewAttachmentDialog] = useState(false);\r\n const [selectedAttachment, setSelectedAttachment] = useState(null);\r\n const [sliderList, setSliderList] = useState();\r\n const [loading, setLoading] = useState(false);\r\n const GetAllSliderPicture = async () => {\r\n const token =localStorage.getItem('token')\r\n try {\r\n setLoading(true);\r\n const response = await fetch(`${appUrl.baseUrl}api/ImageSlider/GetPromotionImages`,\r\n {\r\n method:'GET',\r\n headers:{\r\n 'Authorization':`Bearer ${token}`,\r\n 'Content-Type':'application/json'\r\n }\r\n }\r\n )\r\n const data = await response.json();\r\n setSliderList(data)\r\n setLoading(false);\r\n } catch (error) {\r\n\r\n }\r\n }\r\n\r\n const actionEye = (rowData) => {\r\n return (\r\n
    \r\n
    \r\n );\r\n }\r\n const onHideViewAttachment = () => {\r\n setViewAttachmentDialog(false);\r\n };\r\n\r\n const onHide = () => {\r\n setDialog(false)\r\n }\r\n const actionTemplate = (rowData) => (\r\n
    \r\n {/*
    \r\n );\r\n \r\n const accept = async (rowData) => {\r\n try {\r\n const response = await axios.delete(`${appUrl.baseUrl}api/ImageSlider/DeletePromotionImage/${rowData?.imageID}`, {\r\n headers: {\r\n 'Authorization': `Bearer ${localStorage.getItem('token')}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n setRes(response.data);\r\n toast.success(\"Deleted Successfully\");\r\n } catch (error) {\r\n toast.error(\"Failed to delete. Please try again.\");\r\n console.error(\"Error deleting disclaimer:\", error);\r\n }\r\n };\r\n const reject = () => { };\r\n\r\n const confirm = (rowData) => {\r\n confirmDialog({\r\n header: (\r\n
    \r\n \r\n
    \r\n ),\r\n message: (\r\n Are you sure you want to delete this Promotion?\r\n ),\r\n accept: () => accept(rowData),\r\n reject: () => reject(),\r\n acceptClassName: 'custom-btn-red',\r\n rejectClassName: 'custom-white-red',\r\n className: 'center-buttons no-close-button',\r\n });\r\n };\r\n\r\n const isAdmin = localStorage.getItem('admin')\r\n\r\n useEffect(() => {\r\n GetAllSliderPicture()\r\n }, [res])\r\n return (\r\n <>\r\n \r\n \r\n {selectedAttachment && }\r\n \r\n \r\n \r\n \r\n\r\n
    \r\n
    \r\n {isAdmin === 'true' || isAdmin === true ? (\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n ) : null\r\n }\r\n
    \r\n {loading && }\r\n
    \r\n \r\n {\r\n return index.rowIndex + 1;\r\n }}\r\n header=\"Sr. No.\"\r\n />\r\n \r\n \r\n new Date(rowData.createdDate).toLocaleString('en-GB', {\r\n day: '2-digit',\r\n month: '2-digit',\r\n year: 'numeric',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n hour12: true\r\n })} />\r\n {isAdmin === 'true' || isAdmin === true ? (\r\n \r\n ) : null}\r\n \r\n
    \r\n
    \r\n
    \r\n\r\n \r\n );\r\n}\r\n\r\nexport default Promtions","import React from 'react'\r\nimport { TabView, TabPanel } from 'primereact/tabview';\r\nimport AdminDashboardSlider from './AdminDashboardSlider/pages/AdminDashboardSlider';\r\nimport Promtions from './Promotions/pages/Promtions';\r\nconst Banners = ({searchQuery}) => {\r\n return (\r\n \r\n <>\r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n )\r\n}\r\n\r\nexport default Banners","import React, { useState, useEffect, useRef } from 'react';\r\nimport classNames from 'classnames';\r\nimport { Route, Switch, useLocation } from 'react-router-dom';\r\nimport { CSSTransition } from 'react-transition-group';\r\n\r\nimport { AppTopbar } from './AppTopbar';\r\nimport { AppConfig } from './AppConfig';\r\n\r\nimport PrimeReact from 'primereact/api';\r\nimport { Tooltip } from 'primereact/tooltip';\r\n\r\nimport { AppMenu } from './AppMenu';\r\nimport \"primereact/resources/themes/lara-light-cyan/theme.css\";\r\nimport 'primereact/resources/primereact.css';\r\nimport 'primeicons/primeicons.css';\r\nimport 'primeflex/primeflex.css';\r\nimport 'prismjs/themes/prism-coy.css';\r\nimport './assets/demo/flags/flags.css';\r\nimport './assets/demo/Demos.scss';\r\nimport './assets/layout/layout.scss';\r\nimport './App.scss';\r\nimport Products from './app/features/screens/products/pages/Products';\r\nimport Faqs from './app/features/screens/faqs/pages/Faqs';\r\nimport ManageProduct from './app/features/screens/ManageProduct.js/pages/ManageProduct';\r\nimport ManageFaq from './app/features/screens/ManageFaq/pages/ManageFaq';\r\nimport Dashboard from './app/features/screens/Dashboard/pages/Dashboard';\r\nimport UserProcess from './app/features/screens/UserProcess/pages/UserProcess';\r\nimport UserComplaint from './app/features/screens/UserComplaint/pages/UserComplaint';\r\nimport UserSocialMedia from './app/features/screens/UserSocialMedia/pages/UserSocialMedia';\r\nimport AgainstProductProcess from './app/features/screens/AgainstProductProcess/pages/AgainstProductProcess';\r\nimport UserChat from './app/features/screens/UserChat/pages/UserChat';\r\nimport LoginScreen from './app/features/screens/auth/pages/login_screen';\r\nimport login_screen from './app/features/screens/auth/pages/login_screen';\r\nimport AdminZProduct from './app/features/screens/AdminZProduct/pages/AdminZProduct';\r\nimport AdminZAppJourney from './app/features/screens/AdminZAppJourney/pages/AdminZAppJourney';\r\nimport AdminZTrainingMaterial from './app/features/screens/AdminZTrainingMaterial/pages/AdminZTrainingMaterial';\r\nimport AdminTipOfDay from './app/features/screens/AdminTipOfDay/pages/AdminTipOfDay';\r\nimport AdminOutage from './app/features/screens/AdminOutage/pages/AdminOutage';\r\nimport AdminDisclaimer from './app/features/screens/AdminDisclaimer/pages/AdminDisclaimer';\r\nimport AdminDashboardSlider from './app/features/screens/AdminDashboardSlider/pages/AdminDashboardSlider';\r\nimport UserZAppJourney from './app/features/screens/UserZAppJourney/pages/UserZAppJourney';\r\nimport UserZTrainingMaterial from './app/features/screens/UserZTrainingMaterial/pages/UserZTrainingMaterial';\r\nimport Useroutage from './app/features/screens/UserOutage/pages/Useroutage';\r\nimport UserProduct from './app/features/screens/UserProduct/pages/UserProduct';\r\nimport Channel from './app/features/screens/Channel/pages/Channel';\r\nimport CallCenter from './app/features/screens/AdminChannel/pages/CallCenter';\r\nimport SocialMedia from './app/features/screens/AdminChannel/pages/SocialMedia';\r\nimport InApp from './app/features/screens/AdminChannel/pages/InApp';\r\nimport ProcessInformation from './app/features/screens/ProcessInformation/pages/ProcessInformation';\r\nimport Banners from './app/features/screens/Banners';\r\n\r\nconst App = () => {\r\n const [layoutMode, setLayoutMode] = useState('static');\r\n const [layoutColorMode, setLayoutColorMode] = useState('light')\r\n const [inputStyle, setInputStyle] = useState('outlined');\r\n const [ripple, setRipple] = useState(true);\r\n const [staticMenuInactive, setStaticMenuInactive] = useState(false);\r\n const [overlayMenuActive, setOverlayMenuActive] = useState(false);\r\n const [mobileMenuActive, setMobileMenuActive] = useState(false);\r\n const [mobileTopbarMenuActive, setMobileTopbarMenuActive] = useState(false);\r\n const [searchQuery, setSearchQuery] = useState('');\r\n\r\n const copyTooltipRef = useRef();\r\n const location = useLocation();\r\n PrimeReact.ripple = true;\r\n\r\n const handleSearch = (query) => {\r\n console.log(query)\r\n setSearchQuery(query);\r\n };\r\n\r\n const isAdmin = localStorage.getItem(\"admin\") === 'true' || localStorage.getItem(\"admin\") === true;\r\n const login = localStorage.getItem('login', true)\r\n console.log('login', login)\r\n let menuClick = false;\r\n let mobileTopbarMenuClick = false;\r\n\r\n useEffect(() => {\r\n if (mobileMenuActive) {\r\n addClass(document.body, \"body-overflow-hidden\");\r\n } else {\r\n removeClass(document.body, \"body-overflow-hidden\");\r\n }\r\n }, [mobileMenuActive]);\r\n\r\n useEffect(() => {\r\n copyTooltipRef && copyTooltipRef.current && copyTooltipRef.current.updateTargetEvents();\r\n }, [location]);\r\n\r\n const onInputStyleChange = (inputStyle) => {\r\n setInputStyle(inputStyle);\r\n }\r\n\r\n const onRipple = (e) => {\r\n PrimeReact.ripple = e.value;\r\n setRipple(e.value)\r\n }\r\n\r\n const onLayoutModeChange = (mode) => {\r\n setLayoutMode(mode)\r\n }\r\n\r\n const onColorModeChange = (mode) => {\r\n setLayoutColorMode(mode)\r\n }\r\n\r\n const onWrapperClick = (event) => {\r\n if (!menuClick) {\r\n setOverlayMenuActive(false);\r\n setMobileMenuActive(false);\r\n }\r\n\r\n if (!mobileTopbarMenuClick) {\r\n setMobileTopbarMenuActive(false);\r\n }\r\n\r\n mobileTopbarMenuClick = false;\r\n menuClick = false;\r\n }\r\n\r\n const menu = [\r\n isAdmin === 'true' || isAdmin === true ?\r\n {\r\n items: [\r\n { label: 'Dashboard', icon: require(\"./assets/KbIcons/Dashboard.svg\"), to: '/', },\r\n { label: 'Product', icon: require(\"./assets/KbIcons/Product.svg\"), to: '/adminzproduct' },\r\n // { label: 'Channel', icon: require(\"./assets/KbIcons/Channel.svg\"), to: '/channell' }, \r\n\r\n {\r\n label: \"Channel\",\r\n icon: require(\"./assets/KbIcons/Channel.svg\"),\r\n items: [\r\n { label: \"Call Center\", icon: require(\"./assets/KbIcons/Dot.svg\"), to: \"/callcenter\" },\r\n { label: \"Social Media\", icon: require(\"./assets/KbIcons/Dot.svg\"), to: \"/socialmedia\" },\r\n { label: \"In-App\", icon: require(\"./assets/KbIcons/Dot.svg\"), to: \"/inapp\" },\r\n ],\r\n },\r\n\r\n\r\n { label: 'App Journey', icon: require(\"./assets/KbIcons/AppJourney.svg\"), to: '/adminzapplourney' },\r\n { label: 'Training Material', icon: require(\"./assets/KbIcons/TrainingMaterial.svg\"), to: '/adminztrainingmaterial' },\r\n { label: 'Tip of the day', icon: require(\"./assets/KbIcons/Tip.svg\"), to: '/admintipofday' },\r\n { label: 'Outages / Degradations', icon: require(\"./assets/KbIcons/Outages.svg\"), to: '/adminoutage' },\r\n { label: 'Disclaimer', icon: require(\"./assets/KbIcons/Disclaimer.svg\"), to: '/admindisclaimer' },\r\n { label: 'Banners', icon: require(\"./assets/KbIcons/DashboardSlider.svg\"), to: '/banner' },\r\n // { label: \"Tutorials and Videos\", icon: require(\"./assets/KbIcons/Channel.svg\"), to: \"/usersocialmedia\" },\r\n\r\n { label: 'Process Information', icon: require(\"./assets/KbIcons/Processs.svg\"), to: '/userprocess' },\r\n { label: \"Complaint Handling\", icon: require(\"./assets/KbIcons/Complain.svg\"), to: \"/usercomplaint\" },\r\n { label: 'FAQs', icon: require(\"./assets/KbIcons/Faq.svg\"), to: '/userfaq' },\r\n ]\r\n }\r\n :\r\n {\r\n items: [\r\n { label: 'Dashboard', icon: require(\"./assets/KbIcons/Dashboard.svg\"), to: '/' },\r\n { label: 'Product', icon: require(\"./assets/KbIcons/Product.svg\"), to: '/adminzproduct' },\r\n {\r\n label: \"Channel\",\r\n icon: require(\"./assets/KbIcons/Channel.svg\"),\r\n items: [\r\n { label: \"Call Center\", icon: require(\"./assets/KbIcons/Dot.svg\"), to: \"/callcenter\" },\r\n { label: \"Social Media\", icon: require(\"./assets/KbIcons/Dot.svg\"), to: \"/socialmedia\" },\r\n { label: \"In-App\", icon: require(\"./assets/KbIcons/Dot.svg\"), to: \"/inapp\" },\r\n ],\r\n },\r\n // { label: 'Channel', icon: require(\"./assets/KbIcons/Channel.svg\"), to: '/channel' }, \r\n { label: 'App Journey', icon: require(\"./assets/KbIcons/AppJourney.svg\"), to: '/adminzapplourney' },\r\n { label: 'Training Material', icon: require(\"./assets/KbIcons/TrainingMaterial.svg\"), to: '/adminztrainingmaterial' },\r\n { label: 'Tip of the day', icon: require(\"./assets/KbIcons/Tip.svg\"), to: '/admintipofday' },\r\n { label: 'Outages / Degradations', icon: require(\"./assets/KbIcons/Outages.svg\"), to: '/adminoutage' },\r\n // { label: 'Disclaimer', icon: require(\"./assets/KbIcons/Disclaimer.svg\"), to: '/admindisclaimer' },\r\n { label: 'Bannners', icon: require(\"./assets/KbIcons/DashboardSlider.svg\"), to: '/admindashboardslider' },\r\n // { label: \"Tutorials and Videos\", icon: require(\"./assets/KbIcons/Channel.svg\"), to: \"/usersocialmedia\" },\r\n\r\n { label: 'Process Information', icon: require(\"./assets/KbIcons/Processs.svg\"), to: '/userprocess' },\r\n { label: \"Complaint Handling\", icon: require(\"./assets/KbIcons/Complain.svg\"), to: \"/usercomplaint\" },\r\n { label: 'FAQs', icon: require(\"./assets/KbIcons/Faq.svg\"), to: '/userfaq' },\r\n ]\r\n }\r\n ];\r\n\r\n const onToggleMenuClick = (event) => {\r\n\r\n console.log('clicked', event)\r\n menuClick = true;\r\n\r\n if (isDesktop()) {\r\n if (layoutMode === 'overlay') {\r\n if (mobileMenuActive === true) {\r\n setOverlayMenuActive(true);\r\n }\r\n\r\n setOverlayMenuActive((prevState) => !prevState);\r\n setMobileMenuActive(false);\r\n }\r\n else if (layoutMode === 'static') {\r\n setStaticMenuInactive((prevState) => !prevState);\r\n }\r\n }\r\n else {\r\n setMobileMenuActive((prevState) => !prevState);\r\n }\r\n\r\n event.preventDefault();\r\n }\r\n\r\n const onSidebarClick = () => {\r\n menuClick = true;\r\n }\r\n\r\n const onMobileTopbarMenuClick = (event) => {\r\n mobileTopbarMenuClick = true;\r\n\r\n setMobileTopbarMenuActive((prevState) => !prevState);\r\n event.preventDefault();\r\n }\r\n\r\n const onMobileSubTopbarMenuClick = (event) => {\r\n mobileTopbarMenuClick = true;\r\n\r\n event.preventDefault();\r\n }\r\n\r\n const onMenuItemClick = (event) => {\r\n if (!event.item.items) {\r\n setOverlayMenuActive(false);\r\n setMobileMenuActive(false);\r\n }\r\n }\r\n const isDesktop = () => {\r\n return window.innerWidth >= 992;\r\n }\r\n\r\n const addClass = (element, className) => {\r\n if (element.classList)\r\n element.classList.add(className);\r\n else\r\n element.className += ' ' + className;\r\n }\r\n\r\n const removeClass = (element, className) => {\r\n if (element.classList)\r\n element.classList.remove(className);\r\n else\r\n element.className = element.className.replace(new RegExp('(^|\\\\b)' + className.split(' ').join('|') + '(\\\\b|$)', 'gi'), ' ');\r\n }\r\n\r\n const wrapperClass = classNames('layout-wrapper', {\r\n 'layout-overlay': layoutMode === 'overlay',\r\n 'layout-static': layoutMode === 'static',\r\n 'layout-static-sidebar-inactive': staticMenuInactive && layoutMode === 'static',\r\n 'layout-overlay-sidebar-active': overlayMenuActive && layoutMode === 'overlay',\r\n 'layout-mobile-sidebar-active': mobileMenuActive,\r\n 'p-input-filled': inputStyle === 'filled',\r\n 'p-ripple-disabled': ripple === false,\r\n 'layout-theme-light': layoutColorMode === 'light'\r\n });\r\n\r\n\r\n return (\r\n <>\r\n {localStorage.getItem(\"login\") === null || localStorage.getItem(\"login\") === undefined ? (\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n ) : (\r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n {/* */}\r\n {/* */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* */}\r\n \r\n\r\n\r\n {/* */}\r\n\r\n {/* */}\r\n {/* */}\r\n \r\n {/* */}\r\n\r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n )}\r\n \r\n );\r\n}\r\n\r\nexport default App;\r\n","import { useEffect } from 'react';\r\nimport { useLocation, withRouter } from 'react-router-dom';\r\n\r\nconst ScrollToTop = (props) => {\r\n\r\n let location = useLocation();\r\n\r\n useEffect(() => {\r\n window.scrollTo(0, 0)\r\n }, [location]);\r\n\r\n return props.children;\r\n}\r\n\r\nexport default withRouter(ScrollToTop);\r\n","\r\nimport { configureStore } from '@reduxjs/toolkit'\r\n\r\n\r\n\r\nconst user=localStorage.getItem(\"user\");\r\n\r\n\r\nconst initialState = {\r\n// loginUser:{ \r\n// user:{\r\n// \"_id\": \"63544b08de3dfd30e94cc6dc\",\r\n// \"name\": \"Super Admin\",\r\n// \"email\": \"upserAdmin@copet.in\",\r\n// \"role\": {\r\n// \"_id\": \"635440b06bb94adbca28d14d\",\r\n// \"name\": \"superAdmin\"\r\n// },\r\n// \"status\": \"active\"\r\n// }\r\n// }\r\n};\r\n\r\n\r\nconst store = configureStore({\r\n reducer: {\r\n // Define a top-level state field named `todos`, handled by `todosReducer`\r\n // loginUser:loginUserReducer,\r\n // driversList:getDriversListReducer,\r\n // usersList:getUsersListReducer,\r\n // updateUser:updateUserStatusRedcuer,\r\n // updateDriverDocumentsStatus:updateDriverDocumentsStatusReducer,\r\n // userById:getUserByIdReducer,\r\n // getUserRides:getUserRidesReducer,\r\n // getRideDetails:getRideDetailsReducer,\r\n },\r\n preloadedState:initialState\r\n},\r\n)\r\n\r\n\r\n\r\nexport default store;\r\n\r\n","import 'react-app-polyfill/ie11';\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport App from './App';\r\n//import * as serviceWorker from './serviceWorker';\r\nimport ScrollToTop from './ScrollToTop';\r\nimport store from './app/store';\r\nimport { Provider } from 'react-redux';\r\nimport './App.css';\r\nimport { BrowserRouter } from 'react-router-dom/cjs/react-router-dom.min';\r\n\r\n\r\nReactDOM.render(\r\n \r\n \r\n \r\n \r\n \r\n \r\n ,\r\n document.getElementById('root')\r\n);\r\n\r\n// If you want your app to work offline and load faster, you can change\r\n// unregister() to register() below. Note this comes with some pitfalls.\r\n// Learn more about service workers: http://bit.ly/CRA-PWA\r\n//serviceWorker.unregister();","module.exports = __webpack_public_path__ + \"static/media/Dot.2058652c.svg\";"],"sourceRoot":""}