{"version":3,"sources":["components/BaseSelectFile/styles.module.scss","views/Home/items/Introduce/styles.module.scss","views/Home/items/Chart/styles/CustomerOverview.module.scss","constants/pathKeys.js","components/Flex/index.js","stores/config/config.selector.js","stores/alert/slice.alert.js","utils/helper.js","components/Button.js","components/FormDialog.js","constants/types.js","views/Scenario/components/CampaignStatusLabel.js","components/ListCampaign.js","images/logo.png","images/logo-mini.png","images/loading.svg","images/favicon.ico","images/gift-box.png","images/index.js","images/background.png","images/background-inte.png","images/boxmail.svg","images/call.svg","images/chat.svg","images/close.svg","images/web.svg","images/messenger.svg","components/Loading.js","views/Sidebar/SidebarView.js","configs/redux/initialState.js","views/Sidebar/SidebarReducer.js","views/Sidebar/SidebarActions.js","views/Sidebar/SidebarSelectors.js","views/Sidebar/index.js","views/Sidebar/SidebarContainer.js","views/Header/HeaderView.js","api/url.js","api/appConfig.js","api/axiosClient.js","api/accountApi.js","api/appApi.js","views/Login/LoginReducer.js","views/App/AppReducer.js","views/Login/LoginActions.js","views/App/AppSelectors.js","views/Home/HomeSelectors.js","views/Header/index.js","views/Header/HeaderContainer.js","utils/i18n.js","api/homeApi.js","views/Home/HomeReducer.js","views/Home/HomeActions.js","components/ChangeLanguage/index.js","views/MainLayout/MainLayoutView.js","views/Home/items/DialogVerifyPhone/index.js","views/MainLayout/index.js","views/MainLayout/MainLayoutContainer.js","views/Home/items/Chart/index.js","views/Home/items/AccountInfo/index.js","components/Form/BaseDatePicker2/index.js","views/Home/items/Chart/LegendItem.js","views/Home/items/Chart/CampaignChart.js","views/Home/items/Chart/CustomerChart.js","api/customerApi.js","components/FiltersContainer/index.js","views/Home/items/Chart/CustomerOverview.js","views/Home/items/Chart/FanpageChart.js","views/Home/items/Chart/GenAIChart.js","views/Home/items/Chart/MessageChart.js","views/Home/items/Chart/ScenarioChart.js","views/Home/items/Chart/BombotTagChart.js","views/Home/items/Chart/FanpageTagChart.js","views/Home/items/Chart/Dashboard.js","components/ButtonLoading/index.js","assets/images/code.jpg","views/Home/items/DialogAlertPoints/index.js","views/Home/items/Introduce/index.js","views/Home/items/MessengerButton/index.js","components/CampaignStatusLabel/index.js","components/LoadingWrapper/index.js","components/CoppyIcon.js","api/scenarioApi.js","components/ConfirmModal/index.js","stores/loading/slice.loading.js","components/TimeLabel/index.js","components/ConfirmModal2/index.js","components/ListScenario.js","views/Home/HomeView.js","views/Login/LoginSelectors.js","api/campaignApi.js","views/Campaign/CampaignReducer.js","views/Campaign/CampaignActions.js","views/Campaign/CampaignSelectors.js","views/Home/HomeContainer.js","views/Home/index.js","views/Login/LoginView.js","views/Login/index.js","views/Login/LoginContainer.js","components/ListFanpage.js","views/Fanpage/FanpageView.js","api/fanpageApi.js","views/Fanpage/FanpageReducer.js","views/Fanpage/FanpageActions.js","views/Fanpage/FanpageSelectors.js","views/Fanpage/index.js","views/Fanpage/FanpageContainer.js","views/Customer/CustomerReducer.js","views/Customer/CustomerActions.js","views/Customer/CustomerSelectors.js","components/Modals/AddTags.js","components/Modals/ModalTagsBombot.js","components/Form/BaseSelect/index.js","constants/helper.js","components/Form/BaseInput/index.js","components/Form/BaseAutocomplete/index.js","components/Form/BaseDatePicker/index.js","hook/useEffectIgnoreFirst.js","components/FilterCustomer/ConditionItem.js","components/FilterCustomer/index.js","components/TagPreviewItem/index.js","components/TagPreviewModal/index.js","components/Modals/Confirm.js","hook/useDebouce.js","components/CustomersInTagModal/CustomersInBomBotTagModal.js","components/RenameTagModal/index.js","components/TagsManagementModal/BombotTagsManagement.js","components/CustomersInTagModal/CustomersInFBTagModal.js","components/TagsManagementModal/FbTagsManagement.js","components/TagsManagementModal/TagsManagementModal.js","components/ListCustomer.js","components/BaseSelectFile/index.js","views/Customer/item/ModalResultImport.js","components/VirtualScroll/index.js","views/Customer/CustomerView.js","views/Customer/index.js","views/Customer/CustomerContainer.js","views/Scenario/ScenarioSelectors.js","views/Scenario/ScenarioReducer.js","views/Scenario/components/CoppyIcon.js","views/Scenario/components/TimeLabel.js","views/Scenario/components/ScenarioList.js","views/Scenario/ScenarioView.js","views/Scenario/ScenarioContainer.js","views/Scenario/index.js","views/Campaign/CampaignView.js","views/Campaign/index.js","views/Campaign/CampaignContainer.js","views/Tag/TagView.js","api/tagApi.js","views/Tag/TagReducer.js","views/Tag/TagContainer.js","views/Tag/index.js","views/Tag/TagActions.js","components/ListHistory.js","components/ListAccount.js","views/DialogPolicyPoint/DialogPolicyPointView.js","api/whatYouNeedApi.js","views/DialogPolicyPoint/DialogPolicyPointReducer.js","views/DialogPolicyPoint/DialogPolicyPointSelectors.js","views/DialogPolicyPoint/index.js","views/DialogPolicyPoint/DialogPolicyPointContainer.js","views/DialogPolicyPoint/DialogPolicyPointActions.js","components/TransferAcc/index.js","views/SettingAccount/SettingAccountView.js","api/inviteApi.js","views/SettingAccount/SettingAccountReducer.js","views/SettingAccount/SettingAccountSelectors.js","views/SettingAccount/index.js","views/SettingAccount/SettingAccountContainer.js","views/SettingAccount/SettingAccountActions.js","views/Invite/InviteView.js","views/Invite/InviteReducer.js","views/App/AppActions.js","views/Invite/InviteSelectors.js","views/Invite/index.js","views/Invite/InviteContainer.js","views/Invite/InviteActions.js","stores/config/config.slice.js","stores/alert/selectors.alert.js","hook/AlertProvider.js","constants/firebase.js","views/NotiPermission/index.js","stores/loading/selectors.loading.js","views/App/AppView.js","views/App/index.js","views/App/AppContainer.js","GlobalStyles.js","theme.js","components/NotiPermission/index.js","Root.js","utils/history.js","configs/redux/rootReducer.js","configs/redux/store.js","serviceWorker.js","configs/init-facebook-sdk.js","index.js","views/Home/styles.module.scss"],"names":["module","exports","Container","styled","div","auto","column","align","justify","flexWrap","defaultProps","gap","Flex","props","children","restProps","selectConfig","state","configs","selectGuideList","createSelector","guides","selectGuideListByKey","key","selectCountries","loading","countries","selectCountriesOnly","map","e","countryName","initialState","type","message","alertSlice","createSlice","name","reducers","resetAlert","showError","action","payload","showInfo","showSuccess","actions","GUIDE_KEY","GUIDE_TYPE_ENUM","GUIDE_DEFAULT","account_manager","customer_manager","fanpage_manager","overview","video_introduce","tag_manager","campaign_manager","scenario_manager","dashboard","isGetGuideData","data","localStorage","getItem","JSON","parse","Object","keys","some","setItem","stringify","getIsGuideByKey","setIsGuideByKey","removeVNLang","str","toLowerCase","replace","trim","handleUpgrade","i18n","user","dispatch","id","language","url","obj","clear_cart","full_name","ref","province_id","company","phone","email","params","queryString","substr","link","document","createElement","target","href","click","openNewTab","useStyles","makeStyles","theme","root","fontSize","height","disabled","background","ButtonComponent","title","backgroundColor","color","className","icon","handleClickButton","times","size","rest","classes","Button","variant","cn","style","onClick","_","isNumber","marginLeft","form","display","flexDirection","margin","width","formControl","marginTop","spacing","minWidth","formControlLabel","close","position","top","right","cursor","CustomizedDialogs","isOpen","handleClose","transitionDelay","withoutHeader","Dialog","maxWidth","onClose","open","TransitionProps","PENDING","RUNNING","DONE","CANCEL","PAGE","SIZE","TUTORIAL","FACEBOOK","EXTENSION","DETAIL","EDIT","FILTER","MALE","FEMALE","HOME","NAME","LINK","CUSTOMER","FANPAGE","CAMPAGIGN","TAG","SCENARIO","SETTING_ACCOUNT","base","padding","borderRadius","alignItems","pending","running","cancel","done","small","medium","large","marginRight","textsmall","textmedium","textlarge","CampaignStatusLabel","statusClass","IconComponent","res","HourglassEmpty","PlayCircleFilled","PauseCircleFilled","CheckCircle","sizeClass","textStatusClass","campaignStatusDir","paper","boxShadow","overflow","border","table","tableHead","tableHeadCell","fontWeight","tableCell","whiteSpace","textOverflow","ordNumberCell","idCell","nameCell","pageNameCell","creatorCell","dateTimeCell","statusCell","textAlign","numberCell","copyButton","wrapperSearch","marginBottom","noData","clickableRow","actionCell","justifyContent","borderLeft","zIndex","actionButton","transition","actionBtnDetail","actionTitle","buttonSearch","textField","p0","witdhOrd","f600","heightHeader","rowItem","headCells","numeric","disablePadding","label","EnhancedTableHead","t","TableHead","borderBottom","TableRow","headCell","TableCell","TableSortLabel","hideSortIcon","ListCampaign","getCampaign","handleGetCampaign","isPagination","isSearch","isShowFilter","rows","content","useTranslation","dataStatus","useHistory","value","useState","page","setPage","types","rowsPerPage","setRowsPerPage","search","setSearch","copied","setCopied","sortNameOrder","setSortNameOrder","tempSortNameOrder","setTempSortNameOrder","sortDateRangeOrder","setSortDateRangeOrder","tempSortDateRangeOrder","setTempSortDateRangeOrder","s","selectedStatus","setSelectedStatus","tempSelectedStatus","setTempSelectedStatus","setIsOpen","openSortModal","setOpenSortModal","openFilterModal","setOpenFilterModal","sortModalRef","useRef","filterModalRef","filterPopupRef","startDate","setStartDate","console","log","endDate","setEndDate","tempStartDate","setTempStartDate","tempEndDate","setTempEndDate","useOutsideAlerter","handleFuncs","useEffect","handleClickOutside","event","current","contains","forEach","func","addEventListener","removeEventListener","handleSortName","order","handleSortDateRange","handleCopy","useCallback","navigator","clipboard","writeText","then","setTimeout","handleSubmitApply","createParams","searchParams","length","join","sortOptions","push","sort","onViewCampaign","campaignId","pageId","window","handleSelect","status","prev","includes","newSelected","filter","searchVal","pageVal","sizeVal","startdate","enddate","selectedstatus","sortnameorder","sortdaterangeorder","TextField","onChange","placeholder","fullWidth","onKeyDown","InputProps","startAdornment","InputAdornment","endAdornment","IconButton","SortRounded","borderWidth","borderStyle","borderColor","onMouseEnter","currentTarget","onMouseLeave","textTransform","paddingLeft","paddingRight","buttonFilter","flexShrink","flex","left","CheckOutlined","fill","transform","Paper","TableContainer","overflowY","Table","stickyHeader","TableBody","row","index","totalCus","hover","role","tabIndex","number","Tooltip","stopPropagation","src","alt","pageName","userFullName","moment","createdAt","format","beginTime","isValid","totalScenario","totalCustomersDone","totalCustomersError","totalCustomersNotSend","totalMes","totalSuccess","totalFail","totalNotSend","TablePagination","rowsPerPageOptions","component","count","Math","ceil","numberOfElements","onChangeRowsPerPage","newRowsPerPage","parseInt","labelRowsPerPage","Pagination","totalMatch","BACKGROUND","BACKGROUND_INTE","LOGO","LOADING","FAVICON","LOGO_MINI","GIFT_BOX","BOXMAIL","CALL","CHAT","CLOSE","WEV","FB","wrapperLoading","Loading","IMAGES","list","listDehaze","overflowX","fullList","logoDehaze","logo","text","button","bottom","wrapperSidebar","active","dehazeIcon","dehazeIconDehaze","logoIconDehaze","dehazeList","container","appReducer","loginReducer","account","statusLogined","forgotPassword","homeReducer","verifyNumberPhone","share","verifyNumberPhoneError","sidebarReducer","menu","dehaze","campaignReducer","fanpageReducer","fanpageFull","settingAccountReducer","messageUnlink","whatYouNeed","changePassword","inviteCode","unlink","messageInviteError","dialogPolicyPointReducer","redeemPoints","customerReducer","createCustomerSucss","customerAll","customer","detail","selected","fanpageSelected","tagFacebookSelectedAll","selectTagFacebook","setLoadingImport","importSuccess","fanPageDetail","customerCheck","messageImport","inviteReducer","confirmInviteCode","setMenu","setDehaze","getMenu","SidebarPage","withRouter","connect","selectorsSidebar","onMenu","actionsSidebar","onDehaze","history","React","activeMenu","setActiveMenu","url_string","location","pathname","URL","handleMenu","item","handleClickTutorial","handleClickExtension","handleSubmitOpenExtension","handleDehazeIcon","rel","List","ListItem","ListItemIcon","ListItemText","primary","dehazeLink","StyledMenu","withStyles","Menu","elevation","getContentAnchorEl","anchorOrigin","vertical","horizontal","transformOrigin","StyledMenuItem","palette","common","white","MenuItem","header","flexGrow","headerDehaze","menuButton","breakpoints","up","shape","fade","searchIcon","pointerEvents","inputRoot","inputInput","transitions","create","sectionDesktop","sectionMobile","float","wrapperHeader","wrapperAvatar","wrapVersion","baseUrl","process","shared","getWhatYouNeed","getDashboard","getMessageStatistic","getCampaignStatistic","getScenarioStatistic","getCustomerStatistic","getGenAIStatistic","getFanpageStatistic","getTagBombotStatistic","getTagFacebookStatistic","appConfig","api","addLog","loginSocial","login","verifyPhone","getOTP","getInviteCode","fanpageApi","reportPage","campaignApi","campaign","scenarioApi","scenario","customerApi","addCampainByPart","addCampaignNoScenario","createCustomer","addMultiCustomersBombotTags","deleteMultiCustomersBombotTags","AppConfigAPI","getGuide","axiosClient","get","urlApi","recordLog","post","getCountry","axios","baseURL","headers","authorization","undefined","paramsSerializer","interceptors","request","use","a","config","lang","substring","retry","response","error","errorCode","debug","removeItem","reload","accountApi","Promise","resolve","reject","getLoginStatus","getMeFacebook","me","apiAuthenticate","authResponse","auth_type","scope","enable_profile_selector","return_scopes","auth","onSubmitEmail","logout","pathKeys","transferToAccount","updateNotiPermissionToken","fields","userID","avatar","picture","fbAccessToken","accessToken","partnerId","appApi","getUser","uid","setAccount","setStatusLogined","setForgotPassword","showLoading","hideLoading","setUser","setLoading","setShare","token","selectUser","selectErrorVerifyPhone","getVerifyNumberPhone","verify","HeaderPage","selectorsApp","selectorsHome","onLogout","anchorEl","setAnchorEl","setTitleMenu","isPopupVersion","setIsPopupVersion","titlePage","setTitlePage","useSelector","selectShare","useDispatch","AppBar","Toolbar","Avatar","keepMounted","Boolean","grow","titleVersion","dangerouslySetInnerHTML","__html","version","LanguageDetector","Backend","initReactI18next","init","fallbackLng","interpolation","escapeValue","Error","changeLanguage","homeApi","updateUser","put","ChangeLanguage","isUser","currentLanguage","useMemo","updateLngUser","lng","disableScrollLock","handleChangeLanguage","sidebar","sidebarDehaze","contentRight","contentRightDehaze","footer","footerDehaze","textDecoration","MainLayoutView","page_id","app_id","Sidebar","appVerifier","interval","MainLayoutPage","option_default","responsive","maintainAspectRatio","animation","animateRotate","animateScale","cutout","plugins","legend","labels","usePointStyle","generateLabels","chart","dataset","datasets","datasetIndex","fillStyle","strokeStyle","lineWidth","options_status","options_result","DashboardEmpty","styles","not_data","Chart","data_status","totalCampaignDone","totalCampaignPending","totalCampaignRunning","totalCampaignCancel","data_result","fanpage","textCampaign","beforeDatasetsDraw","args","pluginOptions","ctx","save","font","textBaseline","fillText","totalCampaigns","getDatasetMeta","x","y","textMessage","totalSent","box","Card","CardContent","chart_container","chart_status","options","chart_result","box__action","to","card","AccountInfo","account__info","info","info__table","giftPoint","expiredAt","numRef","totalPage","inputPicker","delimiter","adornedEnd","BaseDatePicker2","control","defaultValue","rules","render","field","LocalizationProvider","dateAdapter","DateFnsUtils","maxDate","Date","inputFormat","date","renderInput","startProps","endProps","helperText","LegendItem","legendColor","percent","CampaignChart","setData","useForm","defaultValues","subtract","toDate","watch","from","dataCampaigns","hoverBackgroundColor","textOverlay","isEmpty","fontStyle","parseFloat","toFixed","CustomerChart","totalCustomers","dataCustomers","totalCustomersFail","totalCustomersSuccess","getCustomersStatistic","downloadExcel","getListCustomersInTag","unlinkBombotTag","delete","edit","removeMultiCustomersBombotTags","unAttachTags","export","api_path","responseType","import","formData","FormData","append","file","FiltersContainer","selectedFilter","handleFilterChange","ButtonGroup","option","options_result_phone_num","options_result_gender","total","reduce","b","centerX","chartArea","centerY","toString","restore","dateRange","LAST_30D","clone","LAST_3M","LAST_6M","LAST_12M","CustomerOverview","handleSubmit","setValue","reset","formState","errors","customerStatistic","setCustomerStatistic","customersData","genderData","totalMale","totalFemale","totalOther","phoneNumberData","totalHavePhone","totalNotHavePhone","setSelectedFilter","wrapper","statsChartWrapper","overallNumber","chartItem","chartItemContent","statsTitle","statsNumber","statsPercent","percentMale","percentFemale","percentOther","phoneNumChart","percentHavePhone","percentNotHavePhone","FanpageChart","chartCustomerPerFanpages","barOptions","indexAxis","scales","beginAtZero","ticks","callback","floor","GenAIChart","totalMessages","totalCreatedMessages","totalFormattedMessages","totalSelectedMessages","dataGenAI","numeral","sum","property","MessageChart","dataMessages","totalMessagesFail","totalMessagesNotSend","totalMessagesSuccess","ScenarioChart","totalScenarios","dataScenarios","totalScenarioCancel","totalScenarioPending","totalScenarioDone","totalScenarioRunning","BombotTagChart","selectedDate","tagName","FBTagChart","DashboardChart","campaigns","messages","isShowTooltip","scenarios","onDateChange","tourOverview","tourConfig","setTourConfig","steps","closeWithMask","lastStepNextButton","accentColor","onRequestClose","minHeight","ButtonLoading","isLoading","DialogAlertPoints","point","useTheme","wrapAccount","giftBox","listStyle","handleClosePopup","sx","secondRef","DialogVerifyPhone","handleBackVerify","handleVerify","handleVerifyOtpVoice","isShowInputVerify","setIsShowInputVerify","code","setCode","loadingVerify","setLoadingVerify","loadingCaptcha","setLoadingCaptcha","seconds","setSeconds","captchaArea","setCaptchaArea","errorVerify","typeReceive","setTypeReceive","onRefChange","node","firebase","RecaptchaVerifier","onSignInSubmit","receiveCode","setErrorVerify","signInWithPhoneNumber","confirmationResult","setInterval","old","clearInterval","catch","err","resetCount","handleCodeResquestVoice","isError","FormControl","smsExample","inputStyle","outline","otp","numInputs","separator","confirm","resend","Skeleton","instructions","step","stepper","StepContent","videoId","link_video","Introduce","activeStep","setActiveStep","Set","skipped","setSkipped","contentRef","introduceData","isStepSkipped","has","PaperProps","Stepper","stepProps","completed","Step","StepLabel","prevActiveStep","newSkipped","values","MessengerButton","chatBox","btnItem","closeBtn","onOpen","LoadingWrapper","CircularProgress","CoppyIcon","viewBox","d","deleteScenario","scenarioId","visuallyHidden","clip","paddingBottom","buttonIEA","titlePopup","wrapButtonPopup","ConfirmModal","handleCancel","wrapChangePassword","loadingSlice","openLoading","closeLoading","TimeLabel","displayText","sendTime","now","targetTime","determineTimeStatus","colors","textColor","getStatusColors","timeRemaining","diff","hours","minutes","calculateTimeRemaining","formattedSendTime","toLocaleString","dialog","main","ConfirmModal2","onConfirm","confirmText","cancelText","confirmColor","cancelColor","DialogTitle","DialogContent","Typography","DialogActions","collapseBtn","witdhId","widthName","widthCreator","widthDate","widthStatisticBtn","widthStatistic","widthActions","widthStatus","actionBtnRemove","actionSend","actionAdd","actionBtnSearch","actionIcon","sortFields","LAST_7D","NEXT_24H","add","NEXT_3D","NEXT_7D","NEXT_14D","NEXT_30D","ScenarioManagement","tooltip","isCopiedId","setIsCopiedId","removingScenario","setRemovingScenario","isLoadingList","setIsLoadingList","subScenarios","scenarioList","setScenarioList","limit","getScenarioList","handleDeleteScenario","onViewScenario","maxHeight","totalSubScenario","scenarioRefId","KeyboardArrowDown","KeyboardArrowUp","pageable","pageNumber","customerSuccess","customerFailed","customerNotSend","messageSuccess","messageFailed","messageNotSend","totalClickSent","schedule","scheduleTime","reverse","subRow","subIndex","isNull","wrapperCampaignHistory","userName","input","buttonVerify","select","formVerify","wrapSelectLabel","wrapperMain","wrapperBoxInfo","boxInfoCampaign","lineHeight","wrapperTable","wrapAutocomplete","HomeView","getAccount","onVerifyNumberPhone","onGetOtp","onWhatYouNeed","onDashboard","onVerifyNumberPhoneVoice","setName","setPhone","setEmail","setCompany","business","setBusiness","country","setCountry","giftPoints","setGiftPoints","isAlertPoints","setIsAlertPoints","province","setProvince","isInfo","setIsInfo","isVerify","setIsVerify","nameError","setNameError","phoneError","setPhoneError","emailError","setEmailError","countryError","setCountryError","isVisibleIntroduce","setIsVisibleIntroduce","setUID","countriesOnly","isNavigateUpdateRef","isShowDashboardTooltip","setIsShowDashboardTooltip","toISOString","split","setSelectedDate","setDailyData","dateData","dailyData","find","test","bus","package","handleChange","providerOptions","countrySelected","c","provinces","validate","RegExp","checkedIcon","startOf","endOf","LAST_1M","MainLayout","defaultCountry","Autocomplete","multiple","disableCloseOnSelect","getOptionLabel","renderOption","Checkbox","checked","v","warn","Dashboard","setCampaign","mapStateToProps","selectorsLogin","selectorsCampaign","HomePage","actionsHome","actionsCampaign","backgroundSize","overlay","secondary","wrapperLogin","bottomTitle","textTitle","appTitle","letterSpacing","botIcon","facebook","iconFacebook","titleChangePassword","inputForgotPassword","wrapForgotPasswordInput","success","banner","LoginView","handleSubmitEmail","onSubmitForgotPassword","password","setPassword","isForgotPasswordPopup","setIsForgotPasswordPopup","emailForgotPassword","setEmailForgotPassword","handleClickButtonFacebook","searchParam","URLSearchParams","backgroundImage","fixed","Input","LoginPage","actionsLogin","isObject","nameFanpage","EnhancedTable","handleGetData","getData","dense","handleSubmitSearch","updatedAt","totalElements","onChangePage","newPage","f","FanpageView","getFanpage","getDetailFanpage","searchBombotTags","getBomBotTagList","getFbTagList","deleteBomBotTagList","renameTag","fanpageId","tagId","setFanpage","setFanpageFull","setFanpageSelected","loading_page_detail","fanpage_selected","getFanpageFull","getFanpageDetail","FanpagePage","selectorsFanpage","actionsFanpage","search_obj","search_string","search_arr","loading_add_tag","is_show_modal_add","tagsSelected","importResult","searchUidName","setCustomer","setDetail","setTagFacebookSelectedAll","setSelectTagFacebook","loadingImport","setImportSuccess","setFanPageDetail","setCustomerAll","setCustomerCheck","concat","remove","n","setRestCustomerCheck","setCreateCustomerSucss","setMessageImport","setFilter","setSearchUidName","setSearchTagName","searchTagName","startAddTags","addTagsSuccess","addTagsFailed","toggleModalAdd","clearImportResult","setTagSelected","setEdit","onExport","excludes","exclude","filename","blob","fileName","createObjectURL","anchorElem","download","body","appendChild","removeChild","revokeObjectURL","saveAs","Blob","parseJSONfromParam","inputString","keyValuePairs","resultObject","pair","slice","selectImportResult","getCustomerAll","items","getCustomer","getListTagFacebook","fanpageSelectedData","fbTags","getListTagBombot","bombotTags","getDetail","selectCustomer","selectFilterCus","selectSearchUidName","selectFanpageSelected","selectBombotTags","selectAddTagLoading","selectIsShowModal","selectTagsPageSelected","fbTagsObj","bombotTagsObj","tag","AddTags","messageAddTag","setMessageAddTag","txtValue","setTxtValue","allTags","filtered","el","dataBombotTag","facebookTags","onAddTags","ModalTagsBombot","isRemove","setMessageType","customerAfterFilter","tagSelected","showModalCreate","customerExclude","setIsLoading","tagSelectedIds","onSave","getQuery","customerDifferent","filteredCustomer","cus","toggleModalCreate","tags","selectOnFocus","clearOnBlur","renderTags","getTagProps","Chip","placement","BaseSelect","Select","opt","FIELD_OPTIONS","OPERATION_OPTION_NAME","OPERATION_TAGS_OPTION","GENDER_OPTION","OPERATION_OPTION","OPERATION_TIME_OPTION","OPERATION_PHONE_OPTION","GENDER_OPTIONS","PHONE_OPTIONS","BaseInput","BaseAutocomplete","BaseDatePicker","startText","endText","useEffectIgnoreFirst","dependencies","isFirstRun","RenderValue","fieldSelected","pageSelected","selectOptions","filterSelectedOptions","RenderOperation","selectedFields","OPTIONS","operation","ConditionItem","useWatch","flexBasic","customStyles","Modal","setAppElement","FilterCustomerModal","onSubmitFilter","filter_value","conditions","useFieldArray","ariaHideApp","onSubmit","Array","isArray","filterArr","condition","encodeURIComponent","customerFilter","gender","lastInboxTime","set","paddingCon","iconSize","removedOverlay","TagPreviewItem","styleText","onRemove","onUnRemove","sizeStyles","isRemoved","setIsRemoved","selectedSize","Box","noWrap","wordBreak","saveButton","cancelButton","colorDir1","TagsModal","selectedTags","tagsObj","handleRemoveTags","removingTags","setRemovingTags","onSubmitRemoveTags","tagContent","prevTmp","confirmButton","dialogActions","Confirm","autoFocus","useDebounce","iconCheck","classTags","wrapBox","inputAdd","wrapButton","buttonLoadMore","witdhSeq","witdhCheckBox","witdhUid","widthGender","widthPhone","widthLinkFB","witdhAction","widthTag","witdhUidErr","checkBoxPadding","dialogTitle","backButton","closeButton","submitBtn","numCusInp","footerContainer","paginationBottom","appearance","boxSizing","fontFamily","userSelect","WebkitUserSelect","touchAction","verticalAlign","CustomersInBomBotTagModal","customerData","setCustomerData","setSearchVal","checkedList","setCheckedList","openConfirm","setOpenConfirm","getListCustomers","searchValue","searchQuery","handleSearch","handleDelete","include","widthCheckBox","FormControlLabel","every","isChecked","checkListTmp","handleCheckAllTag","handleCheckTag","upperCase","lastCustomerInboxTime","handleChangePage","dialogContent","description","inputWrapper","submitButton","buttonProgress","RenameTagModal","renameSelected","val","setVal","Alert","severity","inputProps","maxLength","widthSeq","widthId","widthCreatedAt","widthCreatedBy","widthQuantityCus","tagType","CellSticky","BombotTagsManagement","tabVal","bombotTagData","setBombotTagData","openConfirmDelete","setOpenConfirmDelete","setRenameSelected","selectedTag","setSelectedTag","getBombotTags","handleDeleteTags","handleRenameTag","newName","prevData","currentPageTags","pRow","PeopleAltOutlined","CustomersInFBTagModal","totalPages","FbTagsManagement","fbTagData","setFbTagData","getFbTags","TagsManagementModal","setTabVal","Tabs","newVal","Tab","onSelectAllClick","numSelected","rowCount","checkBoxSelectAll","isEmptyCheckItem","indeterminate","handleExport","handleImport","onCreate","handleFilter","onCustomerCheck","onCustomerCheckReset","paramsFilter","paramsPagination","setCheckBoxSelectAll","setRows","isCreateCampaign","setIsCreateCampaign","titleCampaign","setTitleCampaign","isCheckedAllPage","setSeletedTags","isUseCheckedAllPage","setCustomerAllState","typeModalTag","setTypeModalTag","setError","typeMessage","setTypeMessage","setcustomerAfterFilter","showModalAllTags","setshowModalAllTags","selectedModalTags","setSelectedModalTags","isOpenModalManageTag","setIsOpenModalManageTag","isOpenModalFilter","setIsOpenModalFilter","toNumber","totalNumber","filterCus","nameText","getSearch","newSearchParam","createSearchQuery","handleCloseMenu","openModalTag","renderTagsCell","tagList","fanpageTags","filterTags","tagsContainer","tagsArray","random","result","Snackbar","autoHideDuration","buttonChange","handleSubmitCreateCampaign","idx","checkArr","indexOf","labelId","handleSelectCheckBox","lastSyncTime","handleEdit","buttonImport","buttonExport","buttonAdd","FilterCustomer","BaseSelectFile","classCssLoading","fileNameSelected","file_loading","file_input","file__name","ModalResultImport","handleClosePoup","updateSuccessful","updateFailed","VirtualScroll","rowHeight","totalItems","visibleItemsLength","containerHeight","totalHeight","scrollTop","setScrollTop","startNodeElem","visibleItems","offsetY","onScroll","wrapSelectFanpage","wrapSelect","outlineOffset","wrapRadioGroup","formControlCheckbox","wrapButtonImport","importInput","inboxDate","inboxTime","inboxTimeLast","addTag","wrapCheckbox","tagFormGroup","fromToIcon","StyledRadio","Radio","disableRipple","clsx","CustomerView","onDetail","onEdit","onFanpageSelected","fileUpload","onSubmitAddTag","resetCustomer","isPopup","setIsPopup","setDetailState","listTagFacebook","setListTagFacebook","listTagBombot","setListTagBombot","tagFbSelectedAll","setTagFbSelectedAll","tagBbSelectedAll","setTagBbSelectedAll","isActions","setIsActions","setFile","isImportPopup","setIsImportPopup","setUid","nameFacebook","setNameFacebook","setLastInboxTime","lastInboxTimeTo","setLastInboxTimeTo","setGender","pagination","setPagination","isAddTag","setIsAddTag","setAddTag","isConfirmDeleteTag","setIsConfirmDeleteTag","itemDelete","setItemDelete","setParamsFilter","setUrlSearchParamPageId","urlSearchParamSearch","setUrlSearchParamSearch","urlSearchParamPage","setUrlSearchParamPage","urlSearchParamSize","setUrlSearchParamSize","lastCustomerInboxTimeTo","setLastCustomerInboxTimeTo","setLastCustomerInboxTime","urlSearchParamSort","setUrlSearchParamSort","setMessage","typeIdentif","setTypeIdentif","selectedPageId","setSelectedPageId","fanpageCurrent","listTagBombotTmp","sortListTag","listTagFbTmp","handleCloseImport","listTag","noTag","otherTags","attachedTags","unattachedTags","localeCompare","handleSubmitAddTag","it","handleConfirmDeleteTag","handleDownloadExcel","accept","files","RadioGroup","freeSolo","handleChangeFanpage","handleDetail","excludeArr","handleParamsPagination","wrapperPopup","Grid","xs","paddingTop","radioGroup","FormLabel","FormGroup","updatedTags","handleCheckedTagFacebook","handleCheckedTagBombot","handleDeteleTag","fbTagsArr","bombotTagsArr","fbTagsArrAll","bombotTagsArrAll","notInTagBombot","notInTagFacebook","paramsSearch","handleSubmitActions","CustomerPage","selectorsCustomer","actionsCustomer","onTagFacebookSelectedAll","onSelectTagFacebook","createCustomerParams","query","delayTime","defaultSizeGetScenario","ScenarioList","setCampaignSelected","getScenario","createdByUserId","setCampaignId","ScenarioPage","ScenarioView","CampaignView","campaignData","setCampaignData","CampaignPage","TagView","objectFit","tagApi","tagReducer","setTag","TagPage","getTag","actionsTag","ListHistoryjs","amount","method","handleInviteCode","handleUnlink","statusUnlink","handleOpenTransferConfirm","setTransferedId","handleOpenTransfer","users","setUnlink","isUnlink","setIsUnlink","showStatus","setShowStatus","handleCloseStatus","reason","lastLogin","usedWithUserId","handleSubmitUnlink","opacity","TabPanel","other","hidden","p","a11yProps","DialogPolicyPointView","onRedeemPoints","MuiAppBarColorPrimary","PointPannel","PointPannel3","giftPointLogo","columTask","columReward","handleRedeemPoints","bgcolor","newValue","TabIndicatorProps","axis","direction","onChangeIndex","dir","myAffId","CardActionArea","CardMedia","image","gutterBottom","CardActions","whatYouNeedApi","DialogPolicyPointPage","selectorDialogPolicyPoint","TransferAcc","transferedId","validateInput","wrapInfo","gridTemplateColumns","textFieldFirst","wrapAvatar","viewPolicyPoint","wrapPolicyPoint","time","service","accounts","formChangePassword","changePasswordButton","wrapTextareaCopy","changePasswordSucc","changePasswordErr","changePasswordStatus","textarea","resize","copySuccess","errorInput","col6","col12","wrapButtonChange","SettingAccountView","onSubmitChangePassword","onChangePasswordStatus","onGetInviteCode","onUnlink","onGetUser","passwordOld","setPasswordOld","passwordNew","setPasswordNew","passwordNew2","setPasswordNew2","isChangePassword","setIsChangePassword","isChangePasswordSucss","setIsChangePasswordSucss","isViewPolicyPoint","setIsViewPolicyPoint","setCopySuccess","textAreaRef","inviteCodeData","setInviteCodeData","errorPassword","setErrorPassword","isInviteCodePopup","setIsInviteCodePopup","isSubmitChangePassword","setIsSubmitChangePassword","getOpenPoits","setGetOpenPoits","updateInfoError","setUpdateInfoError","updateInfoSuccess","setUpdateInfoSuccess","isOpenTransfer","setIsOpenTransfer","isShowConfirmTransfer","setIsShowConfirmTransfer","origin","handleChangePassword","user_business","handleTransferAccount","mainUserId","linkedUserId","autocomplete","handleSubmitChangeInfo","charAt","noPwSet","autoComplete","execCommand","DialogPolicyPoint","inviteApi","confirmInvite","setInviteCode","setMessageUnlink","setMessageInviteError","SettingAccountPage","selectorSettingAccount","actionsSettingAccount","InvitePageView","statusConfirmInviteCode","handleSubmitButton","setConfirmInviteCode","InvitePage","selectorsInvite","actionsApp","configSlice","startGetGuide","getGuideSuccess","getGuideFailed","startGetCountries","getCountriesSuccess","getCountriesFailed","selectAlert","alert","AlertProvider","vapidKey","NotiPermission","messaging","serviceWorker","register","registration","getToken","currentToken","notiToken","userId","getUserIdFromURL","selectLoading","apps","initializeApp","apiKey","authDomain","projectId","storageBucket","messagingSenderId","appId","measurementId","analytics","App","userApp","getCountries","getLang","getRef","getElementById","parseHTML","onclick","classList","html","innerHTML","cloneNode","fallback","exact","path","Login","Scenario","Home","Fanpage","Customer","Campaign","Tag","Invite","SettingAccount","AppView","down","withTheme","createMuiTheme","warning","light","dark","tonalOffset","xl","lg","md","sm","typography","useNextVariants","htmlFontSize","tokenBrowser","Root","store","responsiveFSTheme","responsiveFontSizes","CssBaseline","GlobalStyles","createHistory","require","createBrowserHistory","rootReducer","combineReducers","router","connectRouter","toastr","toastrReducer","reducer","configureStore","middleware","getDefaultMiddleware","devTools","hostname","match","fbAsyncInit","cookie","xfbml","js","fjs","getElementsByTagName","parentNode","insertBefore","ReactDOM","ready","unregister"],"mappings":"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y7B,UAAW,WAEb,CACEz7B,gBAAiB,UACjBy7B,UAAW,WAEb,CACEz7B,gBAAiB,UACjBy7B,UAAW,WAEb,CACEz7B,gBAAiB,UACjBy7B,UAAW,WAEb,CACEz7B,gBAAiB,UACjBy7B,UAAW,WAEb,CACEz7B,gBAAiB,UACjBy7B,UAAW,WAEb,CACEz7B,gBAAiB,UACjBy7B,UAAW,WAEb,CACEz7B,gBAAiB,UACjBy7B,UAAW,WAEb,CACEz7B,gBAAiB,UACjBy7B,UAAW,WAEb,CACEz7B,gBAAiB,UACjBy7B,UAAW,WAEb,CACEz7B,gBAAiB,UACjBy7B,UAAW,WAEb,CACEz7B,gBAAiB,UACjBy7B,UAAW,WAEb,CACEz7B,gBAAiB,UACjBy7B,UAAW,WAEb,CACEz7B,gBAAiB,UACjBy7B,UAAW,WAEb,CACEz7B,gBAAiB,UACjBy7B,UAAW,WAEb,CACEz7B,gBAAiB,UACjBy7B,UAAW,WAEb,CACEz7B,gBAAiB,UACjBy7B,UAAW,WAEb,CACEz7B,gBAAiB,UACjBy7B,UAAW,WAEb,CACEz7B,gBAAiB,UACjBy7B,UAAW,WAEb,CACEz7B,gBAAiB,UACjBy7B,UAAW,WAEb,CACEz7B,gBAAiB,UACjBy7B,UAAW,WAEb,CACEz7B,gBAAiB,UACjBy7B,UAAW,WAEb,CACEz7B,gBAAiB,UACjBy7B,UAAW,WAGb,CACEz7B,gBAAiB,UACjBy7B,UAAW,WAEb,CACEz7B,gBAAiB,UACjBy7B,UAAW,WAEb,CACEz7B,gBAAiB,UACjBy7B,UAAW,WAEb,CACEz7B,gBAAiB,UACjBy7B,UAAW,WAEb,CACEz7B,gBAAiB,UACjBy7B,UAAW,WAEb,CACEz7B,gBAAiB,UACjBy7B,UAAW,WAEb,CACEz7B,gBAAiB,UACjBy7B,UAAW,WAEb,CACEz7B,gBAAiB,UACjBy7B,UAAW,WAEb,CACEz7B,gBAAiB,UACjBy7B,UAAW,WAEb,CACEz7B,gBAAiB,UACjBy7B,UAAW,WAEb,CACEz7B,gBAAiB,UACjBy7B,UAAW,WAGb,CACEz7B,gBAAiB,UACjBy7B,UAAW,WAEb,CACEz7B,gBAAiB,UACjBy7B,UAAW,W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","file":"static/js/main.5110de76.chunk.js","sourcesContent":["// extracted by mini-css-extract-plugin\nmodule.exports = {\"file_loading\":\"styles_file_loading__35yRc\",\"container\":\"styles_container__2vlKX\",\"file_input\":\"styles_file_input__34lll\",\"file__name\":\"styles_file__name__IDgQ5\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"step\":\"styles_step__3xGJB\",\"content\":\"styles_content__2DoYX\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"CustomerOverview_wrapper__2Ypoo\",\"header\":\"CustomerOverview_header__e3SrC\",\"openListBtn\":\"CustomerOverview_openListBtn__2w2yv\",\"openListBtnWrapper\":\"CustomerOverview_openListBtnWrapper__1biCC\",\"openListIcon\":\"CustomerOverview_openListIcon__3HD1s\",\"openListTitle\":\"CustomerOverview_openListTitle__mrpx3\",\"statsChartWrapper\":\"CustomerOverview_statsChartWrapper__3_EjR\",\"overallTitle\":\"CustomerOverview_overallTitle__20yTx\",\"overallNumber\":\"CustomerOverview_overallNumber__yXkIs\",\"chartItem\":\"CustomerOverview_chartItem__298RZ\",\"chartItemContent\":\"CustomerOverview_chartItemContent__2snQV\",\"statsTitle\":\"CustomerOverview_statsTitle__17hBf\",\"statsNumber\":\"CustomerOverview_statsNumber__2FJp_\",\"statsPercent\":\"CustomerOverview_statsPercent__2wPpa\",\"chart\":\"CustomerOverview_chart__3KJbZ\",\"phoneNumChart\":\"CustomerOverview_phoneNumChart__2XhdU\"};","export default {\n LOGIN: '/dang-nhap',\n HOME: '/trang-chu',\n FANPAGE: '/quan-ly-fan-page',\n CUSTOMER: '/quan-ly-khach-hang',\n SCENARIO: '/quan-ly-kich-ban',\n CAMPAIGN: '/quan-ly-chien-dich',\n TAG: '/quan-ly-tag',\n SETTING_ACCOUNT: '/quan-ly-tai-khoan',\n INVITE: '/invite-code',\n NOTI_PERMISSION: '/noti-permisson',\n}\n","// @flow\nimport React from 'react'\nimport styled from 'styled-components'\n\ntype JustifyValues =\n | 'center'\n | 'space-around'\n | 'space-between'\n | 'flex-start'\n | 'flex-end'\n\ntype AlignValues = 'stretch' | 'center' | 'baseline' | 'flex-start' | 'flex-end'\n\ntype FlexWrapValues = 'nowrap' | 'wrap' | 'wrap-reverse' | 'unset'\n\ntype Props = {\n column?: ?boolean,\n align?: AlignValues,\n justify?: JustifyValues,\n auto?: ?boolean,\n className?: string,\n children?: React$Element<*>,\n flexWrap: FlexWrapValues,\n}\n\nconst Flex = (props: Props) => {\n const { children, ...restProps } = props\n return {children}\n}\n\nconst Container = styled.div`\n display: flex;\n flex: ${({ auto }) => (auto ? '1 1 auto' : 'initial')};\n flex-direction: ${({ column }) => (column ? 'column' : 'row')};\n align-items: ${({ align }) => align};\n justify-content: ${({ justify }) => justify};\n flex-wrap: ${({ flexWrap }) => flexWrap};\n`\n\nContainer.defaultProps = {\n gap: 0,\n flexWrap: 'nowrap',\n justify: 'flex-start',\n align: 'flex-start',\n}\n\nexport default Flex\n","import { createSelector } from \"@reduxjs/toolkit\";\n\nexport const selectConfig = (state) => state.configs;\n\nexport const selectGuideList = createSelector(\n selectConfig,\n (state) => state.guides\n);\n\nexport const selectGuideListByKey = (key) =>\n createSelector(selectGuideList, (state) => (state ? state[key] : null));\n\nexport const selectLoading = createSelector(\n selectConfig,\n (state) => state.loading\n);\nexport const selectCountries = createSelector(\n selectConfig,\n (state) => state.countries\n);\n\nexport const selectCountriesOnly = createSelector(selectConfig, (state) =>\n state.countries.map((e) => e.countryName)\n);\n","import { createSlice } from '@reduxjs/toolkit'\n\nconst initialState = {\n type: 'info',\n message: null,\n}\n\nconst alertSlice = createSlice({\n name: 'alert',\n initialState,\n reducers: {\n resetAlert: () => initialState,\n showError: (state, action) => {\n state.type = 'error'\n state.message = action.payload\n },\n showInfo: (state, action) => {\n state.type = 'info'\n state.message = action.payload\n },\n showSuccess: (state, action) => {\n state.type = 'success'\n state.message = action.payload\n },\n },\n})\n\nexport const {\n resetAlert,\n showError,\n showInfo,\n showSuccess,\n} = alertSlice.actions\n\nexport default alertSlice\n","import { showError } from 'stores/alert/slice.alert'\nimport queryString from 'query-string'\nimport moment from 'moment'\nimport _ from 'lodash'\n\nexport const GUIDE_KEY = 'guide'\nexport const GUIDE_TYPE_ENUM = {\n account_manager: 'account_manager',\n customer_manager: 'customer_manager',\n fanpage_manager: 'fanpage_manager',\n overview: 'overview',\n video_introduce: 'video_introduce',\n tag_manager: 'tag_manager',\n campaign_manager: 'campaign_manager',\n scenario_manager: 'scenario_manager',\n dashboard: 'dashboard',\n}\nconst GUIDE_DEFAULT = {\n account_manager: true,\n customer_manager: true,\n fanpage_manager: true,\n overview: true,\n video_introduce: true,\n tag_manager: true,\n campaign_manager: true,\n scenario_manager: true,\n dashboard: true,\n}\n\nexport const initGuide = () => {\n let data = localStorage.getItem(GUIDE_KEY)\n if (!data) {\n localStorage.setItem(GUIDE_KEY, JSON.stringify(GUIDE_DEFAULT))\n }\n}\n\nexport const isGetGuideData = () => {\n let data = localStorage.getItem(GUIDE_KEY)\n if (!data) {\n initGuide()\n return true\n }\n data = JSON.parse(data)\n return Object.keys(data).some((key) => data[key])\n}\n\nexport const getIsGuideByKey = (key) => {\n let data = localStorage.getItem(GUIDE_KEY)\n if (!data) return false\n data = JSON.parse(data)\n return data[key]\n}\n\nexport const setIsGuideByKey = (key) => {\n let data = localStorage.getItem(GUIDE_KEY)\n if (!data) return false\n data = JSON.parse(data)\n data = {\n ...data,\n [key]: false,\n }\n localStorage.setItem(GUIDE_KEY, JSON.stringify(data))\n}\n\nexport const removeVNLang = (str) => {\n if (str) {\n str = str.toLowerCase()\n str = str.replace(/à|á|ạ|ả|ã|â|ầ|ấ|ậ|ẩ|ẫ|ă|ằ|ắ|ặ|ẳ|ẵ/g, 'a')\n str = str.replace(/è|é|ẹ|ẻ|ẽ|ê|ề|ế|ệ|ể|ễ/g, 'e')\n str = str.replace(/ì|í|ị|ỉ|ĩ/g, 'i')\n str = str.replace(/ò|ó|ọ|ỏ|õ|ô|ồ|ố|ộ|ổ|ỗ|ơ|ờ|ớ|ợ|ở|ỡ/g, 'o')\n str = str.replace(/ù|ú|ụ|ủ|ũ|ư|ừ|ứ|ự|ử|ữ/g, 'u')\n str = str.replace(/ỳ|ý|ỵ|ỷ|ỹ/g, 'y')\n str = str.replace(/đ/g, 'd')\n // str = str.replace(/!|@|%|\\^|\\*|\\(|\\)|\\+|\\=|\\<|\\>|\\?|\\/|,|\\.|\\:|\\;|\\'|\\\"|\\&|\\#|\\[|\\]|~|\\$|_|`|-|{|}|\\||\\\\/g, \" \");\n str = str.replace(/ + /g, ' ')\n str = str.trim()\n }\n return str\n}\n\nexport const openNewTab = (url) => {\n var link = document.createElement('a')\n link.target = '_blank'\n link.href = url\n link.click()\n}\n\nexport const handleUpgrade = ({ i18n, user, dispatch }) => {\n if (!user?.id) {\n dispatch(\n showError(\n 'Có lỗi xảy ra, vui lòng liên hệ với BOMBOT!. (An error has occurred, please contact BOMBOT!).'\n )\n )\n return\n }\n if (i18n.language) {\n let url\n const obj = {\n clear_cart: true || '',\n full_name: user.name || '',\n ref: user.id || '',\n province_id: 50,\n company: user.company || '',\n phone: user.phone || '',\n email: user.email || '',\n }\n const params = queryString.stringify(obj)\n\n switch (i18n.language?.substr(0, 2)) {\n case 'vi': {\n url = `https://bombot.vn?${params}#bang-gia`\n break\n }\n case 'kh': {\n url = `https://bombot.vn/km/home?${params}#kh-pricing`\n break\n }\n default: {\n // default en\n url = `https://bombot.vn/en/home?${params}#pricing`\n break\n }\n }\n\n openNewTab(url)\n }\n}\n\nexport const createSearchQuery = (values) => {\n if (_.isEmpty(values)) return ''\n\n const filtered = values.filter(\n (e) => e.value && !(Array.isArray(e.value) && e.value.length === 0)\n )\n let payload = ''\n\n filtered.forEach((condition) => {\n if (condition.operation === '==' || condition.operation === '!=') {\n payload +=\n condition.field +\n condition.operation +\n encodeURIComponent(condition.value) +\n ';'\n } else {\n switch (condition.field) {\n case 'bombotTags':\n case 'fbTags':\n payload +=\n condition.field +\n '=' +\n condition.operation +\n '=' +\n condition.value?.map((v) => v.value).toString() +\n ';'\n break\n case 'phone':\n case 'gender':\n payload +=\n condition.field +\n '=' +\n condition.operation +\n '=' +\n encodeURIComponent(removeVNLang(condition.value)) +\n ';'\n break\n case 'uid':\n case 'name':\n payload +=\n condition.field +\n '=' +\n condition.operation +\n '=' +\n removeVNLang(condition.value) +\n ';'\n break\n case 'lastInboxTime':\n payload +=\n condition.field +\n '=' +\n condition.operation +\n '=' +\n condition.value\n .map((v) => moment(v).format('YYYY-MM-DD'))\n .toString() +\n ';'\n break\n case 'lastCustomerInboxTime':\n payload +=\n condition.field +\n '=' +\n condition.operation +\n '=' +\n condition.value\n .map((v) => moment(v).format('YYYY-MM-DD'))\n .toString() +\n ';'\n break\n default:\n break\n }\n }\n })\n\n return payload\n}\n","import React from 'react'\nimport _ from 'lodash'\nimport PropTypes from 'prop-types'\nimport { makeStyles } from '@material-ui/core/styles'\nimport Button from '@material-ui/core/Button'\nimport cn from 'classnames'\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n fontSize: 15,\n height: 40,\n },\n disabled: {\n background: '#BDBDBD !important',\n },\n}))\n\nexport default function ButtonComponent(props) {\n const {\n title,\n backgroundColor,\n color,\n className,\n icon,\n handleClickButton,\n times,\n disabled,\n size,\n ...rest\n } = props\n // console.log(\"🚀 ~ ButtonComponent ~ disabled:\", disabled)\n const classes = useStyles()\n\n return (\n \n {icon && icon}\n {title}\n {_.isNumber(times) && ({times})}\n \n );\n}\n\nButtonComponent.propTypes = {\n times: PropTypes.number,\n disabled: PropTypes.bool,\n}\n\nButtonComponent.defaultProps = {\n times: null,\n disabled: false,\n}\n","import React from 'react'\nimport { makeStyles } from '@material-ui/core/styles'\nimport Dialog from '@material-ui/core/Dialog'\nimport CloseIcon from '@material-ui/icons/Close'\n\nconst useStyles = makeStyles((theme) => ({\n form: {\n display: 'flex',\n flexDirection: 'column',\n margin: 'auto',\n width: 'fit-content',\n },\n formControl: {\n marginTop: theme.spacing(2),\n minWidth: 120,\n },\n formControlLabel: {\n marginTop: theme.spacing(1),\n },\n close: {\n position: 'absolute',\n top: 15,\n right: 15,\n '&:hover': {\n cursor: 'pointer',\n },\n },\n}))\n\nexport default function CustomizedDialogs(props) {\n const {\n isOpen,\n handleClose,\n children,\n transitionDelay,\n width,\n withoutHeader,\n ...rest\n } = props\n const classes = useStyles()\n return (\n \n {handleClose && !withoutHeader && (\n \n )}\n
{children}
\n \n )\n}\n","export default {\n STATUS: {\n PENDING: 'pending',\n RUNNING: 'running',\n DONE: 'done',\n CANCEL: 'cancel',\n },\n PAGINATION: {\n PAGE: 0,\n SIZE: 10,\n },\n URL: {\n TUTORIAL: 'https://hotro.bombot.vn/',\n FACEBOOK: 'https://www.facebook.com/?ref=bombot',\n EXTENSION: 'https://bombot.short.gy/bombot-extension',\n },\n PACKAGE: {\n TRIAL: 'trial',\n },\n ACTIONS: {\n DETAIL: 'DETAIL',\n EDIT: 'EDIT',\n FILTER: 'FILTER',\n },\n OTP: {\n SEC: '60',\n },\n GENDER: {\n MALE: 'MALE',\n FEMALE: 'FEMALE',\n },\n MENU: {\n HOME: {\n NAME: 'menu.overall',\n LINK: '/trang-chu',\n },\n CUSTOMER: {\n NAME: 'menu.customer',\n LINK: '/quan-ly-khach-hang',\n },\n FANPAGE: {\n NAME: 'menu.fanpage',\n LINK: '/quan-ly-fan-page',\n },\n CAMPAGIGN: {\n NAME: 'menu.campaign',\n LINK: '/quan-ly-chien-dich',\n },\n TAG: {\n NAME: 'menu.tag',\n LINK: '/quan-ly-tag',\n },\n SCENARIO: {\n NAME: 'menu.scenario',\n LINK: '/quan-ly-kich-ban',\n },\n SETTING_ACCOUNT: {\n NAME: 'menu.account',\n LINK: '/quan-ly-tai-khoan',\n },\n },\n}\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { makeStyles } from '@material-ui/core/styles'\nimport {\n HourglassEmpty,\n PlayCircleFilled,\n PauseCircleFilled,\n CheckCircle,\n} from '@material-ui/icons'\n\n// Styles\nconst useStyles = makeStyles((theme) => ({\n base: {\n padding: theme.spacing(1.5), // Padding mặc định\n borderRadius: '4px',\n margin: theme.spacing(1, 0),\n display: 'flex',\n alignItems: 'center',\n },\n pending: {\n color: 'blue',\n backgroundColor: 'rgba(33, 150, 243, 0.2)', // Xanh dương nhạt\n },\n running: {\n color: 'teal',\n backgroundColor: 'rgba(0, 128, 128, 0.2)', // Màu xanh ngọc nhạt\n },\n cancel: {\n color: 'orange',\n backgroundColor: 'rgba(255, 152, 0, 0.2)', // Cam nhạt\n },\n done: {\n color: 'darkgreen',\n backgroundColor: 'rgba(34, 139, 34, 0.2)', // Xanh lá đậm nhạt\n },\n small: {\n padding: theme.spacing(1), // Padding nhỏ\n fontSize: '12px !important',\n '& $icon': {\n fontSize: '16px !important',\n },\n },\n medium: {\n padding: '8px 12px', // Padding vừa\n fontSize: '14px !important',\n '& $icon': {\n fontSize: '20px !important',\n },\n },\n large: {\n padding: theme.spacing(2), // Padding lớn\n fontSize: '16px !important',\n '& $icon': {\n fontSize: '24px !important',\n },\n },\n icon: {\n marginRight: theme.spacing(1),\n },\n textsmall: {\n fontSize: '12px !important',\n },\n textmedium: {\n fontSize: '14px !important',\n },\n textlarge: {\n fontSize: '16px !important',\n },\n}))\n\n// Component\nconst CampaignStatusLabel = ({ message, type, size = 'medium', ...res }) => {\n const classes = useStyles()\n\n // Map trạng thái sang class\n let statusClass\n let IconComponent\n\n if (type === 'pending' || type === 'init') {\n statusClass = classes.pending\n IconComponent = HourglassEmpty\n } else if (type === 'running') {\n statusClass = classes.running\n IconComponent = PlayCircleFilled\n } else if (type === 'cancel' || type === 'paused') {\n statusClass = classes.cancel\n IconComponent = PauseCircleFilled\n } else if (type === 'done') {\n statusClass = classes.done\n IconComponent = CheckCircle\n }\n\n // Kết hợp class của kích thước\n const sizeClass = classes[size] || classes.medium\n\n let textStatusClass = classes[`text${size}`]\n\n return IconComponent ? (\n \n \n

{message}

\n \n ) : null\n}\n\n// PropTypes\nCampaignStatusLabel.propTypes = {\n message: PropTypes.string.isRequired,\n type: PropTypes.oneOf(['pending', 'running', 'cancel', 'done']).isRequired,\n size: PropTypes.oneOf(['small', 'medium', 'large']),\n}\n\nCampaignStatusLabel.defaultProps = {\n size: 'medium',\n}\n\n// Export trạng thái\nexport const campaignStatusDir = {\n pending: 'Initial',\n running: 'Running',\n cancel: 'Paused',\n done: 'Completed',\n}\n\nexport default CampaignStatusLabel\n","import { Button, IconButton, TextField, Tooltip } from \"@material-ui/core\";\nimport InputAdornment from \"@material-ui/core/InputAdornment\";\nimport Paper from \"@material-ui/core/Paper\";\nimport { makeStyles, styled } from \"@material-ui/core/styles\";\nimport Table from \"@material-ui/core/Table\";\nimport TableBody from \"@material-ui/core/TableBody\";\nimport TableCell from \"@material-ui/core/TableCell\";\nimport TableContainer from \"@material-ui/core/TableContainer\";\nimport TableHead from \"@material-ui/core/TableHead\";\nimport TablePagination from \"@material-ui/core/TablePagination\";\nimport TableRow from \"@material-ui/core/TableRow\";\nimport TableSortLabel from \"@material-ui/core/TableSortLabel\";\nimport { CheckOutlined, CheckRounded, SortRounded } from \"@material-ui/icons\";\nimport ClearIcon from \"@material-ui/icons/Clear\";\nimport SearchIcon from \"@material-ui/icons/Search\";\nimport Pagination from \"@material-ui/lab/Pagination\";\nimport cn from \"classnames\";\nimport Flex from \"components/Flex\";\nimport { CheckIcon, ChevronDown, FilterIcon } from \"lucide-react\";\nimport moment from \"moment\";\nimport PropTypes from \"prop-types\";\nimport { useCallback, useEffect, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useHistory } from \"react-router-dom/cjs/react-router-dom.min\";\nimport types from \"../constants/types\";\nimport ButtonComponent from \"./Button\";\nimport CampaignStatusLabel from \"views/Scenario/components/CampaignStatusLabel\";\nimport { useRef } from \"react\";\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n width: \"100%\"\n },\n paper: {\n width: \"100%\",\n // marginBottom: theme.spacing(2),\n boxShadow: \"0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24)\",\n borderRadius: \"0px\",\n overflow: \"hidden\",\n border: \"1px solid rgb(222, 225, 230)\"\n },\n table: {\n minWidth: \"100%\"\n },\n tableHead: {\n backgroundColor: \"#F4F4F4FF\"\n },\n tableHeadCell: {\n fontWeight: \"bold\"\n },\n tableCell: {\n whiteSpace: \"nowrap\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n padding: \"12px 16px\",\n minWidth: \"150px\"\n },\n ordNumberCell: {\n width: \"80px\",\n minWidth: \"80px\"\n },\n idCell: {\n width: \"180px\",\n minWidth: \"180px\"\n },\n nameCell: {\n width: \"250px\",\n minWidth: \"250px\"\n },\n pageNameCell: {\n width: \"200px\",\n minWidth: \"200px\"\n },\n creatorCell: {\n width: \"180px\",\n minWidth: \"180px\"\n },\n dateTimeCell: {\n width: \"160px\",\n minWidth: \"160px\"\n },\n statusCell: {\n width: \"140px\",\n minWidth: \"140px\",\n \"& span\": {\n padding: \"6px 12px\",\n borderRadius: \"4px\",\n fontWeight: \"500\",\n display: \"inline-block\",\n width: \"100%\",\n textAlign: \"center\"\n }\n },\n numberCell: {\n width: \"120px\",\n minWidth: \"120px\"\n },\n copyButton: {\n padding: 4,\n \"&:hover\": {\n backgroundColor: \"rgba(0, 0, 0, 0.04)\"\n }\n },\n wrapperSearch: {\n width: 500,\n marginBottom: theme.spacing(2)\n },\n noData: {\n color: \"rgba(0,0,0,.5)\",\n fontWeight: \"bold\",\n textAlign: \"center\",\n padding: theme.spacing(3)\n },\n clickableRow: {\n cursor: \"pointer\",\n \"&:hover\": {\n backgroundColor: \"rgba(0, 0, 0, 0.04)\"\n }\n },\n actionCell: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n borderLeft: \"0.2px solid rgb(246, 239, 239)\",\n backgroundColor: \"#fafafa\",\n position: \"sticky\",\n right: 0,\n top: 0,\n zIndex: 1\n },\n actionButton: {\n background: \"none\",\n padding: 0,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n color: \"rgb(0, 123, 255)\",\n fontWeight: 600,\n transition: \"all 0.3s ease\",\n \"&:hover\": {\n backgroundColor: \"rgba(33, 150, 243, 0.2)\"\n }\n },\n actionBtnDetail: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n padding: \"6px 10px\",\n borderRadius: \"8px\"\n },\n actionTitle: {\n margin: 0,\n fontSize: \"10px !important\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\"\n },\n buttonSearch: {\n backgroundColor: \"#05AE34\",\n color: \"white\",\n padding: \"6px 16px\",\n \"&:hover\": {\n backgroundColor: \"#048A2D\"\n }\n },\n textField: {\n backgroundColor: \"#ffffff\",\n \"& .MuiOutlinedInput-root\": {}\n },\n p0: {\n padding: \"0\",\n margin: \"0\"\n },\n witdhOrd: {\n minWidth: \"140px\",\n padding: \"0 8px !important\"\n },\n f600: {\n fontWeight: 600\n },\n heightHeader: {\n height: \"52px\"\n },\n rowItem: {\n cursor: \"pointer\"\n }\n}));\n\nconst headCells = [\n {\n id: \"ord_number\",\n numeric: true,\n disablePadding: true,\n label: \"overall.lastest_campaign.ord_number\"\n },\n {\n id: \"id\",\n numeric: true,\n disablePadding: true,\n label: \"overall.lastest_campaign.campaign_id\"\n },\n {\n id: \"name\",\n numeric: true,\n disablePadding: true,\n label: \"overall.lastest_campaign.campaign_name\"\n },\n {\n id: \"fanpage\",\n numeric: true,\n disablePadding: true,\n label: \"overall.lastest_campaign.page_name\"\n },\n {\n id: \"author\",\n numeric: true,\n disablePadding: true,\n label: \"overall.lastest_campaign.creator\"\n },\n {\n id: \"createdAt\",\n numeric: true,\n disablePadding: true,\n label: \"overall.lastest_campaign.create_time\"\n },\n {\n id: \"status\",\n numeric: true,\n disablePadding: true,\n label: \"overall.lastest_campaign.status\"\n },\n {\n id: \"timeStart\",\n numeric: true,\n disablePadding: true,\n label: \"overall.lastest_campaign.start_time\"\n },\n\n {\n id: \"totalScenario\",\n numeric: true,\n disablePadding: true,\n label: \"overall.lastest_campaign.scenario\"\n },\n\n {\n id: \"numberCus\",\n numeric: true,\n disablePadding: true,\n label: \"overall.lastest_campaign.customer\"\n },\n\n {\n id: \"numberCusSuccess\",\n numeric: true,\n disablePadding: true,\n label: \"overall.lastest_campaign.successful_customer\"\n },\n\n {\n id: \"numberCusFailed\",\n numeric: true,\n disablePadding: true,\n label: \"overall.lastest_campaign.failed_customer\"\n },\n\n {\n id: \"numberCusNotSend\",\n numeric: true,\n disablePadding: true,\n label: \"overall.lastest_campaign.pending_customer\"\n },\n\n {\n id: \"totalMess\",\n numeric: true,\n disablePadding: true,\n label: \"overall.lastest_campaign.message\"\n },\n\n {\n id: \"messSuccss\",\n numeric: true,\n disablePadding: true,\n label: \"overall.lastest_campaign.successful_message\"\n },\n {\n id: \"messFail\",\n numeric: true,\n disablePadding: true,\n label: \"overall.lastest_campaign.failed_message\"\n },\n {\n id: \"messNotSend\",\n numeric: true,\n disablePadding: true,\n label: \"overall.lastest_campaign.pending_message\"\n }\n];\n\nfunction EnhancedTableHead(props) {\n const { classes, t } = props;\n\n return (\n \n \n {headCells.map((headCell) => {\n let cellClass = classes.tableCell;\n switch (headCell.id) {\n case \"ord_number\":\n cellClass = cn(classes.tableCell, classes.ordNumberCell);\n break;\n case \"id\":\n cellClass = cn(classes.tableCell, classes.idCell);\n break;\n case \"name\":\n cellClass = cn(classes.tableCell, classes.nameCell);\n break;\n case \"fanpage\":\n cellClass = cn(classes.tableCell, classes.pageNameCell);\n break;\n case \"author\":\n cellClass = cn(classes.tableCell, classes.creatorCell);\n break;\n case \"createdAt\":\n case \"timeStart\":\n cellClass = cn(classes.tableCell, classes.dateTimeCell);\n break;\n case \"status\":\n cellClass = cn(classes.tableCell, classes.statusCell);\n break;\n case \"numberCus\":\n case \"totalMess\":\n case \"messSuccss\":\n case \"messFail\":\n case \"messNotSend\":\n case \"numberCusSuccess\":\n case \"numberCusFailed\":\n case \"numberCusNotSend\":\n case \"totalScenario\":\n cellClass = cn(classes.tableCell, classes.numberCell);\n break;\n default:\n break;\n }\n\n return (\n \n \n {t(headCell.label)}\n \n \n );\n })}\n {/* \n
{t('common.btn.action')}
\n */}\n
\n \n );\n}\n\nconst CellSticky = styled(TableCell)`\n position: sticky;\n background-color: #fff;\n right: 0;\n top: 0;\n z-index: 2;\n box-shadow: -15px 0px 17px -7px #f0eded;\n`;\n\nEnhancedTableHead.propTypes = {\n classes: PropTypes.object.isRequired,\n t: PropTypes.func.isRequired\n};\n\nexport default function ListCampaign(props) {\n const {\n data,\n handleGetCampaign,\n getCampaign,\n isPagination,\n isSearch,\n isShowFilter\n } = props;\n const rows = (data && data.content) || [];\n const classes = useStyles();\n const { t } = useTranslation();\n const history = useHistory();\n\n const dataStatus = [\n { id: 0, name: \"init\", value: t(\"campaign_management.status.init\") },\n { id: 1, name: \"running\", value: t(\"campaign_management.status.running\") },\n { id: 2, name: \"done\", value: t(\"campaign_management.status.done\") },\n { id: 3, name: \"paused\", value: t(\"campaign_management.status.paused\") }\n ];\n\n const [page, setPage] = useState(0);\n const [rowsPerPage, setRowsPerPage] = useState(types.PAGINATION.SIZE);\n const [search, setSearch] = useState(\"\");\n const [copied, setCopied] = useState(false);\n\n const [sortNameOrder, setSortNameOrder] = useState(\"\");\n const [tempSortNameOrder, setTempSortNameOrder] = useState(\"\");\n\n const [sortDateRangeOrder, setSortDateRangeOrder] =\n useState(\"createdAt,desc\");\n const [tempSortDateRangeOrder, setTempSortDateRangeOrder] =\n useState(\"createdAt,desc\");\n\n const [selectedStatus, setSelectedStatus] = useState(\n dataStatus.map((s) => s.name)\n );\n const [tempSelectedStatus, setTempSelectedStatus] = useState(\n dataStatus.map((s) => s.name)\n );\n const [isOpen, setIsOpen] = useState(false);\n\n const [openSortModal, setOpenSortModal] = useState(false);\n const [openFilterModal, setOpenFilterModal] = useState(false);\n const sortModalRef = useRef(null);\n const filterModalRef = useRef(null);\n const filterPopupRef = useRef(null);\n const [startDate, setStartDate] = useState(\"\");\n console.log(\"🚀 ~ ListCampaign ~ startDate:\", startDate)\n const [endDate, setEndDate] = useState(\"\");\n console.log(\"🚀 ~ ListCampaign ~ endDate:\", endDate)\n\n const [tempStartDate, setTempStartDate] = useState(\"\");\n const [tempEndDate, setTempEndDate] = useState(\"\");\n\n const [searchQuery, setSearchQuery] = useState(\"\");\n\n const handleToggleSortModal = () => {\n setOpenSortModal(!openSortModal);\n };\n\n const handleToggleFilterModal = () => {\n setOpenFilterModal(!openFilterModal);\n };\n\n function useOutsideAlerter(ref, ...handleFuncs) {\n useEffect(() => {\n function handleClickOutside(event) {\n if (ref.current && !ref.current.contains(event.target)) {\n handleFuncs.forEach((func) => func());\n }\n }\n document.addEventListener(\"mousedown\", handleClickOutside);\n return () => {\n document.removeEventListener(\"mousedown\", handleClickOutside);\n };\n }, [ref, handleFuncs]);\n }\n\n useOutsideAlerter(\n filterModalRef,\n () => setOpenFilterModal(false),\n () => setIsOpen(false)\n );\n useOutsideAlerter(sortModalRef, () => setOpenSortModal(false));\n useOutsideAlerter(filterPopupRef, () => setIsOpen(false));\n\n const handleSortName = (order) => {\n setSortNameOrder(order);\n };\n\n const handleSortDateRange = (order) => {\n setSortDateRangeOrder(order);\n };\n\n const handleCopy = useCallback((id) => {\n navigator.clipboard.writeText(id).then(() => {\n setCopied(true);\n setTimeout(() => setCopied(false), 2000);\n });\n }, []);\n\n useEffect(() => {\n handleSubmitApply(search);\n }, []);\n\n useEffect(() => {\n if (openSortModal) {\n setSortNameOrder(tempSortNameOrder);\n setSortDateRangeOrder(tempSortDateRangeOrder);\n }\n }, [openSortModal]);\n\n useEffect(() => {\n if (openFilterModal) {\n setStartDate(tempStartDate);\n setEndDate(tempEndDate);\n setSelectedStatus(tempSelectedStatus);\n }\n }, [openFilterModal]);\n\n const handleChangeRowsPerPage = (event) => {\n const newRowsPerPage = parseInt(event.target.value, 10);\n setRowsPerPage(newRowsPerPage);\n setPage(0);\n handleSubmitApply(search, 0, newRowsPerPage);\n };\n\n const handleChange = (event, value) => {\n setPage(value - 1);\n handleSubmitApply(search, value - 1);\n };\n\n const handleSearch = (event) => {\n setSearch(event.target.value);\n };\n\n const handleSubmitSearch = (search) => {\n handleSubmitApply();\n };\n\n const handleClickFilter = () => {\n handleSubmitApply();\n };\n\n const createParams = (\n selectedStatus,\n startDate,\n endDate,\n sortNameOrder,\n sortDateRangeOrder,\n search,\n page,\n size\n ) => {\n let searchParams = \"\";\n\n if (\n selectedStatus.length > 0 &&\n selectedStatus.length < dataStatus.length\n ) {\n searchParams += `status=in=${selectedStatus.join(\",\")};`;\n }\n\n if (startDate && endDate) {\n searchParams += `createdAt=bw=${startDate},${endDate};`;\n }\n if (search && typeof search === \"string\" && search.trim() !== \"\") {\n searchParams += `name|pageNameText==${search};`;\n }\n\n console.log(\"searchParams ==>\", searchParams);\n\n const sortOptions = [];\n if (sortDateRangeOrder) {\n sortOptions.push(sortDateRangeOrder);\n }\n if (sortNameOrder) {\n sortOptions.push(sortNameOrder);\n }\n\n const sort =\n sortOptions.length > 0 ? sortOptions.join(\";\") : \"createdAt,desc\";\n\n const payload = {\n page: page,\n search: searchParams,\n size: size,\n sort: sort\n };\n\n return payload;\n };\n\n const onViewCampaign = useCallback((campaignId, pageId) => {\n window.open(\n `${types.URL.FACEBOOK}&token=${\n localStorage.getItem(\"token\") || null\n }&campaign=${campaignId}&pageId=${pageId}`,\n \"_blank\"\n );\n }, []);\n\n const getStatusStyle = (status) => {\n switch (status) {\n case \"done\":\n return { backgroundColor: \"#e8f5e9\", color: \"#2e7d32\" };\n case \"pending\":\n return { backgroundColor: \"#fff3e0\", color: \"#e65100\" };\n case \"cancel\":\n return { backgroundColor: \"#ffebee\", color: \"#c62828\" };\n case \"running\":\n return { backgroundColor: \"#e3f2fd\", color: \"#1565c0\" };\n default:\n return { backgroundColor: \"#f5f5f5\", color: \"#333\" };\n }\n };\n\n const onKeyDown = (event) => {\n if (event.key === \"Enter\") {\n handleSubmitApply();\n }\n };\n\n const handleSelect = (status) => {\n if (status === \"all\") {\n if (selectedStatus.length === dataStatus.length) {\n return;\n } else {\n setSelectedStatus(dataStatus.map((s) => s.name));\n }\n } else {\n setSelectedStatus((prev) => {\n if (prev.includes(status)) {\n const newSelected = prev.filter((s) => s !== status);\n if (newSelected.length === 0) {\n return [];\n }\n return newSelected;\n } else {\n const newSelected = [...prev, status];\n if (newSelected.length === dataStatus.length) {\n return newSelected;\n }\n return newSelected;\n }\n });\n }\n };\n\n const handleResetAllSort = () => {\n setSortNameOrder(\"\");\n setSortDateRangeOrder(\"createdAt,desc\");\n handleSubmitApply(\n search,\n 0,\n rowsPerPage,\n startDate,\n endDate,\n dataStatus.map((s) => s.name),\n \"\",\n \"createdAt,desc\"\n );\n setSortNameOrder(\"\");\n setTempSortNameOrder(\"\");\n setSortDateRangeOrder(\"createdAt,desc\");\n setTempSortDateRangeOrder(\"createdAt,desc\");\n };\n\n const handleResetDateRange = () => {\n setStartDate(\"\");\n setEndDate(\"\");\n };\n\n const handleResetStatus = () => {\n setSelectedStatus(dataStatus.map((status) => status.name));\n };\n\n const handleResetAllFilter = () => {\n setStartDate(\"\");\n setEndDate(\"\");\n setSelectedStatus(dataStatus.map((s) => s.name));\n handleSubmitApply(\n search,\n 0,\n rowsPerPage,\n \"\",\n \"\",\n dataStatus.map((s) => s.name),\n sortNameOrder,\n sortDateRangeOrder\n );\n setTempStartDate(\"\");\n setTempEndDate(\"\");\n setTempSelectedStatus(dataStatus.map((s) => s.name));\n };\n\n const handleSubmitApply = (\n searchVal = search,\n pageVal = page,\n sizeVal = rowsPerPage,\n startdate = startDate,\n enddate = endDate,\n selectedstatus = selectedStatus,\n sortnameorder = sortNameOrder,\n sortdaterangeorder = sortDateRangeOrder\n ) => {\n setTempSortNameOrder(sortNameOrder);\n setTempSortDateRangeOrder(sortDateRangeOrder);\n setTempStartDate(startDate);\n setTempEndDate(endDate);\n setTempSelectedStatus(selectedStatus);\n const params = createParams(\n selectedstatus,\n startdate,\n enddate,\n sortnameorder,\n sortdaterangeorder,\n searchVal,\n pageVal,\n sizeVal\n );\n getCampaign(params);\n setOpenSortModal(false);\n setOpenFilterModal(false);\n };\n\n return (\n <>\n
\n {isSearch && (\n \n \n \n \n ),\n endAdornment: (\n \n {search && (\n {\n setSearch(\"\");\n handleSubmitApply(\"\");\n }}\n size=\"small\"\n >\n \n \n )}\n \n )\n }}\n />\n \n {t(\"common.btn.search\")}\n \n }\n backgroundColor=\"#05AE34\"\n color=\"white\"\n handleClickButton={() => handleSubmitSearch(search)}\n style={{\n minWidth: \"fit-content\",\n padding: \"6px 16px\"\n }}\n />\n \n )}\n\n {isShowFilter && (\n \n \n \n \n

{t(\"common.btn.sort\")}

\n \n }\n backgroundColor=\"#05AE34\"\n color=\"white\"\n handleClickButton={handleToggleSortModal}\n style={{\n minWidth: \"fit-content\",\n padding: \"6px 16px\",\n background: \"#05AE34\"\n }}\n />\n\n {openSortModal && (\n \n

{t(\"campaign_management.name\")}

\n\n {/* name: a-z */}\n
\n \n (e.currentTarget.style.backgroundColor = \"#E1E1E1FF\")\n }\n onMouseLeave={(e) =>\n (e.currentTarget.style.backgroundColor =\n sortNameOrder === \"name,asc\" ? \"#d8fcd2\" : \"#fff\")\n }\n onClick={() => handleSortName(\"name,asc\")}\n className=\"\"\n style={{\n display: \"flex\",\n justifyContent: \"start\",\n alignItems: \"center\",\n width: \"100%\",\n color: \"#333\",\n backgroundColor:\n sortNameOrder === \"name,asc\" ? \"#d8fcd2\" : \"#fff\"\n }}\n >\n \n \n
\n\n
A - Z
\n \n
\n\n {/* name: z-a */}\n
\n \n (e.currentTarget.style.backgroundColor = \"#E1E1E1FF\")\n }\n onMouseLeave={(e) =>\n (e.currentTarget.style.backgroundColor =\n sortNameOrder === \"name,desc\" ? \"#d8fcd2\" : \"#fff\")\n }\n onClick={() => handleSortName(\"name,desc\")}\n style={{\n display: \"flex\",\n justifyContent: \"start\",\n alignItems: \"center\",\n width: \"100%\",\n color: \"#333\",\n backgroundColor:\n sortNameOrder === \"name,desc\" ? \"#d8fcd2\" : \"#fff\"\n }}\n >\n \n \n
\n\n
Z - A
\n \n \n\n \n\n

{t(\"campaign_management.time\")}

\n\n {/* newest-oldest */}\n
\n \n (e.currentTarget.style.backgroundColor = \"#E1E1E1FF\")\n }\n onMouseLeave={(e) =>\n (e.currentTarget.style.backgroundColor =\n sortDateRangeOrder === \"createdAt,desc\"\n ? \"#d8fcd2\"\n : \"#fff\")\n }\n onClick={() => handleSortDateRange(\"createdAt,desc\")}\n className=\"\"\n style={{\n display: \"flex\",\n justifyContent: \"start\",\n alignItems: \"center\",\n width: \"100%\",\n color: \"#333\",\n backgroundColor:\n sortDateRangeOrder === \"createdAt,desc\"\n ? \"#d8fcd2\"\n : \"#fff\"\n }}\n >\n \n \n
\n
\n \n {t(\"campaign_management.newest_oldest\")}\n \n
\n \n \n\n {/* oldest-newest */}\n
\n \n (e.currentTarget.style.backgroundColor = \"#E1E1E1FF\")\n }\n onMouseLeave={(e) =>\n (e.currentTarget.style.backgroundColor =\n sortDateRangeOrder === \"createdAt,asc\"\n ? \"#d8fcd2\"\n : \"#fff\")\n }\n onClick={() => handleSortDateRange(\"createdAt,asc\")}\n className=\"\"\n style={{\n display: \"flex\",\n justifyContent: \"start\",\n alignItems: \"center\",\n width: \"100%\",\n color: \"#333\",\n backgroundColor:\n sortDateRangeOrder === \"createdAt,asc\"\n ? \"#d8fcd2\"\n : \"#fff\"\n }}\n >\n \n \n
\n
\n {\" \"}\n \n {t(\"campaign_management.oldest_newest\")}\n \n
\n \n \n\n \n\n {/* reset va apply ben sort */}\n \n \n {t(\"common.btn.reset\")}\n \n }\n backgroundColor=\"#05AE34\"\n color=\"white\"\n style={{\n minWidth: \"fit-content\",\n padding: \"6px 16px\",\n background: \"#05ae34\"\n }}\n />\n \n {t(\"common.btn.apply\")}\n \n }\n backgroundColor=\"#05AE34\"\n color=\"white\"\n style={{\n minWidth: \"fit-content\",\n padding: \"6px 16px\"\n }}\n />\n \n \n )}\n\n {/* {openSortModal && (\n setOpenSortModal(false)}\n style={{\n // backgroundColor: \"rgba(51, 51, 51, 0.8)\",\n zIndex: 2,\n position: \"fixed\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0\n }}\n />\n )} */}\n \n\n \n \n \n {\" \"}\n \n {t(\"common.btn.filter\")}\n

\n \n \n }\n backgroundColor=\"#05AE34\"\n color=\"white\"\n handleClickButton={handleToggleFilterModal}\n style={{\n minWidth: \"fit-content\",\n padding: \"6px 16px\",\n background: \"rgb(5, 174, 52)\",\n color: \"white\"\n }}\n />\n\n {openFilterModal && (\n \n \n

{t(\"campaign_management.date_range\")}

\n \n {t(\"common.btn.reset\")}\n

\n \n\n {/* chon ngay */}\n \n setStartDate(e.target.value)}\n style={{\n cursor: \"pointer\",\n flex: 1,\n marginRight: \"8px\",\n padding: \"8px\",\n borderRadius: \"4px\",\n border: \"1px solid #C1C1C1FF\"\n }}\n />\n setEndDate(e.target.value)}\n style={{\n cursor: \"pointer\",\n flex: 1,\n marginLeft: \"8px\",\n padding: \"8px\",\n borderRadius: \"4px\",\n border: \"1px solid #C1C1C1FF\"\n }}\n />\n \n\n {/* duong line */}\n \n\n {/* status */}\n \n

{t(\"campaign_management.status.title\")}

\n \n {t(\"common.btn.reset\")}\n

\n \n\n {/* select status */}\n {/*
*/}\n setIsOpen(true)}\n >\n {isOpen && (\n \n
\n {/* Checkbox for \"All\" option */}\n handleSelect(\"all\")}\n >\n \n {selectedStatus.length === dataStatus.length && (\n \n )}\n
\n {t(\"campaign_management.status.all\")}\n
\n\n {dataStatus.map((status) => (\n handleSelect(status.name)}\n >\n \n {selectedStatus.includes(status.name) && (\n \n )}\n \n {status.value}\n \n ))}\n \n \n )}\n \n \n {selectedStatus.length === 0\n ? t(\"common.btn.choose_status\")\n : selectedStatus.length < dataStatus.length\n ? selectedStatus\n .map((status) =>\n t(`campaign_management.status.${status}`)\n )\n .join(\", \")\n : t(\"campaign_management.status.all\")}\n \n\n \n \n \n \n {/* */}\n\n \n\n {/* reset va apply all o filter */}\n \n \n {t(\"common.btn.reset_all\")}\n \n }\n backgroundColor=\"#05AE34\"\n color=\"white\"\n style={{\n minWidth: \"fit-content\",\n padding: \"6px 16px\",\n background: \"#05ae34\"\n }}\n />\n \n {t(\"common.btn.apply\")}\n \n }\n backgroundColor=\"#05AE34\"\n color=\"white\"\n style={{\n minWidth: \"fit-content\",\n padding: \"6px 16px\"\n }}\n />\n \n \n )}\n\n {/* {openFilterModal && (\n setOpenFilterModal(false)}\n style={{\n // backgroundColor: \"rgba(51, 51, 51, 0.8)\",\n zIndex: 2,\n position: \"fixed\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0\n }}\n />\n )} */}\n \n \n )}\n\n \n \n \n \n \n {rows.map((row, index) => {\n if (row.totalCus === 0) return null;\n return (\n onViewCampaign(row.id, row.pageId)}\n className={[classes.heightHeader, classes.rowItem]}\n >\n \n {data?.number * rowsPerPage + index + 1}\n \n \n \n {row.id}\n \n {\n e.stopPropagation();\n handleCopy(row.id);\n }}\n size=\"small\"\n >\n \n \n \n \n \n \n {row.name}\n \n \n {row.pageName}\n \n \n {row.userFullName}\n \n \n {moment(row.createdAt).format(\"DD/MM/YYYY HH:mm\")}\n \n \n \n \n \n {/* \n {t(`campaign_management.status.${row.status}`) ||\n row.status}\n */}\n \n \n {moment(row.beginTime).isValid()\n ? moment(row.beginTime).format(\"DD/MM/YYYY HH:mm\")\n : \"\"}\n \n\n \n {row.totalScenario}\n \n\n \n {row.totalCus}\n \n\n \n {row.totalCustomersDone}\n \n\n \n {row.totalCustomersError}\n \n\n \n {row.totalCustomersNotSend}\n \n\n \n {row.totalMes}\n \n \n {row.totalSuccess}\n \n \n {row.totalFail}\n \n\n \n {row.totalNotSend}\n \n\n {/* {\n e.stopPropagation(); // Prevent event bubbling\n onViewScenario(row.id); // Call the function when the cell is clicked\n }}\n >\n \n {\n e.stopPropagation(); // Prevent event bubbling\n onViewScenario(row.id); // Call the function when the button is clicked\n }}\n >\n
\n

\n {t(\"campaign_management.scenario.name\")}\n

\n
\n \n
\n */}\n \n );\n })}\n
\n \n \n {rows.length === 0 && (\n

{t(\"update.no_data\")}

\n )}\n
\n {isPagination && rows.length > 0 && (\n \n \n \n \n )}\n \n \n );\n}\n\nListCampaign.propTypes = {\n data: PropTypes.object,\n search: PropTypes.string,\n isSearch: PropTypes.bool,\n isPagination: PropTypes.bool,\n getCampaign: PropTypes.func,\n handleGetCampaign: PropTypes.func\n};\n\nListCampaign.defaultProps = {\n isPagination: true,\n isSearch: true,\n handleGetCampaign: () => {},\n getCampaign: () => {},\n data: {},\n search: null\n};\n","export default __webpack_public_path__ + \"static/media/logo.86a3af26.png\";","export default __webpack_public_path__ + \"static/media/logo-mini.e9bec0d6.png\";","export default __webpack_public_path__ + \"static/media/loading.8a82d174.svg\";","export default __webpack_public_path__ + \"static/media/favicon.ec700054.ico\";","export default __webpack_public_path__ + \"static/media/gift-box.df3f27c8.png\";","import LOGO from './logo.png';\nimport LOGO_MINI from './logo-mini.png';\nimport LOADING from './loading.svg';\nimport FAVICON from './favicon.ico';\nimport GIFT_BOX from './gift-box.png';\nimport BACKGROUND from \"./background.png\";\nimport BACKGROUND_INTE from \"./background-inte.png\";\nimport BOXMAIL from './boxmail.svg';\nimport CALL from './call.svg';\nimport CHAT from './chat.svg';\nimport CLOSE from './close.svg';\nimport WEV from './web.svg';\nimport FB from './messenger.svg';\n\nexport default {\n BACKGROUND,\n BACKGROUND_INTE,\n LOGO,\n LOADING,\n FAVICON,\n LOGO_MINI,\n GIFT_BOX,\n BOXMAIL,\n CALL,\n CHAT,\n CLOSE,\n WEV,\n FB\n};\n","export default __webpack_public_path__ + \"static/media/background.039298cf.png\";","export default __webpack_public_path__ + \"static/media/background-inte.31a2a365.png\";","export default __webpack_public_path__ + \"static/media/boxmail.21822a3e.svg\";","export default __webpack_public_path__ + \"static/media/call.88771016.svg\";","export default __webpack_public_path__ + \"static/media/chat.4dbb4651.svg\";","export default __webpack_public_path__ + \"static/media/close.4bcb9a0b.svg\";","export default __webpack_public_path__ + \"static/media/web.16f2eb8e.svg\";","export default __webpack_public_path__ + \"static/media/messenger.19626b2f.svg\";","import React from \"react\";\nimport _ from \"lodash\";\nimport PropTypes from \"prop-types\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport Button from \"@material-ui/core/Button\";\nimport cn from \"classnames\";\nimport IMAGES from \"../images\";\nconst useStyles = makeStyles((theme) => ({\n wrapperLoading: {\n width: \"100%\",\n height: \"100%\",\n position: 'fixed',\n left: '0px',\n top: '0px',\n background: 'rgba(0,0,0,.2)',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n zIndex: '9999',\n },\n}));\n\nexport default function Loading(props) {\n const classes = useStyles();\n\n return (\n
\n \n
\n );\n}\n\nLoading.propTypes = {};\n\nLoading.defaultProps = {};\n","import List from '@material-ui/core/List'\nimport ListItem from '@material-ui/core/ListItem'\nimport ListItemIcon from '@material-ui/core/ListItemIcon'\nimport ListItemText from '@material-ui/core/ListItemText'\nimport { makeStyles } from '@material-ui/core/styles'\nimport AddAlertIcon from '@material-ui/icons/AddAlert'\nimport DehazeIcon from '@material-ui/icons/Dehaze'\nimport ForumIcon from '@material-ui/icons/Forum'\nimport GetAppIcon from '@material-ui/icons/GetApp'\nimport cn from 'classnames'\nimport Flex from 'components/Flex'\nimport { CalendarIcon, Flag, Gauge, Monitor, Tags, UserIcon } from 'lucide-react'\nimport React, { useEffect } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { useHistory } from 'react-router-dom'\nimport ButtonComponent from '../../components/Button'\nimport types from '../../constants/types'\nimport IMAGES from '../../images'\n\nconst useStyles = makeStyles({\n root: {\n width: 250,\n },\n list: {\n width: 250,\n height: '100%',\n position: 'relative',\n overflow: 'hidden',\n },\n listDehaze: {\n width: 60,\n height: '100%',\n position: 'relative',\n overflowX: 'hidden',\n },\n fullList: {\n width: 'auto',\n },\n logoDehaze: {\n textAlign: 'right',\n '& img': {\n width: 'auto',\n display: 'inline-block',\n margin: '45px auto 30px',\n position: 'relative',\n right: 8,\n },\n },\n logo: {\n textAlign: 'center',\n '& img': {\n width: '50%',\n display: 'inline-block',\n margin: '30px auto',\n },\n },\n text: {\n '& span': {\n fontSize: 15,\n },\n },\n button: {\n margin: '5px 0px',\n display: 'inline-block',\n width: 'calc(100% - 30px)',\n },\n bottom: {\n textAlign: 'center',\n position: 'absolute',\n bottom: '0px',\n },\n wrapperSidebar: {\n width: 250,\n },\n active: {\n background: '#05AE34',\n color: 'white',\n '& .MuiListItemIcon-root': {\n color: 'white',\n },\n },\n dehazeIcon: {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n paddingLeft: 12,\n paddingRight: 12,\n '&:hover': {\n cursor: 'pointer',\n },\n },\n dehazeIconDehaze: {\n top: '50%',\n left: '75px',\n position: 'fixed',\n transform: 'translateY(-50%)',\n '&:hover': {\n cursor: 'pointer',\n },\n },\n logoIconDehaze: {\n display: 'none',\n },\n dehazeList: {\n display: 'none',\n },\n container: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n gap: '10px',\n },\n})\n\nexport default function TemporaryDrawer(props) {\n const classes = useStyles()\n const history = useHistory()\n const { t } = useTranslation()\n const { onMenu, getMenu, onDehaze, dehaze } = props\n const [state, setState] = React.useState({\n top: false,\n left: true,\n bottom: false,\n right: false,\n })\n const [activeMenu, setActiveMenu] = React.useState(null)\n const toggleDrawer = (anchor, open) => (event) => {\n if (\n event.type === 'keydown' &&\n (event.key === 'Tab' || event.key === 'Shift')\n ) {\n return\n }\n\n setState({ ...state, [anchor]: open })\n }\n const menu = [\n {\n name: t(types.MENU.HOME.NAME),\n icon: ,\n link: types.MENU.HOME.LINK,\n id: 'overview',\n },\n {\n name: t(types.MENU.FANPAGE.NAME),\n icon: ,\n id: 'fanpage_manager',\n link: types.MENU.FANPAGE.LINK,\n },\n {\n name: t(types.MENU.CUSTOMER.NAME),\n icon: ,\n id: 'customer_manager',\n link: types.MENU.CUSTOMER.LINK,\n },\n {\n name: t(types.MENU.TAG.NAME),\n icon: ,\n id: 'tag_manager',\n link: types.MENU.TAG.LINK,\n },\n {\n name: t(types.MENU.CAMPAGIGN.NAME),\n icon: ,\n id: 'campaign_manager',\n link: types.MENU.CAMPAGIGN.LINK,\n },\n {\n name: t(types.MENU.SCENARIO.NAME),\n icon: ,\n id: 'scenario_manager',\n link: types.MENU.SCENARIO.LINK,\n },\n ]\n\n useEffect(() => {\n const url_string = window.location.href //window.location.href\n const url = new URL(url_string)\n const pathname = url.pathname\n setActiveMenu(pathname)\n }, [])\n\n const handleMenu = (item) => {\n history.push(item.link)\n // onMenu(item.link);\n }\n\n const handleClickTutorial = (url) => {\n window.open(url, '_blank')\n }\n const handleClickExtension = (url) => {\n window.open(url, '_blank')\n }\n\n const handleSubmitOpenExtension = () => {\n window.open(\n types.URL.FACEBOOK + `&token=${localStorage.getItem('token') || null}`,\n '_blank'\n )\n }\n const handleDehazeIcon = () => {\n onDehaze(!dehaze)\n }\n\n const list = () => (\n <>\n
\n
\n
\n
\n \n \n \n
\n
\n handleDehazeIcon()}>\n \n \n
\n
\n
\n\n \n {menu.map((item, index) => (\n handleMenu(item)}\n >\n \n {item.icon}\n \n \n \n ))}\n \n
\n \n handleSubmitOpenExtension()}\n />\n handleClickTutorial(types.URL.TUTORIAL)}\n />\n \n handleClickExtension(types.URL.EXTENSION)\n }\n />\n \n
\n
\n\n {dehaze && (\n
\n handleDehazeIcon()}\n >\n \n \n
\n \n \n \n
\n\n \n {menu.map((item, index) => (\n handleMenu(item)}\n >\n {item.icon}\n \n ))}\n \n
\n \n handleSubmitOpenExtension()}\n >\n {}\n \n\n handleClickTutorial(types.URL.TUTORIAL)}\n >\n {}\n \n\n handleClickExtension(types.URL.EXTENSION)}\n >\n {}\n \n \n
\n
\n )}\n \n )\n\n // const listDehaze = () => (\n\n // );\n\n return (\n //
\n // {[\"left\", \"right\", \"top\", \"bottom\"].map((anchor) => (\n // \n // \n // {/* */}\n // \n // {list(anchor)}\n // \n // \n // ))}\n //
\n list()\n )\n}\n","import { pathKeys } from \"../../constants\";\nexport default {\n appReducer: {\n user: {},\n loading: false,\n },\n loginReducer: {\n account: {},\n statusLogined: null,\n forgotPassword: null,\n },\n homeReducer: {\n verifyNumberPhone: false,\n share: [],\n dashboard: {},\n verifyNumberPhoneError: false,\n },\n sidebarReducer: {\n menu: `Tổng quan`,\n dehaze: false\n },\n campaignReducer: {},\n fanpageReducer: {\n fanpageFull: [],\n },\n settingAccountReducer: {\n messageUnlink: \"\",\n whatYouNeed: {},\n changePassword: null,\n inviteCode: {},\n unlink: false,\n messageInviteError: \"\"\n },\n dialogPolicyPointReducer:{\n whatYouNeed: {},\n redeemPoints: {},\n },\n customerReducer: {\n createCustomerSucss: false,\n customerAll: [],\n customer: null,\n detail: {},\n // edit: {},\n selected: {},\n fanpageSelected: {},\n tagFacebookSelectedAll: false,\n selectTagFacebook: {},\n setLoadingImport: false,\n importSuccess: false,\n fanPageDetail: {},\n customerCheck: [],\n messageImport: \"\"\n },\n inviteReducer: {\n confirmInviteCode: null,\n },\n};\n","import { createSlice } from \"@reduxjs/toolkit\";\nimport initialState from \"../../configs/redux/initialState\";\n\nconst sidebarReducer = createSlice({\n name: \"sidebar\",\n initialState: initialState.sidebarReducer,\n reducers: {\n setMenu: (state, action) => {\n state.menu = action.payload;\n },\n setDehaze: (state, action) => {\n state.dehaze = action.payload;\n },\n \n }\n});\n\nexport const {\n setMenu,\n setDehaze\n} = sidebarReducer.actions;\n\nexport default sidebarReducer.reducer;\n","\n// import { history } from \"../../configs/history\";\nimport {\n setMenu,\n setDehaze\n} from \"./SidebarReducer\";\n\nexport function menu(menu) {\n return dispatch => {\n return dispatch(setMenu(menu));\n \n };\n}\nexport function onDehaze(value) {\n return dispatch => {\n return dispatch(setDehaze(value));\n \n };\n}\n","import { createSelector } from \"@reduxjs/toolkit\";\nexport const menu = state => state.sidebarReducer.menu;\nexport const dehaze = state => state.sidebarReducer.dehaze;\n\nexport const getMenu = createSelector(\n [menu],\n (menu) => {\n return menu;\n }\n);\n","import SidebarPage from \"./SidebarContainer\";\n\nexport default SidebarPage;\n","import { connect } from \"react-redux\";\nimport { withRouter } from 'react-router-dom';\nimport SidebarView from \"./SidebarView\";\nimport * as actionsSidebar from \"./SidebarActions\";\nimport * as selectorsSidebar from \"./SidebarSelectors\";\nconst mapStateToProps = state => {\n return {\n getMenu: selectorsSidebar.getMenu(state),\n dehaze: selectorsSidebar.dehaze(state),\n };\n};\n\nconst mapDispatchToProps = dispatch => ({\n onMenu: (data) => dispatch(actionsSidebar.menu(data)),\n onDehaze: (value) => dispatch(actionsSidebar.onDehaze(value)),\n});\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(SidebarView));\n","import React, { useEffect, useState } from 'react'\nimport { useHistory } from 'react-router-dom'\nimport { fade, makeStyles, withStyles } from '@material-ui/core/styles'\nimport { pathKeys } from '../../constants'\nimport types from '../../constants/types'\nimport AppBar from '@material-ui/core/AppBar'\nimport Toolbar from '@material-ui/core/Toolbar'\nimport MenuItem from '@material-ui/core/MenuItem'\nimport Menu from '@material-ui/core/Menu'\nimport ArrowDropDownIcon from '@material-ui/icons/ArrowDropDown'\nimport Button from '@material-ui/core/Button'\nimport Avatar from '@material-ui/core/Avatar'\nimport ExitToAppIcon from '@material-ui/icons/ExitToApp'\nimport ListItemIcon from '@material-ui/core/ListItemIcon'\nimport ListItemText from '@material-ui/core/ListItemText'\nimport AccountCircleIcon from '@material-ui/icons/AccountCircle'\nimport InfoIcon from '@material-ui/icons/Info'\nimport FormDialog from '../../components/FormDialog'\nimport cn from 'classnames'\nimport Flex from 'components/Flex'\nimport { useTranslation } from 'react-i18next'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { selectShare } from 'views/Home/HomeContainer'\nimport { handleUpgrade } from 'utils/helper'\nimport CloseIcon from '@material-ui/icons/Close'\n\nconst StyledMenu = withStyles({\n paper: {\n marginTop: 10,\n border: 'none !important',\n },\n})((props) => (\n \n))\n\nconst StyledMenuItem = withStyles((theme) => ({\n root: {\n '& ul': {\n padding: 0,\n },\n '&:hover': {\n backgroundColor: '#05AE34',\n '& .MuiListItemIcon-root, & .MuiListItemText-primary': {\n color: theme.palette.common.white,\n },\n },\n border: 'none',\n },\n}))(MenuItem)\n\nconst useStyles = makeStyles((theme) => ({\n header: {\n flexGrow: 1,\n padding: 0,\n position: 'fixed',\n top: 0,\n right: 0,\n zIndex: 2,\n width: 'calc(100% - 250px)',\n border: 'none',\n boxShadow: '0 0 2rem 0 rgba(136,152,170,.15)!important',\n '-webkit-transition': 'all 0.1s ease-out',\n },\n headerDehaze: {\n flexGrow: 1,\n padding: 0,\n position: 'fixed',\n top: 0,\n right: 0,\n border: 'none',\n boxShadow: '0 0 2rem 0 rgba(136,152,170,.15)!important',\n zIndex: 2,\n width: 'calc(100% - 60px)',\n '& $sectionDesktop': {\n marginLeft: 30,\n },\n '-webkit-transition': 'all 0.09s ease-out',\n // \"& header\": {\n // boxShadow: \"0 0 2rem 0 rgba(136,152,170,.15)!important\"\n // }\n },\n menuButton: {\n marginRight: theme.spacing(2),\n },\n title: {\n display: 'none',\n [theme.breakpoints.up('sm')]: {\n display: 'block',\n },\n },\n search: {\n position: 'relative',\n borderRadius: theme.shape.borderRadius,\n backgroundColor: fade(theme.palette.common.white, 0.15),\n '&:hover': {\n backgroundColor: fade(theme.palette.common.white, 0.25),\n },\n marginRight: theme.spacing(2),\n marginLeft: 0,\n width: '100%',\n [theme.breakpoints.up('sm')]: {\n marginLeft: theme.spacing(3),\n width: 'auto',\n },\n },\n searchIcon: {\n padding: theme.spacing(0, 2),\n height: '100%',\n position: 'absolute',\n pointerEvents: 'none',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n inputRoot: {\n color: 'inherit',\n },\n inputInput: {\n padding: theme.spacing(1, 1, 1, 0),\n // vertical padding + font size from searchIcon\n paddingLeft: `calc(1em + ${theme.spacing(4)}px)`,\n transition: theme.transitions.create('width'),\n width: '100%',\n [theme.breakpoints.up('md')]: {\n width: '20ch',\n },\n },\n sectionDesktop: {\n display: 'none',\n [theme.breakpoints.up('md')]: {\n display: 'flex',\n },\n },\n sectionMobile: {\n display: 'flex',\n [theme.breakpoints.up('md')]: {\n display: 'none',\n },\n },\n account: {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n float: 'right',\n },\n wrapperHeader: {\n display: 'flex',\n border: 'none',\n boxShadow: 'none',\n justifyContent: 'space-between',\n },\n cursor: {\n '&:hover': {\n cursor: 'pointer',\n },\n },\n wrapperAvatar: {\n display: 'flex',\n alignItems: 'center',\n },\n wrapVersion: {\n padding: '0px 15px',\n '& h4': {\n marginBottom: 0,\n padding: 0,\n color: '#05AE34',\n },\n '& h6': {\n marginTop: 5,\n fontSize: 14,\n color: 'red',\n },\n },\n}))\n\nexport default function Header(props) {\n const { getMenu, onMenu, onLogout, user, onDehaze, dehaze } = props\n const classes = useStyles()\n const history = useHistory()\n const [anchorEl, setAnchorEl] = React.useState(null)\n const [titleMenu, setTitleMenu] = React.useState('')\n const [mobileMoreAnchorEl, setMobileMoreAnchorEl] = React.useState(null)\n const [isPopupVersion, setIsPopupVersion] = React.useState(false)\n const [titlePage, setTitlePage] = React.useState('')\n const { t, i18n } = useTranslation()\n const share = useSelector(selectShare)['share']\n const dispatch = useDispatch()\n\n useEffect(() => {\n const url_string = window.location.href //window.location.href\n const url = new URL(url_string)\n const pathname = url.pathname\n if (pathname) {\n switch (pathname) {\n case types.MENU.HOME.LINK:\n setTitlePage(t(types.MENU.HOME.NAME))\n break\n case types.MENU.CUSTOMER.LINK:\n setTitlePage(t(types.MENU.CUSTOMER.NAME))\n break\n case types.MENU.FANPAGE.LINK:\n setTitlePage(t(types.MENU.FANPAGE.NAME))\n break\n case types.MENU.CAMPAGIGN.LINK:\n setTitlePage(t(types.MENU.CAMPAGIGN.NAME))\n break\n case types.MENU.TAG.LINK:\n setTitlePage(t(types.MENU.TAG.NAME))\n break\n case types.MENU.SETTING_ACCOUNT.LINK:\n setTitlePage(t(types.MENU.SETTING_ACCOUNT.NAME))\n break\n case types.MENU.SCENARIO.LINK:\n setTitlePage(t(types.MENU.SCENARIO.NAME))\n break\n\n default:\n break\n }\n }\n }, [i18n.language])\n\n const handleClick = (event) => {\n setAnchorEl(event.currentTarget)\n }\n\n const handleClose = () => {\n setAnchorEl(null)\n }\n\n useEffect(() => {\n setTitleMenu(getMenu)\n }, [getMenu])\n\n const handleProfileMenuOpen = (event) => {\n setAnchorEl(event.currentTarget)\n }\n\n const handleMobileMenuClose = () => {\n setMobileMoreAnchorEl(null)\n }\n\n const handleMenuClose = () => {\n setAnchorEl(null)\n handleMobileMenuClose()\n }\n\n const handleMobileMenuOpen = (event) => {\n setMobileMoreAnchorEl(event.currentTarget)\n }\n\n const menuId = 'primary-search-account-menu'\n\n const mobileMenuId = 'primary-search-account-menu-mobile'\n const handleSettingAccount = () => {\n history.push(pathKeys.SETTING_ACCOUNT)\n onMenu('Quản lý tài khoản')\n }\n\n const handleLogOut = () => {\n localStorage.removeItem('alertGiftBox')\n onLogout()\n }\n\n const handleClickPay = () => {\n handleUpgrade({ i18n, user, dispatch })\n }\n const handleCloseVersion = () => {\n setIsPopupVersion(false)\n }\n const handleVersion = () => {\n setIsPopupVersion(true)\n }\n\n return (\n
\n \n \n
\n

{titlePage}

\n
\n
\n handleClickPay()}\n >\n {t('common.btn.upgrade')}\n \n \n {user.avatar ? (\n \n ) : (\n \n )}\n \n

{user && user.name}

\n \n \n \n \n \n \n handleSettingAccount()}>\n \n \n \n \n \n handleVersion()}>\n \n \n \n \n \n handleLogOut()}>\n \n \n \n \n \n \n\n
\n
\n \n \n handleCloseVersion()}\n >\n
\n

{t('version.title')}

\n \n
\n \n
\n )\n}\n","const baseUrl = `${process.env.REACT_APP_API_URL}`\n\n// eslint-disable-next-line import/no-anonymous-default-export\nexport default {\n shared: {\n getWhatYouNeed: `${baseUrl}api/v1.0/shared/getWhatYouNeed`, // get\n getDashboard: `${baseUrl}api/v1.0/shared/dashboard`, // get\n },\n dashboard: {\n getMessageStatistic: `${baseUrl}api/v1.0/getStatistic/message`, // get\n getCampaignStatistic: `${baseUrl}api/v1.0/getStatistic/campaign`, // get\n getScenarioStatistic: `${baseUrl}api/v1.0/getStatistic/scenario`, // get\n getCustomerStatistic: `${baseUrl}api/v1.0/getStatistic/customer`, // get\n getGenAIStatistic: `${baseUrl}api/v1.0/genAI/getStatistic`, // get\n getFanpageStatistic: `${baseUrl}api/v1.0/fanPage/reportPage`, // get\n getTagBombotStatistic: `${baseUrl}api/v1.0/bombotTags/getStatistic`, // get\n getTagFacebookStatistic: `${baseUrl}api/v1.0/facebookTags/getStatistic`, // get\n },\n appConfig: {\n api: `${baseUrl}api/v1.0/appConfig`, // get\n addLog: `${baseUrl}api/v1.0/log`, // post\n },\n user: {\n loginSocial: `${baseUrl}api/v1.0/user/login_social`, // get\n user: `${baseUrl}api/v1.0/user`, // put\n login: `${baseUrl}api/v1.0/user/login`, // get\n verifyPhone: `${baseUrl}api/v1.0/user/verify`, // get\n getOTP: `${baseUrl}api/v1.0/user/getOTP`, // get\n changePassword: `${baseUrl}api/v1.0/user/changePassword`, // get\n getInviteCode: `${baseUrl}api/v1.0/user/getInviteCode`, // get\n confirmInviteCode: `${baseUrl}api/v1.0/user/confirmInviteCode`, // get\n forgotPassword: `${baseUrl}api/v1.0/user/resetPassword`, // get\n redeemPoints: `${baseUrl}api/v1.0/user/redeemPoints`, // get, doi diem\n unlink: `${baseUrl}api/v1.0/user/unlink`, // DELETE\n },\n fanpageApi: {\n reportPage: `${baseUrl}api/v1.0/fanPage/reportPage`, // get\n fanPageDetail: `${baseUrl}api/v1.0/fanPageDetail`, // post\n },\n campaignApi: {\n campaign: `${baseUrl}api/v1.0/campaign`, // get\n },\n scenarioApi: {\n scenario: `${baseUrl}api/v1.0/campaign/857636ce-e9f7-48c9-8474-9ae5fa309392/scenario?id=857636ce-e9f7-48c9-8474-9ae5fa309392&page=0&sort=createdAt,asc`, // get\n },\n customerApi: {\n customer: `${baseUrl}api/v1.0/customer`, // get\n create: `${baseUrl}api/v1.0/campaign`, // post\n addCampainByPart: `${baseUrl}api/v1.0/campaign/addCampainByPart`, // post\n addCampaignNoScenario: `${baseUrl}api/v1.0/campaign/addCampaignNoScenario`, // post\n createCustomer: `${baseUrl}api/v1.0/campaignCustomer`, // post\n addMultiCustomersBombotTags: `${baseUrl}api/v1.0/customer/customersBombotTags`, // post\n deleteMultiCustomersBombotTags: `${baseUrl}api/v1.0/customer/customersBombotTags`, // delete\n },\n}\n","import axiosClient from \"./axiosClient\";\nimport urlApi from \"./url\";\n\nconst getGuide = (params) => {\n return axiosClient.get(`${urlApi.appConfig.api}/guide_webapp`, { params });\n};\n\nconst getCountry = (params) => {\n return axiosClient.get(`${urlApi.appConfig.api}/country`, { params });\n};\n\nconst recordLog = (payload) => {\n return axiosClient.post(urlApi.appConfig.addLog, payload);\n};\nconst AppConfigAPI = {\n getGuide,\n recordLog,\n getCountry,\n};\n\nexport default AppConfigAPI;\n","import axios from 'axios'\nimport queryString from 'query-string'\nimport AppConfigAPI from './appConfig'\nimport i18n from 'i18next'\n\n// Set up default config for http requests here\n// Please have a look at here `https://github.com/axios/axios#request- config` for the full list of configs\nconst axiosClient = axios.create({\n baseURL: process.env.REACT_APP_API_URL,\n headers: localStorage.getItem('token')\n ? {\n 'content-type': 'application/json',\n authorization: localStorage.getItem('token') || undefined,\n }\n : {\n 'content-type': 'application/json',\n },\n paramsSerializer: (params) => queryString.stringify(params),\n})\n\naxiosClient.interceptors.request.use(async (config) => {\n // Handle token here ...\n if (i18n.language) {\n config.headers.lang = i18n.language?.substring(0, 2)\n }\n\n if (localStorage.getItem('token')) {\n config.headers.authorization = localStorage.getItem('token')\n }\n return config\n})\n\nlet retry = 0\n\naxiosClient.interceptors.response.use(\n (response) => {\n if (response && response.data) {\n return response.data\n }\n retry = 0\n return response\n },\n async (error) => {\n const payload = {\n errorCode: error?.response?.status || 0,\n message: 'webapp',\n }\n if (error.response?.data?.error?.message) {\n error.message = error.response.data.error.message\n payload.debug = error.response.data.error.message\n } else {\n payload.debug = error.message\n }\n if (error && error.response && error.response.status === 401) {\n console.log('error 401', error)\n localStorage.removeItem('token')\n localStorage.removeItem('id')\n window.location.reload(true)\n }\n if (retry === 0) AppConfigAPI.recordLog([payload])\n retry++\n // Handle errors\n throw error\n }\n)\n\nexport default axiosClient\n","// import { BehaviorSubject } from 'rxjs';\nimport axios from 'axios'\nimport axiosClient from './axiosClient'\nimport urlApi from './url'\nimport { pathKeys } from '../constants'\n\nexport const accountApi = {\n login,\n apiAuthenticate,\n onSubmitEmail,\n changePassword,\n logout,\n getInviteCode,\n transferToAccount,\n updateNotiPermissionToken,\n}\n\nfunction onSubmitEmail(params) {\n return new Promise((resolve, reject) => {\n const response = axiosClient.post(`${urlApi.user.login}`, params)\n if (response) {\n resolve(response)\n } else {\n reject(null)\n }\n })\n}\n\nfunction changePassword(params) {\n return new Promise((resolve, reject) => {\n const response = axiosClient.post(`${urlApi.user.changePassword}`, params)\n if (response) {\n resolve(response)\n } else {\n reject(null)\n }\n })\n}\n\nfunction getInviteCode(params) {\n return new Promise((resolve, reject) => {\n const response = axiosClient.get(`${urlApi.user.getInviteCode}`)\n if (response) {\n resolve(response)\n } else {\n reject(null)\n }\n })\n}\n\nfunction getMeFacebook() {\n return new Promise((resolve, reject) => {\n window.FB.api(\n '/me',\n {\n fields:\n 'id,email,first_name,last_name,name,picture.width(200).height(200)',\n },\n function (response) {\n if (response) {\n resolve(response)\n } else {\n reject(null)\n }\n }\n )\n })\n}\n\nfunction authLoginFacebook() {\n // Hàm api.getUser() trả về một promise object\n return new Promise((resolve, reject) => {\n window.FB.login(\n function (response) {\n if (response) {\n resolve(response)\n } else {\n reject(null)\n }\n },\n {\n auth_type: 'rerequest',\n scope: 'email, public_profile,pages_show_list',\n enable_profile_selector: true,\n return_scopes: true,\n }\n // { scope: \"email\" }\n )\n })\n}\n\nfunction apiAuthenticate(authResponse, me, ref) {\n return new Promise((resolve, reject) => {\n const params = {\n id: authResponse.userID,\n name: me.name,\n email: me.email,\n avatar: me.picture.data.url,\n fbAccessToken: authResponse.accessToken,\n }\n if (ref) params.partnerId = ref\n const response = axios.post(`${urlApi.user.loginSocial}`, params)\n if (response) {\n resolve(response)\n } else {\n reject(null)\n }\n })\n}\n\nfunction login(ref) {\n return new Promise((resolve, reject) => {\n window.FB.getLoginStatus(function (response) {\n if (response.status === 'connected') {\n getMeFacebook().then((me) => {\n apiAuthenticate(response.authResponse, me, ref).then(\n (loginSocial) => {\n resolve({ ...loginSocial.data, email: me.email })\n }\n )\n })\n } else {\n authLoginFacebook().then((auth) => {\n if (auth.authResponse) {\n getMeFacebook().then((me) => {\n apiAuthenticate(auth.authResponse, me, ref).then(\n (loginSocial) => {\n resolve({ ...loginSocial.data, email: me.email })\n }\n )\n })\n } else {\n reject(null)\n }\n })\n }\n })\n })\n}\n\nfunction logout() {\n localStorage.removeItem('token')\n localStorage.removeItem('id')\n window.FB.getLoginStatus(function (response) {\n if (response && response.status === 'connected') {\n window.FB.logout(function (response) {\n window.location.href = `${pathKeys.LOGIN}`\n })\n } else if (response.status === 'unknown') {\n window.FB.logout(function (response) {})\n window.location.href = `${pathKeys.LOGIN}`\n }\n window.location.reload(true)\n })\n\n // window.FB.api('/me/permissions', 'delete', null, (res) => {\n // if (res) {\n // window.FB.logout();\n // }\n // window.location.href = `${pathKeys.LOGIN}`;\n // });\n}\n\nfunction transferToAccount(payload) {\n return new Promise((resolve, reject) => {\n const response = axiosClient.post(`/api/v1.0/user/changeMainUser`, payload)\n if (response) {\n resolve(response)\n } else {\n reject(null)\n }\n })\n}\n\nfunction updateNotiPermissionToken(payload) {\n return new Promise((resolve, reject) => {\n const response = axiosClient.post(\n `/api/v1.0/user/subscribeNotification`,\n payload\n )\n if (response) {\n resolve(response)\n } else {\n reject(null)\n }\n })\n}\n","import axiosClient from \"./axiosClient\";\nimport urlApi from \"./url\";\nconst appApi = {\n getUser: (uid) => {\n return axiosClient.get(`${urlApi.user.user}/${uid}`);\n },\n forgotPassword: (params) => {\n return axiosClient.get(`${urlApi.user.forgotPassword}`, {params});\n },\n \n};\n\nexport default appApi;\n","import { createSlice } from \"@reduxjs/toolkit\";\nimport initialState from \"../../configs/redux/initialState\";\n\nconst loginReducer = createSlice({\n name: \"login\",\n initialState: initialState.loginReducer,\n reducers: {\n setAccount: (state, action) => {\n state.account = action.payload;\n },\n setStatusLogined: (state, action) => {\n state.statusLogined = action.payload;\n },\n setForgotPassword: (state, action) => {\n state.forgotPassword = action.payload;\n },\n \n }\n});\n\nexport const {\n setAccount,\n setStatusLogined,\n setForgotPassword\n} = loginReducer.actions;\n\nexport default loginReducer.reducer;\n","import { createSlice } from \"@reduxjs/toolkit\";\nimport initialState from \"../../configs/redux/initialState\";\n\n// IMPORTANT: Note that with @reduxjs/toolkit, you can change state directly.\n\nconst appReducer = createSlice({\n name: \"app\",\n initialState: {\n ...initialState.appReducer,\n share: null,\n },\n reducers: {\n showLoading(state, action) {\n state.loading = true;\n },\n hideLoading(state, action) {\n state.loading = false;\n },\n setUser(state, action) {\n state.user = action.payload;\n },\n setLoading(state, action) {\n state.loading = action.payload;\n },\n setShare(state, action) {\n state.share = action.payload;\n },\n },\n});\n\nexport const { showLoading, hideLoading, setUser, setLoading, setShare } =\n appReducer.actions;\n\nexport default appReducer.reducer;\n","import { accountApi } from \"../../api/accountApi\";\nimport appApi from \"../../api/appApi\";\nimport _ from \"lodash\";\nimport {\n setAccount,\n setStatusLogined,\n setForgotPassword,\n} from \"./LoginReducer\";\nimport { setUser, setLoading } from \"../App/AppReducer\";\n\nexport function login(ref) {\n return (dispatch) => {\n dispatch(setLoading(true));\n return accountApi.login(ref).then(\n (res) => {\n localStorage.setItem(\"token\", res.token);\n localStorage.setItem(\"id\", res.id);\n dispatch(setAccount(res));\n dispatch(setUser(res));\n return appApi.getUser(res.id).then(\n (res) => {\n dispatch(setUser(res));\n dispatch(setLoading(false));\n },\n (error) => {\n dispatch(setStatusLogined(false));\n dispatch(setLoading(false));\n }\n );\n },\n (error) => {\n dispatch(setLoading(false));\n }\n );\n };\n}\n\nexport function onSubmitEmail(params) {\n return (dispatch) => {\n dispatch(setLoading(true));\n return accountApi.onSubmitEmail(params).then(\n (res) => {\n if (_.isObject(res) && res.id) {\n localStorage.setItem(\"token\", res.token);\n localStorage.setItem(\"id\", res.id);\n dispatch(setAccount(res));\n dispatch(setUser(res));\n } else {\n dispatch(setStatusLogined(false));\n }\n dispatch(setLoading(false));\n },\n (error) => {\n dispatch(setStatusLogined(false));\n dispatch(setLoading(false));\n }\n );\n };\n}\n\nexport function onLogout() {\n return (dispatch) => {\n return accountApi.logout();\n };\n}\n\nexport function onSubmitForgotPassword(params) {\n return (dispatch) => {\n dispatch(setLoading(true));\n return appApi.forgotPassword(params).then(\n (res) => {\n if (res && !_.isObject(res)) {\n dispatch(setForgotPassword(true));\n } else {\n dispatch(setForgotPassword(false));\n }\n dispatch(setLoading(false));\n },\n (error) => {\n dispatch(setForgotPassword(false));\n dispatch(setLoading(false));\n }\n );\n };\n}\n","import { createSelector } from \"@reduxjs/toolkit\";\n\nconst selectAppReducer = (state) => state.appReducer;\nexport const user = (state) => state.appReducer.user;\nexport const loading = (state) => state.appReducer.loading;\n\nexport const selectUser = createSelector(user, (user) => {\n return user;\n});\n\nexport const selectShare = createSelector(selectAppReducer, (state) => {\n return state.share;\n});\n","import { createSelector } from \"@reduxjs/toolkit\";\nexport const verifyNumberPhone = (state) => state.homeReducer.verifyNumberPhone;\nexport const share = (state) => state.homeReducer.share;\nexport const dashboard = (state) => state.homeReducer.dashboard;\nexport const verifyNumberPhoneError = (state) =>\n state.homeReducer.verifyNumberPhoneError;\nexport const selectErrorVerifyPhone = (state) =>\n state.homeReducer.verifyNumberPhoneError;\n\nexport const getVerifyNumberPhone = createSelector(\n [verifyNumberPhone],\n (verify) => {\n return verify;\n }\n);\n\nexport const selectUser = createSelector(share, (share) => {\n return share.user;\n});\n","import HeaderPage from \"./HeaderContainer\";\n\nexport default HeaderPage;\n","import { connect } from \"react-redux\";\nimport { withRouter } from 'react-router-dom';\nimport HeaderView from \"./HeaderView\";\nimport * as selectorsSidebar from \"../Sidebar/SidebarSelectors\";\nimport * as actionsSidebar from \"../Sidebar/SidebarActions\";\nimport * as actionsLogin from \"../Login/LoginActions\";\nimport * as selectorsApp from \"../App/AppSelectors\";\nimport * as selectorsHome from \"../Home/HomeSelectors\";\nconst mapStateToProps = state => {\n return {\n getMenu: selectorsSidebar.getMenu(state),\n user: selectorsApp.user(state),\n share: selectorsHome.share(state),\n dehaze: selectorsSidebar.dehaze(state),\n };\n};\n\nconst mapDispatchToProps = dispatch => ({\n onMenu: (data) => dispatch(actionsSidebar.menu(data)),\n onLogout: () => dispatch(actionsLogin.onLogout()),\n \n \n});\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(HeaderView));\n","import i18n from 'i18next'\nimport LanguageDetector from 'i18next-browser-languagedetector'\nimport { initReactI18next } from 'react-i18next'\nimport Backend from 'i18next-http-backend'\nimport appApi from 'api/appApi'\ni18n\n .use(LanguageDetector)\n .use(Backend)\n .use(initReactI18next)\n // init i18next\n // for all options read: https://www.i18next.com/overview/configuration-options\n .init({\n // debug: true,\n fallbackLng: 'en',\n interpolation: {\n escapeValue: false,\n },\n })\n .then(async () => {\n try {\n const uid = localStorage.getItem('id')\n if (!uid) throw new Error('new client')\n const user = await appApi.getUser(uid)\n if (!user.lang) {\n if (!uid) throw new Error('new client')\n }\n i18n.changeLanguage(user.lang)\n } catch (error) {\n // i18n.changeLanguage(\"vi\");\n }\n })\n\nexport default i18n\n","import i18n from 'utils/i18n'\nimport axiosClient from './axiosClient'\nimport urlApi from './url'\nconst homeApi = {\n updateUser: (params, uid) => {\n return axiosClient.put(`${urlApi.user.user}/${uid}`, params);\n },\n verifyNumberPhone: (params) => {\n return axiosClient.get(`${urlApi.user.verifyPhone}`, { params });\n },\n getOTP: (params) => {\n return axiosClient.get(`${urlApi.user.getOTP}`, { params });\n },\n getWhatYouNeed: (params) => {\n return axiosClient.get(`${urlApi.shared.getWhatYouNeed}`, {\n params: {\n ...params,\n lang:\n i18n?.language === \"en-US\" || !i18n?.language ? \"en\" : i18n?.language\n }\n });\n },\n getDashboard: (params) => {\n return axiosClient.get(`${urlApi.shared.getDashboard}`, { params });\n },\n\n getTagBombotStatistic: (params) => {\n return axiosClient.get(`${urlApi.dashboard.getTagBombotStatistic}`, {\n params\n });\n },\n\n getTagFacebookStatistic: (params) => {\n return axiosClient.get(`${urlApi.dashboard.getTagFacebookStatistic}`, {\n params\n });\n },\n\n getMessageStatistic: (params) => {\n return axiosClient.get(`${urlApi.dashboard.getMessageStatistic}`, {\n params\n });\n },\n\n getCampaignStatistic: (params) => {\n return axiosClient.get(`${urlApi.dashboard.getCampaignStatistic}`, {\n params\n });\n },\n\n getScenarioStatistic: (params) => {\n return axiosClient.get(`${urlApi.dashboard.getScenarioStatistic}`, {\n params\n });\n },\n\n getFanpageStatistic: (params) => {\n return axiosClient.get(`${urlApi.dashboard.getFanpageStatistic}`, {\n params\n });\n },\n\n getCustomerStatistic: (params) => {\n return axiosClient.get(`${urlApi.dashboard.getCustomerStatistic}`, {\n params\n });\n },\n\n getGenAIStatistic: (params) => {\n return axiosClient.get(`${urlApi.dashboard.getGenAIStatistic}`, {\n params\n });\n }\n};\n\nexport default homeApi\n","import { createSlice } from \"@reduxjs/toolkit\";\nimport initialState from \"../../configs/redux/initialState\";\n\nconst homeReducer = createSlice({\n name: \"home\",\n initialState: initialState.homeReducer,\n reducers: {\n verifyNumberPhone: (state, action) => {\n state.verifyNumberPhone = action.payload;\n },\n share: (state, action) => {\n state.share = action.payload;\n },\n dashboard: (state, action) => {\n state.dashboard = action.payload;\n },\n verifyNumberPhoneError: (state, action) => {\n state.verifyNumberPhoneError = action.payload;\n },\n \n }\n});\n\nexport const {\n verifyNumberPhone,\n share,\n dashboard,\n verifyNumberPhoneError\n} = homeReducer.actions;\n\nexport default homeReducer.reducer;\n","import homeApi from \"../../api/homeApi\";\nimport {\n verifyNumberPhone,\n share,\n dashboard,\n verifyNumberPhoneError,\n} from \"./HomeReducer\";\nimport { setUser, setLoading } from \"../App/AppReducer\";\nimport _ from \"lodash\";\nimport { showError } from \"stores/alert/slice.alert\";\n\nexport function updateUser(data, uid) {\n return (dispatch) => {\n dispatch(setLoading(true));\n return homeApi.updateUser(data, uid).then(\n (res) => {\n dispatch(setUser(res));\n dispatch(setLoading(false));\n return res;\n },\n (error) => {\n dispatch(setLoading(false));\n return error;\n }\n );\n };\n}\n\nexport function onVerifyNumberPhone(verify, data, uid) {\n return (dispatch) => {\n dispatch(setLoading(true));\n return dispatch(\n updateUser(\n {\n ...data,\n verify: true,\n },\n uid\n )\n );\n };\n}\n\nexport function onVerifyNumberPhoneVoice(verify, data, uid) {\n const params = {\n phone: verify.phone,\n otp: verify.otp,\n };\n return (dispatch) => {\n dispatch(setLoading(true));\n return homeApi.verifyNumberPhone(params).then(\n (res) => {\n dispatch(setLoading(false));\n dispatch(verifyNumberPhoneError(false));\n\n dispatch(verifyNumberPhone(true));\n return dispatch(updateUser(data, uid));\n },\n () => {\n dispatch(setLoading(false));\n if (verify.otp) {\n dispatch(verifyNumberPhoneError(true));\n }\n dispatch(verifyNumberPhone(false));\n }\n );\n };\n}\n\nexport function onGetOtp(data) {\n const params = {\n phone: data.phone,\n type: data.type,\n };\n return (dispatch) => {\n dispatch(setLoading(true));\n dispatch(verifyNumberPhoneError(false));\n dispatch(setLoading(false));\n return homeApi.getOTP(params).then(\n (res) => {\n dispatch(setLoading(false));\n },\n (error) => {\n dispatch(showError(error.message));\n dispatch(setLoading(false));\n }\n );\n };\n}\n\nexport function onWhatYouNeed() {\n const params = {\n fields: \"user,users,package,history,version,versions,business,province\",\n };\n return (dispatch) => {\n dispatch(setLoading(true));\n return homeApi.getWhatYouNeed(params).then(\n (res) => {\n dispatch(share(res));\n dispatch(setLoading(false));\n },\n (error) => {\n dispatch(setLoading(false));\n }\n );\n };\n}\n\nexport function onDashboard() {\n return (dispatch) => {\n dispatch(setLoading(true));\n return homeApi.getDashboard().then(\n (res) => {\n dispatch(dashboard(res));\n dispatch(setLoading(false));\n },\n (error) => {\n dispatch(setLoading(false));\n }\n );\n };\n}\n","import React, { useMemo } from 'react'\n\nimport { useTranslation } from 'react-i18next'\nimport { Button, MenuItem, Menu } from '@material-ui/core'\nimport TranslateIcon from '@material-ui/icons/Translate'\nimport Flex from 'components/Flex'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { updateUser } from 'views/Home/HomeActions'\nimport { selectUser } from 'views/App/AppSelectors'\n\nconst ChangeLanguage = ({ isUser }) => {\n const [anchorEl, setAnchorEl] = React.useState(null)\n const { i18n } = useTranslation()\n const dispatch = useDispatch()\n const user = useSelector(selectUser)\n\n const handleChangeLanguage = (lng) => {\n handleClose()\n i18n.changeLanguage(lng)\n if (isUser) {\n updateLngUser(lng)\n }\n }\n const currentLanguage = useMemo(() => {\n if (!i18n?.language) return 'Change language'\n switch (i18n.language?.substring(0, 2)) {\n case 'kh':\n return 'ភាសាខ្មែរ'\n case 'vi':\n return 'Tiếng Việt'\n case 'en':\n return 'English'\n default:\n return 'Change language'\n }\n }, [i18n.language])\n\n const updateLngUser = (lng) => {\n dispatch(\n updateUser(\n {\n ...user,\n lang: lng,\n },\n user.id\n )\n )\n }\n\n const onSelectLanguage = (event) => {\n setAnchorEl(event.currentTarget)\n }\n\n const handleClose = () => {\n setAnchorEl(null)\n }\n\n const languages = [\n {\n label: 'Tiếng Việt',\n value: 'vi',\n },\n {\n label: 'English',\n value: 'en',\n },\n {\n label: 'ភាសាខ្មែរ',\n value: 'kh',\n },\n ]\n\n return (\n <>\n \n \n {languages.map((lng, index) => (\n handleChangeLanguage(lng.value)}\n >\n {lng.label === 'Tiếng Việt' && (\n \"icon\"\n )}\n {lng.label === 'English' && (\n \"icon\"\n )}\n {lng.label === 'ភាសាខ្មែរ' && (\n \"icon\"\n )}\n {lng.label}\n \n ))}\n \n \n )\n}\n\nexport default ChangeLanguage\n","import React, { useMemo } from \"react\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport SidebarContainer from \"../Sidebar\";\nimport HeaderContainer from \"../Header\";\nimport cn from \"classnames\";\nimport { useTranslation } from \"react-i18next\";\nimport ChangeLanguage from \"components/ChangeLanguage\";\n\nconst useStyles = makeStyles((theme) => ({\n root: {},\n sidebar: {\n width: 250,\n float: \"left\",\n height: \"100vh\",\n overflowY: \"auto\",\n boxShadow: \"0 0 2rem 0 rgba(136,152,170,.15)!important\",\n background: \"white\",\n position: \"fixed\",\n top: 0,\n left: 0,\n transition: \"width 0.3s ease, left 0.3s ease\",\n },\n sidebarDehaze: {\n width: 60,\n float: \"left\",\n height: \"100vh\",\n overflowY: \"auto\",\n boxShadow: \"0 0 2rem 0 rgba(136,152,170,.15)!important\",\n background: \"white\",\n position: \"fixed\",\n top: 0,\n left: 0,\n zIndex: 10,\n transition: \"width 0.3s ease, left 0.3s ease\",\n },\n contentRight: {\n width: \"calc(100% - 250px)\",\n height: \"calc(100vh - 70px - 73px)\",\n overflow: \"auto\",\n float: \"right\",\n paddingLeft: 15,\n paddingRight: 15,\n marginTop: 76,\n transition: \"width 0.3s ease\",\n },\n contentRightDehaze: {\n width: \"calc(100% - 60px)\",\n height: \"calc(100vh - 70px - 73px)\",\n overflow: \"auto\",\n float: \"right\",\n paddingLeft: 15,\n paddingRight: 15,\n marginTop: 76,\n transition: \"width 0.3s ease\",\n },\n footer: {\n height: 70,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n paddingRight: 15,\n paddingLeft: 15,\n color: \"#05ae34\",\n bottom: 0,\n width: \"calc(100% - 280px)\",\n background: \"#F6F9FC\",\n position: \"fixed\",\n zIndex: 99,\n transition: \"width 0.3s ease\",\n },\n footerDehaze: {\n height: 70,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n paddingRight: 15,\n paddingLeft: 15,\n color: \"#05ae34\",\n bottom: 0,\n width: \"calc(100% - 90px)\", // Width when sidebar is collapsed\n background: \"#F6F9FC\",\n position: \"fixed\",\n zIndex: 99,\n transition: \"width 0.3s ease\",\n },\n right: {\n display: \"flex\",\n alignItems: \"center\",\n \"& a\": {\n marginLeft: 15,\n color: \"#05ae34\",\n textDecoration: \"none\",\n },\n },\n}));\n\nconst MainLayoutView = (props) => {\n const { children, dehaze } = props;\n const classes = useStyles();\n const { t, i18n } = useTranslation();\n const configPage = useMemo(() => {\n if (i18n.language?.substring(0, 2) === \"kh\") {\n return {\n page_id: \"102636822160260\",\n app_id: \"4087907114572119\",\n };\n } else {\n return {\n page_id: \"103634791744953\",\n app_id: \"4087907114572119\",\n };\n }\n }, [i18n.language]);\n\n return (\n
\n
\n \n
\n \n \n
{children}
\n
\n
\n © 2021{\" \"}\n \n @Bombot.vn\n \n
\n
\n \n \n {t(\"footer.home\")}\n \n \n {t(\"footer.affiliate\")}\n \n \n {t(\"footer.policy\")}\n \n \n {t(\"footer.private_policy\")}\n \n
\n
\n
\n
\n );\n};\n\nMainLayoutView.propTypes = {};\n\nMainLayoutView.defaultProps = {};\n\nexport default MainLayoutView;","import {\n FormControl,\n Tooltip,\n IconButton,\n makeStyles,\n} from \"@material-ui/core\";\nimport Flex from \"components/Flex\";\nimport React, { useCallback, useEffect, useState } from \"react\";\nimport OtpInput from \"react-otp-input\";\nimport FormDialog from \"../../../../components/FormDialog\";\nimport ArrowBackIcon from \"@material-ui/icons/ArrowBack\";\nimport styles from \"../../styles.module.scss\";\nimport firebase from \"firebase\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport ButtonLoading from \"components/ButtonLoading\";\nimport { Skeleton } from \"@material-ui/lab\";\nimport { verifyNumberPhoneError } from \"views/Home/HomeReducer\";\nimport { selectErrorVerifyPhone } from \"views/Home/HomeSelectors\";\nimport homeApi from \"api/homeApi\";\nimport { setLoading } from \"views/App/AppReducer\";\nimport { showError } from \"stores/alert/slice.alert\";\nimport smsExample from \"../../../../assets/images/code.jpg\";\nimport { useTranslation } from \"react-i18next\";\n\nconst useStyles = makeStyles((theme) => ({\n account: {\n display: \"flex\",\n alignItems: \"center\",\n background: \"#f0f0f0\",\n padding: 15,\n },\n right: {\n marginLeft: 15,\n },\n wrapAccount: {\n padding: 15,\n },\n form: {\n width: \"100%\",\n },\n number: {\n fontWeight: \"bold\",\n },\n errorCode: {\n margin: \"10px 0px 0px 10px\",\n fontSize: \"14px\",\n color: \"red\",\n textAlign: \"center\",\n },\n}));\n\nlet appVerifier,\n interval,\n secondRef = 60;\n\nconst DialogVerifyPhone = ({\n phone,\n handleBackVerify,\n handleVerify,\n handleVerifyOtpVoice,\n}) => {\n const classes = useStyles();\n const dispatch = useDispatch();\n const [isShowInputVerify, setIsShowInputVerify] = useState(false);\n const [code, setCode] = useState(\"\");\n const [loadingVerify, setLoadingVerify] = useState(false);\n const [loadingCaptcha, setLoadingCaptcha] = useState(true);\n const [seconds, setSeconds] = useState(60);\n const [captchaArea, setCaptchaArea] = useState(null);\n const errorVerify = useSelector(selectErrorVerifyPhone);\n const [typeReceive, setTypeReceive] = useState(1);\n const { i18n, t } = useTranslation();\n\n const onRefChange = useCallback((node) => {\n setCaptchaArea(node);\n }, []);\n useEffect(() => {\n if (captchaArea) {\n appVerifier = new firebase.auth.RecaptchaVerifier(captchaArea, {\n size: 200,\n callback: () => {\n onSignInSubmit();\n },\n });\n appVerifier.render().then(() => {\n setLoadingCaptcha(false);\n });\n }\n }, [captchaArea]);\n\n const onSignInSubmit = () => {\n receiveCode();\n };\n\n const receiveCode = () => {\n setErrorVerify(false);\n firebase\n .auth()\n .signInWithPhoneNumber(phone, appVerifier)\n .then((confirmationResult) => {\n console.log('receiveCode confirmationResult', confirmationResult);\n window.confirmationResult = confirmationResult;\n\n interval = setInterval(() => {\n if (secondRef > 0) {\n setSeconds((old) => old - 1);\n secondRef -= 1;\n } else {\n clearInterval(interval);\n }\n }, 1000);\n setIsShowInputVerify(true);\n })\n .catch((err) => {\n console.log('receiveCode err', err);\n dispatch(showError(err.message));\n });\n };\n\n const onConfirm = () => {\n setErrorVerify(false);\n if (typeReceive === 1) {\n setLoadingVerify(true);\n window.confirmationResult\n .confirm(code)\n .then(() => {\n handleVerify(code);\n })\n .catch((error) => {\n console.log(error);\n setErrorVerify(true);\n })\n .then(() => {\n setLoadingVerify(false);\n });\n } else {\n handleVerifyOtpVoice(code);\n }\n };\n\n const resetCount = () => {\n if (interval) clearInterval(interval);\n setSeconds(60);\n secondRef = 60;\n };\n\n const resendCode = () => {\n if (seconds > 0) return;\n setCode(\"\");\n setTypeReceive(1);\n resetCount();\n setLoadingCaptcha(true);\n setIsShowInputVerify(false);\n };\n\n const handleCodeResquestVoice = async () => {\n // if (seconds > 0) return;\n setCode(\"\");\n setTypeReceive(2);\n const params = { phone: phone, type: 2 };\n try {\n dispatch(setLoading(true));\n await homeApi.getOTP(params);\n dispatch(setLoading(false));\n resetCount();\n\n interval = setInterval(() => {\n if (secondRef > 0) {\n setSeconds((old) => old - 1);\n secondRef -= 1;\n } else {\n clearInterval(interval);\n }\n }, 1000);\n } catch (error) {\n dispatch(showError(error.message));\n dispatch(setLoading(false));\n }\n };\n\n const setErrorVerify = (isError) => {\n dispatch(verifyNumberPhoneError(isError));\n };\n\n return (\n \n
\n
\n \n handleBackVerify()}\n color=\"secondary\"\n className=\"btn_icon\"\n >\n \n \n \n
\n

{t(\"phone_verification.title\")}

\n\n

\n {t(\"phone_verification.description\")}{\" \"}\n {phone}\n

\n
\n
\n {isShowInputVerify ? (\n \n \n <>\n {typeReceive === 1 && (\n
\n \n

\n {t(\"phone_verification.sample_sms\")}\n

\n
\n )}\n setCode(otp)}\n numInputs={typeReceive === 1 ? 6 : 4}\n separator={-}\n />\n {errorVerify && (\n

{t(\"noti.otp\")}

\n )}\n onConfirm()}\n type=\"button\"\n isLoading={loadingVerify}\n />\n\n

\n {t(\"phone_verification.not_received_otp\")}\n

\n

\n 0 ? \"not-allowed\" : \"pointer\" }}\n onClick={resendCode}\n >\n {t(\"phone_verification.send_again\")} ({seconds}s)\n \n {i18n.language?.substr(0, 2) === \"vi\" && (\n <>\n {t(\"phone_verification.or\")}\n 0 ? \"not-allowed\" : \"pointer\",\n }}\n className={styles.resend}\n onClick={() => handleCodeResquestVoice()}\n >\n {t(\"phone_verification.send_code_via_call\")} ({seconds}\n s)\n \n \n )}\n

\n \n
\n
\n ) : (\n \n {loadingCaptcha && (\n \n )}\n
\n
\n )}\n
\n
\n );\n};\n\nexport default DialogVerifyPhone;\n","import MainLayoutPage from \"./MainLayoutContainer\";\n\nexport default MainLayoutPage;\n","import { connect } from \"react-redux\";\nimport { withRouter } from 'react-router-dom';\nimport MainLayoutView from \"./MainLayoutView\";\nimport * as selectorsSidebar from \"../Sidebar/SidebarSelectors\";\nconst mapStateToProps = state => {\n return {\n dehaze: selectorsSidebar.dehaze(state),\n };\n};\n\nconst mapDispatchToProps = dispatch => ({\n \n});\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(MainLayoutView));\n","import { Card, CardActions, CardContent } from \"@material-ui/core\";\nimport Flex from \"components/Flex\";\nimport pathKeys from \"constants/pathKeys\";\nimport React, { useMemo } from \"react\";\nimport { Link } from \"react-router-dom\";\nimport styles from \"../../styles.module.scss\";\nimport { Doughnut } from \"react-chartjs-2\";\nimport cn from \"classnames\";\nimport { useTranslation } from \"react-i18next\";\n\nconst option_default = {\n responsive: true,\n maintainAspectRatio: false,\n animation: {\n animateRotate: false,\n animateScale: false\n },\n cutout: 60,\n plugins: {\n legend: {\n position: \"left\",\n align: \"middle\",\n labels: {\n usePointStyle: true,\n generateLabels: function (chart) {\n var labels = chart.data.labels;\n var dataset = chart.data.datasets[0];\n var legend = labels.map(function (label, index) {\n return {\n datasetIndex: 0,\n fillStyle:\n dataset.backgroundColor && dataset.backgroundColor[index],\n strokeStyle: dataset.borderColor && dataset.borderColor[index],\n lineWidth: dataset.borderWidth,\n text: `${label}: ${dataset.data[index]}`\n };\n });\n return legend;\n }\n }\n }\n }\n};\n\nconst options_status = {\n ...option_default\n};\n\nconst options_result = {\n ...option_default,\n plugins: {\n ...option_default.plugins,\n legend: {\n ...option_default.plugins.legend,\n position: \"right\"\n }\n }\n};\n\nexport const DashboardEmpty = () => {\n const { t } = useTranslation();\n return (\n \n {t(\"update.no_data\")}\n \n );\n};\n\nconst Chart = ({ data }) => {\n const { t, i18n } = useTranslation();\n\n const data_status = useMemo(() => {\n if (data) {\n const { campaign } = data;\n\n return {\n labels: [\n t(\"overall.campaign_and_message.sent\"),\n t(\"overall.campaign_and_message.unsent\"),\n t(\"overall.campaign_and_message.sending\"),\n t(\"overall.campaign_and_message.cancel\")\n ],\n datasets: [\n {\n data: [\n campaign?.totalCampaignDone,\n campaign?.totalCampaignPending,\n campaign?.totalCampaignRunning,\n campaign?.totalCampaignCancel\n ],\n backgroundColor: [\"#05ae34\", \"#ffc107\", \"#6610f2\", \"#bdbdbd\"],\n borderWidth: 0\n }\n ]\n };\n }\n return null;\n }, [data, i18n.language]);\n\n const data_result = useMemo(() => {\n if (data) {\n console.log(\"🚀 ~ constdata_result=useMemo ~ data:\", data);\n const { fanpage } = data;\n return {\n labels: [\n t(\"overall.campaign_and_message.sent_success\"),\n t(\"overall.campaign_and_message.sent_failed\"),\n t(\"overall.campaign_and_message.unsent\")\n ],\n\n datasets: [\n {\n data: [\n fanpage?.totalSuccess,\n fanpage?.totalFail,\n fanpage?.totalNotSend\n ],\n backgroundColor: [\"#05ae34\", \"#dc3545\"],\n borderWidth: 0\n }\n ]\n };\n }\n return null;\n }, [data]);\n\n // const totalCampaign = useMemo(() => {\n // if (Object.keys(data?.campaign).length) {\n // const { totalCampaignDone, totalCampaignPending, totalCampaignRunning } =\n // data.campaign;\n // return totalCampaignDone + totalCampaignPending + totalCampaignRunning;\n // }\n // return 0;\n // }, [data]);\n\n const textCampaign = useMemo(() => {\n return {\n id: \"text-center\",\n beforeDatasetsDraw(chart, args, pluginOptions) {\n const { ctx } = chart;\n\n ctx.save();\n ctx.font = \"600 14px sans-serif\";\n ctx.fillStyle = \"#000000de\";\n ctx.textAlign = \"center\";\n ctx.textBaseline = \"middle\";\n ctx.fillText(\n `${data?.campaign?.totalCampaigns || 0}\\n${t(\"update.campaign\")}`,\n chart.getDatasetMeta(0).data[0].x,\n chart.getDatasetMeta(0).data[0].y\n );\n }\n };\n }, [data?.campaign?.totalCampaigns]);\n\n const textMessage = useMemo(() => {\n return {\n id: \"text-message\",\n beforeDatasetsDraw(chart, args, pluginOptions) {\n const { ctx } = chart;\n\n ctx.save();\n ctx.font = \"600 14px sans-serif\";\n ctx.fillStyle = \"#000000de\";\n ctx.textAlign = \"center\";\n ctx.textBaseline = \"middle\";\n ctx.fillText(\n `${data?.fanpage?.totalSent || 0} ${t(\"update.message\")}`,\n chart.getDatasetMeta(0).data[0].x,\n chart.getDatasetMeta(0).data[0].y\n );\n }\n };\n }, [data?.fanpage?.totalSent]);\n\n return (\n
\n \n \n

{t(\"overall.campaign_and_message.title\")}

\n {!data?.campaign?.totalCampaigns ? (\n \n ) : (\n
\n \n \n
\n \n
\n
\n \n
\n
\n
\n \n \n {t(\"common.btn.campaign\")}\n \n \n
\n )}\n
\n \n
\n );\n};\n\nexport default Chart;\n","import {\n Card,\n CardContent,\n IconButton,\n makeStyles,\n Tooltip\n} from '@material-ui/core'\nimport moment from 'moment'\nimport { useCallback, useState } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { Link } from 'react-router-dom'\nimport Flex from '../../../../components/Flex'\nimport { pathKeys } from '../../../../constants'\nimport styles from '../../styles.module.scss'\nimport { DashboardEmpty } from '../Chart'\n\nconst useStyles = makeStyles((theme) => ({\n copyButton: {\n padding: 4,\n \"&:hover\": {\n backgroundColor: \"rgba(0, 0, 0, 0.04)\"\n }\n },\n card: {\n borderRadius: \"12px\" \n }\n}));\n\nconst AccountInfo = ({ data }) => {\n const { t } = useTranslation()\n\n const [copied, setCopied] = useState(false)\n\n const classes = useStyles()\n\n const handleCopy = useCallback((id) => {\n navigator.clipboard.writeText(id).then(() => {\n setCopied(true)\n setTimeout(() => setCopied(false), 2000)\n })\n }, [])\n\n return (\n
\n \n \n \n {t(\"overall.account_info.title\")}\n \n {!data?.info?.id ? (\n \n ) : (\n <>\n \n \n \n \n \n\n {data?.info?.type &&\n (data?.info?.type === \"bombot-eternity\" ||\n data?.info?.type === \"bombot-infinity\" ||\n data?.info?.type === \"bombot-v-nh-vi-n\" ||\n data?.info?.type === \"bombot-v-h-n\") && (\n \n \n \n \n )}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
{t(\"overall.account_info.account_id\")}:\n \n {data?.info?.id}\n\n \n {\n e.stopPropagation();\n handleCopy(data?.info?.id);\n }}\n size=\"small\"\n style={{\n marginLeft: \"12px\"\n }}\n >\n \n \n \n \n
{t(\"overall.account_info.type\")}:\n {t(\"overall.account_info.\" + data?.info?.type)}\n
{t(\"overall.account_info.giftPoint\")}:{data?.info?.giftPoint}
{t(\"overall.account_info.expire_date\")}:\n {data?.info?.expiredAt\n ? data?.info?.expiredAt > \"2100-12-24T05:46:34.304+00:00\"\n ? t(\"overall.account_info.lifetime\")\n : moment(data.info.expiredAt).format(\"DD/MM/YYYY HH:mm\")\n : \"-\"}\n
{t(\"overall.account_info.linked_account\")}:{data?.info?.numRef}
{t(\"overall.account_info.amount_customer\")}:{data?.customer?.totalCus}
{t(\"overall.account_info.amount_fanpage\")}:{data?.fanpage?.totalPage}
\n \n \n {t(\"account_management.label\")}\n \n \n \n )}\n
\n
\n
\n );\n}\n\nexport default AccountInfo\n","import React from 'react'\nimport { Controller } from 'react-hook-form'\nimport TextField from '@material-ui/core/TextField'\nimport { makeStyles } from '@material-ui/core/styles'\nimport {\n DateRangeDelimiter,\n LocalizationProvider,\n DesktopDateRangePicker,\n} from '@material-ui/pickers'\nimport DateFnsUtils from '@material-ui/pickers/adapter/date-fns'\nimport Flex from 'components/Flex'\nimport { useTranslation } from 'react-i18next'\nimport DateRangeIcon from '@material-ui/icons/DateRange'\n\n// Sử dụng makeStyles để tạo styles\nconst useStyles = makeStyles((theme) => ({\n inputPicker: {\n width: '110px',\n '& input': {\n fontSize: '12px', // Kích thước chữ trong input\n padding: '8px', // Giảm padding\n },\n },\n delimiter: {\n fontSize: '12px',\n margin: '0 8px',\n },\n adornedEnd: {\n paddingRight: 0, // Customize the right padding\n },\n}))\n\nconst BaseDatePicker2 = ({\n control,\n name,\n defaultValue,\n rules,\n styles,\n ...rest\n}) => {\n const { t } = useTranslation()\n const classes = useStyles()\n\n return (\n \n {\n return (\n \n {\n field.onChange(date)\n }}\n value={field.value || [null, null]}\n {...rest}\n renderInput={(startProps, endProps) => {\n return (\n <>\n \n ),\n classes: {\n adornedEnd: classes.adornedEnd,\n },\n }}\n />\n \n {t('update.form.to')}\n \n \n ),\n classes: {\n adornedEnd: classes.adornedEnd,\n },\n }}\n />\n \n )\n }}\n />\n \n )\n }}\n />\n \n )\n}\n\nexport default BaseDatePicker2\n","import React from 'react'\n\nconst LegendItem = ({ title, legendColor, number, percent }) => {\n return (\n \n \n\n
\n \n {title}\n

\n \n {number}\n

\n \n {percent}\n

\n
\n \n )\n}\n\nexport default LegendItem\n","import React, { useEffect, useMemo, useState } from 'react'\nimport homeApi from '../../../../api/homeApi'\nimport { Card } from '@material-ui/core'\nimport { Doughnut } from 'react-chartjs-2'\nimport BaseDatePicker2 from '../../../../components/Form/BaseDatePicker2'\nimport { useForm } from 'react-hook-form'\nimport moment from 'moment'\nimport Flex from '../../../../components/Flex'\nimport { useTranslation } from 'react-i18next'\nimport LegendItem from './LegendItem'\n\nconst CampaignChart = ({ style, ...res }) => {\n const [data, setData] = useState(null)\n const { t } = useTranslation()\n\n const { control, watch } = useForm({\n defaultValues: {\n date: [moment().subtract(30, 'days').toDate(), new Date()],\n },\n })\n\n useEffect(() => {\n ;(async () => {\n try {\n const date = watch('date')\n const res = await homeApi.getCampaignStatistic({\n from: moment(date[0]).format('YYYY-MM-DD'),\n to: moment(date[1]).format('YYYY-MM-DD'),\n })\n setData(res)\n } catch (error) {\n console.log(error)\n }\n })()\n }, [watch('date')])\n\n const totalCampaigns = data?.totalCampaigns || 0\n\n const dataCampaigns = useMemo(() => {\n return {\n labels: [\n `${t(\"dashboard.campaign_stopped\")}`, // Stopped\n `${t(\"dashboard.campaign_not_started\")}`, // Not Started\n `${t(\"dashboard.campaign_completed\")}`, // Completed\n `${t(\"dashboard.campaign_running\")}` // Running\n ],\n datasets: [\n {\n data: [\n data?.totalCampaignCancel || 0, // Stopped\n data?.totalCampaignPending || 0, // Not Started\n data?.totalCampaignDone || 0, // Completed\n data?.totalCampaignRunning || 0 // Running\n ],\n backgroundColor: [\"#ff6f91\", \"#ffb74d\", \"#81c784\", \"#64b5f6\"],\n hoverBackgroundColor: [\"#ff3d67\", \"#ff9800\", \"#4caf50\", \"#1e88e5\"]\n }\n ]\n };\n }, [data, t]);\n\n const doughnutOptions = {\n responsive: true,\n maintainAspectRatio: false,\n plugins: {\n legend: {\n display: false,\n },\n },\n }\n\n const textOverlay = {\n id: 'text-center',\n beforeDatasetsDraw(chart) {\n const { ctx } = chart\n ctx.save()\n ctx.font = '600 14px sans-serif'\n ctx.fillStyle = '#000000de'\n ctx.textAlign = 'center'\n ctx.textBaseline = 'middle'\n ctx.fillText(\n `${totalCampaigns}`,\n chart.getDatasetMeta(0).data[0].x,\n chart.getDatasetMeta(0).data[0].y\n )\n },\n }\n\n const isEmpty = totalCampaigns === 0\n\n return (\n \n \n

\n {t(\"dashboard.campaign\")}\n

\n\n \n \n \n {t(\"dashboard.campaign_created_from_to\")}\n

\n \n \n\n \n {isEmpty ? (\n \n

\n {t(\"dashboard.no_data\")}\n

\n \n ) : (\n \n
\n \n
\n\n \n \n\n \n\n \n\n \n \n \n )}\n \n
\n );\n}\n\nexport default CampaignChart\n","import React, { useEffect, useMemo, useState } from 'react'\nimport homeApi from '../../../../api/homeApi'\nimport { Card } from '@material-ui/core'\nimport { Doughnut } from 'react-chartjs-2'\nimport BaseDatePicker2 from '../../../../components/Form/BaseDatePicker2'\nimport { useForm } from 'react-hook-form'\nimport moment from 'moment'\nimport Flex from '../../../../components/Flex'\nimport { useTranslation } from 'react-i18next'\nimport LegendItem from './LegendItem'\n\nconst CustomerChart = ({ style, ...res }) => {\n const [data, setData] = useState(null)\n const { t } = useTranslation()\n\n const { control, watch } = useForm({\n defaultValues: {\n date: [moment().subtract(30, 'days').toDate(), new Date()],\n },\n })\n\n useEffect(() => {\n ;(async () => {\n try {\n const date = watch('date')\n const res = await homeApi.getCustomerStatistic({\n from: moment(date[0]).format('YYYY-MM-DD'),\n to: moment(date[1]).format('YYYY-MM-DD'),\n })\n setData(res)\n } catch (error) {\n console.log(error)\n }\n })()\n }, [watch('date')])\n\n const totalCustomers = data?.totalCustomers || 0\n\n const dataCustomers = useMemo(() => {\n return {\n labels: [\n `${t('dashboard.failed_customer')}`,\n `${t('dashboard.customer_not_sent')}`,\n `${t('dashboard.successful_customer')}`,\n ],\n datasets: [\n {\n data: [\n data?.totalCustomersFail || 0,\n data?.totalCustomersNotSend || 0,\n data?.totalCustomersSuccess || 0,\n ],\n backgroundColor: ['#ff6f91', '#ffb74d', '#81c784'],\n hoverBackgroundColor: ['#ff3d67', '#ff9800', '#4caf50'],\n },\n ],\n }\n }, [data, t])\n\n const doughnutOptions = {\n responsive: true,\n maintainAspectRatio: false,\n plugins: {\n legend: {\n display: false,\n },\n },\n }\n\n const textOverlay = {\n id: 'text-center',\n beforeDatasetsDraw(chart) {\n const { ctx } = chart\n ctx.save()\n ctx.font = '600 14px sans-serif'\n ctx.fillStyle = '#000000de'\n ctx.textAlign = 'center'\n ctx.textBaseline = 'middle'\n ctx.fillText(\n `${totalCustomers}`,\n chart.getDatasetMeta(0).data[0].x,\n chart.getDatasetMeta(0).data[0].y\n )\n },\n }\n\n const isEmpty = totalCustomers === 0\n\n return (\n \n \n

\n {t('dashboard.customer')}\n

\n\n \n \n \n {t('dashboard.customer_created_from_to')}\n

\n \n \n\n \n {isEmpty ? (\n \n

\n {t('dashboard.no_data')}\n

\n \n ) : (\n \n
\n \n
\n\n \n \n\n \n\n \n \n \n )}\n \n
\n )\n}\n\nexport default CustomerChart\n","import axiosClient from './axiosClient'\nimport { post } from 'axios'\nimport urlApi from './url'\nconst customerApi = {\n get: (params) => {\n return axiosClient.get(`${urlApi.customerApi.customer}`, { params })\n },\n getCustomersStatistic: (params) => {\n return axiosClient.get(`api/v1.0/getStatistic/user`, {\n params,\n })\n },\n create: (params) => {\n return axiosClient.post(`${urlApi.customerApi.create}`, params)\n },\n addCampainByPart: (params) => {\n return axiosClient.post(`${urlApi.customerApi.addCampainByPart}`, params)\n },\n addCampaignNoScenario: (payload) => {\n return axiosClient\n .post(`${urlApi.customerApi.addCampaignNoScenario}`, payload)\n .then((res) => res)\n },\n createCustomer: (params) => {\n return axiosClient.post(`${urlApi.customerApi.createCustomer}`, params)\n },\n downloadExcel: () => {\n return axiosClient.get(\n `${urlApi.customerApi.customer}/customer-template.xlsx`\n )\n },\n getListCustomersInTag: (params) => {\n return axiosClient.get(`/api/v1.0/customer`, { params })\n },\n unlinkBombotTag: (payload) => {\n return axiosClient.delete(`/api/v1.0/customer/customersBombotTags`, {\n data: payload,\n })\n },\n edit: (params) => {\n return axiosClient.put(\n `${urlApi.customerApi.customer}/${params.id}`,\n params\n )\n },\n addMultiCustomersBombotTags: (payload) => {\n return axiosClient.post(\n `${urlApi.customerApi.addMultiCustomersBombotTags}`,\n payload\n )\n },\n removeMultiCustomersBombotTags: (payload) => {\n return axiosClient.delete(\n `${urlApi.customerApi.addMultiCustomersBombotTags}`,\n {\n data: payload,\n }\n )\n },\n unAttachTags: (payload) => {\n return axiosClient.delete(\n `${urlApi.customerApi.deleteMultiCustomersBombotTags}`,\n {\n data: payload,\n }\n )\n },\n export: (api_path, params) => {\n return axiosClient.post(\n `${urlApi.customerApi.customer}/${api_path}`,\n params,\n {\n responseType: 'arraybuffer',\n }\n )\n },\n import: (params) => {\n const id = params.fanpage && params.fanpage.id\n const formData = new FormData()\n formData.append('file', params.file)\n formData.append('type', params.type)\n const config = {\n headers: {\n 'content-type': 'multipart/form-data',\n authorization: localStorage.getItem('token') || undefined,\n },\n }\n return post(`${urlApi.customerApi.customer}/${id}/import`, formData, config)\n },\n}\n\nexport default customerApi\n","import { Button, ButtonGroup } from \"@material-ui/core\";\nimport Flex from \"../Flex\";\nimport { useTranslation } from \"react-i18next\";\n\nconst FiltersContainer = ({ options, selectedFilter, handleFilterChange }) => {\n const { t } = useTranslation();\n\n return (\n \n

\n {t(\"common.btn.filter\")}\n

\n \n {options.map((option) => {\n const { color, value, label } = option;\n\n return (\n handleFilterChange(value)}\n variant={selectedFilter === value ? \"contained\" : \"outlined\"}\n style={{\n borderRadius: \"4px\",\n padding: \"4px 8px\",\n fontSize: \"12px\",\n borderColor: \"#e0e0e0\",\n borderWidth: \"1px\",\n boxShadow: \"none\",\n backgroundColor:\n selectedFilter === value ? color || \"#007bff\" : \"#fff\",\n color: selectedFilter === value ? \"#fff\" : color || \"#007bff\"\n }}\n >\n {label}\n \n );\n })}\n {/* handleFilterChange('NEXT_7D')}\n variant={selectedFilter === 'NEXT_7D' ? 'contained' : 'outlined'}\n style={{\n borderRadius: '4px',\n padding: '4px 8px',\n fontSize: '12px',\n borderColor: '#e0e0e0',\n borderWidth: '1px',\n boxShadow: 'none',\n backgroundColor: selectedFilter === 'NEXT_7D' ? '#007bff' : '#fff',\n color: selectedFilter === 'NEXT_7D' ? '#fff' : '#007bff',\n }}\n >\n 7 Ngày tiếp theo\n \n handleFilterChange('NEXT_24H')}\n variant={selectedFilter === 'NEXT_24H' ? 'contained' : 'outlined'}\n style={{\n borderRadius: '4px',\n padding: '4px 8px',\n fontSize: '12px',\n borderColor: '#e0e0e0',\n borderWidth: '1px',\n boxShadow: 'none',\n backgroundColor: selectedFilter === 'NEXT_24H' ? '#007bff' : '#fff',\n color: selectedFilter === 'NEXT_24H' ? '#fff' : '#007bff',\n }}\n >\n 24h Tiếp theo\n \n handleFilterChange('NEXT_14D')}\n variant={selectedFilter === 'NEXT_14D' ? 'contained' : 'outlined'}\n style={{\n borderRadius: '4px',\n padding: '4px 8px',\n fontSize: '12px',\n borderColor: '#e0e0e0',\n borderWidth: '1px',\n boxShadow: 'none',\n backgroundColor: selectedFilter === 'NEXT_14D' ? '#007bff' : '#fff',\n color: selectedFilter === 'NEXT_14D' ? '#fff' : '#007bff',\n }}\n >\n 14 Ngày tiếp theo\n \n handleFilterChange('NEXT_30D')}\n variant={selectedFilter === 'NEXT_30D' ? 'contained' : 'outlined'}\n style={{\n borderRadius: '4px',\n padding: '4px 8px',\n fontSize: '12px',\n borderColor: '#e0e0e0',\n borderWidth: '1px',\n boxShadow: 'none',\n backgroundColor: selectedFilter === 'NEXT_30D' ? '#007bff' : '#fff',\n color: selectedFilter === 'NEXT_30D' ? '#fff' : '#007bff',\n }}\n >\n 30 Ngày tiếp theo\n \n handleFilterChange('ALL')}\n variant={selectedFilter === 'ALL' ? 'contained' : 'outlined'}\n style={{\n borderRadius: '4px',\n padding: '4px 8px',\n fontSize: '12px',\n borderColor: '#e0e0e0',\n borderWidth: '1px',\n boxShadow: 'none',\n backgroundColor: selectedFilter === 'ALL' ? '#007bff' : '#fff',\n color: selectedFilter === 'ALL' ? '#fff' : '#007bff',\n }}\n >\n Tất cả\n */}\n \n \n );\n};\n\nexport default FiltersContainer;\n","import { useEffect, useMemo, useState } from 'react'\nimport { Doughnut } from 'react-chartjs-2'\nimport styles from './styles/CustomerOverview.module.scss'\n\nimport { useTranslation } from 'react-i18next'\nimport customerApi from '../../../../api/customerApi'\nimport { Card } from '@material-ui/core'\nimport FiltersContainer from '../../../../components/FiltersContainer'\nimport BaseDatePicker2 from '../../../../components/Form/BaseDatePicker2'\nimport moment from 'moment'\nimport { useForm } from 'react-hook-form'\nimport Flex from '../../../../components/Flex'\n\nconst options_result_phone_num = {\n responsive: true,\n maintainAspectRatio: false,\n animation: {\n animateRotate: false,\n animateScale: false,\n },\n cutout: 40,\n plugins: {\n legend: {\n display: false,\n position: 'bottom',\n align: 'start',\n padding: 8, // Thêm khoảng cách giữa các mục trong chú thích (giống margin-top)\n labels: {\n usePointStyle: true,\n generateLabels: function (chart) {\n const labels = chart.data.labels\n const dataset = chart.data.datasets[0]\n return labels.map((label, index) => ({\n datasetIndex: 0,\n fillStyle:\n dataset.backgroundColor && dataset.backgroundColor[index],\n strokeStyle: dataset.borderColor && dataset.borderColor[index],\n lineWidth: dataset.borderWidth,\n text: `${label}: ${dataset.data[index]}`,\n }))\n },\n },\n },\n },\n}\n\nconst options_result_gender = {\n responsive: true,\n maintainAspectRatio: false,\n animation: {\n animateRotate: false,\n animateScale: false,\n },\n cutout: 40,\n plugins: {\n legend: {\n display: false,\n position: 'bottom',\n align: 'start',\n labels: {\n usePointStyle: true,\n generateLabels: function (chart) {\n const labels = chart.data.labels\n const dataset = chart.data.datasets[0]\n return labels.map((label, index) => ({\n datasetIndex: 0,\n fillStyle:\n dataset.backgroundColor && dataset.backgroundColor[index],\n strokeStyle: dataset.borderColor && dataset.borderColor[index],\n lineWidth: dataset.borderWidth,\n text: `${label}: ${dataset.data[index]}`,\n }))\n },\n },\n },\n },\n}\n\n// const textCampaign = {\n// id: 'text-center',\n// beforeDatasetsDraw(chart, args, pluginOptions) {\n// const { ctx } = chart\n\n// ctx.save()\n// ctx.font = '600 14px sans-serif'\n// ctx.fillStyle = '#000000de'\n// ctx.textAlign = 'center'\n// ctx.textBaseline = 'middle'\n// },\n// }\nconst textCampaign = {\n id: \"text-center\",\n beforeDatasetsDraw(chart) {\n const { ctx } = chart;\n const total = chart.data.datasets[0].data.reduce((a, b) => a + b, 0); // Tính tổng số lượng\n const centerX = (chart.chartArea.left + chart.chartArea.right) / 2; // Tính tọa độ X trung tâm\n const centerY = (chart.chartArea.top + chart.chartArea.bottom) / 2; // Tính tọa độ Y trung tâm\n\n ctx.save();\n ctx.font = \"600 14px sans-serif\";\n ctx.fillStyle = \"#000000de\";\n ctx.textAlign = \"center\";\n ctx.textBaseline = \"middle\";\n ctx.fillText(total.toString(), centerX, centerY); // Vẽ số lượng tổng thể\n ctx.restore();\n }\n};\n\nconst dateRange = {\n LAST_30D: [\n moment().clone().subtract(30, 'days').format('YYYY-MM-DD'),\n moment().format('YYYY-MM-DD'),\n ],\n LAST_3M: [\n moment().clone().subtract(3, 'months').format('YYYY-MM-DD'),\n moment().format('YYYY-MM-DD'),\n ],\n LAST_6M: [\n moment().clone().subtract(6, 'months').format('YYYY-MM-DD'),\n moment().format('YYYY-MM-DD'),\n ],\n LAST_12M: [\n moment().clone().subtract(12, 'months').format('YYYY-MM-DD'),\n moment().format('YYYY-MM-DD'),\n ],\n}\n\nconst CustomerOverview = ({ ...res }) => {\n const { t } = useTranslation()\n\n const {\n handleSubmit,\n control,\n reset,\n setValue,\n watch,\n formState: { errors },\n } = useForm({\n defaultValues: {\n date: dateRange['LAST_30D'],\n },\n })\n\n const [customerStatistic, setCustomerStatistic] = useState({})\n\n useEffect(() => {\n ;(async () => {\n // if (!campaignData) return\n\n const date = watch('date')\n\n const params = {\n from: moment(date[0]).format('YYYY-MM-DD'),\n to: moment(date[1]).format('YYYY-MM-DD'),\n }\n\n try {\n const customersData = await customerApi.getCustomersStatistic(params)\n setCustomerStatistic(customersData)\n } catch (error) {\n console.log('error ==>', error)\n }\n })()\n }, [watch('date')])\n\n const genderData = useMemo(() => {\n return {\n labels: [\n t('dashboard.male'),\n t('dashboard.female'),\n t('dashboard.other'),\n ],\n datasets: [\n {\n data: [\n customerStatistic.totalMale,\n customerStatistic.totalFemale,\n customerStatistic.totalOther,\n ],\n backgroundColor: ['#a8d5ba', '#4caf50', '#81c784'],\n borderWidth: 0,\n },\n ],\n }\n }, [customerStatistic])\n\n const phoneNumberData = useMemo(() => {\n return {\n labels: [\n t('dashboard.have_phone_number'),\n t('dashboard.not_have_phone_number'),\n ],\n datasets: [\n {\n data: [\n customerStatistic.totalHavePhone,\n customerStatistic.totalNotHavePhone,\n ],\n backgroundColor: ['#a8d5ba', '#4caf50'],\n borderWidth: 0,\n },\n ],\n }\n }, [customerStatistic])\n\n const [selectedFilter, setSelectedFilter] = useState('LAST_30D')\n\n const handleFilterChange = (filter) => {\n setSelectedFilter(filter)\n\n if (filter === 'CUSTOM') {\n return\n }\n\n setValue('date', dateRange[filter])\n\n // Gọi hàm để tải lại danh sách kịch bản với bộ lọc mới\n // Ví dụ: loadScenarioList(filter);\n }\n\n return (\n \n \n\n \n \n {t(\"dashboard.customer_statistic_by_time\")}\n \n\n {selectedFilter === \"CUSTOM\" && (\n \n \n \n )}\n\n
\n
\n \n

\n {customerStatistic.totalCus}\n

\n
\n\n
\n \n
\n \n
\n

{t(\"dashboard.male\")}

\n

\n {customerStatistic.totalMale}\n

\n \n {customerStatistic.percentMale?.toFixed(2)}%\n

\n
\n
\n\n
\n \n
\n

{t(\"dashboard.female\")}

\n

\n {customerStatistic.totalFemale}\n

\n \n {customerStatistic.percentFemale?.toFixed(2)}%\n

\n
\n
\n\n
\n \n
\n

{t(\"dashboard.other\")}

\n

\n {customerStatistic.totalOther}\n

\n \n {customerStatistic.percentOther?.toFixed(2)}%\n

\n
\n
\n
\n\n
\n \n \n
\n
\n \n\n
\n \n
\n \n
\n

\n {t(\"dashboard.have_phone_number\")}\n

\n

\n {customerStatistic.totalHavePhone}\n

\n \n {customerStatistic.percentHavePhone?.toFixed(2)}%\n

\n
\n
\n\n
\n \n
\n

\n {t(\"dashboard.not_have_phone_number\")}\n

\n

\n {customerStatistic.totalNotHavePhone}\n

\n \n {customerStatistic.percentNotHavePhone?.toFixed(2)}%\n

\n
\n
\n
\n
\n \n \n
\n \n \n \n \n \n \n );\n}\n\nexport default CustomerOverview\n","import React, { useEffect, useMemo, useState } from \"react\";\nimport homeApi from \"../../../../api/homeApi\";\nimport { Card } from \"@material-ui/core\";\nimport { Bar } from \"react-chartjs-2\";\nimport { useTranslation } from \"react-i18next\";\n\nconst FanpageChart = ({ style, ...res }) => {\n const { t } = useTranslation();\n const [data, setData] = useState(null);\n\n useEffect(() => {\n (async () => {\n try {\n const res = await homeApi.getFanpageStatistic({\n page: 0,\n size: 15,\n });\n setData(res);\n } catch (error) {\n console.log(error);\n }\n })();\n }, []);\n\n const chartCustomerPerFanpages = useMemo(() => {\n return {\n labels: data?.content?.map((item) => item.name) || [], // Directly using fanpage names\n datasets: [\n {\n label: t(\"dashboard.customer_count\"),\n data: data?.content?.map((item) => item.totalCus) || [], // Directly using customer counts\n backgroundColor: \"rgba(75, 192, 192, 0.6)\",\n borderColor: \"rgba(75, 192, 192, 1)\",\n borderWidth: 1\n }\n ]\n };\n }, [data, t]);\n\n const barOptions = {\n indexAxis: \"y\", // This makes the bar chart horizontal\n responsive: true,\n plugins: {\n legend: {\n position: \"top\"\n },\n title: {\n display: true\n }\n },\n scales: {\n x: {\n beginAtZero: true,\n ticks: {\n callback: function (value) {\n return Math.floor(value); // Round down to the nearest whole number\n }\n }\n }\n }\n };\n\n return (\n \n

{t(\"dashboard.customer_fanpage\")}

\n \n \n \n
\n );\n};\n\nexport default FanpageChart;\n","import React, { useEffect, useMemo, useState } from 'react'\nimport homeApi from '../../../../api/homeApi'\nimport { Card } from '@material-ui/core'\nimport { Doughnut } from 'react-chartjs-2'\nimport { useForm } from 'react-hook-form'\nimport moment from 'moment'\nimport { useTranslation } from 'react-i18next'\nimport LegendItem from './LegendItem'\nimport numeral from 'numeral'\nimport Flex from '../../../../components/Flex'\n\nconst GenAIChart = ({ style, ...res }) => {\n const [data, setData] = useState(null)\n const { t } = useTranslation()\n\n const { watch } = useForm({\n defaultValues: {\n date: [new Date(), new Date()],\n },\n })\n\n useEffect(() => {\n ;(async () => {\n try {\n const date = watch('date')\n\n const res = await homeApi.getGenAIStatistic({\n from: moment(date[0]).format('YYYY-MM-DD'),\n to: moment(date[1]).format('YYYY-MM-DD'),\n })\n\n setData(res)\n } catch (error) {\n console.log(error)\n }\n })()\n }, [watch('date')])\n\n const totalMessages = useMemo(() => {\n return (\n (data?.totalCreatedMessages || 0) +\n (data?.totalFormattedMessages || 0) +\n (data?.totalSelectedMessages || 0)\n )\n }, [data])\n\n const dataGenAI = useMemo(() => {\n return {\n labels: [\n `${t('dashboard.created_content')}`,\n `${t('dashboard.customized_content')}`,\n `${t('dashboard.selected_content')}`,\n ],\n datasets: [\n {\n data: [\n data?.totalCreatedMessages || 0,\n data?.totalFormattedMessages || 0,\n data?.totalSelectedMessages || 0,\n ],\n backgroundColor: ['#ff6f91', '#ffb74d', '#81c784'],\n hoverBackgroundColor: ['#ff3d67', '#ff9800', '#4caf50'],\n },\n ],\n }\n }, [data])\n\n const doughnutOptions = {\n responsive: true,\n maintainAspectRatio: false,\n plugins: {\n legend: {\n display: false,\n position: 'right',\n },\n },\n }\n\n const textOverlay = {\n id: 'text-center',\n beforeDatasetsDraw(chart) {\n const { ctx } = chart\n ctx.save()\n ctx.font = '600 14px sans-serif'\n ctx.fillStyle = '#000000de'\n ctx.textAlign = 'center'\n ctx.textBaseline = 'middle'\n ctx.fillText(\n `${numeral(totalMessages).format('0.[0]a') || 0}`,\n chart.getDatasetMeta(0).data[0].x,\n chart.getDatasetMeta(0).data[0].y\n )\n ctx.restore()\n },\n }\n\n const isEmpty = useMemo(() => {\n let sum = 0\n for (const property in data) {\n sum += data[property]\n }\n\n return sum === 0 ? true : false\n }, [data])\n\n return (\n \n \n {t('BOMBOT GENAI')}\n \n \n {isEmpty ? (\n \n

{t('dashboard.no_data')}

\n
\n ) : (\n \n \n \n \n\n \n \n\n \n\n \n \n \n )}\n \n
\n )\n}\n\nexport default GenAIChart\n","import React, { useEffect, useMemo, useState } from 'react'\nimport homeApi from '../../../../api/homeApi'\nimport { Card } from '@material-ui/core'\nimport { Doughnut } from 'react-chartjs-2'\nimport BaseDatePicker2 from '../../../../components/Form/BaseDatePicker2'\nimport { useForm } from 'react-hook-form'\nimport moment from 'moment'\nimport Flex from '../../../../components/Flex'\nimport { useTranslation } from 'react-i18next'\nimport numeral from 'numeral'\nimport LegendItem from './LegendItem'\n\nconst MessageChart = ({ style, ...res }) => {\n const [data, setData] = useState(null)\n const { t } = useTranslation()\n const { control, watch } = useForm({\n defaultValues: {\n date: [moment().subtract(30, 'days').toDate(), new Date()],\n },\n })\n\n useEffect(() => {\n ;(async () => {\n const date = watch('date')\n try {\n const res = await homeApi.getMessageStatistic({\n from: moment(date[0]).format('YYYY-MM-DD'),\n to: moment(date[1]).format('YYYY-MM-DD'),\n })\n setData(res)\n } catch (error) {\n console.log(error)\n }\n })()\n }, [watch('date')])\n\n const totalMessages = data?.totalMessages || 0\n\n const dataMessages = useMemo(() => {\n return {\n labels: [\n `${t('dashboard.failed_message')}`,\n `${t('dashboard.message_not_sent')}`,\n `${t('dashboard.successful_message')}`,\n ],\n datasets: [\n {\n data: [\n data?.totalMessagesFail || 0,\n data?.totalMessagesNotSend || 0,\n data?.totalMessagesSuccess || 0,\n ],\n backgroundColor: ['#ff6f91', '#ffb74d', '#81c784'],\n hoverBackgroundColor: ['#ff3d67', '#ff9800', '#4caf50'],\n },\n ],\n }\n }, [data])\n\n const doughnutOptions = {\n responsive: true,\n maintainAspectRatio: false,\n plugins: {\n legend: {\n display: false,\n },\n },\n }\n\n const textOverlay = useMemo(() => {\n return {\n id: 'text-center',\n beforeDatasetsDraw(chart) {\n const { ctx } = chart\n ctx.save()\n ctx.font = '600 14px sans-serif'\n ctx.fillStyle = '#000000de'\n ctx.textAlign = 'center'\n ctx.textBaseline = 'middle'\n ctx.fillText(\n `${numeral(totalMessages).format('0.[0]a') || 0}`,\n chart.getDatasetMeta(0).data[0].x,\n chart.getDatasetMeta(0).data[0].y\n )\n },\n }\n }, [totalMessages])\n\n const isEmpty = totalMessages === 0\n\n return (\n \n \n

\n {t('dashboard.message')}\n

\n\n \n \n \n {t('dashboard.message_created_from_to')}\n

\n \n \n\n \n {isEmpty ? (\n \n

\n {t('dashboard.no_data')}\n

\n \n ) : (\n \n
\n \n
\n\n \n \n\n \n\n \n \n \n )}\n \n
\n )\n}\n\nexport default MessageChart\n","import { Card } from '@material-ui/core'\nimport { useEffect, useMemo, useState } from 'react'\nimport { Doughnut } from 'react-chartjs-2'\nimport homeApi from '../../../../api/homeApi'\nimport BaseDatePicker2 from 'components/Form/BaseDatePicker2'\nimport { useForm } from 'react-hook-form'\nimport moment from 'moment'\nimport Flex from '../../../../components/Flex'\nimport { useTranslation } from 'react-i18next'\nimport LegendItem from './LegendItem'\n\nconst ScenarioChart = ({ style, ...res }) => {\n const [data, setData] = useState(null)\n const { t } = useTranslation()\n\n const { control, watch } = useForm({\n defaultValues: {\n date: [moment().subtract(30, 'days').toDate(), new Date()],\n },\n })\n\n useEffect(() => {\n ;(async () => {\n try {\n const date = watch('date')\n const res = await homeApi.getScenarioStatistic({\n from: moment(date[0]).format('YYYY-MM-DD'),\n to: moment(date[1]).format('YYYY-MM-DD'),\n })\n setData(res)\n } catch (error) {\n console.log(error)\n }\n })()\n }, [watch('date')])\n\n const totalScenarios = data?.totalScenarios || 0\n\n const dataScenarios = useMemo(() => {\n return {\n labels: [\n `${t('dashboard.scenario_stopped')}`,\n `${t('dashboard.scenario_not_started')}`,\n `${t('dashboard.scenario_completed')}`,\n `${t('dashboard.scenario_running')}`,\n ],\n datasets: [\n {\n data: [\n data?.totalScenarioCancel || 0,\n data?.totalScenarioPending || 0,\n data?.totalScenarioDone || 0,\n data?.totalScenarioRunning || 0,\n ],\n backgroundColor: ['#ff6f91', '#ffb74d', '#81c784', '#64b5f6'],\n hoverBackgroundColor: ['#ff3d67', '#ff9800', '#4caf50', '#1e88e5'],\n },\n ],\n }\n }, [data, t])\n\n const doughnutOptions = {\n responsive: true,\n maintainAspectRatio: false,\n plugins: {\n legend: {\n display: false,\n },\n },\n }\n\n const textOverlay = {\n id: 'text-center',\n beforeDatasetsDraw(chart) {\n const { ctx } = chart\n ctx.save()\n ctx.font = '600 14px sans-serif'\n ctx.fillStyle = '#000000de'\n ctx.textAlign = 'center'\n ctx.textBaseline = 'middle'\n ctx.fillText(\n `${totalScenarios}`,\n chart.getDatasetMeta(0).data[0].x,\n chart.getDatasetMeta(0).data[0].y\n )\n },\n }\n\n const isEmpty = totalScenarios === 0\n\n return (\n \n \n

\n {t('dashboard.scenario')}\n

\n\n \n \n \n {t('dashboard.script_creation_date_range')}\n

\n \n \n\n \n {isEmpty ? (\n \n

\n {t('dashboard.no_data')}\n

\n \n ) : (\n \n
\n \n
\n\n \n \n\n \n\n \n\n \n \n \n )}\n \n
\n )\n}\n\nexport default ScenarioChart\n","import { Card } from '@material-ui/core'\nimport { useEffect, useMemo, useState } from 'react'\nimport { Bar } from 'react-chartjs-2'\nimport { useTranslation } from 'react-i18next'\nimport homeApi from 'api/homeApi'\n\nconst BombotTagChart = ({ style, ...res }) => {\n const { t } = useTranslation()\n const [data, setData] = useState([])\n const [selectedDate, setSelectedDate] = useState(null)\n\n useEffect(() => {\n ;(async () => {\n try {\n const res = await homeApi.getTagBombotStatistic({\n size: 14,\n pageId: '',\n })\n setData(res)\n } catch (error) {\n console.log(error)\n }\n })()\n }, [selectedDate])\n\n const chartCustomerPerFanpages = useMemo(() => {\n return {\n labels: data?.map((item) => item.tagName),\n datasets: [\n {\n label: t('dashboard.customer_count'),\n data: data?.map((item) => item.totalCus) || [],\n backgroundColor: 'rgba(75, 192, 192, 0.6)',\n borderColor: 'rgba(75, 192, 192, 1)',\n borderWidth: 1,\n },\n ],\n }\n }, [data])\n\n const barOptions = {\n indexAxis: 'y',\n responsive: true,\n plugins: {\n legend: {\n position: 'top',\n },\n title: {\n display: true,\n },\n },\n scales: {\n x: {\n beginAtZero: true,\n },\n },\n }\n\n return (\n \n \n {t('customer_management.list.bombot_tag')}\n \n\n \n \n \n \n )\n}\n\nexport default BombotTagChart\n","import { Card } from '@material-ui/core'\nimport { useEffect, useMemo, useState } from 'react'\nimport { Bar } from 'react-chartjs-2'\nimport { useTranslation } from 'react-i18next'\nimport homeApi from '../../../../api/homeApi'\n\nconst FBTagChart = ({ style, ...res }) => {\n const { t } = useTranslation()\n const [data, setData] = useState([])\n const [selectedDate, setSelectedDate] = useState(null)\n\n useEffect(() => {\n ;(async () => {\n try {\n const res = await homeApi.getTagFacebookStatistic({\n page: 0,\n size: 50,\n sort: 'desc',\n })\n setData(res)\n } catch (error) {\n console.log(error)\n }\n })()\n }, [selectedDate])\n\n const chartCustomerPerFanpages = useMemo(() => {\n return {\n labels: data?.map((item) => item.tagName),\n datasets: [\n {\n label: t('dashboard.customer_count'),\n data: data?.map((item) => item.totalCus) || [],\n backgroundColor: 'rgba(75, 192, 192, 0.6)',\n borderColor: 'rgba(75, 192, 192, 1)',\n borderWidth: 1,\n },\n ],\n }\n }, [data])\n\n const barOptions = {\n indexAxis: 'y',\n responsive: true,\n plugins: {\n legend: {\n position: 'top',\n },\n title: {\n display: true,\n },\n },\n scales: {\n x: {\n beginAtZero: true,\n },\n },\n }\n\n return (\n \n \n {t('customer_management.list.facebook_tag')}\n \n\n \n \n \n \n )\n}\n\nexport default FBTagChart\n","import Flex from '../../../../components/Flex'\nimport styles from '../../styles.module.scss' // Ensure you have this file\nimport CampaignChart from './CampaignChart'\nimport CustomerChart from './CustomerChart'\nimport CustomerOverview from './CustomerOverview'\nimport FanpageChart from './FanpageChart'\nimport GenAIChart from './GenAIChart'\nimport MessageChart from './MessageChart'\nimport ScenarioChart from './ScenarioChart'\nimport BombotTagChart from './BombotTagChart'\nimport FBTagChart from './FanpageTagChart'\nimport { useSelector } from 'react-redux'\nimport { selectGuideListByKey } from '../../../../stores/config/config.selector'\nimport {\n getIsGuideByKey,\n GUIDE_TYPE_ENUM,\n setIsGuideByKey,\n} from '../../../../utils/helper'\nimport { useEffect, useState } from 'react'\nimport Tour from 'reactour'\nimport { Button } from '@material-ui/core'\nimport { useTranslation } from 'react-i18next'\n\nconst DashboardChart = ({\n dashboard,\n campaigns,\n messages,\n scenarios,\n selectedDate = null,\n onDateChange,\n isShowTooltip,\n}) => {\n const { t } = useTranslation()\n\n const dataCampaigns = {\n labels: [\n 'Campaign Running',\n 'Campaign Pending',\n 'Campaign Done',\n 'Campaign Cancelled',\n ],\n datasets: [\n {\n data: [\n dashboard?.campaign?.totalCampaignRunning || 0,\n dashboard?.campaign?.totalCampaignPending || 0,\n dashboard?.campaign?.totalCampaignDone || 0,\n dashboard?.campaign?.totalCampaignCancel || 0,\n ],\n backgroundColor: ['#82ca9d', '#ffc658', '#8884d8', '#AE1607'],\n hoverBackgroundColor: ['#76b89a', '#e6b84d', '#7a6fb8', '#9e1410'],\n },\n ],\n }\n\n const dataMessages = {\n labels: ['Message', 'Message Fail', 'Message Not Send', 'Message Success'],\n datasets: [\n {\n data: [\n messages?.totalMessages || 0,\n messages?.totalMessagesFail || 0,\n messages?.totalMessagesNotSend || 0,\n messages?.totalMessagesSuccess || 0,\n ],\n backgroundColor: ['#82ca9d', '#ffc658', '#8884d8', '#AE1607'],\n hoverBackgroundColor: ['#76b89a', '#e6b84d', '#7a6fb8', '#9e1410'],\n },\n ],\n }\n\n const doughnutOptions = {\n responsive: true,\n maintainAspectRatio: false,\n plugins: {\n legend: {\n position: 'top',\n },\n },\n }\n\n const tourOverview = useSelector(\n selectGuideListByKey(GUIDE_TYPE_ENUM.dashboard)\n )\n\n const [tourConfig, setTourConfig] = useState(null)\n\n useEffect(() => {\n if (\n getIsGuideByKey(GUIDE_TYPE_ENUM.dashboard) &&\n tourOverview?.length &&\n isShowTooltip\n ) {\n setTourConfig(tourOverview)\n setIsGuideByKey(GUIDE_TYPE_ENUM.dashboard)\n }\n }, [tourOverview, isShowTooltip])\n\n // Check if dashboard has data\n if (!dashboard || !dashboard.fanpage || !campaigns) {\n return
{t('noti.loading')}
// Or another loading message\n }\n\n return (\n \n \n {t(\"common.btn.close\")}\n \n }\n accentColor=\"#05ae34\"\n onRequestClose={() => setTourConfig(null)}\n />\n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n\n \n\n \n\n \n \n );\n}\n\nexport default DashboardChart\n","import React from 'react'\nimport Button from '@material-ui/core/Button'\nimport Flex from '../Flex'\nimport { useTranslation } from \"react-i18next\";\n\nconst ButtonLoading = ({ title, isLoading, ...rest }) => {\n const { t } = useTranslation();\n\n return (\n \n );\n}\n\nexport default ButtonLoading\n","export default __webpack_public_path__ + \"static/media/code.54cff58a.jpg\";","import {\n makeStyles,\n } from \"@material-ui/core\";\n import Flex from \"components/Flex\";\n import React, { useCallback, useEffect, useState } from \"react\";\n import OtpInput from \"react-otp-input\";\n import FormDialog from \"../../../../components/FormDialog\";\n import ArrowBackIcon from \"@material-ui/icons/ArrowBack\";\n import styles from \"../../styles.module.scss\";\n import firebase from \"firebase\";\n import { useDispatch, useSelector } from \"react-redux\";\n import ButtonLoading from \"components/ButtonLoading\";\n import { Skeleton } from \"@material-ui/lab\";\n import { verifyNumberPhoneError } from \"views/Home/HomeReducer\";\n import { selectErrorVerifyPhone } from \"views/Home/HomeSelectors\";\n import homeApi from \"api/homeApi\";\n import { setLoading } from \"views/App/AppReducer\";\n import { showError } from \"stores/alert/slice.alert\";\n import smsExample from \"../../../../assets/images/code.jpg\";\n import { useTranslation } from \"react-i18next\";\n import IMAGES from \"../../../../../src/images\";\n\n import { useTheme } from '@mui/material/styles';\n import Button from '@mui/material/Button';\n import { useHistory } from \"react-router-dom\";\n \n \n \n \n const DialogAlertPoints = ({name, point, handleClose}) => {\n const [giftPoints, setGiftPoints] = useState(0);\n const [alertGiftBox, setAlertGiftBox] = useState(true);\n const history = useHistory();\n const theme = useTheme();\n const useStyles = makeStyles((theme) => ({\n account: {\n display: \"flex\",\n alignItems: \"center\",\n background: \"#f0f0f0\",\n padding: 15,\n },\n right: {\n marginLeft: 15,\n },\n wrapAccount: {\n padding: 15,\n },\n form: {\n width: \"100%\",\n },\n number: {\n fontWeight: \"bold\",\n },\n errorCode: {\n margin: \"10px 0px 0px 10px\",\n fontSize: \"14px\",\n color: \"red\",\n textAlign: \"center\",\n },\n giftBox:{\n padding: \"20px 50px !important\",\n \"& .center\":{\n textAlign: \"center\"\n },\n \"& li\":{\n listStyle: \"none\",\n padding: \"7px\"\n },\n \"& .textUsed\":{\n color: \"#05AE36\",\n },\n \"& .feeText\":{\n color: \"#f6a801\"\n },\n \"& .grey\":{\n color: \"#fff\",\n background: \"grey\",\n \"& :hover\":{\n color: \"#fff\",\n background: \"grey\",\n }\n },\n \"& .grey:hover\":{\n color: \"#fff\",\n background: \"grey\"\n },\n \"& .line-button\":{\n padding: \"3px\"\n }\n },\n }));\n\n const classes = useStyles();\n const { i18n, t } = useTranslation();\n\n const handleMenu = () => {\n history.push(\"/quan-ly-tai-khoan?openPoits=1\");\n };\n\n const handleClosePopup = () => {\n localStorage.setItem(\"alertGiftBox\", false);\n handleClose();\n };\n return (\n \n
    \n
  1. \n
  2. {t(\"account_management.service_information.helloText\")} {name}
  3. \n
  4. {t(\"account_management.service_information.finishText\")} {point<250?1:(point<500?3:6)} {t(\"account_management.service_information.monthText\")} {t(\"account_management.service_information.feeText\")} {t(\"account_management.service_information.usedText\")}
  5. \n
  6. {t(\"account_management.service_information.pointCost\")} {point}{t(\"account_management.service_information.receiverText\")}
  7. \n
  8. \n \n

    \n \n
  9. \n
\n
\n \n );\n };\n \n export default DialogAlertPoints;\n ","import React, { useEffect, useRef, useState } from \"react\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport Stepper from \"@material-ui/core/Stepper\";\nimport Step from \"@material-ui/core/Step\";\nimport StepLabel from \"@material-ui/core/StepLabel\";\nimport Button from \"@material-ui/core/Button\";\nimport { Dialog } from \"@material-ui/core\";\nimport cn from \"classnames\";\nimport Flex from \"components/Flex\";\nimport { useTranslation } from \"react-i18next\";\nimport styles from \"./styles.module.scss\";\nimport {\n getIsGuideByKey,\n GUIDE_TYPE_ENUM,\n setIsGuideByKey\n} from \"utils/helper\";\nimport { useSelector } from \"react-redux\";\nimport { selectGuideListByKey } from \"stores/config/config.selector\";\nimport YouTube from \"react-youtube\";\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n padding: \"8px 24px\",\n backgroundColor: \"#ffffff\",\n borderRadius: \"12px\"\n },\n button: {\n marginRight: theme.spacing(2),\n borderRadius: \"8px\",\n padding: \"8px 16px\"\n },\n instructions: {\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(2),\n fontSize: \"16px\",\n backgroundColor: \"#ffffff\"\n },\n step: {\n width: \"100%\",\n backgroundColor: \"#ffffff\"\n },\n stepper: {\n width: \"100%\",\n padding: \"0\",\n backgroundColor: \"transparent\",\n padding: \"16px\"\n },\n content: {\n textAlign: \"center\",\n marginBottom: \"16px\"\n }\n}));\n\nconst StepContent = ({ step, data }) => {\n if (!data?.length) return null;\n return (\n \n
\n \n
\n

\n {data[step]?.title}\n

\n
\n );\n};\n\nexport default function Introduce({ handleClose }) {\n const classes = useStyles();\n const [activeStep, setActiveStep] = useState(0);\n const [skipped, setSkipped] = useState(new Set());\n const contentRef = useRef();\n const { t } = useTranslation();\n\n const introduceData = useSelector(\n selectGuideListByKey(GUIDE_TYPE_ENUM.video_introduce)\n );\n const [tourConfig, setTourConfig] = useState([]);\n\n useEffect(() => {\n if (\n getIsGuideByKey(GUIDE_TYPE_ENUM.video_introduce) &&\n introduceData?.length\n ) {\n setTourConfig(introduceData);\n }\n }, [introduceData]);\n\n const isStepSkipped = (step) => {\n return skipped.has(step);\n };\n\n const closeModal = () => {\n setTourConfig([]);\n setIsGuideByKey(GUIDE_TYPE_ENUM.video_introduce);\n handleClose();\n };\n\n const handleNext = () => {\n if (activeStep === tourConfig.length - 1) {\n closeModal();\n }\n let newSkipped = skipped;\n if (isStepSkipped(activeStep)) {\n newSkipped = new Set(newSkipped.values());\n newSkipped.delete(activeStep);\n }\n\n setActiveStep((prevActiveStep) => prevActiveStep + 1);\n setSkipped(newSkipped);\n };\n\n const handleBack = () => {\n setActiveStep((prevActiveStep) => prevActiveStep - 1);\n };\n\n return (\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n PaperProps={{\n style: {\n borderRadius: \"12px\",\n padding: \"24px\",\n backgroundColor: \"#ffffff\"\n }\n }}\n >\n
\n \n
\n \n {tourConfig.map((label, index) => {\n const stepProps = {};\n const labelProps = {};\n if (isStepSkipped(index)) {\n stepProps.completed = false;\n }\n return (\n \n \n \n );\n })}\n \n
\n
\n
\n \n \n \n {t(\"update.back\")}\n \n\n \n {activeStep === tourConfig.length - 1\n ? t(\"common.btn.close\")\n : t(\"update.next\")}\n \n \n
\n
\n \n );\n}\n","import React, { useState } from \"react\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport IMAGES from \"../../../../../src/images\";\n\nconst MessengerButton = ({ name, point, handleClose }) => {\n const useStyles = makeStyles((theme) => ({\n root: {\n },\n\n //\n chatBox: {\n position: \"fixed\",\n bottom: \"80px\",\n right: \"27px\",\n zIndex: 100,\n\n \"& div\": {\n width: \"54px\",\n marginBottom: \"8px\",\n cursor: \"pointer\",\n \"& .image\": {\n \"& img\": {\n width: \"100%\",\n filter: \"drop-shadow(0px 3px 6px rgb(0 0 0 / 0.25))\",\n }\n }\n }\n },\n\n btnItem: {\n position: \"relative\",\n '& .text-content': {\n display: 'none',\n width: \"fit-content\",\n padding: \"10px\",\n backgroundColor: \"white\",\n position: \"absolute\",\n right: \"120%\",\n top: \"50%\",\n borderRadius: \"6px\",\n boxShadow: \"0 1.93465px 7.73859px rgba(0,0,0,.15)\",\n transform: \"translateY(-50%)\",\n },\n '&:hover .text-content': {\n display: 'block',\n },\n },\n closeBtn: {\n transition: \"0.5s linear\",\n \"&:hover\": {\n transform: \"rotate(360deg)\",\n transition: \"0.5s linear\",\n }\n },\n }));\n const classes = useStyles();\n const [isOpen, setIsOpen] = useState(false);\n\n const onOpen = () => {\n setIsOpen(!isOpen);\n\n };\n return (\n
\n\n {/* */}\n {isOpen &&\n
\n\n
\n
\n \n \"\"\n \n
\n
\n hotro.bombot.vn\n
\n
\n\n
\n
\n \n \n \n
\n
\n 028.7101.0134\n
\n
\n \n\n
\n
\n \n \n \n
\n
\n mailto:hotro@bombot.vn\n
\n
\n\n
\n
\n \n \n \n
\n
\n \n
onOpen()}>\n
\n \n
\n
\n
\n }\n\n {\n !isOpen &&\n
onOpen()}>\n
\n \n
\n
\n }\n\n
\n\n );\n};\nexport default MessengerButton;","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { makeStyles } from '@material-ui/core/styles'\nimport {\n HourglassEmpty,\n PlayCircleFilled,\n PauseCircleFilled,\n CheckCircle,\n} from '@material-ui/icons'\n\n// Styles\nconst useStyles = makeStyles((theme) => ({\n base: {\n padding: theme.spacing(1.5), // Padding mặc định\n borderRadius: '4px',\n margin: theme.spacing(1, 0),\n display: 'flex',\n alignItems: 'center',\n },\n pending: {\n color: 'blue',\n backgroundColor: 'rgba(33, 150, 243, 0.2)', // Xanh dương nhạt\n },\n running: {\n color: 'teal',\n backgroundColor: 'rgba(0, 128, 128, 0.2)', // Màu xanh ngọc nhạt\n },\n cancel: {\n color: 'orange',\n backgroundColor: 'rgba(255, 152, 0, 0.2)', // Cam nhạt\n },\n done: {\n color: 'darkgreen',\n backgroundColor: 'rgba(34, 139, 34, 0.2)', // Xanh lá đậm nhạt\n },\n small: {\n padding: theme.spacing(1), // Padding nhỏ\n fontSize: '12px !important',\n '& $icon': {\n fontSize: '16px !important',\n },\n },\n medium: {\n padding: '8px 12px', // Padding vừa\n fontSize: '14px !important',\n '& $icon': {\n fontSize: '20px !important',\n },\n },\n large: {\n padding: theme.spacing(2), // Padding lớn\n fontSize: '16px !important',\n '& $icon': {\n fontSize: '24px !important',\n },\n },\n icon: {\n marginRight: theme.spacing(1),\n },\n textsmall: {\n fontSize: '12px !important',\n },\n textmedium: {\n fontSize: '14px !important',\n },\n textlarge: {\n fontSize: '16px !important',\n },\n}))\n\n// Component\nconst CampaignStatusLabel = ({\n message,\n type,\n size = 'medium',\n icon,\n ...res\n}) => {\n const classes = useStyles()\n\n // Map trạng thái sang class\n let statusClass\n let IconComponent\n\n if (type === 'pending') {\n statusClass = classes.pending\n IconComponent = HourglassEmpty\n } else if (type === 'running') {\n statusClass = classes.running\n IconComponent = PlayCircleFilled\n } else if (type === 'cancel') {\n statusClass = classes.cancel\n IconComponent = PauseCircleFilled\n } else if (type === 'done') {\n statusClass = classes.done\n IconComponent = CheckCircle\n }\n\n // Kết hợp class của kích thước\n const sizeClass = classes[size] || classes.medium\n\n let textStatusClass = classes[`text${size}`]\n\n return IconComponent ? (\n \n {icon && }\n

{message}

\n \n ) : null\n}\n\n// PropTypes\nCampaignStatusLabel.propTypes = {\n message: PropTypes.string.isRequired,\n type: PropTypes.oneOf(['pending', 'running', 'cancel', 'done']).isRequired,\n size: PropTypes.oneOf(['small', 'medium', 'large']),\n}\n\nCampaignStatusLabel.defaultProps = {\n size: 'medium',\n}\n\n// Export trạng thái\nexport const campaignStatusDir = {\n pending: 'Initial',\n running: 'Running',\n cancel: 'Paused',\n done: 'Completed',\n}\n\nexport default CampaignStatusLabel\n","import { CircularProgress } from '@material-ui/core'\nimport React from 'react'\n\nconst LoadingWrapper = ({ children, isOpen, style, ...res }) => {\n return (\n
\n {children}\n {isOpen && (\n \n \n
\n )}\n \n )\n}\n\nexport default LoadingWrapper\n","import React from 'react'\n\nconst CoppyIcon = ({ height, width }) => {\n return (\n \n \n \n \n \n )\n}\n\nexport default CoppyIcon\n","import axiosClient from './axiosClient'\nimport urlApi from './url'\n\nconst baseUrl = `${process.env.REACT_APP_API_URL}`\n\nconst scenarioApi = {\n get: (params) => {\n return axiosClient.get(`${baseUrl}api/v1.0/scenario`, { params })\n },\n deleteScenario: (payload) => {\n return axiosClient\n .delete(\n `${baseUrl}api/v1.0/campaign/${payload?.id}/scenario/${payload?.scenarioId}`,\n {\n data: payload,\n }\n )\n .then((res) => res.data)\n },\n}\n\nexport default scenarioApi\n","import React from 'react'\nimport ButtonComponent from '../Button'\nimport { useTranslation } from 'react-i18next'\nimport FormDialog from '../FormDialog'\nimport cn from 'classnames'\nimport { makeStyles } from '@material-ui/core'\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n width: '100%',\n padding: '15px 15px 15px 0px',\n },\n paper: {\n width: '100%',\n marginBottom: theme.spacing(2),\n },\n table: {\n minWidth: '100%',\n },\n visuallyHidden: {\n border: 0,\n clip: 'rect(0 0 0 0)',\n height: 1,\n margin: -1,\n overflow: 'hidden',\n padding: 0,\n position: 'absolute',\n top: 20,\n width: 1,\n },\n noData: {\n color: 'rgba(0,0,0,.5)',\n fontWeight: 'bold',\n textAlign: 'center',\n paddingBottom: 15,\n },\n buttonIEA: {\n width: '100%',\n textAlign: 'right',\n marginRight: '15px',\n paddingRight: '15px',\n '& button': {\n marginLeft: 15,\n },\n },\n avatar: {\n margin: '0px auto',\n },\n titlePopup: {\n textAlign: 'center',\n color: '#05AE34',\n },\n wrapButtonPopup: {\n textAlign: 'center',\n },\n}))\n\nconst ConfirmModal = ({ open, handleSubmit, handleCancel, title }) => {\n const { t } = useTranslation()\n const classes = useStyles()\n\n return (\n \n
\n

\n {title}\n

\n
\n \n \n
\n
\n
\n )\n}\n\nexport default ConfirmModal\n","import { createSlice } from '@reduxjs/toolkit'\n\nconst initialState = {\n loading: false,\n}\n\nconst loadingSlice = createSlice({\n name: 'loading',\n initialState,\n reducers: {\n openLoading: (state, action) => {\n state.loading = true\n },\n closeLoading: (state, action) => {\n state.loading = false\n },\n },\n})\n\nexport const { openLoading, closeLoading } = loadingSlice.actions\n\nexport default loadingSlice\n","import React from 'react'\nimport { useTranslation } from 'react-i18next'\n\n// Hàm tính khoảng thời gian còn lại\nconst calculateTimeRemaining = (sendTime) => {\n const now = new Date()\n const targetTime = new Date(sendTime)\n const diff = targetTime - now\n\n if (diff <= 0) return null // Không cần tính khi đã trễ\n\n const hours = Math.floor(diff / (1000 * 60 * 60))\n const minutes = Math.floor((diff % (1000 * 60 * 60)) / (1000 * 60))\n\n if (hours > 0) {\n return `${hours} hour(s) ${minutes} minute(s)`\n } else {\n return `${minutes} minute(s)`\n }\n}\n\n// Hàm xác định trạng thái thời gian\nconst determineTimeStatus = (sendTime) => {\n if (!sendTime) return 'unscheduled' // Không có thời gian gửi\n const now = new Date()\n const targetTime = new Date(sendTime)\n\n if (targetTime < now) {\n return 'overdue' // Trễ lịch\n } else if ((targetTime - now) / (1000 * 60) <= 30) {\n return 'upcoming' // Sắp tới\n } else {\n return 'scheduled' // Lịch gửi\n }\n}\n\n// Hàm xác định màu sắc dựa trên trạng thái\nconst getStatusColors = (status) => {\n switch (status) {\n case 'overdue':\n return { backgroundColor: '#ffcccc', textColor: '#ff0000' } // Đỏ nhạt\n case 'upcoming':\n return { backgroundColor: '#fff4cc', textColor: '#ffa500' } // Cam nhạt\n case 'scheduled':\n return { backgroundColor: '#ccffcc', textColor: '#008000' } // Xanh lá nhạt\n case 'unscheduled':\n return { backgroundColor: '#e0e0e0', textColor: '#808080' } // Xám\n default:\n return { backgroundColor: '#ffffff', textColor: '#000000' } // Trắng\n }\n}\n\n// Component chính\nconst TimeLabel = ({ sendTime, style }) => {\n const { t } = useTranslation()\n const status = determineTimeStatus(sendTime)\n const colors = getStatusColors(status)\n const timeRemaining = sendTime ? calculateTimeRemaining(sendTime) : null\n\n // Format thời gian gửi\n const formattedSendTime = sendTime\n ? new Date(sendTime).toLocaleString()\n : null\n\n // Nội dung hiển thị\n let displayText\n if (status === 'unscheduled') {\n displayText = t('scenario_detail.no_scheduled_time')\n } else if (status === 'overdue') {\n displayText = t('scenario_detail.overdue')\n } else if (status === 'upcoming') {\n displayText = `${timeRemaining}`\n } else {\n displayText = `${formattedSendTime}`\n }\n\n return (\n \n {displayText}\n \n )\n}\n\nexport default TimeLabel\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { makeStyles } from '@material-ui/core/styles'\nimport {\n Dialog,\n DialogTitle,\n DialogContent,\n DialogActions,\n Button,\n Typography,\n} from '@material-ui/core'\nimport { useTranslation } from 'react-i18next'\n\n// Styles\nconst useStyles = makeStyles((theme) => ({\n dialog: {\n borderRadius: '8px',\n padding: theme.spacing(2),\n },\n title: {\n fontWeight: 'bold',\n fontSize: '20px',\n color: theme.palette.primary.main,\n },\n message: {\n fontSize: '16px',\n color: theme.palette.text.primary,\n marginTop: theme.spacing(1),\n },\n actions: {\n display: 'flex',\n justifyContent: 'space-between',\n padding: theme.spacing(2),\n },\n button: {\n padding: theme.spacing(1, 2),\n textTransform: 'capitalize',\n },\n}))\n\nconst ConfirmModal2 = ({\n open,\n onClose,\n onConfirm,\n title = 'Confirmation',\n message = 'Are you sure?',\n confirmText = 'Confirm',\n cancelText = 'Cancel',\n confirmColor = 'primary',\n cancelColor = 'default',\n}) => {\n const classes = useStyles()\n\n const { t } = useTranslation()\n\n return (\n \n {/* Tiêu đề */}\n \n {title}\n \n\n {/* Nội dung */}\n \n {message}\n \n\n {/* Hành động */}\n \n \n {t('common.btn.cancel')}\n \n \n {t('confirm')}\n \n \n \n )\n}\n\nConfirmModal2.propTypes = {\n open: PropTypes.bool.isRequired, // Modal có hiển thị không\n onClose: PropTypes.func.isRequired, // Hàm đóng modal\n onConfirm: PropTypes.func.isRequired, // Hàm xác nhận hành động\n title: PropTypes.string, // Tiêu đề của modal\n message: PropTypes.string, // Nội dung của modal\n confirmText: PropTypes.string, // Text trên nút xác nhận\n cancelText: PropTypes.string, // Text trên nút hủy\n confirmColor: PropTypes.oneOf(['default', 'primary', 'secondary']), // Màu nút xác nhận\n cancelColor: PropTypes.oneOf(['default', 'primary', 'secondary']), // Màu nút hủy\n}\n\nexport default ConfirmModal2\n","import { useCallback, useEffect, useState } from \"react\";\n\nimport {\n ButtonGroup,\n IconButton,\n makeStyles,\n Paper,\n styled,\n Table,\n TableBody,\n TableCell,\n TableContainer,\n TableHead,\n TableRow,\n TableSortLabel,\n Tooltip,\n withStyles\n} from \"@material-ui/core\";\nimport Button from \"@material-ui/core/Button\";\n\nimport {\n KeyboardArrowDown,\n KeyboardArrowUp,\n RemoveCircleOutlined,\n Send\n} from \"@material-ui/icons\";\nimport { Pagination } from \"@material-ui/lab\";\nimport _ from \"lodash\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport CampaignStatusLabel from \"./CampaignStatusLabel\";\nimport LoadingWrapper from \"./LoadingWrapper\";\nimport CoppyIcon from \"./CoppyIcon\";\n\nimport { showError, showSuccess } from \"../stores/alert/slice.alert\";\nimport moment from \"moment\";\nimport { useTranslation } from \"react-i18next\";\nimport scenarioApi from \"../api/scenarioApi\";\nimport ConfirmModal from \"./ConfirmModal\";\nimport { closeLoading, openLoading } from \"../stores/loading/slice.loading\";\nimport Flex from \"./Flex\";\nimport TimeLabel from \"./TimeLabel\";\nimport { useHistory } from \"react-router-dom/cjs/react-router-dom.min\";\nimport FiltersContainer from \"./FiltersContainer\";\nimport ConfirmModal2 from \"./ConfirmModal2\";\nimport types from \"../constants/types\";\n\nconst useStyles = makeStyles((theme) => ({\n collapseBtn: {\n minWidth: \"50px\",\n padding: \"0 8px !important\"\n },\n\n witdhOrd: {\n minWidth: \"60px\",\n padding: \"0 8px !important\"\n },\n\n witdhId: {\n minWidth: \"170px\",\n padding: \"0 8px !important\"\n },\n\n widthName: {\n minWidth: \"160px\",\n padding: \"0 8px !important\"\n },\n\n widthCreator: {\n minWidth: \"160px\",\n padding: \"0 8px !important\"\n },\n\n widthDate: {\n minWidth: \"160px\",\n padding: \"0 8px !important\"\n },\n\n widthStatisticBtn: {\n minWidth: \"170px\",\n padding: \"0 8px !important\"\n },\n\n widthStatistic: {\n minWidth: \"180px\",\n padding: \"0 8px !important\"\n },\n\n widthActions: {\n minWidth: \"160px\",\n padding: \"0 8px !important\"\n },\n\n widthStatus: {\n minWidth: \"130px\",\n padding: \"0 8px !important\"\n },\n\n p0: {\n padding: \"0\",\n margin: \"0\"\n },\n\n heightHeader: {\n height: \"52px\"\n },\n\n f600: {\n fontWeight: 600\n },\n\n actions: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"flex-end\",\n width: \"100%\",\n padding: \"10px 26px 16px 0\"\n },\n\n actionBtnRemove: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n color: \"#ff4d4f\", // Red color for delete button\n fontWeight: 600,\n padding: \"6px 12px\",\n borderRadius: theme.shape.borderRadius,\n transition: \"all 0.3s ease\", // Transition for smooth effect\n \"&:hover\": {\n backgroundColor: \"rgba(255, 77, 79, 0.1)\" // Light red background on hover\n }\n },\n\n actionBtnDetail: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n color: \"rgb(0, 123, 255)\", // Red color for delete button\n fontWeight: 600,\n padding: \"6px 10px\",\n borderRadius: theme.shape.borderRadius,\n transition: \"all 0.3s ease\", // Transition for smooth effect\n \"&:hover\": {\n backgroundColor: \"rgba(33, 150, 243, 0.2)\" // Light red background on hover\n }\n },\n\n actionSend: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n color: \"#52c41a\", // Màu xanh lá cho nút gửi tin nhắn\n fontWeight: 600,\n padding: \"8px 12px\",\n borderRadius: theme.shape.borderRadius,\n transition: \"all 0.3s ease\", // Hiệu ứng chuyển mượt\n \"&:hover\": {\n backgroundColor: \"rgba(82, 196, 26, 0.1)\" // Nền xanh lá nhạt khi hover\n }\n },\n\n actionAdd: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n color: \"#636ae8\", // Màu xanh lá cho nút gửi tin nhắn\n fontWeight: 600,\n padding: theme.spacing(1, 2),\n borderRadius: theme.shape.borderRadius,\n transition: \"all 0.3s ease\", // Hiệu ứng chuyển mượt\n \"&:hover\": {\n backgroundColor: \"rgba(99, 106, 232, 0.1)\" // Nền xanh lá nhạt khi hover\n\n // backgroundColor: 'rgba(82, 196, 26, 0.1)', // Nền xanh lá nhạt khi hover\n }\n },\n\n actionBtnSearch: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n color: \"#007bff\", // Blue color similar to \"Bombot Tags\" text\n fontWeight: 600,\n padding: theme.spacing(1, 2),\n borderRadius: theme.shape.borderRadius,\n transition: \"all 0.3s ease\", // Transition for smooth effect\n backgroundColor: \"rgb(230, 243, 255, 0.5)\",\n \"&:hover\": {\n backgroundColor: \"rgb(230, 243, 255, 0.8)\" // Light blue background color\n },\n border: \"1px solid #a3c1dd\"\n },\n\n actionIcon: {\n fontSize: \"14px\"\n },\n actionTitle: {\n margin: 0,\n fontSize: \"10px !important\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\"\n },\n\n rowItem: {\n cursor: \"pointer\"\n }\n}));\n\nconst sortFields = {\n CREATED_AT: \"createdAt\",\n TIME_SCHEDULE: \"timeSchedule\",\n ALPHABET: \"alphabet\"\n};\n\nconst sortOrd = {\n ASC: \"asc\",\n DESC: \"desc\"\n};\n\nconst dateRange = {\n LAST_7D: [\n moment().clone().subtract(7, \"days\").format(\"YYYY-MM-DD\"),\n moment().format(\"YYYY-MM-DD\")\n ],\n NEXT_24H: [\n moment().format(\"YYYY-MM-DD\"),\n moment().clone().add(1, \"days\").format(\"YYYY-MM-DD\")\n ],\n NEXT_3D: [\n moment().format(\"YYYY-MM-DD\"),\n moment().clone().add(3, \"days\").format(\"YYYY-MM-DD\")\n ],\n NEXT_7D: [\n moment().format(\"YYYY-MM-DD\"),\n moment().clone().add(7, \"days\").format(\"YYYY-MM-DD\")\n ],\n NEXT_14D: [\n moment().format(\"YYYY-MM-DD\"),\n moment().clone().add(14, \"days\").format(\"YYYY-MM-DD\")\n ],\n NEXT_30D: [\n moment().format(\"YYYY-MM-DD\"),\n moment().clone().add(30, \"days\").format(\"YYYY-MM-DD\")\n ]\n};\n\nexport const initSort = {\n [sortFields.CREATED_AT]: \"asc\",\n [sortFields.TIME_SCHEDULE]: \"asc\",\n [sortFields.ALPHABET]: \"asc\"\n};\n\nconst defaultSizeGetScenario = 10;\n\nconst ScenarioManagement = (isPagination) => {\n const classes = useStyles();\n\n const history = useHistory();\n\n const { t } = useTranslation();\n\n const dispatch = useDispatch();\n\n const [isCopiedId, setIsCopiedId] = useState(false);\n const [removingScenario, setRemovingScenario] = useState(null);\n const [isLoadingList, setIsLoadingList] = useState(false);\n\n const [page, setPage] = useState(0);\n const [subScenarios, setCollapsedScenarios] = useState(null);\n const [scenarioList, setScenarioList] = useState(null);\n\n const [selectedFilter, setSelectedFilter] = useState(\"NEXT_7D\");\n\n const handleFilterChange = (filter) => {\n if (filter === \"ALL\") {\n history.push({\n pathname: `/quan-ly-kich-ban`\n });\n }\n setSelectedFilter(filter);\n // Gọi hàm để tải lại danh sách kịch bản với bộ lọc mới\n // Ví dụ: loadScenarioList(filter);\n };\n\n useEffect(() => {\n (async () => {\n setIsLoadingList(true);\n\n const params = {\n page: page,\n size: 10,\n limit: 30,\n search: `scheduleTime=bw=${dateRange[selectedFilter].join(\",\")}`\n };\n\n const res = await getScenarioList(params);\n\n setScenarioList(res);\n\n setIsLoadingList(false);\n })();\n }, [selectedFilter, removingScenario]);\n\n const handleChangePage = async (event, newPage) => {\n setPage(newPage);\n setIsLoadingList(true);\n\n let sort = ``;\n let search = \"\";\n\n const params = {\n page: newPage,\n size: 10,\n limit: 30,\n search: `search=scheduleTime=bw=${dateRange[\"NEXT_3D\"]},${dateRange[\"NEXT_3D\"]}`\n };\n\n const res = await getScenarioList(params);\n\n setScenarioList(res);\n\n setIsLoadingList(false);\n };\n\n const handleDeleteScenario = async (scenarioId, campaignId) => {\n if (!scenarioId || !campaignId) return;\n try {\n dispatch(openLoading());\n const payload = {\n id: campaignId,\n scenarioId\n };\n // await dispatch(deleteScenario(payload))\n\n await scenarioApi.deleteScenario(payload);\n\n const params = {\n page: 0,\n size: 10,\n limit: 30,\n search: `scheduleTime=bw=${dateRange[selectedFilter].join(\",\")}`\n };\n\n const res = await getScenarioList(params);\n\n setScenarioList(res);\n\n dispatch(showSuccess(\"Delete Scenario Successfully\"));\n } catch (error) {\n console.log(\"error ==>\", error);\n dispatch(showError(error.message));\n } finally {\n dispatch(closeLoading());\n }\n };\n\n const getScenarioList = async (params) => {\n return scenarioApi.get(params);\n };\n\n const onViewScenario = useCallback((campaignId, scenarioId, pageId) => {\n window.open(\n `${types.URL.FACEBOOK}&token=${\n localStorage.getItem(\"token\") || null\n }&campaign=${campaignId}&pageId=${pageId}&scenario=${scenarioId}`,\n \"_blank\"\n );\n }, []);\n\n return (\n
\n \n \n\n \n {/* */}\n\n \n \n \n \n \n\n \n
{t(\"overall.lastest_scenario.number\")}
\n \n \n
{t(\"overall.lastest_scenario.code\")}
\n \n \n
{t(\"overall.lastest_scenario.name\")}
\n \n {/* \n
Creator
\n */}\n \n
{t(\"overall.lastest_scenario.created_date\")}
\n \n \n
{t(\"overall.lastest_scenario.customers\")}
\n \n \n
{t(\"overall.lastest_scenario.cus_success\")}
\n \n \n
{t(\"overall.lastest_scenario.cus_failed\")}
\n \n \n
{t(\"overall.lastest_scenario.cus_not_send\")}
\n \n \n
{t(\"overall.lastest_scenario.messages\")}
\n \n \n
{t(\"overall.lastest_scenario.messages_success\")}
\n \n \n
{t(\"overall.lastest_scenario.messages_failed\")}
\n \n \n
{t(\"overall.lastest_scenario.messages_not_send\")}
\n \n\n \n
\n {t(\"overall.lastest_scenario.message_sent_count\")}\n
\n \n\n \n
{t(\"overall.lastest_scenario.status\")}
\n \n \n
{t(\"overall.lastest_scenario.schedule_send\")}
\n \n\n {/* {scenarioList?.content?.length > 0 && (\n \n
{t(\"overall.lastest_scenario.actions\")}
\n \n )} */}\n \n
\n\n {scenarioList?.content?.length > 0 && (\n \n {scenarioList?.content?.map((row, index) => (\n <>\n \n onViewScenario(row.campaignId, row.id, row.pageId)\n }\n className={[classes.heightHeader, classes.rowItem]}\n >\n \n {row.totalSubScenario ? (\n {\n // if (\n // subScenarios?.length &&\n // subScenarios[0]?.scenarioRefId === row.id\n // ) {\n // handleShowSubScenarios(null)\n // } else {\n // handleShowSubScenarios(row.id)\n // }\n // }}\n >\n {subScenarios?.length &&\n subScenarios[0]?.scenarioRefId === row.id ? (\n \n ) : (\n \n )}\n \n ) : (\n <>\n )}\n \n\n \n
\n {scenarioList?.pageable?.pageNumber *\n defaultSizeGetScenario +\n index +\n 1}\n
\n \n\n \n \n \n \n {row.id}\n \n \n \n {\n e.stopPropagation();\n navigator.clipboard.writeText(row.id);\n setIsCopiedId(true);\n setTimeout(() => {\n setIsCopiedId(false);\n }, 1000);\n }}\n size=\"small\"\n style={{ marginLeft: \"14px\" }}\n >\n \n \n \n \n \n\n \n {row.name ? (\n
{row.name}
\n ) : (\n \n {\"_\"}\n

\n )}\n \n\n \n {row.createdAt ? (\n
\n {moment(row.createdAt).format(\"DD/MM/YYYY HH:mm\")}\n
\n ) : (\n \n {\"_\"}\n

\n )}\n \n\n \n {row.totalCus ? (\n \n \n {row.totalCus}\n

\n \n ) : (\n \n {\"_\"}\n

\n )}\n \n\n \n
{row.customerSuccess}
\n \n\n \n
{row.customerFailed}
\n \n\n \n
{row.customerNotSend}
\n \n\n \n
{row.totalMes}
\n \n\n \n
{row.messageSuccess}
\n \n\n \n
{row.messageFailed}
\n \n\n \n
{row.messageNotSend}
\n \n\n \n
{row.totalClickSent}
\n \n\n \n \n \n \n \n\n \n \n \n \n \n\n {/* \n \n \n \n onViewScenario(\n row.campaignId,\n row.id,\n row.pageId\n )\n }\n >\n
\n

\n {t(\"overall.lastest_scenario.see_detail\")}\n

\n
\n \n \n \n */}\n \n\n {subScenarios?.length === 0 &&\n subScenarios[0]?.scenarioRefId === row.id ? (\n subScenarios?.reverse().map((subRow, subIndex) => {\n return (\n \n \n\n \n\n \n \n \n \n {subRow.id}\n \n \n \n {\n e.stopPropagation();\n navigator.clipboard.writeText(\n subRow.id\n );\n setIsCopiedId(true);\n setTimeout(() => {\n setIsCopiedId(false);\n }, 1000);\n }}\n size=\"small\"\n style={{ marginLeft: \"14px\" }}\n >\n \n \n \n \n \n\n \n {subRow.name ? (\n
{subRow.name}
\n ) : (\n \n {\"_\"}\n

\n )}\n \n\n \n {subRow.createdAt ? (\n
\n {moment(subRow.createdAt).format(\n \"DD/MM/YYYY HH:mm\"\n )}\n
\n ) : (\n \n {\"_\"}\n

\n )}\n \n\n \n {subRow.totalCus ? (\n \n \n {subRow.totalCus}\n

\n {/* {\n e.stopPropagation()\n setScenarioCustomerSelected(subRow.id)\n }}\n >\n \n */}\n \n ) : (\n \n {\"_\"}\n

\n )}\n \n\n \n
{subRow.customerSuccess}
\n \n\n \n
{subRow.customerFailed}
\n \n\n \n
{subRow.customerNotSend}
\n \n\n \n
{subRow.totalMes}
\n \n\n \n
{subRow.messageSuccess}
\n \n\n \n
{subRow.messageFailed}
\n \n\n \n
{subRow.messageNotSend}
\n \n\n \n
{subRow.totalClickSent}
\n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n {/* \n {\n e.stopPropagation()\n setRemovingScenario(subRow)\n }}\n >\n
\n \n
\n \n */}\n\n \n \n onViewScenario(\n row.campaignId,\n row.id,\n row.pageId\n )\n }\n >\n
\n

\n {t(\"campaign_dashboard.detail\")}\n

\n
\n \n \n \n \n \n );\n })\n ) : (\n <> \n )}\n \n ))}\n
\n )}\n
\n \n {scenarioList?.content?.length === 0 && (\n \n \n {t(\"update.no_data\")}\n

\n
\n )}\n \n {/* {isPagination && scenarioList?.content?.length > 0 && (\n <>\n \n \n \n handleChangePage(event, newPage - 1)\n }\n disabled={scenarioList?.numberOfElements === 0}\n color=\"secondary\"\n />\n \n \n \n \n )} */}\n\n {\n setRemovingScenario(null);\n }}\n onConfirm={() => {\n handleDeleteScenario(\n removingScenario?.id,\n removingScenario?.campaignId\n );\n setRemovingScenario(null);\n }}\n title={`Confirm scenario deletion`}\n message={`Are you sure you want to delete the scenario ${removingScenario?.name}?`}\n open={!_.isNull(removingScenario)}\n />\n {/* {isOpenFilter && (\n setIsOpenFilter(false)}\n />\n )} */}\n \n \n );\n};\n\nconst CellSticky = styled(TableCell)`\n position: sticky;\n background-color: #fff;\n right: 0;\n top: 0;\n z-index: 2;\n box-shadow: -15px 0px 17px -7px #f0eded;\n`;\n\nconst HtmlTooltip = withStyles((theme) => ({\n tooltip: {\n backgroundColor: \"transparent\",\n maxWidth: \"none\"\n }\n}))(Tooltip);\n\nexport default ScenarioManagement;\n","import { Button } from '@material-ui/core'\nimport Avatar from '@material-ui/core/Avatar'\nimport Checkbox from '@material-ui/core/Checkbox'\nimport FormControl from '@material-ui/core/FormControl'\nimport { makeStyles } from '@material-ui/core/styles'\nimport TextField from '@material-ui/core/TextField'\nimport CheckBoxIcon from '@material-ui/icons/CheckBox'\nimport CheckBoxOutlineBlankIcon from '@material-ui/icons/CheckBoxOutlineBlank'\nimport Autocomplete from '@material-ui/lab/Autocomplete'\nimport cn from 'classnames'\nimport Flex from 'components/Flex'\nimport _ from 'lodash'\nimport MuiPhoneInput from 'material-ui-phone-number'\nimport { useEffect, useMemo, useRef, useState } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { useDispatch, useSelector } from 'react-redux'\nimport Tour from 'reactour'\nimport {\n selectCountries,\n selectCountriesOnly,\n selectGuideList,\n selectGuideListByKey,\n} from 'stores/config/config.selector'\nimport {\n getIsGuideByKey,\n GUIDE_TYPE_ENUM,\n handleUpgrade,\n setIsGuideByKey,\n} from 'utils/helper'\nimport ButtonComponent from '../../components/Button'\nimport FormDialog from '../../components/FormDialog'\nimport ListCampaignComponent from '../../components/ListCampaign'\nimport Loading from '../../components/Loading'\nimport types from '../../constants/types'\nimport MainLayout from '../MainLayout'\nimport AccountInfo from './items/AccountInfo'\nimport ChartDashboard from './items/Chart'\nimport DashboardChart from './items/Chart/Dashboard'\nimport DialogAlertPoints from './items/DialogAlertPoints'\nimport DialogVerifyPhone from './items/DialogVerifyPhone'\nimport Introduce from './items/Introduce'\nimport MessengerButton from './items/MessengerButton'\nimport ScenarioManagement from '../../components/ListScenario'\nimport FiltersContainer from '../../components/FiltersContainer'\nimport moment from 'moment'\nimport { useHistory } from 'react-router-dom/cjs/react-router-dom.min'\n// import CampaignChart from './items/Chart/Campaign'\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n background: 'red',\n },\n sidebar: {\n width: 250,\n float: 'left',\n height: '100vh',\n overflowY: 'auto',\n boxShadow: '0 4px 8px rgba(0, 0, 0, 0.1)',\n background: 'white',\n },\n wrapperCampaignHistory: {\n borderRadius: 20,\n },\n contentRight: {\n width: 'calc(100vw - 265px)',\n float: 'right',\n },\n account: {\n display: 'flex',\n alignItems: 'center',\n background: '#f0f0f0',\n padding: 15,\n },\n userName: {\n fontWeight: 'bold',\n },\n right: {\n marginLeft: 15,\n },\n wrapAccount: {\n padding: 15,\n },\n form: {\n width: '100%',\n // \"& .MuiInputLabel-filled.MuiInputLabel-shrink\": {\n // transform: \"translate(0px, -20px) scale(0.9) !important\",\n // overflow: \"hidden !important\",\n // \"-moz-box-sizing\": \"border-box !important\",\n // \"-webkit-box-orient\": \"vertical !important\",\n // \"-webkit-box-sizing\": \"border-box !important\",\n // \"-webkit-line-clamp\": \"1 !important\",\n // display: \"-webkit-box !important\",\n // /* padding: 0px 20px; */\n // },\n // \"& .MuiInputLabel-filled\": {\n // transform: \"translate(0px, -20px) scale(0.9) !important\",\n // overflow: \"hidden !important\",\n // \"-moz-box-sizing\": \"border-box !important\",\n // \"-webkit-box-orient\": \"vertical !important\",\n // \"-webkit-box-sizing\": \"border-box !important\",\n // \"-webkit-line-clamp\": \"1 !important\",\n // display: \"-webkit-box !important\",\n // /* padding: 0px 20px; */\n // },\n // \"& .MuiFilledInput-input\": {\n // padding: \"10px 12px 10px 2px\",\n // },\n // \"& .MuiAutocomplete-root\": {\n // marginTop: \"30px !important\",\n // marginBottom: \"30px !important\",\n // },\n },\n input: {\n marginBottom: 15,\n },\n button: {\n marginTop: 0,\n },\n buttonVerify: {\n width: 300,\n margin: '5px auto',\n },\n textField: {\n margin: '30px 0px 5px 0px !important',\n },\n select: {\n margin: '10px 0px !important',\n },\n formVerify: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n marginTop: 30,\n marginBottom: 30,\n '& $textField': {\n width: 330,\n },\n '& button': {\n margin: '0px 0px 0px 15px',\n },\n },\n number: {\n fontWeight: 'bold',\n },\n wrapSelectLabel: {\n zIndex: 1,\n fontSize: 16,\n paddingLeft: 10,\n marginTop: -5,\n '&.MuiFormLabel-filled': {\n display: 'none !important',\n },\n '&.Mui-focused': {\n display: 'none !important',\n },\n },\n wrapperMain: {\n paddingRight: '0',\n },\n wrapperBoxInfo: {\n display: 'flex',\n justifyContent: 'space-between',\n padding: '15px 15px 15px 0px',\n },\n\n boxInfoCampaign: {\n background: '#FF5757',\n '& h3': {\n background: '#FF7979',\n },\n '& $link': {\n background: '#E64F4F',\n lineHeight: 0.8,\n },\n },\n\n wrapperTable: {\n width: '100%',\n },\n error: {\n margin: '0px',\n fontSize: '13px',\n color: 'red',\n marginTop: '4px',\n marginLeft: '4px',\n },\n errorCode: {\n margin: '10px 0px 0px 10px',\n fontSize: '14px',\n color: 'red',\n textAlign: 'center',\n },\n wrapAutocomplete: {\n marginTop: 10,\n '& .MuiAutocomplete-inputRoot': {\n height: 'auto',\n },\n },\n}))\n\nconst HomeView = (props) => {\n const {\n getAccount,\n onVerifyNumberPhone,\n onGetOtp,\n verifyNumberPhone,\n user,\n onWhatYouNeed,\n onDashboard,\n share,\n dashboard,\n getCampaign,\n campaign,\n verifyNumberPhoneError,\n onVerifyNumberPhoneVoice,\n updateUser,\n loading,\n } = props\n const classes = useStyles()\n const [name, setName] = useState('')\n const [phone, setPhone] = useState('')\n const [email, setEmail] = useState('')\n const [company, setCompany] = useState('')\n const [business, setBusiness] = useState('')\n const [country, setCountry] = useState()\n const [giftPoints, setGiftPoints] = useState(0)\n const [isAlertPoints, setIsAlertPoints] = useState(true)\n\n const [province, setProvince] = useState('')\n const [isInfo, setIsInfo] = useState(true) // true\n const [isVerify, setIsVerify] = useState(false)\n const [nameError, setNameError] = useState('')\n const [phoneError, setPhoneError] = useState('')\n const [emailError, setEmailError] = useState('')\n const [countryError, setCountryError] = useState('')\n // const [proviceError, setProviceError] = useState(\"\");\n const [isVisibleIntroduce, setIsVisibleIntroduce] = useState(true)\n const [uid, setUID] = useState('')\n const tourOverview = useSelector(\n selectGuideListByKey(GUIDE_TYPE_ENUM.overview)\n )\n const [tourConfig, setTourConfig] = useState(null)\n const { t, i18n } = useTranslation()\n\n const countriesOnly = useSelector(selectCountriesOnly)\n const countries = useSelector(selectCountries)\n const dispatch = useDispatch()\n const isNavigateUpdateRef = useRef()\n const [isShowDashboardTooltip, setIsShowDashboardTooltip] = useState(false)\n\n const [selectedDate, setSelectedDate] = useState(\n new Date().toISOString().split('T')[0]\n )\n const [dailyData, setDailyData] = useState({})\n\n const [selectedFilter, setSelectedFilter] = useState('LAST_1M')\n\n const history = useHistory()\n\n const handleFilterChange = (filter) => {\n if (filter === 'ALL') {\n history.push({\n pathname: `/quan-ly-chien-dich`,\n })\n }\n\n setSelectedFilter(filter)\n }\n\n useEffect(() => {\n const dateData = dashboard.dailyData?.find(\n (item) => item.date === selectedDate\n )\n if (dateData) {\n setDailyData(dateData)\n } else {\n setDailyData({\n totalCus: 0,\n totalSent: 0,\n totalSuccess: 0,\n totalFail: 0,\n })\n }\n }, [selectedDate, dashboard])\n\n useEffect(() => {\n checkAlert()\n if (verifyNumberPhone) {\n setIsInfo(false)\n setIsVerify(false)\n }\n }, [verifyNumberPhone])\n /* End Off veriry phone */\n\n useEffect(() => {\n if (user?.id) {\n const url_string = window.location.href //window.location.href\n const url = new URL(url_string)\n const ref = url.searchParams.get('ref')\n const event = url.searchParams.get('event')\n\n if (\n event == 'upgrade' &&\n ref == 'extension' &&\n !isNavigateUpdateRef.current\n ) {\n isNavigateUpdateRef.current = true\n handleUpgrade({ i18n, user, dispatch })\n }\n }\n }, [user])\n\n useEffect(() => {\n onWhatYouNeed()\n onDashboard()\n }, [])\n\n useEffect(() => {\n const params = {\n page: types.PAGINATION.PAGE,\n size: types.PAGINATION.SIZE,\n sort: 'createdAt,desc',\n search: `createdAt=bw=${dateRange[selectedFilter][0]},${dateRange[selectedFilter][1]}`,\n }\n getCampaign(params)\n }, [selectedFilter])\n\n /* not veriry phone */\n useEffect(() => {\n if (user) {\n if (user?.name || getAccount?.name) {\n setName(user.name || getAccount.name)\n }\n if (user?.email || getAccount?.email) {\n setEmail(user.email || getAccount.email)\n }\n if (user?.phone) {\n let phone = user?.phone || getAccount?.phone\n // tạm thoi\n if (/^0/g.test(user?.phone)) {\n phone = user?.phone?.replace(/^0/g, '+84')\n }\n setPhone(phone)\n }\n // setBusiness(user?.business);\n setCompany(user?.company || '')\n\n setUID(user?.id)\n if (user.phone && user.verify) {\n setIsInfo(false)\n setIsVerify(false)\n if (\n !isVisibleIntroduce &&\n getIsGuideByKey(GUIDE_TYPE_ENUM.overview) &&\n tourOverview &&\n tourOverview?.length\n ) {\n setTourConfig(tourOverview)\n setIsGuideByKey(GUIDE_TYPE_ENUM.overview)\n }\n }\n }\n }, [user, tourOverview, isVisibleIntroduce])\n\n useEffect(() => {\n if (user?.business && share.business && !business) {\n let business = _.toString(user.business).split(',')\n const data = business?.map((b) => {\n return share.business.find((bus) => bus.id === b)\n })\n setBusiness(data)\n }\n\n if (countries && user.country) {\n setCountry(user.country)\n setProvince(user?.province)\n }\n\n if (share?.package && share?.package?.giftPoint) {\n setGiftPoints(share.package.giftPoint)\n }\n }, [user, share, countries])\n\n function checkAlert() {\n if (localStorage.getItem('alertGiftBox') != null) {\n setIsAlertPoints(false)\n } else {\n setIsAlertPoints(true)\n }\n }\n\n const handleChange = (key, value) => {\n switch (key) {\n case 'name':\n setName(value)\n break\n case 'phone':\n setPhone(value)\n break\n case 'email':\n setEmail(value)\n break\n case 'company':\n setCompany(value)\n break\n case 'province':\n setProvince(value)\n break\n case 'business':\n setBusiness(value)\n break\n case 'country':\n setCountry(value)\n setProvince('')\n break\n\n default:\n break\n }\n }\n\n const handleDateChange = (event) => {\n setSelectedDate(event.target.value)\n }\n\n const providerOptions = useMemo(() => {\n if (country) {\n const countrySelected = countries.find((c) => c.countryName === country)\n if (countrySelected) return countrySelected?.provinces\n }\n }, [country])\n\n const handleVerify = (otp) => {\n const data = {\n name,\n phone,\n email,\n company,\n business: business ? business?.map((v) => v?.id) : [],\n country,\n province,\n }\n onVerifyNumberPhone({ phone: phone, otp }, data, uid)\n if (verifyNumberPhone) {\n setIsInfo(false)\n }\n }\n\n const handleVerifyOtpVoice = (otp) => {\n console.warn(business)\n const data = {\n name,\n phone,\n email,\n company,\n business: business ? business.map((v) => v.id) : [],\n country,\n province,\n }\n onVerifyNumberPhoneVoice({ phone: phone, otp }, data, uid)\n if (verifyNumberPhone) {\n setIsInfo(false)\n }\n }\n\n const handleSubmit = () => {\n if (validate()) {\n // onGetOtp({ phone: phone, type: \"text\" });\n setIsInfo(false)\n setIsVerify(true)\n }\n }\n\n const validate = () => {\n setNameError('')\n setPhoneError('')\n setEmailError('')\n let isValid = true\n if (!name || !/\\S/.test(name)) {\n isValid = false\n setNameError(t('noti.name_incorrect'))\n }\n if (!email) {\n isValid = false\n setEmailError(t('noti.email'))\n }\n\n if (email) {\n const pattern = new RegExp(\n /^((\"[\\w-\\s]+\")|([\\w-]+(?:\\.[\\w-]+)*)|(\"[\\w-\\s]+\")([\\w-]+(?:\\.[\\w-]+)*))(@((?:[\\w-]+\\.)*\\w[\\w-]{0,66})\\.([a-z]{2,6}(?:\\.[a-z]{2})?)$)|(@\\[?((25[0-5]\\.|2[0-4][0-9]\\.|1[0-9]{2}\\.|[0-9]{1,2}\\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\\]?$)/i\n )\n if (!pattern.test(email)) {\n isValid = false\n setEmailError(t('noti.email_incorrect'))\n }\n }\n\n if (!phone) {\n isValid = false\n setPhoneError(t('noti.phone'))\n }\n if (!phone?.trim() || phone.length < 5 || phone.length > 20) {\n isValid = false\n setPhoneError(t('noti.phone_incorrect'))\n }\n if (!country) {\n isValid = false\n setCountryError(t('update.country_incorrect'))\n } else {\n setCountryError('')\n }\n // if (country && !province) {\n // isValid = false;\n // setProviceError(t(\"update.province_incorrect\"));\n // } else {\n // setCountryError(\"\");\n // }\n return isValid\n }\n\n const handleBackVerify = () => {\n setIsInfo(true)\n setIsVerify(false)\n }\n\n const closeModalIntroduce = () => {\n setIsVisibleIntroduce(false)\n setTourConfig(null)\n }\n\n const closeAlertPoints = () => {\n setIsAlertPoints(false)\n }\n\n const closeTour = () => {\n setIsShowDashboardTooltip(true)\n setTourConfig(null)\n }\n\n const icon = \n const checkedIcon = \n\n const dateRange = {\n LAST_7D: [\n moment().subtract(7, 'days').startOf('day').format('YYYY-MM-DD'),\n moment().subtract(7, 'days').endOf('day').format('YYYY-MM-DD'),\n ],\n LAST_1M: [\n moment().subtract(1, 'months').startOf('month').format('YYYY-MM-DD'),\n moment().subtract(1, 'months').endOf('month').format('YYYY-MM-DD'),\n ],\n LAST_3M: [\n moment().subtract(3, 'months').startOf('month').format('YYYY-MM-DD'),\n moment().subtract(3, 'months').endOf('month').format('YYYY-MM-DD'),\n ],\n }\n\n return (\n \n \n {t('common.btn.close')}\n \n }\n onRequestClose={closeTour}\n />\n {loading && }\n handleCloseOpen(\"info\")}\n >\n
\n
\n
\n {user.avatar ? (\n \n ) : (\n \n )}\n
\n
\n

\n {t('form_collect_info.title')}{' '}\n {user.name}!\n

{' '}\n

{t('form_collect_info.description')}.

\n
\n
\n

{t('form_collect_info.helper')}

\n

{t('form_collect_info.helper_2')}

\n \n
\n handleChange('name', event.target.value)}\n />\n {!_.isEmpty(nameError) && (\n

{nameError}

\n )}\n
\n
\n handleChange('phone', phone)}\n />\n {/* handleChange(\"phone\", event.target.value)}\n /> */}\n {!_.isEmpty(phoneError) && (\n

{phoneError}

\n )}\n
\n
\n handleChange('email', event.target.value)}\n />\n {!_.isEmpty(emailError) && (\n

{emailError}

\n )}\n
\n
\n option?.name || ''}\n onChange={(e, value) => {\n handleChange('business', value)\n }}\n renderInput={(params) => (\n \n )}\n renderOption={(option, { selected }) => (\n <>\n \n {option?.name}\n \n )}\n />\n
\n\n
\n \n handleChange('company', event.target.value)\n }\n />\n
\n
\n handleChange('country', value)}\n renderInput={(params) => (\n \n )}\n />\n {!_.isEmpty(countryError) && (\n

{countryError}

\n )}\n
\n {country && country !== 'Other' && (\n
\n option || ''}\n style={{ marginTop: 10 }}\n value={province || ''}\n onChange={(e, value) => handleChange('province', value)}\n renderInput={(params) => (\n \n )}\n />\n {/* {!_.isEmpty(proviceError) && (\n

{proviceError}

\n )} */}\n
\n )}\n\n \n handleSubmit()}\n />\n \n
\n
\n \n {isVerify && (\n \n )}\n
\n \n \n \n \n\n
\n

{t('overall.statistic')}

\n
\n \n
\n
\n\n
\n

{t('overall.lastest_campaign.title')}

\n\n
\n \n
\n \n
\n
\n
\n\n
\n

{t('overall.lastest_scenario.title')}

\n
\n \n
\n
\n
\n {isVisibleIntroduce && (\n \n )}\n\n {isAlertPoints && giftPoints > 150 && (\n \n )}\n \n
\n )\n}\n\nHomeView.propTypes = {}\n\nHomeView.defaultProps = {}\n\nexport default HomeView\n","import { createSelector } from \"@reduxjs/toolkit\";\nexport const account = state => state.loginReducer.account;\nexport const statusLogined = state => state.loginReducer.statusLogined;\nexport const forgotPassword = state => state.loginReducer.forgotPassword;\n\nexport const getAccount = createSelector(\n [account],\n (account) => {\n return account;\n }\n);\n","import axiosClient from './axiosClient'\nimport urlApi from './url'\nconst campaignApi = {\n get: (params) => {\n return axiosClient.get(`${urlApi.campaignApi.campaign}`, { params })\n },\n}\n\nexport default campaignApi\n","import { createSlice } from \"@reduxjs/toolkit\";\nimport initialState from \"../../configs/redux/initialState\";\n\nconst campaignReducer = createSlice({\n name: \"campaign\",\n initialState: initialState.campaignReducer,\n reducers: {\n setCampaign: (state, action) => {\n state.campaign = action.payload;\n },\n \n }\n});\n\nexport const {\n setCampaign\n} = campaignReducer.actions;\n\nexport default campaignReducer.reducer;\n","import campaignApi from '../../api/campaignApi';\nimport { setLoading } from \"../App/AppReducer\";\nimport {\n setCampaign,\n} from \"./CampaignReducer\";\n\nexport function getCampaign(params) {\n return dispatch => {\n dispatch(setLoading(true));\n return campaignApi.get(params).then(\n res => {\n dispatch(setCampaign(res));\n dispatch(setLoading(false));\n },\n error => {\n dispatch(setLoading(false));\n }\n );\n };\n}","import { createSelector } from \"@reduxjs/toolkit\";\nexport const campaign = state => state.campaignReducer.campaign;\n","import { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\nimport HomeView from \"./HomeView\";\nimport * as actionsHome from \"./HomeActions\";\nimport * as selectorsLogin from \"../Login/LoginSelectors\";\nimport * as selectorsHome from \"./HomeSelectors\";\nimport * as selectorsApp from \"../App/AppSelectors\";\nimport * as actionsCampaign from \"../Campaign/CampaignActions\";\nimport * as selectorsCampaign from \"../Campaign/CampaignSelectors\";\n// import * as selectorsHome from \"./HomeSelectors\";\nconst mapStateToProps = (state) => {\n return {\n getAccount: selectorsLogin.getAccount(state),\n verifyNumberPhone: selectorsHome.getVerifyNumberPhone(state),\n share: selectorsHome.share(state),\n user: selectorsApp.user(state),\n dashboard: selectorsHome.dashboard(state),\n campaign: selectorsCampaign.campaign(state),\n verifyNumberPhoneError: selectorsHome.verifyNumberPhoneError(state),\n loading: selectorsApp.loading(state),\n };\n};\n\nconst mapDispatchToProps = (dispatch) => ({\n updateUser: (data, uid) => dispatch(actionsHome.updateUser(data, uid)),\n onVerifyNumberPhone: (verify, data, uid) =>\n dispatch(actionsHome.onVerifyNumberPhone(verify, data, uid)),\n onVerifyNumberPhoneVoice: (verify, data, uid) =>\n dispatch(actionsHome.onVerifyNumberPhoneVoice(verify, data, uid)),\n onGetOtp: (data) => dispatch(actionsHome.onGetOtp(data)),\n onWhatYouNeed: () => dispatch(actionsHome.onWhatYouNeed()),\n onDashboard: () => dispatch(actionsHome.onDashboard()),\n getCampaign: (params) => dispatch(actionsCampaign.getCampaign(params)),\n});\nexport const selectShare = mapStateToProps;\n\nexport default withRouter(\n connect(mapStateToProps, mapDispatchToProps)(HomeView)\n);\n","import HomePage from \"./HomeContainer\";\n\nexport default HomePage;\n","import React, { useEffect, useMemo, useState } from \"react\";\nimport { useHistory } from \"react-router-dom\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport IMAGES from \"../../images\";\nimport Container from \"@material-ui/core/Container\";\nimport ButtonComponent from \"../../components/Button\";\nimport Input from \"@material-ui/core/Input\";\nimport InputAdornment from \"@material-ui/core/InputAdornment\";\nimport FormControl from \"@material-ui/core/FormControl\";\nimport EmailIcon from \"@material-ui/icons/Email\";\nimport LockIcon from \"@material-ui/icons/Lock\";\nimport FacebookIcon from \"@material-ui/icons/Facebook\";\nimport { pathKeys } from \"../../constants\";\nimport FormDialog from \"../../components/FormDialog\";\nimport Loading from \"../../components/Loading\";\nimport { useTranslation } from \"react-i18next\";\nimport Flex from \"components/Flex\";\nimport ChangeLanguage from \"components/ChangeLanguage\";\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n minHeight: \"100vh\",\n backgroundSize: \"cover\",\n background: \"no-repeat top\",\n position: \"relative\"\n },\n overlay: {\n position: \"absolute\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n backgroundColor: \"rgba(255, 255, 255, 0.3)\",\n zIndex: 1\n },\n paper: {\n padding: theme.spacing(2),\n textAlign: \"center\",\n color: theme.palette.text.secondary\n },\n wrapperLogin: {\n width: 445,\n minHeight: 500,\n border: \"1px solid #f0f0f0\",\n background: \"#F7FAFC\",\n borderRadius: 12,\n paddingBottom: 15,\n position: \"relative\",\n zIndex: 2,\n boxShadow: \"0 4px 20px rgba(0, 0, 0, 0.1)\"\n },\n top: {\n borderBottom: \"1px solid #f0f0f0\",\n padding: \"1.25rem 0 3rem 0\",\n textAlign: \"center\"\n },\n bottomTitle: {\n marginTop: 23,\n marginBottom: 0,\n fontSize: 18,\n color: \"#8898aa\",\n textAlign: \"center\",\n color: \"rgba(41, 39, 39, 0.40)\",\n fontWeight: 400,\n lineHeight: \"130%\",\n letterSpacing: \"-0.18px\",\n textAlign: \"center\"\n },\n textTitle: {\n marginTop: 8,\n marginBottom: 8,\n fontSize: 14,\n color: \"#8898aa\",\n textAlign: \"center\",\n color: \"#292727\",\n fontWeight: 400,\n lineHeight: \"130%\",\n letterSpacing: \"-0.18px\",\n textAlign: \"center\"\n },\n appTitle: {\n color: \"#292727\",\n fontSize: 24,\n fontWeight: 600,\n lineHeight: \"130%\",\n letterSpacing: \"-0.24px\",\n textAlign: \"center\"\n },\n botIcon: {\n width: \"160px\",\n height: \"auto\",\n display: \"block\",\n margin: \"0 auto\",\n marginBottom: 12\n },\n form: {\n width: \"100%\"\n },\n input: {\n marginBottom: 20\n },\n button: {\n marginTop: 40\n },\n facebook: {\n background: \"#EEE\",\n \"& $iconFacebook\": {\n color: \"#3B5998\"\n },\n \"&:hover\": {\n background: \"#3B5998\",\n color: \"white\",\n \"& $iconFacebook\": {\n color: \"#ffffff\"\n }\n }\n },\n iconFacebook: {\n marginRight: 5,\n display: \"flex\",\n color: \"#3B5998\"\n },\n error: {\n color: \"red\",\n textAlign: \"center\",\n marginBottom: 0,\n marginTop: 12\n },\n forgotPassword: {\n marginTop: 12,\n color: \"#292727\",\n textAlign: \"center\",\n textDecoration: \"underline\",\n \"&:hover\": {\n color: \"#29272799\",\n cursor: \"pointer\",\n textDecoration: \"underline\"\n }\n },\n wrapChangePassword: {\n padding: \"0px 15px 40px 15px\"\n },\n titleChangePassword: {\n textAlign: \"center\",\n marginTop: 30,\n marginBottom: 15,\n color: \"#05AE34\"\n },\n inputForgotPassword: {\n width: \"300px !important\",\n marginRight: 15,\n position: \"relative\",\n top: 10\n },\n wrapForgotPasswordInput: {\n textAlign: \"center\"\n },\n success: {\n color: \"#05AE34\",\n textAlign: \"center\"\n },\n banner: {\n position: \"fixed\",\n top: 30\n }\n}));\n\nconst LoginView = (props) => {\n const {\n login,\n getAccount,\n handleSubmitEmail,\n statusLogined,\n onSubmitForgotPassword,\n forgotPassword,\n loading,\n } = props;\n const classes = useStyles();\n const history = useHistory();\n const [email, setEmail] = useState(\"\");\n const [password, setPassword] = useState(\"\");\n const [isForgotPasswordPopup, setIsForgotPasswordPopup] = useState(false);\n const [emailForgotPassword, setEmailForgotPassword] = useState(\"\");\n const { t, i18n } = useTranslation();\n\n useEffect(() => {\n if (getAccount.token) {\n history.push(pathKeys.HOME);\n }\n }, [getAccount]);\n\n useEffect(() => {\n if (forgotPassword) {\n setEmailForgotPassword(\"\");\n }\n }, [forgotPassword]);\n\n const handleClickButtonFacebook = async () => {\n localStorage.removeItem(\"alertGiftBox\");\n const searchParam = new URLSearchParams(window.location.search);\n const ref = searchParam.get(\"ref\");\n login(ref);\n };\n\n const handleChange = (key, value) => {\n switch (key) {\n case \"email\":\n setEmail(value);\n break;\n case \"password\":\n setPassword(value);\n break;\n default:\n break;\n }\n };\n\n const handleSubmit = () => {\n const searchParam = new URLSearchParams(window.location.search);\n const ref = searchParam.get(\"ref\");\n const payload = { email, password };\n if (ref) payload.ref = ref;\n\n handleSubmitEmail(payload);\n };\n\n const handleForgotPasswordPopup = () => {\n setIsForgotPasswordPopup(true);\n };\n\n const handleCloseForgotPasswordPopup = () => {\n setIsForgotPasswordPopup(false);\n };\n const handleForgotPassword = () => {\n if (emailForgotPassword) {\n const params = {\n email: emailForgotPassword,\n };\n onSubmitForgotPassword(params);\n }\n };\n\n const handleChangeForgotPassword = (key, value) => {\n switch (key) {\n case \"emailForgotPassword\":\n setEmailForgotPassword(value);\n break;\n\n default:\n break;\n }\n };\n\n const background = useMemo(() => {\n return i18n.language?.substr(0, 2) === \"vi\"\n ? IMAGES.BACKGROUND\n : IMAGES.BACKGROUND_INTE;\n }, [i18n.language]);\n return (\n \n
\n {loading && }\n
\n \n \n {/*
*/}\n {/*

{t(\"login.login\")}

*/}\n {/* handleClickButtonFacebook()}\n icon={\n \n \n \n }\n /> */}\n {/*
*/}\n
\n

{t(\"login.welcom_to\")}

\n

\n {t(\"login.bulk_messaging_application\")}\n

\n \n \n \n handleChange(\"email\", event.target.value)\n }\n startAdornment={\n \n \n \n }\n />\n \n handleChange(\"password\", event.target.value)\n }\n startAdornment={\n \n \n \n }\n />\n handleForgotPasswordPopup()}\n >\n {t(\"login.forgot_password.title\")}\n \n\n handleSubmit()}\n />\n

{t(\"login.or\")}

\n handleClickButtonFacebook()}\n icon={\n \n \n \n }\n />\n\n {!statusLogined && statusLogined != null && (\n

{t(\"noti.login_error\")}

\n )}\n
\n
\n
\n \n \n \n
\n
\n\n handleCloseForgotPasswordPopup()}\n >\n
\n

\n {t(\"login.forgot_password.title\")}\n

\n

\n {t(\"login.forgot_password.description\")}\n

\n {forgotPassword != null && !forgotPassword && (\n

{t(\"noti.email_not_exist\")}

\n )}\n {forgotPassword != null && forgotPassword && (\n

{t(\"noti.reset_password\")}

\n )}\n
\n \n handleChangeForgotPassword(\n \"emailForgotPassword\",\n event.target.value\n )\n }\n startAdornment={\n \n \n \n }\n />\n handleForgotPassword()}\n />\n
\n
\n \n
\n );\n};\n\nLoginView.propTypes = {};\n\nLoginView.defaultProps = {};\n\nexport default LoginView;\n","import LoginPage from \"./LoginContainer\";\n\nexport default LoginPage;\n","import { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\nimport LoginView from \"./LoginView\";\nimport * as actionsLogin from \"./LoginActions\";\nimport * as selectorsLogin from \"./LoginSelectors\";\nimport * as selectorsApp from \"../App/AppSelectors\";\nconst mapStateToProps = (state) => {\n return {\n getAccount: selectorsLogin.getAccount(state),\n statusLogined: selectorsLogin.statusLogined(state),\n forgotPassword: selectorsLogin.forgotPassword(state),\n loading: selectorsApp.loading(state),\n };\n};\n\nconst mapDispatchToProps = (dispatch) => ({\n login: (ref) => dispatch(actionsLogin.login(ref)),\n handleSubmitEmail: (params) => dispatch(actionsLogin.onSubmitEmail(params)),\n onSubmitForgotPassword: (params) =>\n dispatch(actionsLogin.onSubmitForgotPassword(params)),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(LoginView);\n","import React, { useEffect, useState } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { pathKeys } from \"../constants\";\nimport _ from \"lodash\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport { useHistory } from \"react-router-dom\";\nimport Table from \"@material-ui/core/Table\";\nimport TableBody from \"@material-ui/core/TableBody\";\nimport TableCell from \"@material-ui/core/TableCell\";\nimport TableContainer from \"@material-ui/core/TableContainer\";\nimport TableHead from \"@material-ui/core/TableHead\";\nimport TablePagination from \"@material-ui/core/TablePagination\";\nimport TableRow from \"@material-ui/core/TableRow\";\nimport TableSortLabel from \"@material-ui/core/TableSortLabel\";\nimport Paper from \"@material-ui/core/Paper\";\nimport cn from \"classnames\";\nimport SearchIcon from \"@material-ui/icons/Search\";\nimport InputAdornment from \"@material-ui/core/InputAdornment\";\nimport moment from \"moment\";\nimport types from \"../constants/types\";\nimport ButtonComponent from \"./Button\";\nimport Pagination from \"@material-ui/lab/Pagination\";\nimport Flex from \"./Flex\";\nimport { Button, TextField } from \"@material-ui/core\";\nimport Tour from \"reactour\";\nimport {\n getIsGuideByKey,\n GUIDE_TYPE_ENUM,\n setIsGuideByKey\n} from \"utils/helper\";\nimport { useSelector } from \"react-redux\";\nimport { selectGuideListByKey } from \"stores/config/config.selector\";\nimport { useTranslation } from \"react-i18next\";\nconst headCells = [\n {\n id: \"ord_number_Fanpage\",\n numeric: true,\n disablePadding: true,\n label: \"fanpage_management.list.ord_number\"\n },\n {\n id: \"nameFanpage\",\n numeric: true,\n disablePadding: true,\n label: \"fanpage_management.list.page_name\"\n },\n {\n id: \"id\",\n numeric: true,\n disablePadding: true,\n label: \"fanpage_management.list.page_id\"\n },\n {\n id: \"time\",\n numeric: true,\n disablePadding: true,\n label: \"fanpage_management.list.last_update_time\"\n },\n {\n id: \"totalCus\",\n numeric: true,\n disablePadding: true,\n label: \"fanpage_management.list.amount_customer\"\n }\n // { id: \"actions\", numeric: true, disablePadding: true, label: \"Thao tác\" },\n];\n\nfunction EnhancedTableHead(props) {\n const { classes } = props;\n const { t } = useTranslation();\n return (\n \n \n {headCells.map((headCell) => (\n \n \n {t(headCell.label)}\n \n \n ))}\n \n \n );\n}\n\nEnhancedTableHead.propTypes = {\n classes: PropTypes.object.isRequired\n};\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n width: \"100%\",\n padding: \"15px 0px 15px 0px\"\n },\n paper: {\n width: \"100%\",\n marginBottom: theme.spacing(2)\n },\n table: {\n minWidth: \"100%\"\n },\n visuallyHidden: {\n border: 0,\n clip: \"rect(0 0 0 0)\",\n height: 1,\n margin: -1,\n overflow: \"hidden\",\n padding: 0,\n position: \"absolute\",\n top: 20,\n width: 1\n },\n \".pagination\": {\n \"& .MuiTablePagination-input\": {\n width: 70\n }\n },\n\n wrapperSearch: {\n width: \"100%\",\n position: \"relative\"\n },\n buttonSearch: {\n width: 150,\n position: \"absolute\",\n right: \"250px\"\n },\n noData: {\n color: \"rgba(0,0,0,.5)\",\n fontWeight: \"bold\",\n textAlign: \"center\",\n paddingBottom: 15\n },\n buttonFilter: {\n width: \"max-content\",\n marginLeft: \"7px\"\n },\n nameFanpage: {\n cursor: \"pointer\"\n }\n}));\n\nlet timeout = 0;\n\nexport default function EnhancedTable(props) {\n console.log(\"🚀 ~ EnhancedTable ~ props:\", props);\n const { t } = useTranslation();\n\n const { data, handleGetData, getData, isPagination, isSearch, user } = props;\n const rows = (data && data?.content) || [];\n console.log(\"🚀 ~ EnhancedTable ~ rows:\", rows);\n const classes = useStyles();\n\n const [page, setPage] = React.useState(0);\n const [dense, setDense] = React.useState(true);\n const [rowsPerPage, setRowsPerPage] = React.useState(types.PAGINATION.SIZE);\n const [search, setSearch] = useState(\"\");\n const history = useHistory();\n\n const tourOverview = useSelector(\n selectGuideListByKey(GUIDE_TYPE_ENUM.fanpage_manager)\n );\n const [tourConfig, setTourConfig] = useState(null);\n\n useEffect(() => {\n const params = {\n page: page,\n size: rowsPerPage,\n search: search ? search : undefined\n };\n getData(params);\n }, [page, rowsPerPage, search]);\n\n useEffect(() => {\n if (\n getIsGuideByKey(GUIDE_TYPE_ENUM.fanpage_manager) &&\n tourOverview?.length\n ) {\n setTourConfig(tourOverview);\n setIsGuideByKey(GUIDE_TYPE_ENUM.fanpage_manager);\n }\n }, [tourOverview]);\n\n // useEffect(() => {\n // handleSubmitSearch();\n // }, []);\n\n // const handleChangePage = (event, newPage) => {\n // setPage(newPage);\n // handleGetData({\n // page: newPage,\n // size: rowsPerPage,\n // search: search ? search : undefined,\n // sort: \"name,asc\"\n // });\n // };\n const handleChangePage = (event, newPage) => {\n setPage(newPage);\n handleGetData({\n page: newPage,\n size: rowsPerPage,\n search: search ? search : undefined,\n sort: \"nameText,asc\"\n });\n };\n\n const handleChangeRowsPerPage = (event) => {\n setRowsPerPage(parseInt(event.target.value, types.PAGINATION.SIZE));\n setPage(0);\n handleGetData({\n page: 0,\n size: parseInt(event.target.value, types.PAGINATION.SIZE),\n search: search ? search : undefined,\n sort: \"nameText,asc\"\n });\n };\n\n const handleChangeDense = (event) => {\n setDense(event.target.checked);\n };\n\n const handleSearch = (key, value) => {\n switch (key) {\n case \"search\":\n setSearch(value);\n break;\n default:\n break;\n }\n };\n\n // const handleSubmitSearch = () => {\n // const params = {\n // page: types.PAGINATION.PAGE,\n // size: types.PAGINATION.SIZE,\n // sort: \"desc\"\n // };\n // if (search) {\n // params.search = `id|name==` + search;\n // }\n // getData(params);\n // setRowsPerPage(types.PAGINATION.SIZE);\n // setPage(types.PAGINATION.PAGE);\n // };\n const handleSubmitSearch = () => {\n const params = {\n page: 0,\n size: rowsPerPage,\n sort: \"nameText,asc\"\n };\n if (search) {\n params.search = `id|name==${search}`;\n }\n getData(params);\n };\n // const handleSubmitOpenExtension = () => {\n // window.open(\n // types.URL.FACEBOOK + `&token=${localStorage.getItem('token') || null}`,\n // '_blank'\n // )\n // }\n\n const handleSubmitOpenExtension = () => {\n let url =\n types.URL.FACEBOOK +\n `&token=${localStorage.getItem(\"token\") || null}` +\n \"&tab=scan\";\n\n window.open(url, \"_blank\");\n };\n\n const onKeyDown = (event) => {\n if (event.key === \"Enter\") {\n handleSubmitSearch();\n }\n };\n const handleChange = (event, value) => {\n setPage(value);\n handleGetData({\n page: value,\n size: rowsPerPage,\n search: search ? search : undefined,\n sort: \"nameText,asc\"\n });\n };\n\n const handleClickFanpage = (id) => {\n history.push({\n pathname: pathKeys.CUSTOMER,\n search: `?page=0&size=10&pageId=${id}&sort=createdAt%2Cdesc`\n });\n };\n return (\n <>\n \n {t(\"common.btn.close\")}\n \n }\n accentColor=\"#05ae34\"\n onRequestClose={() => setTourConfig(null)}\n />\n
\n \n \n setSearch(event.target.value)}\n placeholder={t(\"fanpage_management.search\")}\n style={{ width: 500 }}\n onKeyDown={onKeyDown}\n InputProps={{\n startAdornment: (\n \n \n \n )\n }}\n />\n \n {t(\"common.btn.search\")}\n \n }\n backgroundColor=\"#05AE34\"\n color=\"white\"\n handleClickButton={() => handleSubmitSearch()}\n style={{\n minWidth: \"fit-content\",\n padding: \"6px 16px\"\n }}\n />\n \n {/* handleSearch(\"search\", event.target.value)}\n startAdornment={\n \n \n \n }\n /> */}\n
\n \n \n {t(\"common.btn.scan_customer\")}\n

\n }\n backgroundColor=\"#05AE34\"\n color=\"white\"\n handleClickButton={() => handleSubmitOpenExtension()}\n />\n
\n
\n
\n
\n \n \n \n \n \n {(rows || []).map((row, index) => {\n return (\n handleClickFanpage(row.id)}\n >\n \n {page * rowsPerPage + index + 1}\n \n {row.name}\n {row.id}\n \n {moment(row.updatedAt).format(\"DD/MM/YYYY HH:mm\")}\n \n {row.totalCus}\n {/* \n handleSubmitOpenExtension()}\n />\n */}\n \n );\n })}\n \n \n \n {rows.length == 0 && (\n

{t(\"update.no_data\")}

\n )}\n {isPagination && rows.length > 0 && (\n <>\n \n handleChange(page - 1)}\n />\n \n )}\n
\n {/* {rows.length > 0 && (\n }\n label=\"Thay đổi khoảng cách hiển thị gần\"\n />\n )} */}\n
\n \n );\n}\n\nEnhancedTable.propTypes = {\n data: PropTypes.array,\n search: PropTypes.string,\n isSearch: PropTypes.bool,\n isPagination: PropTypes.bool,\n getData: PropTypes.func,\n handleGetData: PropTypes.func\n};\n\nEnhancedTable.defaultProps = {\n isPagination: true,\n isSearch: true,\n handleGetData: (f) => f,\n getData: (f) => f,\n data: [],\n search: null\n};\n","import React, { useEffect, useState } from \"react\";\nimport MainLayout from \"../MainLayout\";\nimport ListFanpageComponent from \"../../components/ListFanpage\";\nimport Loading from \"../../components/Loading\";\nimport MessengerButton from \"./../Home/items/MessengerButton\";\n\nconst FanpageView = (props) => {\n const { getFanpage, fanpage, user, loading } = props;\n const [data, setData] = useState([]);\n\n useEffect(() => {\n setData(fanpage);\n }, [fanpage]);\n\n const handleGetData = (params) => {\n getFanpage(params);\n };\n\n return (\n \n {loading && }\n handleGetData(params)}\n getData={(params) => getFanpage(params)}\n data={data}\n user={user}\n />\n \n \n );\n};\n\nFanpageView.propTypes = {};\n\nFanpageView.defaultProps = {};\n\nexport default FanpageView;\n","import axiosClient from './axiosClient'\nimport urlApi from './url'\nconst fanpageApi = {\n get: (params) => {\n return axiosClient.get(`${urlApi.fanpageApi.reportPage}`, { params })\n },\n fanPageDetail: (params) => {\n return axiosClient.post(`${urlApi.fanpageApi.fanPageDetail}`, params)\n },\n getDetailFanpage: (id) => {\n return axiosClient.get(`/api/v1.0/fanPage/${id}`)\n },\n\n searchBombotTags: (id, params) => {\n return axiosClient.get(`/api/v1.0/fanPage/${id}/fanPagebombotTags`, {\n params,\n })\n },\n\n getBomBotTagList: (id, params) => {\n return axiosClient.get(`/api/v1.0/fanPage/${id}/fanPagebombotTags`, {\n params,\n })\n },\n\n getFbTagList: (id, params) => {\n return axiosClient.get(`/api/v1.0/fanPage/${id}/fanPageFbTags`, {\n params,\n })\n },\n\n deleteBomBotTagList: (id, payload) => {\n return axiosClient.delete(`/api/v1.0/fanPage/${id}/fanPagebombotTags`, {\n data: payload,\n })\n },\n\n renameTag: (fanpageId, tagId, payload) => {\n return axiosClient.post(\n `/api/v1.0/fanPage/${fanpageId}/fanPagebombotTags/${tagId}`,\n payload\n )\n },\n}\n\nexport default fanpageApi\n","import { createSlice } from \"@reduxjs/toolkit\";\nimport initialState from \"../../configs/redux/initialState\";\n\nconst fanpageReducer = createSlice({\n name: \"fanpage\",\n initialState: {\n ...initialState.fanpageReducer,\n },\n reducers: {\n setFanpage: (state, action) => {\n state.fanpage = action.payload;\n },\n setFanpageFull: (state, action) => {\n state.fanpageFull = action.payload;\n },\n setFanpageSelected: (state, action) => {\n state.loading_page_detail = false;\n state.fanpage_selected = action.payload;\n },\n },\n});\n\nexport const { setFanpage, setFanpageFull, setFanpageSelected } =\n fanpageReducer.actions;\n\nexport default fanpageReducer.reducer;\n","import fanpageApi from \"../../api/fanpageApi\";\nimport { setLoading } from \"../App/AppReducer\";\nimport {\n setFanpageSelected,\n setFanpage,\n setFanpageFull,\n startAddTags,\n addTagsSuccess,\n addTagsFailed,\n} from \"./FanpageReducer\";\n\nexport function getFanpage(params) {\n return (dispatch) => {\n dispatch(setLoading(true));\n return fanpageApi.get(params).then(\n (res) => {\n dispatch(setFanpage(res));\n dispatch(setLoading(false));\n },\n (error) => {\n dispatch(setLoading(false));\n }\n );\n };\n}\n\nexport function getFanpageFull(params) {\n return (dispatch) => {\n dispatch(setLoading(true));\n return fanpageApi.get(params).then(\n (res) => {\n dispatch(setFanpageFull(res));\n dispatch(setLoading(false));\n },\n (error) => {\n dispatch(setLoading(false));\n }\n );\n };\n}\n\nexport function getFanpageDetail(id) {\n return (dispatch) => {\n dispatch(setLoading(true));\n return fanpageApi.getDetailFanpage(id).then(\n (res) => {\n dispatch(setFanpageSelected(res));\n dispatch(setLoading(false));\n },\n (error) => {\n dispatch(setLoading(false));\n }\n );\n };\n}\n","import { createSelector } from \"@reduxjs/toolkit\";\nexport const fanpage = (state) => state.fanpageReducer.fanpage;\n\nconst selectFanpage = (state) => state.fanpageReducer;\nexport const fanpageFull = createSelector(\n selectFanpage,\n (state) => state.fanpageFull\n);\n","import FanpagePage from \"./FanpageContainer\";\n\nexport default FanpagePage;\n","import { connect } from \"react-redux\";\nimport { withRouter } from 'react-router-dom';\nimport FanpageView from \"./FanpageView\";\nimport * as actionsFanpage from \"./FanpageActions\";\nimport * as selectorsFanpage from \"./FanpageSelectors\";\nimport * as selectorsApp from \"../App/AppSelectors\";\n\nconst mapStateToProps = state => {\n return {\n fanpage: selectorsFanpage.fanpage(state),\n user: selectorsApp.user(state),\n loading: selectorsApp.loading(state),\n };\n};\n\nconst mapDispatchToProps = dispatch => ({\n getFanpage: (params) => dispatch(actionsFanpage.getFanpage(params))\n});\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(FanpageView));\n","import { createSlice } from '@reduxjs/toolkit'\nimport initialState from '../../configs/redux/initialState'\nimport _ from 'lodash'\nconst customerReducer = createSlice({\n name: \"customer\",\n initialState: {\n ...initialState.customerReducer,\n filter: {\n search_obj: {},\n search_string: \"\",\n search_arr: []\n },\n loading_add_tag: false,\n is_show_modal_add: false,\n tagsSelected: [],\n importResult: null,\n\n searchUidName: \"\"\n },\n reducers: {\n setCustomer: (state, action) => {\n state.customer = action.payload;\n },\n // setEdit: (state, action) => {\n // state.edit = action.payload;\n // },\n setDetail: (state, action) => {\n state.detail = action.payload;\n },\n setFanpageSelected: (state, action) => {\n state.fanpageSelected = action.payload;\n },\n setTagFacebookSelectedAll: (state, action) => {\n state.tagFacebookSelectedAll = action.payload;\n },\n setSelectTagFacebook: (state, action) => {\n state.selectTagFacebook = action.payload;\n },\n setLoadingImport: (state, action) => {\n state.loadingImport = action.payload;\n },\n setImportSuccess: (state, action) => {\n state.importSuccess = action.payload;\n },\n setFanPageDetail: (state, action) => {\n state.fanPageDetail = action.payload;\n },\n setCustomerAll: (state, action) => {\n state.customerAll = action.payload;\n },\n setCustomerCheck: (state, action) => {\n if (!action.payload.checked) {\n _.remove(state.customerCheck, function (n) {\n return n.id == action.payload.id;\n });\n state.customerCheck = _.concat(...state.customerCheck);\n } else {\n state.customerCheck = _.concat(...state.customerCheck, action.payload);\n }\n },\n setRestCustomerCheck: (state, action) => {\n state.customerCheck = action.payload;\n },\n setCreateCustomerSucss: (state, action) => {\n state.createCustomerSucss = action.payload;\n },\n setMessageImport: (state, action) => {\n state.messageImport = action.payload;\n },\n setFilter: (state, action) => {\n state.filter = {\n ...state.filter,\n search_arr: JSON.parse(JSON.stringify(action.payload.search_arr)), // Deep copy\n search_string: action.payload.search_string\n };\n },\n setSearchUidName: (state, action) => {\n state.searchUidName = action.payload;\n },\n setSearchTagName: (state, action) => {\n state.searchTagName = action.payload;\n },\n startAddTags: (state, action) => {\n state.error = null;\n state.loading_add_tag = true;\n },\n addTagsSuccess: (state, action) => {\n state.loading_add_tag = false;\n state.fanpageSelected = {\n ...state.fanpageSelected,\n ...action.payload\n };\n state.is_show_modal_add = false;\n },\n addTagsFailed: (state, action) => {\n state.loading_add_tag = false;\n state.error = action.payload;\n },\n toggleModalAdd: (state) => {\n state.is_show_modal_add = !state.is_show_modal_add;\n },\n importResult: (state, action) => {\n state.importResult = action.payload;\n },\n clearImportResult: (state) => {\n state.importResult = null;\n },\n setTagSelected: (state, action) => {\n state.tagsSelected = action.payload;\n }\n }\n});\n\nexport const {\n setCustomer,\n setDetail,\n setEdit,\n setFanpageSelected,\n setTagFacebookSelectedAll,\n setSelectTagFacebook,\n setLoadingImport,\n setImportSuccess,\n setFanPageDetail,\n setCustomerAll,\n setCustomerCheck,\n setRestCustomerCheck,\n setCreateCustomerSucss,\n setMessageImport,\n setFilter,\n setSearchUidName,\n startAddTags,\n addTagsSuccess,\n addTagsFailed,\n toggleModalAdd,\n setTagSelected,\n importResult,\n clearImportResult,\n} = customerReducer.actions\n\nexport default customerReducer.reducer\n","import customerApi from '../../api/customerApi'\nimport fanpageApi from '../../api/fanpageApi'\nimport { setLoading } from '../App/AppReducer'\nimport types from '../../constants/types'\nimport {\n setCustomer,\n setEdit,\n setDetail,\n setFanpageSelected,\n setTagFacebookSelectedAll,\n setSelectTagFacebook,\n setLoadingImport,\n setImportSuccess,\n setFanPageDetail,\n setCustomerAll,\n setCustomerCheck,\n setRestCustomerCheck,\n setCreateCustomerSucss,\n setMessageImport,\n startAddTags,\n addTagsSuccess,\n addTagsFailed,\n importResult,\n} from './CustomerReducer'\n\nexport function getCustomer(params) {\n return (dispatch) => {\n dispatch(setLoading(true))\n return customerApi.get(params).then(\n (res) => {\n dispatch(setCustomer(res))\n dispatch(setLoading(false))\n },\n (error) => {\n dispatch(setLoading(false))\n }\n )\n }\n}\nexport function getCustomerAll(params) {\n return (dispatch) => {\n dispatch(setLoading(true))\n return customerApi.get(params).then(\n (res) => {\n dispatch(setCustomerAll(res))\n dispatch(setLoading(false))\n },\n (error) => {\n dispatch(setLoading(false))\n }\n )\n }\n}\n\nfunction saveAs(blob, fileName) {\n var url = window.URL.createObjectURL(blob)\n\n var anchorElem = document.createElement('a')\n anchorElem.style = 'display: none'\n anchorElem.href = url\n anchorElem.download = fileName\n\n document.body.appendChild(anchorElem)\n anchorElem.click()\n\n document.body.removeChild(anchorElem)\n\n // On Edge, revokeObjectURL should be called only after\n // a.click() has completed, atleast on EdgeHTML 15.15048\n setTimeout(function () {\n window.URL.revokeObjectURL(url)\n }, 1000)\n}\n\nexport function onExport(params) {\n // console.log('params', params)\n return (dispatch) => {\n dispatch(setLoading(true))\n return customerApi\n .export(`${params?.fanpageSelected.id}/export`, {\n excludes: params.exclude,\n })\n .then(\n (res) => {\n dispatch(setLoading(false))\n const filename = `Customer_${\n params?.fanpageSelected.name\n }_${Date.now()}`\n const blob = new Blob([res], {\n type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n })\n return saveAs(blob, filename + '.xlsx')\n },\n (error) => {\n dispatch(setLoading(false))\n }\n )\n }\n}\n\nexport function detail(params) {\n return (dispatch) => {\n dispatch(setDetail(params))\n }\n}\nexport function edit(params) {\n return (dispatch) => {\n return customerApi.edit(params).then(\n (res) => {\n return res\n },\n (error) => {\n throw error\n }\n )\n }\n}\nexport function downloadExcel() {\n return (dispatch) => {\n return customerApi.downloadExcel().then(\n (res) => {\n // console.log('res downloadExcel', res);\n },\n (error) => {\n throw error\n }\n )\n }\n}\n\nexport function onSubmitAddTag(params) {\n return (dispatch) => {\n return fanpageApi.fanPageDetail(params).then(\n (res) => {\n dispatch(setFanPageDetail(res))\n },\n (error) => {\n throw error\n }\n )\n }\n}\n\nfunction parseJSONfromParam(inputString) {\n // Split the string based on semicolon\n const keyValuePairs = inputString.split(';')\n\n // Create an object to store key-value pairs\n const resultObject = {}\n\n // Iterate through each key-value pair and add it to the object\n keyValuePairs.forEach((pair) => {\n const [key, value] = pair.split('==')\n if (value) {\n resultObject[key.trim()] = value.trim()\n } else {\n const split = pair.split('=')\n resultObject[split[0].trim()] = split.slice(1).join('=')\n }\n })\n\n // Convert the result object to JSON\n const resultJSON = JSON.stringify(resultObject)\n\n return resultJSON\n}\nexport function onCreate(paramsFilter, rows, params, data) {\n const searchParam = new URLSearchParams(window.location.search)\n const getQuery = searchParam.get('query')\n let excludeArr = []\n rows.map((item) => {\n if (item.checked) {\n return excludeArr.push(item.uid)\n }\n })\n\n const createCustomerParams = {\n ...params,\n totalCus: data.totalElements - rows.length,\n query: `${\n getQuery ? parseJSONfromParam(getQuery) : `{\"pageId\": \"${params.pageId}\"}`\n }`,\n queryString: getQuery || `pageId==${params.pageId}`,\n exclude: excludeArr,\n bombotTags: [],\n totalMes: 0,\n delayTime: 5,\n status: 'pending',\n }\n\n return (dispatch) => {\n dispatch(setLoading(true))\n return customerApi.addCampaignNoScenario(createCustomerParams).then(\n (res) => {\n dispatch(setLoading(false))\n window.open(\n types.URL.FACEBOOK +\n `&token=${localStorage.getItem('token') || null}&campaign=${\n res?.id\n }&pageId=${res.pageId}`,\n '_blank'\n )\n },\n (error) => {\n dispatch(setLoading(false))\n }\n )\n }\n}\n\nexport function fanpageSelected(params) {\n return (dispatch) => {\n dispatch(setFanpageSelected(params))\n }\n}\n\nexport function onCustomerCheck(params) {\n return (dispatch) => {\n dispatch(setCustomerCheck(params))\n }\n}\nexport function onCustomerCheckReset(params) {\n return (dispatch) => {\n dispatch(setRestCustomerCheck(params))\n }\n}\n\nexport function tagFacebookSelectedAll(params) {\n return (dispatch) => {\n dispatch(setTagFacebookSelectedAll(params))\n }\n}\nexport function selectTagFacebook(params) {\n return (dispatch) => {\n dispatch(setSelectTagFacebook(params))\n }\n}\nexport function fileUpload(params) {\n return (dispatch) => {\n dispatch(setImportSuccess(false))\n dispatch(setLoadingImport(true))\n return customerApi.import(params).then(\n (res) => {\n dispatch(setLoadingImport(false))\n dispatch(setImportSuccess(true))\n dispatch(importResult(res.data))\n // dispatch(setCustomer(res));\n },\n (error) => {\n dispatch(setLoadingImport(false))\n dispatch(setImportSuccess(false))\n dispatch(setMessageImport(error.response.data.error))\n }\n )\n\n // const url = 'http://example.com/file-upload';\n // const formData = new FormData();\n // formData.append('file',file)\n // const config = {\n // headers: {\n // 'content-type': 'multipart/form-data'\n // }\n // }\n // return post(url, formData,config)\n }\n}\nexport function resetCustomer() {\n return (dispatch) => {\n dispatch(setCustomer({}))\n }\n}\n\nexport function onAddTags(params) {\n return (dispatch) => {\n dispatch(startAddTags())\n return fanpageApi.fanPageDetail(params).then(\n (res) => {\n dispatch(addTagsSuccess(res))\n },\n (error) => {\n dispatch(addTagsFailed(error))\n throw error\n }\n )\n }\n}\n","import { createSelector } from '@reduxjs/toolkit'\nimport _ from 'lodash'\nexport const customer = (state) => state.customerReducer.customer\nexport const edit = (state) => state.customerReducer.edit\nexport const detail = (state) => state.customerReducer.detail\nexport const fanpageSelected = (state) => state.customerReducer.fanpageSelected\nexport const tagFacebookSelectedAll = (state) =>\n state.customerReducer.tagFacebookSelectedAll\nexport const fanpageFull = (state) => state.fanpageReducer.fanpageFull\nexport const loadingImport = (state) => state.customerReducer.loadingImport\nexport const importSuccess = (state) => state.customerReducer.importSuccess\nexport const fanPageDetail = (state) => state.customerReducer.fanPageDetail\nexport const customerAll = (state) => state.customerReducer.customerAll\nexport const customerCheck = (state) => state.customerReducer.customerCheck\nexport const selectImportResult = (state) => state.customerReducer.importResult\nexport const createCustomerSucss = (state) =>\n state.customerReducer.createCustomerSucss\nexport const messageImport = (state) => state.customerReducer.messageImport\n\nexport const getCustomerAll = createSelector([customerAll], (customerAll) => {\n const items = []\n if (customerAll && customerAll.length > 0) {\n customerAll.map((item) => {\n items.push({\n ...item,\n checked: true,\n })\n })\n }\n return items\n})\n\nexport const getCustomer = createSelector(\n [customer, customerCheck],\n (customer, customerCheck) => {\n const items = []\n if (customer && customer.content && customer.content.length > 0) {\n ;(customer.content || []).map((item) => {\n let obj = _.find(customerCheck, function (obj) {\n return obj.id == item.id\n })\n if (obj) {\n items.push({\n ...item,\n checked: false,\n })\n } else {\n items.push({\n ...item,\n checked: true,\n })\n }\n })\n }\n return { ...customer, content: items }\n }\n)\n\nexport const getListTagFacebook = createSelector(\n [fanpageSelected, detail],\n (fanpageSelectedData, detail) => {\n const items = []\n if (\n fanpageSelectedData &&\n fanpageSelectedData.fbTags &&\n fanpageSelectedData.fbTags.length > 0\n ) {\n let data\n data = [\n {\n id: 'not_in_tag',\n name: 'Không có tag',\n color: '999',\n },\n ...fanpageSelectedData.fbTags,\n ]\n ;(data || []).map((item) => {\n let obj = _.find(detail.fbTags, function (obj) {\n return obj == item.id\n })\n if (obj) {\n items.push({\n ...item,\n checked: true,\n })\n } else {\n items.push({\n ...item,\n checked: false,\n })\n }\n })\n }\n\n return items\n }\n)\n\nexport const getListTagBombot = createSelector(\n [fanpageSelected, detail, fanPageDetail],\n (fanpageSelectedData, detail, fanPageDetail) => {\n const items = []\n if (\n fanpageSelectedData &&\n fanpageSelectedData.bombotTags &&\n fanpageSelectedData.bombotTags.length > 0\n ) {\n let data\n if (\n fanPageDetail &&\n fanPageDetail.bombotTags &&\n fanPageDetail.bombotTags.length > 0\n ) {\n data = [\n {\n id: 'not_in_tag',\n name: 'Không có tag',\n color: '999',\n },\n ...fanPageDetail.bombotTags,\n ]\n } else {\n data = [\n {\n id: 'not_in_tag',\n name: 'Không có tag',\n color: '999',\n },\n ...fanpageSelectedData.bombotTags,\n ]\n }\n ;(data || []).map((item) => {\n let obj = _.find(detail.bombotTags, function (obj) {\n return obj == item.id\n })\n if (obj) {\n items.push({\n ...item,\n checked: true,\n })\n } else {\n items.push({\n ...item,\n checked: false,\n })\n }\n })\n }\n return items\n }\n)\n\nexport const getDetail = createSelector([detail], (data) => {\n let fbTags = []\n let bombotTags = []\n if (data && data.fbTags && data.fbTags.length > 0) {\n ;(data.fbTags || []).map((item) => {\n fbTags.push({\n item,\n checked: true,\n })\n })\n }\n if (data && data.bombotTags && data.bombotTags.length > 0) {\n ;(data.bombotTags || []).map((item) => {\n bombotTags.push({\n item,\n checked: true,\n })\n })\n }\n\n return { ...data, fbTags: fbTags, bombotTags: bombotTags }\n})\n\n//////// tuan anh code\n\nconst selectCustomer = (state) => state.customerReducer\n\nexport const selectFilterCus = createSelector(\n selectCustomer,\n (state) => state.filter\n)\n\nexport const selectSearchUidName = createSelector(\n selectCustomer,\n (state) => state.searchUidName\n)\n\nexport const selectFanpageSelected = createSelector(\n selectCustomer,\n (state) => state.fanpageSelected\n)\n\nexport const selectBombotTags = createSelector(\n selectCustomer,\n (state) => state.fanpageSelected?.bombotTags || []\n)\n\nexport const selectAddTagLoading = createSelector(\n selectCustomer,\n (state) => state.loading_add_tag\n)\nexport const selectIsShowModal = createSelector(\n selectCustomer,\n (state) => state.is_show_modal_add\n)\n\nexport const selectTagSelected = createSelector(\n selectCustomer,\n (state) => state.tagsSelected\n)\n\nexport const selectTagsPageSelected = createSelector(\n fanpageSelected,\n (state) => {\n const fbTags = state?.fbTags\n const bombotTags = state?.bombotTags\n\n const fbTagsObj = {}\n const bombotTagsObj = {}\n\n if (fbTags) {\n fbTags.forEach((tag) => (fbTagsObj[tag.id] = tag))\n }\n if (bombotTags) {\n bombotTags.forEach((tag) => (bombotTagsObj[tag.id] = tag))\n }\n\n return { fbTags: fbTagsObj, bombotTags: bombotTagsObj }\n }\n)\n","import React from \"react\";\nimport { Button, Dialog, DialogContent, TextField } from \"@material-ui/core\";\nimport Flex from \"components/Flex\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { useState } from \"react\";\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\nimport { onAddTags } from \"views/Customer/CustomerActions\";\nimport { selectAddTagLoading } from \"views/Customer/CustomerSelectors\";\nimport { useTranslation } from \"react-i18next\";\n\nconst AddTags = ({ handleClose, open = true, fanpage_selected }) => {\n const dispatch = useDispatch();\n const [messageAddTag, setMessageAddTag] = useState();\n const [txtValue, setTxtValue] = useState();\n const loading = useSelector(selectAddTagLoading);\n\n const { t } = useTranslation();\n\n const handleSubmitAddTag = () => {\n const allTags =\n fanpage_selected?.bombotTags?.length > 0\n ? fanpage_selected?.bombotTags\n : [];\n if (!/\\S/.test(txtValue)) {\n setMessageAddTag(t(\"update.noti.enter_tag\"));\n } else {\n setMessageAddTag(\"\");\n const checkAddTag = (obj) => obj.name === txtValue;\n const checkTagExist = allTags.some(checkAddTag);\n if (checkTagExist) {\n setMessageAddTag(t(\"update.noti.tag_existed\"));\n } else {\n const filtered = allTags.filter(function (el) {\n return el.id !== \"not_in_tag\";\n });\n let dataBombotTag = [...filtered, { name: txtValue }];\n let facebookTags =\n fanpage_selected && fanpage_selected.fbTags\n ? fanpage_selected && fanpage_selected.fbTags\n : [];\n const params = {\n id: fanpage_selected.id,\n name: fanpage_selected.name,\n fbTags: facebookTags,\n bombotTags: dataBombotTag,\n };\n dispatch(onAddTags(params));\n }\n }\n };\n\n const changeInput = (event) => {\n setTxtValue(event.target.value);\n };\n\n return (\n \n
\n \n {messageAddTag && (\n

{messageAddTag}

\n )}\n
\n \n \n {t(\"common.btn.close\")}\n \n \n \n {loading && }\n

{t(\"common.btn.create\")}

\n
\n \n
\n
\n );\n};\n\nexport default AddTags;\n","import {\n Button,\n Chip,\n CircularProgress,\n DialogContent,\n IconButton,\n Snackbar,\n} from '@material-ui/core'\nimport { Dialog, DialogTitle } from '@material-ui/core'\nimport React, { useMemo, useState } from 'react'\nimport Autocomplete from '@material-ui/lab/Autocomplete'\nimport { TextField } from '@material-ui/core'\nimport { useDispatch, useSelector } from 'react-redux'\nimport Flex from 'components/Flex'\nimport AddCircleOutlineIcon from '@material-ui/icons/AddCircleOutline'\nimport Tooltip from '@material-ui/core/Tooltip'\nimport AddTags from './AddTags'\nimport {\n customerCheck,\n selectBombotTags,\n selectFanpageSelected,\n selectIsShowModal,\n} from 'views/Customer/CustomerSelectors'\nimport customerApi from 'api/customerApi'\nimport { useHistory } from 'react-router-dom'\nimport { toggleModalAdd } from 'views/Customer/CustomerReducer'\nimport { useTranslation } from 'react-i18next'\n\nconst ModalTagsBombot = ({\n handleClose,\n open = true,\n isRemove,\n setMessageType,\n customerAfterFilter,\n customerAll,\n}) => {\n const fanpage_selected = useSelector(selectFanpageSelected)\n const bombotTags = useSelector(selectBombotTags)\n const dispatch = useDispatch()\n const [tagSelected, setTagSelected] = useState([])\n const showModalCreate = useSelector(selectIsShowModal)\n const customerExclude = useSelector(customerCheck)\n const [isLoading, setIsLoading] = useState(false)\n const history = useHistory()\n\n const options = useMemo(() => {\n const tagSelectedIds = tagSelected.map((t) => t.id)\n return bombotTags.filter((tag) => !tagSelectedIds.includes(tag.id))\n }, [bombotTags, tagSelected])\n\n const onChange = (_, tags) => {\n setTagSelected(tags)\n }\n\n const onSave = async () => {\n setIsLoading(true)\n setMessageType(null)\n const searchParam = new URLSearchParams(window.location.search)\n const getQuery = searchParam.get('query')\n let payload = {}\n let customerDifferent = customerAll.filter(function (customer) {\n // Kiểm tra xem customer có trong customerAfterFilter hay không\n let existsInFilter = customerAfterFilter.some(function (\n filteredCustomer\n ) {\n return filteredCustomer.uid === customer.uid\n })\n // Trả về true nếu không tồn tại trong customerAfterFilter\n return !existsInFilter\n })\n if (customerAfterFilter.length) {\n payload = {\n search: getQuery || `pageId==${fanpage_selected.pageId}`,\n exclude: customerDifferent.map((cus) => cus.uid),\n bombotTags: tagSelected.map((t) => t.id),\n }\n } else {\n payload = {\n search: getQuery || `pageId==${fanpage_selected.pageId}`,\n exclude: customerExclude.map((cus) => cus.uid),\n bombotTags: tagSelected.map((t) => t.id),\n }\n }\n\n try {\n let res\n if (isRemove) {\n res = await customerApi.removeMultiCustomersBombotTags(payload)\n } else {\n res = await customerApi.addMultiCustomersBombotTags(payload)\n }\n if (res === true) {\n setMessageType('success')\n handleClose()\n } else {\n setMessageType('error')\n }\n } catch (error) {\n setMessageType('error')\n } finally {\n setIsLoading(false)\n window.location.reload()\n }\n }\n\n const toggleModalCreate = () => {\n dispatch(toggleModalAdd())\n }\n\n const { t } = useTranslation()\n\n return (\n
\n \n \n {isRemove\n ? t('customer_management.remove_bombot_tag.title')\n : t('customer_management.add_bombot_tag.title')}\n \n\n \n {!isRemove && (\n
\n {t('customer_management.add_bombot_tag.description')}\n
\n )}\n \n option?.name || ''}\n onChange={onChange}\n selectOnFocus\n clearOnBlur\n renderOption={(value) => {\n return (\n {\n if (value.onClick) {\n value.onClick()\n }\n }}\n >\n {value.name}\n

\n )\n }}\n renderTags={(value, getTagProps) => {\n return value.map((option, index) => (\n \n ))\n }}\n renderInput={(params) => (\n \n )}\n />\n {!isRemove && (\n \n \n \n \n \n )}\n
\n \n \n {t('common.btn.cancel')}\n \n\n \n \n {isLoading && }\n

{t('common.btn.save')}

\n
\n \n
\n
\n \n
\n
\n )\n}\n\nexport default ModalTagsBombot\n","import React from \"react\";\nimport { Controller } from \"react-hook-form\";\nimport { MenuItem, Select } from \"@material-ui/core\";\nimport { useTranslation } from \"react-i18next\";\n\nconst BaseSelect = ({\n errors,\n name,\n options,\n defaultValue,\n control,\n style,\n ...props\n}) => {\n const { t } = useTranslation(0);\n return (\n <>\n {\n return (\n \n {options.map((opt, index) => (\n \n {opt.label}\n \n ))}\n \n );\n }}\n />\n {errors && errors[name] && (\n

{errors[name]?.message}

\n )}\n \n );\n};\n\nexport default BaseSelect;\n","export const FIELD_OPTIONS = [\n {\n label: 'customer_management.list.uid',\n value: 'uid',\n },\n {\n label: 'customer_management.list.facebook_name',\n value: 'name',\n },\n {\n label: 'customer_management.list.gender',\n value: 'gender',\n },\n {\n label: 'customer_management.list.phone',\n value: 'phone',\n },\n {\n label: 'customer_management.list.facebook_tag',\n value: 'fbTags',\n },\n {\n label: 'customer_management.list.bombot_tag',\n value: 'bombotTags',\n },\n {\n label: 'customer_management.list.last_update_time',\n value: 'lastSyncTime',\n },\n {\n label: 'customer_management.list.last_inbox_time',\n value: 'lastInboxTime',\n },\n {\n label: 'customer_management.list.last_customer_inbox_time',\n value: 'lastCustomerInboxTime',\n },\n]\nexport const OPERATION_OPTION_NAME = [\n {\n label: 'customer_management.customer_filter.contain',\n value: 'contain',\n },\n {\n label: 'customer_management.customer_filter.not_contain',\n value: 'ncontain',\n },\n]\n\nexport const OPERATION_TAGS_OPTION = [\n {\n label: 'update.customer_filter.in',\n value: 'in',\n },\n {\n label: 'update.customer_filter.notin',\n value: 'notin',\n },\n]\n\nexport const GENDER_OPTION = [\n {\n label: 'customer_management.customer_filter.is',\n value: '==',\n },\n {\n label: 'customer_management.customer_filter.is_not',\n value: '!=',\n },\n]\nexport const OPERATION_OPTION = [...GENDER_OPTION, ...OPERATION_TAGS_OPTION]\n\nexport const OPERATION_TIME_OPTION = [\n {\n label: 'customer_management.customer_filter.range',\n value: 'bw',\n },\n]\n\nexport const OPERATION_PHONE_OPTION = [\n {\n label: 'customer_management.customer_filter.is',\n value: 'exists',\n },\n]\n\nexport const GENDER_OPTIONS = [\n {\n label: 'update.gender.male',\n value: 'MALE',\n },\n {\n label: 'update.gender.female',\n value: 'FEMALE',\n },\n {\n label: 'update.gender.other',\n value: 'NEUTER',\n },\n]\n\nexport const PHONE_OPTIONS = [\n {\n label: 'update.customer_filter.in',\n value: 'true',\n },\n {\n label: 'update.customer_filter.notin',\n value: 'false',\n },\n]\n","import React from \"react\";\nimport { TextField } from \"@material-ui/core\";\nimport { Controller } from \"react-hook-form\";\nimport { useTranslation } from \"react-i18next\";\n\nconst BaseInput = ({ errors, name, ...props }) => {\n const { t } = useTranslation();\n return (\n <>\n {\n return (\n \n );\n }}\n color=\"secondary\"\n />\n {errors && errors[name] && (\n

{errors[name]?.message}

\n )}\n \n );\n};\n\nexport default BaseInput;\n","import { TextField } from \"@material-ui/core\";\nimport Autocomplete from \"@material-ui/lab/Autocomplete\";\nimport React from \"react\";\nimport { Controller } from \"react-hook-form\";\nimport { useTranslation } from \"react-i18next\";\n\nconst BaseAutocomplete = ({\n errors,\n name,\n options,\n defaultValue,\n control,\n inputStyle = {},\n ...props\n}) => {\n const { t } = useTranslation();\n return (\n {\n return (\n field.onChange(tags)}\n options={options}\n getOptionLabel={(option) => option?.label || \"\"}\n selectOnFocus\n clearOnBlur\n renderOption={(value) => {\n return

{value.label}

;\n }}\n value={field.value || []}\n renderInput={(params) => (\n \n )}\n />\n );\n }}\n />\n );\n};\n\nexport default BaseAutocomplete;\n","import React from \"react\";\nimport { Controller } from \"react-hook-form\";\nimport TextField from \"@material-ui/core/TextField\";\nimport {\n DateRangeDelimiter,\n LocalizationProvider,\n DesktopDateRangePicker,\n} from \"@material-ui/pickers\";\nimport DateFnsUtils from \"@material-ui/pickers/adapter/date-fns\";\nimport Flex from \"components/Flex\";\nimport { useTranslation } from \"react-i18next\";\n\nconst BaseDatePicker = ({ control, name, defaultValue, rules, ...rest }) => {\n const { t } = useTranslation();\n return (\n \n {\n return (\n \n {\n field.onChange(date);\n }}\n value={field.value || [null, null]}\n {...rest}\n renderInput={(startProps, endProps) => {\n return (\n <>\n \n \n {t(\"update.form.to\")}\n \n \n \n );\n }}\n />\n \n );\n }}\n />\n \n );\n};\n\nexport default BaseDatePicker;\n","\nimport { useRef, useEffect } from 'react';\n\nfunction useEffectIgnoreFirst(callback: Function, dependencies: Array) {\n const isFirstRun = useRef(true);\n useEffect(() => {\n if (isFirstRun.current) {\n isFirstRun.current = false;\n return;\n }\n return callback()\n }, dependencies)\n}\n\nexport default useEffectIgnoreFirst","import Flex from 'components/Flex'\nimport BaseSelect from 'components/Form/BaseSelect'\nimport {\n FIELD_OPTIONS,\n GENDER_OPTION,\n GENDER_OPTIONS,\n OPERATION_OPTION,\n OPERATION_OPTION_NAME,\n OPERATION_PHONE_OPTION,\n OPERATION_TAGS_OPTION,\n OPERATION_TIME_OPTION,\n PHONE_OPTIONS,\n} from 'constants/helper'\nimport React, { useEffect, useMemo } from 'react'\nimport { useWatch } from 'react-hook-form'\nimport BaseInput from 'components/Form/BaseInput'\nimport CloseIcon from '@material-ui/icons/Close'\nimport Tooltip from '@material-ui/core/Tooltip'\nimport BaseAutocomplete from 'components/Form/BaseAutocomplete'\nimport BaseDatePicker from 'components/Form/BaseDatePicker'\nimport { useSelector } from 'react-redux'\nimport { Chip, IconButton } from '@material-ui/core'\nimport { selectFanpageSelected } from 'views/Customer/CustomerSelectors'\nimport useEffectIgnoreFirst from 'hook/useEffectIgnoreFirst'\nimport { useTranslation } from 'react-i18next'\n\nconst RenderValue = ({ fieldSelected, name, control, defaultValue }) => {\n const pageSelected = useSelector(selectFanpageSelected)\n const { t } = useTranslation()\n const selectOptions = useMemo(() => {\n if (!pageSelected || !pageSelected.bombotTags) return []\n switch (fieldSelected) {\n case 'bombotTags':\n return pageSelected.bombotTags?.map((t) => ({\n value: t?.id,\n label: t?.name,\n color: t?.color,\n }))\n case 'fbTags':\n if (!pageSelected.fbTags) {\n return []\n }\n return pageSelected.fbTags?.map((t) => ({\n value: t?.id,\n label: t?.name,\n color: t?.color,\n }))\n case 'gender':\n return GENDER_OPTIONS?.map((e) => ({ ...e, label: t(e.label) }))\n case 'phone':\n return PHONE_OPTIONS?.map((e) => ({ ...e, label: t(e.label) }))\n default:\n return []\n }\n }, [fieldSelected, pageSelected])\n\n switch (fieldSelected) {\n case 'uid':\n case 'name':\n return (\n \n )\n case 'gender':\n case 'phone':\n return (\n \n )\n case 'bombotTags':\n case 'fbTags':\n return (\n {\n return value?.map((option, index) => (\n \n ))\n }}\n filterSelectedOptions\n disabled={!fieldSelected}\n name={name}\n control={control}\n options={selectOptions}\n />\n )\n case 'lastInboxTime':\n return (\n \n \n \n )\n case 'lastCustomerInboxTime':\n return (\n \n \n \n )\n case 'lastSyncTime':\n return (\n \n \n \n )\n\n default: {\n return (\n \n )\n }\n }\n}\n\nconst RenderOperation = ({\n fieldSelected,\n name,\n control,\n item,\n selectedFields,\n}) => {\n const { t } = useTranslation()\n\n const OPTIONS = useMemo(() => {\n switch (fieldSelected) {\n case 'bombotTags':\n case 'fbTags':\n return OPERATION_TAGS_OPTION?.map((e) => ({ ...e, label: t(e.label) }))\n case 'lastInboxTime':\n return OPERATION_TIME_OPTION?.map((e) => ({ ...e, label: t(e.label) }))\n case 'lastSyncTime':\n return OPERATION_TIME_OPTION?.map((e) => ({ ...e, label: t(e.label) }))\n case 'lastCustomerInboxTime':\n return OPERATION_TIME_OPTION?.map((e) => ({ ...e, label: t(e.label) }))\n case 'phone':\n return OPERATION_PHONE_OPTION?.map((e) => ({\n ...e,\n label: t(e.label),\n }))\n case 'name':\n case 'uid':\n return OPERATION_OPTION_NAME?.map((e) => ({ ...e, label: t(e.label) }))\n case 'gender':\n return GENDER_OPTION?.map((e) => ({ ...e, label: t(e.label) }))\n default:\n return OPERATION_OPTION?.map((e) => ({ ...e, label: t(e.label) }))\n }\n }, [fieldSelected])\n\n return (\n \n )\n}\n\nconst ConditionItem = ({\n name,\n control,\n item,\n remove,\n setValue,\n index,\n selectedFields,\n}) => {\n const { t } = useTranslation()\n\n const fieldSelected = useWatch({\n control,\n name: `${name}.field`,\n })\n\n useEffectIgnoreFirst(() => {\n switch (fieldSelected) {\n case 'fieldSelected':\n setValue(`${name}.value`, [null, null])\n break\n case 'bombotTags':\n case 'fbTags':\n setValue(`${name}.value`, [])\n break\n default:\n setValue(`${name}.value`, '')\n break\n }\n }, [fieldSelected])\n\n return (\n \n ({ ...e, label: t(e.label) }))}\n defaultValue={item.field}\n />\n
\n \n
\n \n \n {\n remove(index)\n }}\n >\n \n \n \n
\n )\n}\n\nexport default ConditionItem\n","import React, { useEffect } from 'react'\nimport { Dialog, DialogTitle } from '@material-ui/core'\nimport { Button, DialogContent, DialogActions } from '@material-ui/core'\nimport Flex from 'components/Flex'\nimport { useFieldArray, useForm } from 'react-hook-form'\nimport ButtonComponent from 'components/Button'\nimport { useSelector } from 'react-redux'\nimport moment from 'moment'\nimport { setFilter } from 'views/Customer/CustomerReducer'\nimport { useDispatch } from 'react-redux'\nimport ConditionItem from './ConditionItem'\nimport { useHistory } from 'react-router-dom'\nimport {\n selectFanpageSelected,\n selectFilterCus,\n} from 'views/Customer/CustomerSelectors'\nimport { removeVNLang } from 'utils/helper'\nimport Modal from 'react-modal'\nimport { useTranslation } from 'react-i18next'\nimport _ from 'lodash'\nconst customStyles = {\n content: {\n top: '50%',\n left: '50%',\n right: 'auto',\n bottom: 'auto',\n marginRight: '-50%',\n padding: 0,\n transform: 'translate(-50%, -50%)',\n },\n}\nModal.setAppElement('body')\n\nconst FilterCustomerModal = ({\n handleClose,\n isOpen,\n customerAll,\n onSubmitFilter,\n searchVal,\n}) => {\n const pageSelected = useSelector(selectFanpageSelected)\n const filter_value = useSelector(selectFilterCus)\n const history = useHistory()\n const dispatch = useDispatch()\n const {\n handleSubmit,\n control,\n reset,\n setValue,\n formState: { errors },\n } = useForm({\n defaultValues: {\n conditions: [\n {\n field: '',\n operation: '',\n value: '',\n },\n ],\n },\n })\n const { fields, append, remove } = useFieldArray({\n control,\n name: 'conditions',\n })\n\n useEffect(() => {\n if (filter_value?.search_obj?.conditions?.length) {\n reset({\n conditions: filter_value?.search_obj?.conditions,\n })\n }\n }, [filter_value?.search_obj?.conditions])\n\n useEffect(() => {\n reset({\n conditions: [\n {\n field: '',\n operation: '',\n value: '',\n },\n ],\n })\n }, [pageSelected])\n\n const onSubmit = (values) => {\n const filtered = values.conditions.filter(\n (e) => e.value && !(Array.isArray(e.value) && e.value.length === 0)\n )\n let payload = ''\n let filterArr = []\n\n filtered.forEach((condition) => {\n if (condition.operation === '==' || condition.operation === '!=') {\n payload +=\n condition.field +\n condition.operation +\n encodeURIComponent(condition.value) +\n ';'\n } else {\n switch (condition.field) {\n case 'bombotTags':\n case 'fbTags':\n payload +=\n condition.field +\n '=' +\n condition.operation +\n '=' +\n condition.value?.map((v) => v.value).toString() +\n ';'\n break\n case 'phone':\n case 'gender':\n payload +=\n condition.field +\n '=' +\n condition.operation +\n '=' +\n encodeURIComponent(removeVNLang(condition.value)) +\n ';'\n break\n case 'uid':\n case 'name':\n payload +=\n condition.field +\n '=' +\n condition.operation +\n '=' +\n removeVNLang(condition.value) +\n ';'\n break\n case 'lastInboxTime':\n payload +=\n condition.field +\n '=' +\n condition.operation +\n '=' +\n condition.value\n .map((v) => moment(v).format('YYYY-MM-DD'))\n .toString() +\n ';'\n break\n case 'lastCustomerInboxTime':\n payload +=\n condition.field +\n '=' +\n condition.operation +\n '=' +\n condition.value\n .map((v) => moment(v).format('YYYY-MM-DD'))\n .toString() +\n ';'\n break\n case 'lastSyncTime':\n payload +=\n condition.field +\n '=' +\n condition.operation +\n '=' +\n condition.value\n .map((v) => moment(v).format('YYYY-MM-DD'))\n .toString() +\n ';'\n break\n default:\n break\n }\n }\n })\n\n if (filtered[0]) {\n if (filtered[0].field === 'uid') {\n if (filtered[0].operation === 'contain') {\n const customerFilter = customerAll.filter((cus) =>\n cus.uid.includes(filtered[0].value)\n )\n onSubmitFilter(customerFilter)\n } else {\n const customerFilter = customerAll.filter(\n (cus) => !cus.uid.includes(filtered[0].value)\n )\n onSubmitFilter(customerFilter)\n }\n }\n\n if (filtered[0].field === 'name') {\n if (filtered[0].operation === 'contain') {\n const customerFilter = customerAll.filter(\n (cus) => cus.name && cus.name.includes(filtered[0].value)\n )\n onSubmitFilter(customerFilter)\n } else {\n const customerFilter = customerAll.filter(\n (cus) => cus.name && !cus.name.includes(filtered[0].value)\n )\n onSubmitFilter(customerFilter)\n }\n }\n\n if (filtered[0].field === 'gender') {\n if (filtered[0].operation === '==') {\n if (filtered[0].value !== 'ALL') {\n const customerFilter = customerAll.filter(\n (cus) => cus.gender === filtered[0].value\n )\n onSubmitFilter(customerFilter)\n }\n } else {\n if (filtered[0].value !== 'ALL') {\n const customerFilter = customerAll.filter(\n (cus) => cus.gender !== filtered[0].value\n )\n onSubmitFilter(customerFilter)\n }\n }\n }\n\n if (filtered[0].field === 'phone') {\n if (filtered[0].operation === 'exists') {\n if (filtered[0].value === 'true') {\n const customerFilter = customerAll.filter((cus) => cus.phone)\n onSubmitFilter(customerFilter)\n }\n } else {\n if (filtered[0].value !== 'true') {\n const customerFilter = customerAll.filter((cus) => !cus.phone)\n onSubmitFilter(customerFilter)\n }\n }\n }\n\n if (filtered[0].field === 'fbTags') {\n if (filtered[0].operation === 'in') {\n if (filtered[0].value && filtered[0].value.length !== 0) {\n filtered[0].value.map((e) => filterArr.push(e.value))\n Array.from(new Set(filterArr))\n const customerFilter = customerAll.filter(\n (cus) => JSON.stringify(cus.fbTags) === JSON.stringify(filterArr)\n )\n onSubmitFilter(customerFilter)\n }\n } else {\n if (filtered[0].value && filtered[0].value.length !== 0) {\n filtered[0].value.map((e) => filterArr.push(e.value))\n Array.from(new Set(filterArr))\n const customerFilter = customerAll.filter(\n (cus) => JSON.stringify(cus.fbTags) !== JSON.stringify(filterArr)\n )\n onSubmitFilter(customerFilter)\n }\n }\n }\n\n if (filtered[0].field === 'bombotTags') {\n if (filtered[0].operation === 'in') {\n if (filtered[0].value && filtered[0].value.length !== 0) {\n filtered[0].value.map((e) => filterArr.push(e.value))\n Array.from(new Set(filterArr))\n const customerFilter = customerAll.filter(\n (cus) =>\n JSON.stringify(cus.bombotTags) === JSON.stringify(filterArr)\n )\n onSubmitFilter(customerFilter)\n }\n } else {\n if (filtered[0].value && filtered[0].value.length !== 0) {\n filtered[0].value.map((e) => filterArr.push(e.value))\n Array.from(new Set(filterArr))\n const customerFilter = customerAll.filter(\n (cus) =>\n JSON.stringify(cus.bombotTags) !== JSON.stringify(filterArr)\n )\n onSubmitFilter(customerFilter)\n }\n }\n }\n\n if (filtered[0].field === 'lastInboxTime') {\n if (filtered[0].operation === 'bw') {\n if (filtered[0].value) {\n if (filtered[0].value[0] && filtered[0].value[1]) {\n const customerFilter = customerAll.filter(\n (cus) =>\n new Date(cus.lastInboxTime) >= filtered[0].value[0] &&\n new Date(cus.lastInboxTime) <= filtered[0].value[1]\n )\n onSubmitFilter(customerFilter)\n } else if (filtered[0].value[0] && !filtered[0].value[1]) {\n const customerFilter = customerAll.filter(\n (cus) =>\n new Date(cus.lastInboxTime) >= filtered[0].value[0] &&\n new Date()\n )\n onSubmitFilter(customerFilter)\n } else if (!filtered[0].value[0] && filtered[0].value[1]) {\n const customerFilter = customerAll.filter((cus) => cus)\n onSubmitFilter(customerFilter)\n }\n }\n }\n }\n }\n\n payload += `pageId==${pageSelected.id}`\n\n dispatch(\n setFilter({\n search_arr: values.conditions,\n search_string: payload,\n })\n )\n\n handleClose()\n const searchParam = new URLSearchParams(window.location.search)\n searchParam.set('query', payload)\n history.push({\n pathname: window.location.pathname,\n search: '?' + searchParam.toString(),\n })\n }\n\n const addCondition = () => {\n append({\n field: '',\n operation: '',\n value: '',\n })\n }\n const { t } = useTranslation()\n return (\n \n \n {t('customer_management.customer_filter.title')}\n \n
\n \n {fields.map((item, index) => (\n
\n \n
\n ))}\n \n \n \n \n \n {t('common.btn.cancel')}\n \n\n \n \n {/* {isLoading && } */}\n

{t('common.btn.save')}

\n
\n \n
\n
\n \n \n )\n}\n\nexport default FilterCustomerModal\n","import React, { useEffect, useState } from 'react'\nimport { makeStyles } from '@material-ui/core/styles'\nimport CloseIcon from '@material-ui/icons/Close'\nimport { Box, IconButton, Tooltip, Typography } from '@material-ui/core'\n\nconst useStyles = makeStyles({\n container: (props) => ({\n display: 'flex',\n alignItems: 'center',\n backgroundColor: props.backgroundColor,\n borderRadius: '22px',\n border: `1px solid ${props.textColor}20`, // Thêm border với màu tương tự như textColor\n maxWidth: props.maxWidth,\n padding: props.paddingCon,\n width: 'fit-content',\n position: 'relative', // Thêm position để xử lý overlay\n cursor: 'pointer',\n }),\n text: (props) => ({\n fontSize: props.fontSize, // Sử dụng fontSize từ props\n color: props.textColor,\n padding: props.padding, // Sử dụng padding từ props\n }),\n icon: (props) => ({\n fontSize: props.iconSize, // Sử dụng iconSize từ props\n color: '#3A3A3A',\n }),\n\n removedOverlay: {\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n backgroundColor: 'rgba(255, 0, 0, 0.5)', // overlay màu đỏ\n borderRadius: '20px',\n pointerEvents: 'none', // Để overlay không cản trở các thao tác\n backgroundImage:\n 'repeating-linear-gradient(45deg, transparent, transparent 10px, rgba(0, 0, 0, 0.1) 10px, rgba(0, 0, 0, 0.1) 20px)', // Thêm sọc chéo\n zIndex: 1, // Đảm bảo overlay ở trên cùng\n },\n})\n\nconst TagPreviewItem = ({\n background,\n color,\n name,\n size = 'medium',\n style,\n styleText,\n onRemove,\n onUnRemove,\n}) => {\n const sizeStyles = {\n small: {\n padding: '2px 6px',\n fontSize: '11px !important',\n iconSize: '16px',\n maxWidth: '200px',\n },\n medium: {\n padding: '4px 8px',\n fontSize: '13px !important',\n iconSize: '20px',\n maxWidth: '220px',\n },\n large: {\n padding: '6px 2px 6px 12px',\n fontSize: '16px !important',\n iconSize: '24px',\n },\n }\n\n const [isRemoved, setIsRemoved] = useState(false)\n\n const selectedSize = sizeStyles[size] || sizeStyles.medium // Mặc định là medium nếu không có size hợp lệ\n\n const classes = useStyles({\n backgroundColor: background,\n textColor: color,\n padding: selectedSize.padding,\n fontSize: selectedSize.fontSize,\n iconSize: selectedSize.iconSize,\n paddingCon: size !== 'small' ? '2px' : '0px',\n })\n\n const handleDelete = () => {\n setIsRemoved(true)\n }\n\n return (\n \n {name}\n \n }\n >\n {\n onUnRemove && onUnRemove()\n setIsRemoved(false)\n }}\n >\n \n {name}\n \n {onRemove && (\n {\n e.stopPropagation()\n onRemove()\n handleDelete()\n }}\n >\n \n \n )}\n {isRemoved &&
}\n \n \n )\n}\n\nexport default TagPreviewItem\n","import React, { useEffect, useState } from 'react'\n\nimport { makeStyles } from '@material-ui/core/styles'\nimport { Button } from '@material-ui/core'\nimport TagPreviewItem from '../TagPreviewItem'\nimport FormDialog from '../FormDialog'\nimport CloseIcon from '@material-ui/icons/Close'\nimport { useDispatch } from 'react-redux'\nimport { showError } from '../../stores/alert/slice.alert'\nimport LoadingWrapper from '../LoadingWrapper'\n\nconst useStyles = makeStyles((theme) => ({\n tag: {\n backgroundColor: '#d32f2f',\n color: 'white',\n padding: '8px 12px',\n fontSize: '12px',\n borderRadius: '15px',\n boxShadow: '0 4px 6px rgba(0, 0, 0, 0.1)',\n transition: 'background-color 0.3s ease',\n },\n\n footer: {\n display: 'flex',\n justifyContent: 'flex-end',\n marginTop: 12,\n marginRight: 12,\n },\n saveButton: {\n backgroundColor: '#E6F4EA' /* Light green background like the tag */,\n color: '#388E3C' /* Green text similar to the tag text */,\n border: '1px solid #afd0b1',\n\n '&:hover': {\n backgroundColor: '#D0E8D6' /* Slightly darker light green on hover */,\n },\n\n width: '100px',\n fontSize: '12px',\n padding: '6px',\n height: 'fit-content',\n },\n cancelButton: {\n backgroundColor: 'rgb(236, 239, 241)',\n color: '#333333' /* Dark gray text */,\n border: '1px solid rgba(96, 125, 139, 0.125)',\n '&:hover': {\n backgroundColor: '#E0E0E0' /* Slightly darker gray on hover */,\n },\n\n width: '80px',\n fontSize: '12px',\n padding: '6px',\n height: 'fit-content',\n\n marginLeft: '24px',\n },\n\n closeBtn: {\n color: 'rgb(96, 125, 139)',\n minWidth: '50px',\n },\n}))\n\nexport const colorDir1 = [\n {\n backgroundColor: '#F0FFF4', // xanh lá nhạt\n textColor: '#008060', // xanh lá đậm\n },\n {\n backgroundColor: '#E6FFFB', // xanh ngọc nhạt\n textColor: '#00796B', // xanh ngọc đậm\n },\n {\n backgroundColor: '#FFF8E1', // vàng nhạt\n textColor: '#FFA000', // vàng cam đậm\n },\n {\n backgroundColor: '#E3F2FD', // xanh dương rất nhạt\n textColor: '#1565C0', // xanh dương đậm\n },\n {\n backgroundColor: '#FCE4EC', // hồng nhạt\n textColor: '#AD1457', // hồng đậm\n },\n {\n backgroundColor: '#FFEBEE', // đỏ nhạt\n textColor: '#C62828', // đỏ đậm\n },\n {\n backgroundColor: '#FFFDE7', // vàng rất nhạt\n textColor: '#F57F17', // vàng đậm\n },\n {\n backgroundColor: '#F3E5F5', // tím nhạt\n textColor: '#6A1B9A', // tím đậm\n },\n {\n backgroundColor: '#E0F7FA', // xanh nhạt\n textColor: '#00838F', // xanh đậm\n },\n {\n backgroundColor: '#FFF9C4', // vàng kem nhạt\n textColor: '#FBC02D', // vàng nghệ đậm\n },\n {\n backgroundColor: '#F1F8E9', // xanh lá nhạt\n textColor: '#558B2F', // xanh lá đậm\n },\n {\n backgroundColor: '#E8F5E9', // xanh lục nhạt\n textColor: '#2E7D32', // xanh lục đậm\n },\n {\n backgroundColor: '#FFFBF1', // vàng kem rất nhạt\n textColor: '#D17F00', // cam đậm\n },\n {\n backgroundColor: '#EDE7F6', // tím nhạt\n textColor: '#5E35B1', // tím đậm\n },\n {\n backgroundColor: '#FCE7F3', // hồng rất nhạt\n textColor: '#880E4F', // hồng đậm\n },\n {\n backgroundColor: '#FFF1E0', // cam nhạt\n textColor: '#D84315', // cam đậm\n },\n {\n backgroundColor: '#EBF1FF', // xanh lam rất nhạt\n textColor: '#1A73E8', // xanh lam đậm\n },\n {\n backgroundColor: '#FFFAF0', // kem nhạt\n textColor: '#CC8500', // vàng đậm\n },\n {\n backgroundColor: '#E7EFF6', // xanh xám nhạt\n textColor: '#455A64', // xanh xám đậm\n },\n {\n backgroundColor: '#FFF3E0', // cam vàng nhạt\n textColor: '#EF6C00', // cam vàng đậm\n },\n {\n backgroundColor: '#E8EAF6', // xanh xám rất nhạt\n textColor: '#3F51B5', // xanh đậm\n },\n {\n backgroundColor: '#F5E8FF', // tím hồng nhạt\n textColor: '#7B1FA2', // tím hồng đậm\n },\n {\n backgroundColor: '#EFF8E1', // xanh lá nhạt\n textColor: '#33691E', // xanh lá rất đậm\n },\n {\n backgroundColor: '#FFEDF0', // đỏ hồng nhạt\n textColor: '#B71C1C', // đỏ rất đậm\n },\n\n {\n backgroundColor: '#FFF5F7', // hồng rất nhạt\n textColor: '#C2185B', // hồng đậm\n },\n {\n backgroundColor: '#F0F4C3', // xanh lá chanh nhạt\n textColor: '#827717', // xanh lá đậm\n },\n {\n backgroundColor: '#FFEBEE', // đỏ nhạt\n textColor: '#D32F2F', // đỏ đậm\n },\n {\n backgroundColor: '#F1F8E9', // xanh lá rất nhạt\n textColor: '#33691E', // xanh lá đậm\n },\n {\n backgroundColor: '#E1F5FE', // xanh dương nhạt\n textColor: '#0277BD', // xanh dương đậm\n },\n {\n backgroundColor: '#FCE4EC', // hồng nhạt\n textColor: '#E91E63', // hồng đậm\n },\n {\n backgroundColor: '#FFF3E0', // vàng cam nhạt\n textColor: '#FB8C00', // cam đậm\n },\n {\n backgroundColor: '#E0F7FA', // xanh ngọc nhạt\n textColor: '#0097A7', // xanh ngọc đậm\n },\n {\n backgroundColor: '#F9FBE7', // vàng xanh rất nhạt\n textColor: '#827717', // vàng xanh đậm\n },\n {\n backgroundColor: '#FFF8E1', // vàng nhạt\n textColor: '#F57C00', // cam đậm\n },\n {\n backgroundColor: '#F1EFFF', // tím rất nhạt\n textColor: '#512DA8', // tím đậm\n },\n\n {\n backgroundColor: '#ECEFF1', // xanh xám nhạt\n textColor: '#607D8B', // xanh xám đậm\n },\n {\n backgroundColor: '#F3E5F5', // tím nhạt\n textColor: '#8E24AA', // tím đậm\n },\n {\n backgroundColor: '#F0F4C3', // vàng xanh nhạt\n textColor: '#9E9D24', // xanh vàng đậm\n },\n {\n backgroundColor: '#E3F2FD', // xanh dương nhạt\n textColor: '#1E88E5', // xanh dương đậm\n },\n {\n backgroundColor: '#E8F5E9', // xanh lục nhạt\n textColor: '#388E3C', // xanh lục đậm\n },\n {\n backgroundColor: '#F9FBE7', // vàng chanh rất nhạt\n textColor: '#C0CA33', // xanh vàng đậm\n },\n {\n backgroundColor: '#FFEBEE', // đỏ nhạt\n textColor: '#D50000', // đỏ đậm\n },\n {\n backgroundColor: '#FCE4EC', // hồng nhạt\n textColor: '#C2185B', // hồng đậm\n },\n {\n backgroundColor: '#E0F2F1', // xanh ngọc nhạt\n textColor: '#00695C', // xanh ngọc đậm\n },\n {\n backgroundColor: '#FFFDE7', // vàng rất nhạt\n textColor: '#FBC02D', // vàng đậm\n },\n {\n backgroundColor: '#FFF3E0', // cam nhạt\n textColor: '#F57C00', // cam đậm\n },\n {\n backgroundColor: '#F3E5F5', // tím nhạt\n textColor: '#AB47BC', // tím đậm\n },\n {\n backgroundColor: '#FFEBEE', // đỏ nhạt\n textColor: '#C62828', // đỏ đậm\n },\n]\n\nexport const getRandomTag = (tagsArray) => {\n const randomIndex = Math.floor(Math.random() * tagsArray.length)\n return tagsArray[randomIndex]\n}\n\nconst TagsModal = ({\n isOpen,\n onClose,\n selectedTags,\n tagsObj,\n customer,\n handleRemoveTags,\n type,\n}) => {\n const [removingTags, setRemovingTags] = useState([])\n const [isLoading, setIsLoading] = useState(false)\n\n const dispatch = useDispatch()\n\n const classes = useStyles()\n\n const onSubmitRemoveTags = async () => {\n try {\n setIsLoading(true)\n await handleRemoveTags(customer, removingTags)\n } catch (error) {\n dispatch(showError(error.message))\n } finally {\n setIsLoading(false)\n onClose()\n }\n }\n\n return (\n \n \n
\n \n \n {type === 'bombotTag' ? 'Bombot Tags' : 'Facebook Tags'}\n \n\n \n
\n \n {selectedTags?.length > 0 &&\n selectedTags.map((tag, index) => {\n const tagContent =\n type === 'bombotTag'\n ? tagsObj.bombotTags[tag]\n : tagsObj.fbTags[tag]\n return (\n {\n setRemovingTags((prev) => {\n const prevTmp = [...prev]\n prevTmp.push(tag)\n return prevTmp\n })\n }\n : null\n }\n onUnRemove={\n type === 'bombotTag'\n ? () => {\n setRemovingTags((prev) => {\n let prevTmp = prev.filter((id) => id !== tag)\n return prevTmp\n })\n }\n : null\n }\n />\n )\n })}\n \n\n
\n {type === 'bombotTag' && (\n \n Save\n \n )}\n \n
\n \n
\n
\n )\n}\n\nexport default TagsModal\n","import React from 'react';\nimport {\n Dialog,\n DialogTitle,\n DialogContent,\n DialogActions,\n Button,\n Typography\n} from '@material-ui/core';\nimport { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles({\n confirmButton: {\n backgroundColor: \"#05AE34\",\n color: \"white\",\n borderRadius: \"20px\",\n textTransform: \"none\",\n \"&:hover\": {\n backgroundColor: \"#049c2f\"\n }\n },\n dialogActions: {\n paddingRight: \"16px\",\n paddingBottom: \"16px\"\n }\n});\n\n/**\n * Custom confirm modal có thể tái sử dụng ở các trang khác\n */\nconst Confirm = ({\n open,\n title,\n content,\n onClose,\n onConfirm,\n confirmText = 'Xác nhận',\n cancelText = 'Hủy'\n}) => {\n const classes = useStyles();\n \n return (\n \n {title && (\n \n {title}\n \n )}\n \n \n {content}\n \n\n \n \n \n \n \n );\n};\n\nexport default Confirm;","import { useEffect } from 'react'\n\nfunction useDebounce(callback, delay, dependencies = []) {\n useEffect(() => {\n const handler = setTimeout(() => {\n callback()\n }, delay)\n\n // Hủy bỏ timeout nếu dependencies thay đổi hoặc khi component unmount\n return () => clearTimeout(handler)\n }, [...dependencies, delay])\n}\n\nexport default useDebounce\n","import React, { useEffect, useMemo, useState } from 'react'\nimport {\n Button,\n Checkbox,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n FormControlLabel,\n IconButton,\n InputAdornment,\n makeStyles,\n Paper,\n Table,\n TableBody,\n TableCell,\n TableContainer,\n TableHead,\n TableRow,\n TextField,\n Tooltip,\n} from '@material-ui/core'\nimport cn from 'classnames'\nimport Flex from 'components/Flex'\nimport { useTranslation } from 'react-i18next'\nimport SearchIcon from '@material-ui/icons/Search'\nimport { Pagination } from '@material-ui/lab'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { selectFanpageSelected } from 'views/Customer/CustomerSelectors'\nimport _ from 'lodash'\nimport ErrorOutlineIcon from '@material-ui/icons/ErrorOutline'\nimport EditIcon from '@material-ui/icons/Edit'\nimport fanpageApi from '../../api/fanpageApi'\nimport styled from 'styled-components'\nimport { X } from 'react-feather'\nimport moment from 'moment'\nimport TagPreviewItem from 'components/TagPreviewItem'\nimport LoadingWrapper from '../LoadingWrapper'\nimport { showError, showSuccess } from '../../stores/alert/slice.alert'\nimport customerApi from '../../api/customerApi'\nimport types from '../../constants/types'\nimport Confirm from 'components/Modals/Confirm'\nimport useDebounce from '../../hook/useDebouce'\nimport { ArrowBack } from '@material-ui/icons'\nimport ButtonComponent from 'components/Button'\nimport { closeLoading, openLoading } from '../../stores/loading/slice.loading'\n\nconst useStyles = makeStyles((theme) => ({\n paper: {\n width: '100%',\n marginBottom: '80px',\n },\n table: {\n minWidth: '100%',\n },\n visuallyHidden: {\n border: 0,\n clip: 'rect(0 0 0 0)',\n height: 1,\n margin: -1,\n overflow: 'hidden',\n padding: 0,\n position: 'absolute',\n top: 20,\n width: 1,\n },\n '.pagination': {\n '& .MuiTablePagination-input': {\n width: 70,\n },\n },\n\n wrapperSearch: {\n position: 'relative',\n },\n\n buttonIEA: {\n width: '100%',\n // marginTop: 10,\n textAlign: 'left',\n marginRight: '15px',\n padding: '20px 15px 15px 0px',\n position: 'fixed',\n bottom: 60,\n background: '#F6F9FC',\n '& button': {\n marginRight: 15,\n },\n },\n noData: {\n color: 'rgba(0,0,0,.5)',\n fontWeight: 'bold',\n textAlign: 'center',\n padding: '24px',\n },\n iconCheck: {\n '& .MuiSvgIcon-root': {\n width: '40',\n height: '40',\n },\n },\n icon: {\n marginLeft: 5,\n cursor: 'pointer',\n '& .MuiSvgIcon-root': {\n width: '40',\n height: '40',\n },\n },\n classTags: {\n '&:last-child': {\n '& span': {\n display: 'none',\n },\n },\n },\n wrapBox: {\n padding: '15px',\n marginBottom: 30,\n },\n inputAdd: {\n width: '100%',\n marginBottom: 15,\n },\n wrapButton: {\n textAlign: 'center',\n },\n buttonLoadMore: {\n border: '0px',\n color: 'var(--primary-color) !important',\n backgroundColor: 'unset',\n },\n\n witdhSeq: {\n minWidth: '120px',\n width: '4%',\n },\n\n witdhCheckBox: {\n minWidth: '60px',\n width: '4%',\n },\n\n witdhUid: {\n minWidth: '160px',\n width: '15%',\n padding: '0 8px !important',\n },\n\n widthName: {\n minWidth: '160px',\n width: '15%',\n padding: '0 8px !important',\n },\n\n widthGender: {\n minWidth: '120px',\n width: '6%',\n padding: '0 8px !important',\n },\n\n widthPhone: {\n minWidth: '160px',\n width: '15%',\n padding: '0 8px !important',\n },\n\n widthDate: {\n minWidth: '200px',\n width: '15%',\n padding: '0 8px !important',\n },\n\n widthLinkFB: {\n minWidth: '120px',\n width: '15%',\n padding: '0 8px !important',\n },\n\n witdhAction: {\n minWidth: '120px',\n width: '4%',\n },\n\n widthTag: {\n minWidth: '140px',\n width: '15%',\n padding: '12px 8px !important',\n },\n\n witdhUidErr: {\n minWidth: '140px',\n width: '20%',\n padding: '0 8px !important',\n },\n\n p0: {\n padding: '0',\n margin: '0',\n },\n\n heightHeader: {\n height: '52px',\n },\n\n f600: {\n fontWeight: 600,\n },\n\n checkBoxPadding: {\n padding: '10px 20px',\n },\n\n actions: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n width: '100%',\n padding: '18px 0 8px',\n },\n\n closeBtn: {\n color: '#ffffff', // Màu chữ trắng\n backgroundColor: '#dc3545', // Màu nền đỏ để nổi bật\n border: '2px solid #dc3545', // Viền có màu giống nền\n padding: '6px 20px', // Padding cho nút\n borderRadius: '4px', // Đường viền tròn cho nút\n cursor: 'pointer', // Con trỏ chuột khi hover\n margin: '0 36px !important',\n '&:hover': {\n backgroundColor: '#c82333', // Màu nền khi hover (đỏ đậm hơn)\n borderColor: '#bd2130', // Màu viền khi hover\n },\n },\n dialogTitle: {\n position: 'relative',\n paddingRight: '48px',\n margin: 0,\n padding: '16px 24px',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n },\n backButton: {\n padding: '8px',\n marginRight: '8px',\n color: '#637381',\n '&:hover': {\n color: '#212B36',\n backgroundColor: 'rgba(99, 115, 129, 0.08)',\n },\n },\n closeButton: {\n position: 'absolute',\n right: 0,\n top: '50%',\n transform: 'translateY(-50%)',\n color: '#637381',\n padding: '8px',\n marginRight: '8px',\n '&:hover': {\n color: '#212B36',\n backgroundColor: 'rgba(99, 115, 129, 0.08)',\n borderRadius: '50%',\n },\n },\n\n submitBtn: {\n color: 'white', // Màu chữ\n backgroundColor: '#28a745', // Màu nền\n border: '2px solid #28a745', // Viền\n padding: '6px 26px', // Padding cho nút\n borderRadius: '4px', // Đường viền tròn cho nút\n cursor: 'pointer', // Con trỏ chuột khi hover.\n margin: '0 36px !important',\n '&:hover': {\n backgroundColor: '#218838', // Màu nền khi hover\n borderColor: '#1e7e34', // Màu viền khi hover\n },\n },\n\n numCusInp: {\n fontSize: '14px',\n display: 'flex',\n justifyContent: 'end',\n alignItems: 'center',\n },\n\n footerContainer: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n width: '100%',\n margin: '12px 0',\n minHeight: '48px',\n },\n\n container: {\n flex: 1,\n width: '100%',\n },\n\n paginationBottom: {\n display: 'flex !important',\n justifyContent: 'end !important',\n alignItems: 'center !important',\n },\n\n buttonLoadMore: {\n alignItems: 'center',\n appearance: 'none',\n backgroundColor: '#fff',\n border: '1px solid #dbdbdb',\n borderRadius: '.375em',\n boxShadow: 'none',\n boxSizing: 'border-box',\n color: '#363636',\n cursor: 'pointer',\n display: 'inline-flex',\n fontFamily: `BlinkMacSystemFont, -apple-system, \"Segoe UI\", Roboto, Oxygen, Ubuntu, Cantarell, \"Fira Sans\", \"Droid Sans\", \"Helvetica Neue\", Helvetica, Arial, sans-serif`,\n fontSize: '0.8rem',\n height: '1.8em',\n justifyContent: 'center',\n lineHeight: '1.5',\n padding: 'calc(.5em - 1px) 1em',\n position: 'relative',\n textAlign: 'center',\n userSelect: 'none',\n WebkitUserSelect: 'none',\n touchAction: 'manipulation',\n verticalAlign: 'top',\n whiteSpace: 'nowrap',\n width: '100%',\n\n '&:hover': {\n borderColor: '#b5b5b5',\n },\n '&:active': {\n borderColor: '#4a4a4a',\n outline: '0',\n },\n '&:focus': {\n borderColor: '#485fc7',\n outline: '0',\n },\n '&:focus:not(:active)': {\n boxShadow: 'rgba(72, 95, 199, 0.25) 0 0 0 0.125em',\n },\n },\n\n rowItem: {\n cursor: 'pointer',\n },\n\n tagsContainer: {\n display: 'flex',\n flexWrap: 'wrap',\n gap: '4px',\n padding: '4px 0 !important',\n },\n}))\nconst countRowPerPages = 10\n\nconst CustomersInBomBotTagModal = ({ isOpen, handleClose, tagId }) => {\n const { t } = useTranslation()\n const classes = useStyles()\n const pageSelected = useSelector(selectFanpageSelected)\n const [page, setPage] = useState(0)\n const [customerData, setCustomerData] = useState(null)\n const [currentCustomers, setCurrentCustomers] = useState([])\n const [searchVal, setSearchVal] = useState('')\n const [isLoading, setIsLoading] = useState(false)\n const [checkedList, setCheckedList] = useState({})\n const [openConfirm, setOpenConfirm] = useState(false)\n\n const dispatch = useDispatch()\n\n const getListCustomers = async (page, searchValue = '') => {\n let searchQuery = `pageId==${pageSelected?.id};bombotTags=in=${tagId}`\n\n if (searchValue.trim()) {\n searchQuery += `;uid|name==${searchValue}`\n }\n\n return customerApi\n .getListCustomersInTag({\n search: searchQuery,\n page: page,\n size: countRowPerPages,\n })\n .then((res) => {\n setCustomerData(res)\n })\n }\n\n // useDebounce(\n // () => {\n // ;(async () => {\n // setIsLoading(true)\n // try {\n // setPage(0)\n // if (!searchVal.trim()) {\n // await getListCustomers(0)\n // return\n // }\n // await getListCustomers(0, searchVal)\n // } catch (error) {\n // console.log('error', error)\n // dispatch(showError('Có lỗi xảy ra khi tìm kiếm'))\n // } finally {\n // setIsLoading(false)\n // }\n // })()\n // },\n // 500,\n // [searchVal]\n // )\n\n const handleSearch = async () => {\n setIsLoading(true)\n try {\n setPage(0)\n if (!searchVal.trim()) {\n await getListCustomers(0)\n return\n }\n await getListCustomers(0, searchVal)\n } catch (error) {\n console.log('error', error)\n dispatch(showError('Có lỗi xảy ra khi tìm kiếm'))\n } finally {\n setIsLoading(false)\n }\n }\n\n useEffect(() => {\n ;(async () => {\n try {\n setIsLoading(true)\n\n await getListCustomers(page)\n } catch (error) {\n dispatch(showError('Co loi xay ra!'))\n } finally {\n setIsLoading(false)\n }\n })()\n }, [tagId, page])\n\n const handleCheckAllTag = (isChecked) => {\n if (isChecked) {\n let checkListTmp = {}\n customerData?.content.forEach((customer) => {\n checkListTmp[customer.uid] = isChecked\n })\n setCheckedList(checkListTmp)\n } else {\n setCheckedList({})\n }\n }\n\n const handleCheckTag = (isChecked, uid) => {\n let checkListTmp = { ...checkedList }\n\n if (isChecked) {\n setCheckedList((prev) => ({\n ...prev,\n [uid]: isChecked,\n }))\n } else {\n delete checkListTmp[uid]\n setCheckedList(checkListTmp)\n }\n }\n\n const handleDelete = async () => {\n if (!pageSelected?.id) return\n setIsLoading(true)\n try {\n dispatch(openLoading())\n\n const payload = {\n search: `pageId==${pageSelected?.id}`,\n exclude: [],\n include: Object.keys(checkedList),\n bombotTags: [tagId],\n }\n\n await customerApi.unlinkBombotTag(payload)\n await getListCustomers(0)\n setOpenConfirm(false)\n dispatch(\n showSuccess(\n `Đã xóa tag khỏi ${\n Object.keys(checkedList).length\n } khách hàng thành công`\n )\n )\n setCheckedList({})\n } catch (error) {\n console.log('error', error)\n dispatch(showError(error.message))\n } finally {\n setIsLoading(false)\n dispatch(closeLoading())\n }\n }\n\n const handleSubmitDelete = () => {\n if (Object.keys(checkedList).length === 0) {\n dispatch(showError('Vui lòng chọn ít nhất một khách hàng'))\n return\n }\n setOpenConfirm(true)\n }\n\n const handleDeleteSearch = () => {\n setSearchVal('')\n setPage(0)\n }\n\n const handleChangePage = (event, newPage) => {\n setPage(newPage)\n }\n\n return (\n \n \n \n \n {/* \n \n */}\n {t('tag_management.customers.list')}\n \n \n \n \n \n\n \n \n {\n setSearchVal(e.target.value)\n }}\n InputProps={{\n startAdornment: (\n \n \n \n ),\n endAdornment: searchVal && (\n \n \n \n \n \n ),\n style: {\n paddingRight: 8,\n },\n }}\n style={{\n width: '100%',\n marginRight: '10px', // Thêm margin để tạo khoảng cách với button\n }}\n />\n\n \n {t('common.btn.search')}\n \n \n\n \n \n \n \n \n checkedList[cus.uid]\n )}\n onChange={(_, isChecked) => {\n handleCheckAllTag(isChecked)\n }}\n />\n }\n />\n \n \n {t('customer_management.list.ord_number')}\n \n\n \n {t('customer_management.list.uid')}\n \n \n {t('customer_management.list.facebook_name')}\n \n \n {t('customer_management.list.gender')}\n \n\n \n {t('customer_management.list.last_inbox_time')}\n \n\n \n {t('customer_management.list.last_customer_inbox_time')}\n \n\n \n {t('customer_management.list.phone')}\n \n \n \n \n {customerData?.content.map((row, index) => (\n \n \n {\n handleCheckTag(isChecked, row.uid)\n }}\n />\n }\n />\n \n\n \n
{index + 1}
\n \n\n \n {row.uid ? (\n
{row.uid}
\n ) : (\n \n \n

\n )}\n \n\n \n {row.name ? (\n
{row.name}
\n ) : (\n \n \n

\n )}\n \n\n \n {row.gender ? (\n
\n {_.upperCase(row.gender) ==\n _.upperCase(types.GENDER.MALE)\n ? t('update.gender.male')\n : _.upperCase(row.gender) ==\n _.upperCase(types.GENDER.FEMALE)\n ? t('update.gender.female')\n : t('update.gender.other')}\n
\n ) : (\n \n \n

\n )}\n \n\n \n {row.lastInboxTime ? (\n
\n {moment(row.lastInboxTime).format('DD/MM/YYYY HH:mm')}\n
\n ) : (\n \n \n

\n )}\n \n\n \n {row.lastCustomerInboxTime ? (\n
\n {moment(row.lastCustomerInboxTime).format(\n 'DD/MM/YYYY HH:mm'\n )}\n
\n ) : (\n \n

\n )}\n \n\n \n {row.phone ? (\n
{row.phone}
\n ) : (\n \n

\n )}\n \n \n ))}\n
\n
\n\n {customerData?.content?.length === 0 && (\n

{t('update.no_data')}

\n )}\n \n\n \n \n handleChangePage(event, newPage - 1)\n }\n color=\"secondary\"\n />\n \n \n \n

{t('common.btn.delete')}

\n
\n \n
\n
\n
\n \n\n setOpenConfirm(false)}\n onConfirm={handleDelete}\n confirmText=\"Xóa\"\n cancelText=\"Hủy\"\n />\n
\n )\n}\n\nconst CellSticky = styled(TableCell)`\n position: sticky;\n background-color: #fff;\n right: -1px;\n z-index: 2;\n box-shadow: -15px 0px 17px -7px #f0eded;\n`\n\nexport default CustomersInBomBotTagModal\n","import React, { useState } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { makeStyles } from '@material-ui/core/styles'\nimport {\n Dialog,\n DialogTitle,\n DialogContent,\n DialogActions,\n TextField,\n Button,\n Typography,\n CircularProgress,\n} from '@material-ui/core'\nimport { Alert } from '@material-ui/lab'\nimport cn from 'classnames'\n\nconst useStyles = makeStyles((theme) => ({\n dialog: {\n '& .MuiDialog-paper': {\n borderRadius: '8px',\n minWidth: '500px',\n },\n },\n\n dialogTitle: {\n textAlign: 'center',\n '& h2': {\n fontSize: '20px',\n fontWeight: 600,\n color: '#05AE34',\n },\n padding: '20px 24px 0px',\n },\n\n dialogContent: {\n padding: '14px 24px 0px',\n '& .MuiTextField-root': {\n width: '100%',\n },\n },\n\n dialogActions: {\n padding: '12px 24px 24px',\n justifyContent: 'flex-end',\n gap: '12px',\n },\n\n description: {\n fontSize: '14px',\n marginBottom: '20px',\n textAlign: 'left',\n },\n\n inputWrapper: {\n marginBottom: '20px',\n },\n\n button: {\n borderRadius: '8px',\n padding: '6px 16px',\n textTransform: 'none',\n fontWeight: 500,\n minWidth: '100px',\n },\n\n cancelButton: {\n backgroundColor: '#D1D5DB',\n color: 'white',\n '&:hover': {\n backgroundColor: '#9CA3AF',\n },\n },\n\n submitButton: {\n backgroundColor: '#FF8000',\n color: 'white',\n '&:hover': {\n backgroundColor: '#cc6600',\n },\n '&.Mui-disabled': {\n backgroundColor: '#FFB366',\n color: 'white',\n },\n },\n\n error: {\n marginBottom: '16px',\n },\n\n buttonProgress: {\n color: 'white',\n position: 'absolute',\n top: '50%',\n left: '50%',\n marginTop: -12,\n marginLeft: -12,\n },\n}))\n\nconst RenameTagModal = ({\n open,\n handleClose,\n handleSubmit,\n renameSelected,\n}) => {\n const classes = useStyles()\n const { t } = useTranslation()\n\n const [error, setError] = useState('')\n const [loading, setLoading] = useState(false)\n const [val, setVal] = useState(renameSelected.name)\n\n const validateInput = (value) => {\n if (!value.trim()) {\n setError(t('account_management.transfer.error.required'))\n return false\n }\n if (!/^[A-Za-z0-9]+$/.test(value)) {\n setError(t('account_management.service_information.error.invalid_format'))\n return false\n }\n setError('')\n return true\n }\n\n return (\n \n \n {t('tag_management.enter_new_tag_name')}\n \n\n \n {error && (\n \n {error}\n \n )}\n\n
\n setVal(e.target.value)}\n error={!!error}\n helperText={error}\n inputProps={{\n maxLength: 50,\n }}\n />\n
\n
\n\n \n \n {t('common.btn.cancel')}\n \n\n handleSubmit(renameSelected, val)}\n className={cn(classes.button, classes.submitButton)}\n disabled={!val.trim() || loading}\n >\n {loading ? (\n \n ) : (\n t('common.btn.confirm')\n )}\n \n \n
\n )\n}\n\nexport default RenameTagModal\n","import {\n Button,\n Checkbox,\n DialogActions,\n FormControlLabel,\n IconButton,\n InputAdornment,\n makeStyles,\n Paper,\n Table,\n TableBody,\n TableCell,\n TableContainer,\n TableHead,\n TableRow,\n TextField,\n Tooltip\n} from \"@material-ui/core\";\nimport { PeopleAltOutlined } from \"@material-ui/icons\";\nimport EditIcon from \"@material-ui/icons/Edit\";\nimport SearchIcon from \"@material-ui/icons/Search\";\nimport { Pagination } from \"@material-ui/lab\";\nimport cn from \"classnames\";\nimport ButtonComponent from \"components/Button\";\nimport Flex from \"components/Flex\";\nimport TagPreviewItem from \"components/TagPreviewItem\";\nimport _ from \"lodash\";\nimport { useEffect, useState } from \"react\";\nimport { X } from \"react-feather\";\nimport { useTranslation } from \"react-i18next\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport styled from \"styled-components\";\nimport { selectFanpageSelected } from \"views/Customer/CustomerSelectors\";\nimport fanpageApi from \"../../api/fanpageApi\";\nimport { showError, showSuccess } from \"../../stores/alert/slice.alert\";\nimport { closeLoading, openLoading } from \"../../stores/loading/slice.loading\";\nimport CustomersInBomBotTagModal from \"../CustomersInTagModal/CustomersInBomBotTagModal\";\nimport Confirm from \"../Modals/Confirm\";\nimport RenameTagModal from \"../RenameTagModal\";\nimport { Trash2Icon, TrashIcon } from \"lucide-react\";\n\nconst useStyles = makeStyles({\n widthCheckBox: {\n // minWidth: \"60px\",\n height: \"52px\"\n // width: \"4%\"\n },\n widthSeq: {\n minWidth: \"80px\",\n padding: \"0 8px !important\"\n },\n widthId: {\n minWidth: \"146px\",\n padding: \"0 8px !important\"\n },\n widthName: {\n minWidth: \"220px\",\n padding: \"0 8px !important\"\n },\n widthCreatedAt: {\n minWidth: \"220px\",\n padding: \"0 8px !important\"\n },\n widthCreatedBy: {\n minWidth: \"220px\",\n padding: \"0 8px !important\"\n },\n widthQuantityCus: {\n minWidth: \"120px\",\n padding: \"0 8px !important\"\n },\n widthActions: {\n minWidth: \"140px\",\n width: \"6%\",\n padding: \"0 8px !important\"\n },\n p0: {\n padding: \"0\",\n margin: \"0\"\n },\n heightHeader: {\n height: \"52px\"\n },\n f600: {\n fontWeight: 600\n },\n checkBoxPadding: {\n padding: \"10px 20px\"\n },\n actions: {\n display: \"flex\",\n alignItems: \"center\",\n width: \"100%\",\n justifyContent: \"space-between\",\n marginTop: \"10px\"\n },\n closeBtn: {\n color: \"#ffffff\",\n backgroundColor: \"#dc3545\",\n border: \"2px solid #dc3545\",\n padding: \"6px 20px\",\n borderRadius: \"4px\",\n cursor: \"pointer\",\n \"&:hover\": {\n backgroundColor: \"#c82333\",\n borderColor: \"#bd2130\"\n }\n },\n submitBtn: {\n color: \"white\",\n backgroundColor: \"#28a745\",\n border: \"2px solid #28a745\",\n padding: \"6px 26px\",\n borderRadius: \"4px\",\n cursor: \"pointer\",\n margin: \"0 36px !important\",\n \"&:hover\": {\n backgroundColor: \"#218838\",\n borderColor: \"#1e7e34\"\n }\n },\n numCusInp: {\n fontSize: \"14px\",\n display: \"flex\",\n justifyContent: \"end\",\n alignItems: \"center\"\n },\n footerContainer: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n width: \"100%\",\n padding: \"0 26px\",\n margin: \"12px 0\",\n minHeight: \"48px\"\n },\n container: {\n flex: 1,\n width: \"100%\"\n },\n paginationBottom: {\n display: \"flex !important\",\n justifyContent: \"end !important\",\n alignItems: \"center !important\"\n },\n buttonLoadMore: {\n alignItems: \"center\",\n appearance: \"none\",\n backgroundColor: \"#fff\",\n border: \"1px solid #dbdbdb\",\n borderRadius: \".375em\",\n boxShadow: \"none\",\n boxSizing: \"border-box\",\n color: \"#363636\",\n cursor: \"pointer\",\n display: \"inline-flex\",\n fontFamily: `BlinkMacSystemFont, -apple-system, \"Segoe UI\", Roboto, Oxygen, Ubuntu, Cantarell, \"Fira Sans\", \"Droid Sans\", \"Helvetica Neue\", Helvetica, Arial, sans-serif`,\n fontSize: \"0.8rem\",\n height: \"1.8em\",\n justifyContent: \"center\",\n lineHeight: \"1.5\",\n padding: \"calc(.5em - 1px) 1em\",\n position: \"relative\",\n textAlign: \"center\",\n userSelect: \"none\",\n WebkitUserSelect: \"none\",\n touchAction: \"manipulation\",\n verticalAlign: \"top\",\n whiteSpace: \"nowrap\",\n \"&:hover\": {\n borderColor: \"#b5b5b5\"\n },\n \"&:active\": {\n borderColor: \"#4a4a4a\",\n outline: \"0\"\n },\n \"&:focus\": {\n borderColor: \"#485fc7\",\n outline: \"0\"\n },\n \"&:focus:not(:active)\": {\n boxShadow: \"rgba(72, 95, 199, 0.25) 0 0 0 0.125em\"\n }\n },\n rowItem: {\n cursor: \"pointer\"\n },\n\n noData: {\n color: \"rgba(0,0,0,.5)\",\n fontWeight: \"bold\",\n textAlign: \"center\",\n padding: \"24px\"\n },\n closeButton: {\n position: \"absolute\",\n right: 0,\n top: \"50%\",\n transform: \"translateY(-50%)\",\n color: \"#637381\",\n padding: \"8px\",\n marginRight: \"8px\",\n \"&:hover\": {\n color: \"#212B36\",\n backgroundColor: \"rgba(99, 115, 129, 0.08)\",\n borderRadius: \"50%\"\n }\n },\n dialogTitle: {\n position: \"relative\",\n paddingRight: \"48px\",\n margin: 0,\n padding: \"16px 24px\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\"\n }\n});\n\nconst countRowPerPages = 10;\n\nexport const tagType = {\n BOMBOT_TAGS: \"BOMBOT_TAGS\",\n FACEBOOK_TAGS: \"FACEBOOK_TAGS\"\n};\n\nconst BombotTagsManagement = ({\n getData,\n getFanpage,\n tabVal,\n setIsLoading\n}) => {\n const { t } = useTranslation();\n const classes = useStyles();\n const pageSelected = useSelector(selectFanpageSelected);\n const [page, setPage] = useState(0);\n const [bombotTagData, setBombotTagData] = useState([]);\n const [searchVal, setSearchVal] = useState(\"\");\n const [openConfirmDelete, setOpenConfirmDelete] = useState(false);\n const [renameSelected, setRenameSelected] = useState(null);\n const [checkedList, setCheckedList] = useState({});\n const [selectedTag, setSelectedTag] = useState(null);\n\n const dispatch = useDispatch();\n\n const getBombotTags = async (page) => {\n if (!pageSelected.id) return;\n\n let search = null;\n\n if (searchVal.trim()) {\n search = `id|name==${searchVal}`;\n }\n\n let params = {\n id: pageSelected.id,\n page: page,\n size: countRowPerPages\n };\n\n if (!_.isNull(search)) {\n params = {\n id: pageSelected.id,\n page: page,\n size: countRowPerPages,\n search\n };\n }\n\n return fanpageApi.getBomBotTagList(pageSelected?.id, params).then((res) => {\n setBombotTagData(res);\n return res;\n });\n };\n\n useEffect(() => {\n (async () => {\n try {\n setIsLoading(true);\n\n if (tabVal === tagType.BOMBOT_TAGS) {\n await getBombotTags(page);\n }\n } catch (error) {\n dispatch(showError(\"Co loi xay ra!\"));\n } finally {\n setIsLoading(false);\n }\n })();\n }, [pageSelected, page, tabVal]);\n\n const handleSearch = async () => {\n setIsLoading(true);\n try {\n setPage(0);\n\n if (tabVal === tagType.BOMBOT_TAGS) {\n await getBombotTags(0);\n }\n } catch (error) {\n dispatch(showError(\"Co loi xay ra!\"));\n } finally {\n setIsLoading(false);\n }\n };\n\n const handleChangePage = (event, newPage) => {\n setPage(newPage);\n };\n\n const handleCheckAllTag = (isChecked) => {\n const currentPageTags = bombotTagData?.content;\n let checkListTmp = { ...checkedList };\n if (isChecked) {\n currentPageTags.forEach((tag) => {\n checkListTmp[tag.id] = isChecked;\n });\n } else {\n currentPageTags.forEach((tag) => {\n delete checkListTmp[tag.id];\n });\n }\n setCheckedList(checkListTmp);\n };\n\n const handleCheckTag = (isChecked, tagId) => {\n setCheckedList((prev) => ({\n ...prev,\n [tagId]: isChecked\n }));\n };\n\n const handleDeleteSearch = () => {\n setSearchVal(\"\");\n setPage(0);\n };\n\n const handleSubmitDeleteTags = () => {\n if (Object.keys(checkedList).length === 0) {\n dispatch(showError(\"Vui lòng chọn ít nhất một tag\"));\n return;\n }\n setOpenConfirmDelete(true);\n };\n\n const handleDeleteTags = async () => {\n try {\n dispatch(openLoading());\n await fanpageApi.deleteBomBotTagList(pageSelected?.id, {\n tagId: Object.keys(checkedList)\n });\n\n getFanpage();\n // getData()\n\n const res = await getBombotTags(page);\n\n if (res && res.content.length === 0 && page > 0) {\n setPage(page - 1);\n }\n\n setOpenConfirmDelete(false);\n dispatch(\n showSuccess(`Đã xóa ${Object.keys(checkedList).length} tag thành công`)\n );\n setCheckedList({});\n } catch (error) {\n dispatch(showError(error.message));\n } finally {\n dispatch(closeLoading());\n }\n };\n\n // const handleRenameTag = async (renameTag, newName) => {\n // try {\n // dispatch(openLoading());\n\n // const payload = {\n // name: newName\n // };\n\n // await fanpageApi.renameTag(pageSelected.id, renameTag.id, payload);\n\n // getFanpage();\n // // getData()\n\n // await getBombotTags();\n // } catch (error) {\n // console.log(error);\n // dispatch(showError(error.message));\n // } finally {\n // setRenameSelected(null);\n // dispatch(closeLoading());\n // }\n // };\n\n const handleRenameTag = async (renameTag, newName) => {\n try {\n dispatch(openLoading());\n\n const payload = {\n name: newName\n };\n\n await fanpageApi.renameTag(pageSelected.id, renameTag.id, payload);\n\n setBombotTagData((prevData) => {\n return {\n ...prevData,\n content: prevData.content.map((tag) => {\n if (tag.id === renameTag.id) {\n return { ...tag, name: newName }; \n }\n return tag; \n })\n };\n });\n\n getFanpage();\n } catch (error) {\n console.log(error);\n dispatch(showError(error.message));\n } finally {\n setRenameSelected(null);\n dispatch(closeLoading());\n }\n };\n\n useEffect(() => {\n console.log(\"checkedList ==>\", checkedList);\n }, [checkedList]);\n\n useEffect(() => {\n console.log(\"bombotTagData ==>\", bombotTagData);\n }, [bombotTagData]);\n\n return (\n <>\n \n {\n setSearchVal(e.target.value);\n }}\n InputProps={{\n startAdornment: (\n \n \n \n ),\n endAdornment: searchVal && (\n \n \n \n \n \n ),\n style: {\n paddingRight: 8\n }\n }}\n style={{\n width: \"100%\",\n marginRight: \"10px\"\n }}\n />\n \n {t(\"common.btn.search\")}\n \n }\n backgroundColor=\"#05AE34\"\n color=\"white\"\n handleClickButton={() => handleSearch()}\n style={{\n minWidth: \"fit-content\"\n }}\n />\n \n\n \n \n \n \n \n checkedList[tag.id]\n )\n ? true\n : false\n }\n onChange={(_, isChecked) => {\n handleCheckAllTag(isChecked);\n }}\n />\n }\n />\n \n \n {t(\"tag_management.list.tag_ord_nos\")}\n \n \n {t(\"tag_management.list.tag_id\")}\n \n \n {t(\"tag_management.list.tag_name\")}\n \n \n {t(\"tag_management.list.num_customers\")}\n \n \n {t(\"tag_management.action\")}\n \n \n \n \n {bombotTagData?.content?.length > 0 &&\n bombotTagData?.content?.map((tag, index) => (\n \n \n {\n handleCheckTag(isChecked, tag.id);\n }}\n />\n }\n />\n \n \n {bombotTagData?.number * countRowPerPages + index + 1}\n \n \n {tag?.id}\n \n \n \n \n
\n \n
\n
\n \n \n \n {tag?.totalCus}\n \n {/* \n {tag.createdAt\n ? moment(tag.createdAt).format('DD/MM/YYYY HH:mm')\n : 'N/A'}\n */}\n {/* \n {tag.createdByUserId || 'N/A'}\n */}\n {/* \n {tag.totalCus || 'N/A'}\n */}\n \n \n \n {\n setSelectedTag(tag.id);\n }}\n >\n \n \n \n \n {\n setRenameSelected(tag);\n }}\n >\n \n \n \n \n \n \n ))}\n
\n
\n {bombotTagData?.content?.length === 0 && (\n

{t(\"update.no_data\")}

\n )}\n \n\n {bombotTagData?.content?.length > 0 && (\n \n handleChangePage(event, newPage - 1)}\n color=\"secondary\"\n />\n \n \n \n {/* */}\n

{t(\"common.btn.delete\")}

\n
\n \n
\n
\n )}\n\n setOpenConfirmDelete(false)}\n onConfirm={handleDeleteTags}\n confirmText=\"Xóa\"\n cancelText=\"Hủy\"\n />\n\n {!_.isNull(selectedTag) && (\n setSelectedTag(null)}\n tagId={selectedTag}\n />\n )}\n\n {renameSelected && (\n setRenameSelected(null)}\n handleSubmit={handleRenameTag}\n renameSelected={renameSelected}\n />\n )}\n \n );\n};\n\nconst CellSticky = styled(TableCell)`\n position: sticky;\n background-color: #fff;\n right: -1px;\n z-index: 2;\n box-shadow: -15px 0px 17px -7px #f0eded;\n`;\n\nexport default BombotTagsManagement;\n","import React, { useEffect, useMemo, useState } from 'react'\nimport {\n Button,\n Checkbox,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n FormControlLabel,\n IconButton,\n InputAdornment,\n makeStyles,\n Paper,\n Table,\n TableBody,\n TableCell,\n TableContainer,\n TableHead,\n TableRow,\n TextField,\n Tooltip,\n} from '@material-ui/core'\nimport cn from 'classnames'\nimport Flex from 'components/Flex'\nimport { useTranslation } from 'react-i18next'\nimport SearchIcon from '@material-ui/icons/Search'\nimport { Pagination } from '@material-ui/lab'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { selectFanpageSelected } from 'views/Customer/CustomerSelectors'\nimport _ from 'lodash'\nimport ErrorOutlineIcon from '@material-ui/icons/ErrorOutline'\nimport EditIcon from '@material-ui/icons/Edit'\nimport fanpageApi from '../../api/fanpageApi'\nimport styled from 'styled-components'\nimport { X } from 'react-feather'\nimport moment from 'moment'\nimport TagPreviewItem from 'components/TagPreviewItem'\nimport LoadingWrapper from '../LoadingWrapper'\nimport { showError, showSuccess } from '../../stores/alert/slice.alert'\nimport customerApi from '../../api/customerApi'\nimport types from '../../constants/types'\nimport Confirm from 'components/Modals/Confirm'\nimport useDebounce from '../../hook/useDebouce'\nimport { ArrowBack } from '@material-ui/icons'\nimport ButtonComponent from 'components/Button'\n\nconst useStyles = makeStyles((theme) => ({\n paper: {\n width: '100%',\n marginBottom: '80px',\n },\n table: {\n minWidth: '100%',\n },\n visuallyHidden: {\n border: 0,\n clip: 'rect(0 0 0 0)',\n height: 1,\n margin: -1,\n overflow: 'hidden',\n padding: 0,\n position: 'absolute',\n top: 20,\n width: 1,\n },\n '.pagination': {\n '& .MuiTablePagination-input': {\n width: 70,\n },\n },\n\n wrapperSearch: {\n position: 'relative',\n },\n\n buttonIEA: {\n width: '100%',\n // marginTop: 10,\n textAlign: 'left',\n marginRight: '15px',\n padding: '20px 15px 15px 0px',\n position: 'fixed',\n bottom: 60,\n background: '#F6F9FC',\n '& button': {\n marginRight: 15,\n },\n },\n noData: {\n color: 'rgba(0,0,0,.5)',\n fontWeight: 'bold',\n textAlign: 'center',\n padding: '24px',\n },\n iconCheck: {\n '& .MuiSvgIcon-root': {\n width: '40',\n height: '40',\n },\n },\n icon: {\n marginLeft: 5,\n cursor: 'pointer',\n '& .MuiSvgIcon-root': {\n width: '40',\n height: '40',\n },\n },\n classTags: {\n '&:last-child': {\n '& span': {\n display: 'none',\n },\n },\n },\n wrapBox: {\n padding: '15px',\n marginBottom: 30,\n },\n inputAdd: {\n width: '100%',\n marginBottom: 15,\n },\n wrapButton: {\n textAlign: 'center',\n },\n buttonLoadMore: {\n border: '0px',\n color: 'var(--primary-color) !important',\n backgroundColor: 'unset',\n },\n\n witdhSeq: {\n minWidth: '120px',\n width: '4%',\n },\n\n witdhCheckBox: {\n minWidth: '60px',\n width: '4%',\n },\n\n witdhUid: {\n minWidth: '160px',\n width: '15%',\n padding: '0 8px !important',\n },\n\n widthName: {\n minWidth: '160px',\n width: '15%',\n padding: '0 8px !important',\n },\n\n widthGender: {\n minWidth: '120px',\n width: '6%',\n padding: '0 8px !important',\n },\n\n widthPhone: {\n minWidth: '160px',\n width: '15%',\n padding: '0 8px !important',\n },\n\n widthDate: {\n minWidth: '200px',\n width: '15%',\n padding: '0 8px !important',\n },\n\n widthLinkFB: {\n minWidth: '120px',\n width: '15%',\n padding: '0 8px !important',\n },\n\n witdhAction: {\n minWidth: '120px',\n width: '4%',\n },\n\n widthTag: {\n minWidth: '140px',\n width: '15%',\n padding: '12px 8px !important',\n },\n\n witdhUidErr: {\n minWidth: '140px',\n width: '20%',\n padding: '0 8px !important',\n },\n\n p0: {\n padding: '0',\n margin: '0',\n },\n\n heightHeader: {\n height: '52px',\n },\n\n f600: {\n fontWeight: 600,\n },\n\n checkBoxPadding: {\n padding: '10px 20px',\n },\n\n actions: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n width: '100%',\n padding: '18px 0 8px',\n },\n\n closeBtn: {\n color: '#ffffff', // Màu chữ trắng\n backgroundColor: '#dc3545', // Màu nền đỏ để nổi bật\n border: '2px solid #dc3545', // Viền có màu giống nền\n padding: '6px 20px', // Padding cho nút\n borderRadius: '4px', // Đường viền tròn cho nút\n cursor: 'pointer', // Con trỏ chuột khi hover\n margin: '0 36px !important',\n '&:hover': {\n backgroundColor: '#c82333', // Màu nền khi hover (đỏ đậm hơn)\n borderColor: '#bd2130', // Màu viền khi hover\n },\n },\n dialogTitle: {\n position: 'relative',\n paddingRight: '48px',\n margin: 0,\n padding: '16px 24px',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n },\n backButton: {\n padding: '8px',\n marginRight: '8px',\n color: '#637381',\n '&:hover': {\n color: '#212B36',\n backgroundColor: 'rgba(99, 115, 129, 0.08)',\n },\n },\n closeButton: {\n position: 'absolute',\n right: 0,\n top: '50%',\n transform: 'translateY(-50%)',\n color: '#637381',\n padding: '8px',\n marginRight: '8px',\n '&:hover': {\n color: '#212B36',\n backgroundColor: 'rgba(99, 115, 129, 0.08)',\n borderRadius: '50%',\n },\n },\n\n submitBtn: {\n color: 'white', // Màu chữ\n backgroundColor: '#28a745', // Màu nền\n border: '2px solid #28a745', // Viền\n padding: '6px 26px', // Padding cho nút\n borderRadius: '4px', // Đường viền tròn cho nút\n cursor: 'pointer', // Con trỏ chuột khi hover.\n margin: '0 36px !important',\n '&:hover': {\n backgroundColor: '#218838', // Màu nền khi hover\n borderColor: '#1e7e34', // Màu viền khi hover\n },\n },\n\n numCusInp: {\n fontSize: '14px',\n display: 'flex',\n justifyContent: 'end',\n alignItems: 'center',\n },\n\n footerContainer: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n width: '100%',\n margin: '12px 0',\n minHeight: '48px',\n },\n\n container: {\n flex: 1,\n width: '100%',\n },\n\n paginationBottom: {\n display: 'flex !important',\n justifyContent: 'end !important',\n alignItems: 'center !important',\n },\n\n buttonLoadMore: {\n alignItems: 'center',\n appearance: 'none',\n backgroundColor: '#fff',\n border: '1px solid #dbdbdb',\n borderRadius: '.375em',\n boxShadow: 'none',\n boxSizing: 'border-box',\n color: '#363636',\n cursor: 'pointer',\n display: 'inline-flex',\n fontFamily: `BlinkMacSystemFont, -apple-system, \"Segoe UI\", Roboto, Oxygen, Ubuntu, Cantarell, \"Fira Sans\", \"Droid Sans\", \"Helvetica Neue\", Helvetica, Arial, sans-serif`,\n fontSize: '0.8rem',\n height: '1.8em',\n justifyContent: 'center',\n lineHeight: '1.5',\n padding: 'calc(.5em - 1px) 1em',\n position: 'relative',\n textAlign: 'center',\n userSelect: 'none',\n WebkitUserSelect: 'none',\n touchAction: 'manipulation',\n verticalAlign: 'top',\n whiteSpace: 'nowrap',\n width: '100%',\n\n '&:hover': {\n borderColor: '#b5b5b5',\n },\n '&:active': {\n borderColor: '#4a4a4a',\n outline: '0',\n },\n '&:focus': {\n borderColor: '#485fc7',\n outline: '0',\n },\n '&:focus:not(:active)': {\n boxShadow: 'rgba(72, 95, 199, 0.25) 0 0 0 0.125em',\n },\n },\n\n rowItem: {\n cursor: 'pointer',\n },\n\n tagsContainer: {\n display: 'flex',\n flexWrap: 'wrap',\n gap: '4px',\n padding: '4px 0 !important',\n },\n}))\nconst countRowPerPages = 10\n\nconst CustomersInFBTagModal = ({ isOpen, handleClose, tagId }) => {\n const { t } = useTranslation()\n const classes = useStyles()\n const pageSelected = useSelector(selectFanpageSelected)\n const [page, setPage] = useState(0)\n const [customerData, setCustomerData] = useState(null)\n const [currentCustomers, setCurrentCustomers] = useState([])\n const [searchVal, setSearchVal] = useState('')\n const [isLoading, setIsLoading] = useState(false)\n const [checkedList, setCheckedList] = useState({})\n const [openConfirm, setOpenConfirm] = useState(false)\n\n const dispatch = useDispatch()\n\n const getListCustomers = async (page, searchValue = '') => {\n let searchQuery = `pageId==${pageSelected?.id};fbTags=in=${tagId}`\n\n if (searchValue.trim()) {\n searchQuery += `;uid|name==${searchValue}`\n }\n\n return customerApi\n .getListCustomersInTag({\n search: searchQuery,\n page: page,\n size: countRowPerPages,\n })\n .then((res) => {\n setCustomerData(res)\n })\n }\n\n // useDebounce(\n // () => {\n // ;(async () => {\n // setIsLoading(true)\n // try {\n // setPage(0)\n // if (!searchVal.trim()) {\n // await getListCustomers(0)\n // return\n // }\n // await getListCustomers(0, searchVal)\n // } catch (error) {\n // console.log('error', error)\n // dispatch(showError('Có lỗi xảy ra khi tìm kiếm'))\n // } finally {\n // setIsLoading(false)\n // }\n // })()\n // },\n // 500,\n // [searchVal]\n // )\n\n const handleSearch = async () => {\n setIsLoading(true)\n try {\n setPage(0)\n if (!searchVal.trim()) {\n await getListCustomers(0)\n return\n }\n await getListCustomers(0, searchVal)\n } catch (error) {\n console.log('error', error)\n dispatch(showError('Có lỗi xảy ra khi tìm kiếm'))\n } finally {\n setIsLoading(false)\n }\n }\n\n useEffect(() => {\n ;(async () => {\n try {\n setIsLoading(true)\n\n await getListCustomers(page)\n } catch (error) {\n dispatch(showError('Co loi xay ra!'))\n } finally {\n setIsLoading(false)\n }\n })()\n }, [tagId, page])\n\n const handleCheckAllTag = (isChecked) => {\n if (isChecked) {\n let checkListTmp = {}\n customerData?.content.forEach((customer) => {\n checkListTmp[customer.uid] = isChecked\n })\n setCheckedList(checkListTmp)\n } else {\n setCheckedList({})\n }\n }\n\n const handleCheckTag = (isChecked, uid) => {\n let checkListTmp = { ...checkedList }\n\n if (isChecked) {\n setCheckedList((prev) => ({\n ...prev,\n [uid]: isChecked,\n }))\n } else {\n delete checkListTmp[uid]\n setCheckedList(checkListTmp)\n }\n }\n\n const handleDelete = async () => {\n if (!pageSelected?.id) return\n setIsLoading(true)\n try {\n const payload = {\n search: `pageId==${pageSelected?.id}`,\n exclude: [],\n include: Object.keys(checkedList),\n fbTags: [tagId],\n }\n\n await customerApi.unlinkBombotTag(payload)\n await getListCustomers(0)\n setOpenConfirm(false)\n dispatch(\n showSuccess(\n `Đã xóa tag khỏi ${\n Object.keys(checkedList).length\n } khách hàng thành công`\n )\n )\n setCheckedList({})\n } catch (error) {\n console.log('error', error)\n dispatch(showError('Xóa tag thất bại. Vui lòng thử lại sau'))\n } finally {\n setIsLoading(false)\n }\n }\n\n const handleSubmitDelete = () => {\n if (Object.keys(checkedList).length === 0) {\n dispatch(showError('Vui lòng chọn ít nhất một khách hàng'))\n return\n }\n setOpenConfirm(true)\n }\n\n const handleDeleteSearch = () => {\n setSearchVal('')\n setPage(0)\n }\n\n const handleChangePage = (event, newPage) => {\n setPage(newPage)\n }\n\n return (\n \n \n \n \n {/* \n \n */}\n {t('tag_management.customers.list')}\n \n \n \n \n \n\n \n \n {\n setSearchVal(e.target.value)\n }}\n InputProps={{\n startAdornment: (\n \n \n \n ),\n endAdornment: searchVal && (\n \n \n \n \n \n ),\n style: {\n paddingRight: 8,\n },\n }}\n style={{\n width: '100%',\n marginRight: '10px', // Thêm margin để tạo khoảng cách với button\n }}\n />\n \n {t('common.btn.search')}\n \n }\n backgroundColor=\"#05AE34\"\n color=\"white\"\n handleClickButton={handleSearch}\n style={{\n minWidth: 'fit-content',\n padding: '6px 16px',\n }}\n />\n \n\n \n \n \n \n \n checkedList[cus.uid]\n )}\n onChange={(_, isChecked) => {\n handleCheckAllTag(isChecked)\n }}\n disabled={true}\n />\n }\n />\n \n \n {t('customer_management.list.ord_number')}\n \n\n \n {t('customer_management.list.uid')}\n \n \n {t('customer_management.list.facebook_name')}\n \n \n {t('customer_management.list.gender')}\n \n\n \n {t('customer_management.list.last_inbox_time')}\n \n\n \n {t('customer_management.list.last_customer_inbox_time')}\n \n\n \n {t('customer_management.list.phone')}\n \n \n \n \n {customerData?.content.map((row, index) => (\n \n \n {\n handleCheckTag(isChecked, row.uid)\n }}\n disabled={true}\n />\n }\n />\n \n\n \n
{index + 1}
\n \n\n \n {row.uid ? (\n
{row.uid}
\n ) : (\n \n {'_'}\n

\n )}\n \n\n \n {row.name ? (\n
{row.name}
\n ) : (\n \n {'_'}\n

\n )}\n \n\n \n {row.gender ? (\n
\n {_.upperCase(row.gender) ==\n _.upperCase(types.GENDER.MALE)\n ? t('update.gender.male')\n : _.upperCase(row.gender) ==\n _.upperCase(types.GENDER.FEMALE)\n ? t('update.gender.female')\n : t('update.gender.other')}\n
\n ) : (\n \n {'_'}\n

\n )}\n \n\n \n {row.lastInboxTime ? (\n
\n {moment(row.lastInboxTime).format('DD/MM/YYYY HH:mm')}\n
\n ) : (\n \n {'_'}\n

\n )}\n \n\n \n {row.lastCustomerInboxTime ? (\n
\n {moment(row.lastCustomerInboxTime).format(\n 'DD/MM/YYYY HH:mm'\n )}\n
\n ) : (\n \n {'_'}\n

\n )}\n \n\n \n {row.phone ? (\n
{row.phone}
\n ) : (\n \n {'_'}\n

\n )}\n \n \n ))}\n
\n
\n\n {customerData?.content?.length === 0 && (\n

{t('update.no_data')}

\n )}\n \n\n \n \n handleChangePage(event, newPage - 1)\n }\n color=\"secondary\"\n />\n \n \n \n \n \n

{t('common.btn.delete')}

\n
\n \n
\n
\n
\n
\n
\n
\n\n setOpenConfirm(false)}\n onConfirm={handleDelete}\n confirmText=\"Xóa\"\n cancelText=\"Hủy\"\n />\n
\n )\n}\n\nconst CellSticky = styled(TableCell)`\n position: sticky;\n background-color: #fff;\n right: -1px;\n z-index: 2;\n box-shadow: -15px 0px 17px -7px #f0eded;\n`\n\nexport default CustomersInFBTagModal\n","import {\n Checkbox,\n DialogActions,\n FormControlLabel,\n IconButton,\n InputAdornment,\n makeStyles,\n Paper,\n Table,\n TableBody,\n TableCell,\n TableContainer,\n TableHead,\n TableRow,\n TextField,\n Tooltip\n} from \"@material-ui/core\";\nimport { PeopleAltOutlined } from \"@material-ui/icons\";\nimport SearchIcon from \"@material-ui/icons/Search\";\nimport { Pagination } from \"@material-ui/lab\";\nimport cn from \"classnames\";\nimport ButtonComponent from \"components/Button\";\nimport Flex from \"components/Flex\";\nimport TagPreviewItem from \"components/TagPreviewItem\";\nimport _ from \"lodash\";\nimport { useEffect, useState } from \"react\";\nimport { X } from \"react-feather\";\nimport { useTranslation } from \"react-i18next\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport styled from \"styled-components\";\nimport { selectFanpageSelected } from \"views/Customer/CustomerSelectors\";\nimport fanpageApi from \"../../api/fanpageApi\";\nimport { showError, showSuccess } from \"../../stores/alert/slice.alert\";\nimport CustomersInFBTagModal from \"../CustomersInTagModal/CustomersInFBTagModal\";\n\nconst useStyles = makeStyles({\n widthCheckBox: {\n height: \"52px\"\n },\n widthSeq: {\n minWidth: \"80px\",\n padding: \"0 8px !important\"\n },\n widthId: {\n minWidth: \"146px\",\n padding: \"0 8px !important\"\n },\n widthName: {\n minWidth: \"220px\",\n padding: \"0 8px !important\"\n },\n widthCreatedAt: {\n minWidth: \"220px\",\n padding: \"0 8px !important\"\n },\n widthCreatedBy: {\n minWidth: \"220px\",\n padding: \"0 8px !important\"\n },\n widthQuantityCus: {\n minWidth: \"120px\",\n padding: \"0 8px !important\"\n },\n widthActions: {\n minWidth: \"140px\",\n width: \"6%\",\n padding: \"0 8px !important\"\n },\n p0: {\n padding: \"0\",\n margin: \"0\"\n },\n heightHeader: {\n height: \"52px\"\n },\n f600: {\n fontWeight: 600\n },\n checkBoxPadding: {\n padding: \"10px 20px\"\n },\n actions: {\n display: \"flex\",\n alignItems: \"center\",\n width: \"100%\",\n justifyContent: \"space-between\",\n marginTop: \"10px\"\n },\n closeBtn: {\n color: \"#ffffff\",\n backgroundColor: \"#dc3545\",\n border: \"2px solid #dc3545\",\n padding: \"6px 20px\",\n borderRadius: \"4px\",\n cursor: \"pointer\",\n \"&:hover\": {\n backgroundColor: \"#c82333\",\n borderColor: \"#bd2130\"\n }\n },\n submitBtn: {\n color: \"white\",\n backgroundColor: \"#28a745\",\n border: \"2px solid #28a745\",\n padding: \"6px 26px\",\n borderRadius: \"4px\",\n cursor: \"pointer\",\n margin: \"0 36px !important\",\n \"&:hover\": {\n backgroundColor: \"#218838\",\n borderColor: \"#1e7e34\"\n }\n },\n numCusInp: {\n fontSize: \"14px\",\n display: \"flex\",\n justifyContent: \"end\",\n alignItems: \"center\"\n },\n footerContainer: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n width: \"100%\",\n padding: \"0 26px\",\n margin: \"12px 0\",\n minHeight: \"48px\"\n },\n container: {\n flex: 1,\n width: \"100%\"\n },\n paginationBottom: {\n display: \"flex !important\",\n justifyContent: \"end !important\",\n alignItems: \"center !important\"\n },\n buttonLoadMore: {\n alignItems: \"center\",\n appearance: \"none\",\n backgroundColor: \"#fff\",\n border: \"1px solid #dbdbdb\",\n borderRadius: \".375em\",\n boxShadow: \"none\",\n boxSizing: \"border-box\",\n color: \"#363636\",\n cursor: \"pointer\",\n display: \"inline-flex\",\n fontFamily: `BlinkMacSystemFont, -apple-system, \"Segoe UI\", Roboto, Oxygen, Ubuntu, Cantarell, \"Fira Sans\", \"Droid Sans\", \"Helvetica Neue\", Helvetica, Arial, sans-serif`,\n fontSize: \"0.8rem\",\n height: \"1.8em\",\n justifyContent: \"center\",\n lineHeight: \"1.5\",\n padding: \"calc(.5em - 1px) 1em\",\n position: \"relative\",\n textAlign: \"center\",\n userSelect: \"none\",\n WebkitUserSelect: \"none\",\n touchAction: \"manipulation\",\n verticalAlign: \"top\",\n whiteSpace: \"nowrap\",\n \"&:hover\": {\n borderColor: \"#b5b5b5\"\n },\n \"&:active\": {\n borderColor: \"#4a4a4a\",\n outline: \"0\"\n },\n \"&:focus\": {\n borderColor: \"#485fc7\",\n outline: \"0\"\n },\n \"&:focus:not(:active)\": {\n boxShadow: \"rgba(72, 95, 199, 0.25) 0 0 0 0.125em\"\n }\n },\n rowItem: {\n cursor: \"pointer\"\n },\n\n noData: {\n color: \"rgba(0,0,0,.5)\",\n fontWeight: \"bold\",\n textAlign: \"center\",\n padding: \"24px\"\n },\n closeButton: {\n position: \"absolute\",\n right: 0,\n top: \"50%\",\n transform: \"translateY(-50%)\",\n color: \"#637381\",\n padding: \"8px\",\n marginRight: \"8px\",\n \"&:hover\": {\n color: \"#212B36\",\n backgroundColor: \"rgba(99, 115, 129, 0.08)\",\n borderRadius: \"50%\"\n }\n },\n dialogTitle: {\n position: \"relative\",\n paddingRight: \"48px\",\n margin: 0,\n padding: \"16px 24px\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\"\n }\n});\n\nconst countRowPerPages = 10;\n\nexport const tagType = {\n BOMBOT_TAGS: \"BOMBOT_TAGS\",\n FACEBOOK_TAGS: \"FACEBOOK_TAGS\"\n};\n\nconst FbTagsManagement = ({ getData, getFanpage, tabVal }) => {\n const { t } = useTranslation();\n const classes = useStyles();\n const pageSelected = useSelector(selectFanpageSelected);\n const [page, setPage] = useState(0);\n const [fbTagData, setFbTagData] = useState([]);\n const [checkedList, setCheckedList] = useState({});\n const [searchVal, setSearchVal] = useState(\"\");\n const [isLoading, setIsLoading] = useState(false);\n const [selectedTag, setSelectedTag] = useState(null);\n const [openConfirmDelete, setOpenConfirmDelete] = useState(false);\n const [isOpenRenameModal, setIsOpenRenameModal] = useState(false);\n const [renameSelected, setRenameSelected] = useState(null);\n\n const dispatch = useDispatch();\n\n const getFbTags = async (page) => {\n if (!pageSelected.id) return;\n\n let search = null;\n\n if (searchVal.trim()) {\n search = `id|name==${searchVal}`;\n }\n\n let params = {\n id: pageSelected.id,\n page: page,\n size: countRowPerPages\n };\n\n if (!_.isNull(search)) {\n params = {\n id: pageSelected.id,\n page: page,\n size: countRowPerPages,\n search\n };\n }\n\n return fanpageApi\n .getFbTagList(pageSelected?.id, params)\n .then((res) => setFbTagData(res));\n };\n\n useEffect(() => {\n (async () => {\n try {\n setIsLoading(true);\n\n if (tabVal === tagType.FACEBOOK_TAGS) {\n await getFbTags(page);\n }\n } catch (error) {\n dispatch(showError(\"Co loi xay ra!\"));\n } finally {\n setIsLoading(false);\n }\n })();\n }, [pageSelected, page, tabVal]);\n\n // useDebounce(\n // () => {\n // ;(async () => {\n // setIsLoading(true)\n // try {\n // setPage(0)\n // if (!searchVal.trim()) {\n // await getBombotTags(0)\n // return\n // }\n // const res = await fanpageApi.searchTags(pageSelected?.id, {\n // id: pageSelected.id,\n // page: 0,\n // size: countRowPerPages,\n // search: `name==${searchVal}`,\n // })\n // setTagData(res)\n // } catch (error) {\n // dispatch(showError('Co loi xay ra!'))\n // } finally {\n // setIsLoading(false)\n // }\n // })()\n // },\n // 500,\n // [searchVal]\n // )\n\n const handleSearch = async () => {\n setIsLoading(true);\n try {\n setPage(0);\n if (tabVal === tagType.FACEBOOK_TAGS) {\n await getFbTags(0);\n }\n\n // const res = await fanpageApi.searchBombotTags(pageSelected?.id, {\n // id: pageSelected.id,\n // page: 0,\n // size: countRowPerPages,\n // search: `name==${searchVal}`,\n // })\n // setBombotTagData(res)\n } catch (error) {\n dispatch(showError(\"Co loi xay ra!\"));\n } finally {\n setIsLoading(false);\n }\n };\n\n const handleChangePage = (event, newPage) => {\n setPage(newPage);\n };\n\n const handleCheckAllTag = (isChecked) => {\n const currentPageTags = fbTagData?.content;\n let checkListTmp = { ...checkedList };\n currentPageTags.forEach((tag) => {\n checkListTmp[tag.id] = isChecked;\n });\n setCheckedList(checkListTmp);\n };\n\n const handleCheckTag = (isChecked, tagId) => {\n setCheckedList((prev) => ({\n ...prev,\n [tagId]: isChecked\n }));\n };\n\n const handleDeleteSearch = () => {\n setSearchVal(\"\");\n setPage(0);\n };\n\n const handleSubmitDeleteTags = () => {\n if (Object.keys(checkedList).length === 0) {\n dispatch(showError(\"Vui lòng chọn ít nhất một tag\"));\n return;\n }\n setOpenConfirmDelete(true);\n };\n\n const handleDeleteTags = async () => {\n setIsLoading(true);\n try {\n await fanpageApi.deleteBomBotTagList(pageSelected?.id, {\n tagId: Object.keys(checkedList)\n });\n\n getFanpage();\n getData();\n\n await getFbTags();\n\n setOpenConfirmDelete(false);\n dispatch(\n showSuccess(`Đã xóa ${Object.keys(checkedList).length} tag thành công`)\n );\n setCheckedList({});\n } catch (error) {\n dispatch(showError(\"Xóa tag thất bại. Vui lòng thử lại sau\"));\n } finally {\n setIsLoading(false);\n }\n };\n\n const handleRenameTag = async (renameTag, newName) => {\n try {\n const payload = {\n name: newName\n };\n\n await fanpageApi.renameTag(pageSelected.id, renameTag.id, payload);\n\n getFanpage();\n getData();\n\n await getFbTags();\n } catch (error) {\n console.log(error);\n } finally {\n setRenameSelected(null);\n }\n };\n\n return (\n <>\n \n {\n setSearchVal(e.target.value);\n }}\n InputProps={{\n startAdornment: (\n \n \n \n ),\n endAdornment: searchVal && (\n \n \n \n \n \n ),\n style: {\n paddingRight: 8\n }\n }}\n style={{\n width: \"100%\",\n marginRight: \"10px\"\n }}\n />\n \n {t(\"common.btn.search\")}\n \n }\n backgroundColor=\"#05AE34\"\n color=\"white\"\n handleClickButton={() => handleSearch()}\n style={{\n minWidth: \"fit-content\"\n }}\n />\n \n\n \n \n \n \n \n checkedList[tag.id]\n )}\n onChange={(_, isChecked) => {\n handleCheckAllTag(isChecked);\n }}\n />\n }\n />\n \n \n {t(\"tag_management.list.tag_ord_nos\")}\n \n \n {t(\"tag_management.list.tag_id\")}\n \n \n {t(\"tag_management.list.tag_name\")}\n \n \n {t(\"tag_management.list.num_customers\")}\n \n \n {t(\"tag_management.action\")}\n \n \n \n\n \n {fbTagData?.content?.length > 0 &&\n fbTagData?.content?.map((tag, index) => (\n \n \n {\n handleCheckTag(isChecked, tag.id);\n }}\n />\n }\n />\n \n \n {fbTagData?.number * countRowPerPages + index + 1}\n \n \n {tag?.id}\n \n \n \n \n
\n \n
\n
\n \n \n \n {tag?.totalCus}\n \n {/* \n {tag.createdAt\n ? moment(tag.createdAt).format('DD/MM/YYYY HH:mm')\n : 'N/A'}\n */}\n {/* \n {tag.createdByUserId || 'N/A'}\n */}\n {/* \n {tag.totalCus || 'N/A'}\n */}\n \n \n \n {\n setSelectedTag(tag.id);\n }}\n >\n \n \n \n {/* \n {\n setRenameSelected(tag)\n }}\n >\n \n \n */}\n \n \n \n ))}\n
\n
\n {fbTagData?.content?.length === 0 && (\n

{t(\"update.no_data\")}

\n )}\n \n\n {!_.isNull(selectedTag) && (\n setSelectedTag(null)}\n tagId={selectedTag}\n />\n )}\n\n {fbTagData?.content?.length > 0 && (\n \n handleChangePage(event, newPage - 1)}\n color=\"secondary\"\n />\n \n {/* \n \n

{t('common.btn.delete')}

\n
\n */}\n
\n
\n )}\n \n );\n};\n\nconst CellSticky = styled(TableCell)`\n position: sticky;\n background-color: #fff;\n right: -1px;\n z-index: 2;\n box-shadow: -15px 0px 17px -7px #f0eded;\n top: 0; \n`;\n\nexport default FbTagsManagement;\n","import {\n Dialog,\n DialogContent,\n DialogTitle,\n IconButton,\n makeStyles,\n Tab,\n TableCell,\n Tabs,\n} from '@material-ui/core'\nimport { useState } from 'react'\nimport { X } from 'react-feather'\nimport LoadingWrapper from '../LoadingWrapper'\nimport BombotTagsManagement from './BombotTagsManagement'\nimport FbTagsManagement from './FbTagsManagement'\nimport { useTranslation } from 'react-i18next'\n\nconst useStyles = makeStyles({\n widthCheckBox: {\n minWidth: '60px',\n width: '4%',\n },\n widthSeq: {\n minWidth: '80px',\n padding: '0 8px !important',\n },\n widthId: {\n minWidth: '120px',\n padding: '0 8px !important',\n },\n widthName: {\n minWidth: '220px',\n padding: '0 8px !important',\n },\n widthCreatedAt: {\n minWidth: '220px',\n padding: '0 8px !important',\n },\n widthCreatedBy: {\n minWidth: '220px',\n padding: '0 8px !important',\n },\n widthQuantityCus: {\n minWidth: '120px',\n padding: '0 8px !important',\n },\n widthActions: {\n minWidth: '140px',\n width: '6%',\n padding: '0 8px !important',\n },\n p0: {\n padding: '0',\n margin: '0',\n },\n heightHeader: {\n height: '52px',\n },\n f600: {\n fontWeight: 600,\n },\n checkBoxPadding: {\n padding: '10px 20px',\n },\n actions: {\n display: 'flex',\n alignItems: 'center',\n width: '100%',\n justifyContent: 'space-between',\n marginTop: '10px',\n },\n closeBtn: {\n color: '#ffffff',\n backgroundColor: '#dc3545',\n border: '2px solid #dc3545',\n padding: '6px 20px',\n borderRadius: '4px',\n cursor: 'pointer',\n '&:hover': {\n backgroundColor: '#c82333',\n borderColor: '#bd2130',\n },\n },\n submitBtn: {\n color: 'white',\n backgroundColor: '#28a745',\n border: '2px solid #28a745',\n padding: '6px 26px',\n borderRadius: '4px',\n cursor: 'pointer',\n margin: '0 36px !important',\n '&:hover': {\n backgroundColor: '#218838',\n borderColor: '#1e7e34',\n },\n },\n numCusInp: {\n fontSize: '14px',\n display: 'flex',\n justifyContent: 'end',\n alignItems: 'center',\n },\n footerContainer: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n width: '100%',\n padding: '0 26px',\n margin: '12px 0',\n minHeight: '48px',\n },\n container: {\n flex: 1,\n width: '100%',\n },\n paginationBottom: {\n display: 'flex !important',\n justifyContent: 'end !important',\n alignItems: 'center !important',\n },\n buttonLoadMore: {\n alignItems: 'center',\n appearance: 'none',\n backgroundColor: '#fff',\n border: '1px solid #dbdbdb',\n borderRadius: '.375em',\n boxShadow: 'none',\n boxSizing: 'border-box',\n color: '#363636',\n cursor: 'pointer',\n display: 'inline-flex',\n fontFamily: `BlinkMacSystemFont, -apple-system, \"Segoe UI\", Roboto, Oxygen, Ubuntu, Cantarell, \"Fira Sans\", \"Droid Sans\", \"Helvetica Neue\", Helvetica, Arial, sans-serif`,\n fontSize: '0.8rem',\n height: '1.8em',\n justifyContent: 'center',\n lineHeight: '1.5',\n padding: 'calc(.5em - 1px) 1em',\n position: 'relative',\n textAlign: 'center',\n userSelect: 'none',\n WebkitUserSelect: 'none',\n touchAction: 'manipulation',\n verticalAlign: 'top',\n whiteSpace: 'nowrap',\n '&:hover': {\n borderColor: '#b5b5b5',\n },\n '&:active': {\n borderColor: '#4a4a4a',\n outline: '0',\n },\n '&:focus': {\n borderColor: '#485fc7',\n outline: '0',\n },\n '&:focus:not(:active)': {\n boxShadow: 'rgba(72, 95, 199, 0.25) 0 0 0 0.125em',\n },\n },\n rowItem: {\n cursor: 'pointer',\n },\n\n noData: {\n color: 'rgba(0,0,0,.5)',\n fontWeight: 'bold',\n textAlign: 'center',\n padding: '24px',\n },\n closeButton: {\n position: 'absolute',\n right: 0,\n top: '50%',\n transform: 'translateY(-50%)',\n color: '#637381',\n padding: '8px',\n marginRight: '8px',\n '&:hover': {\n color: '#212B36',\n backgroundColor: 'rgba(99, 115, 129, 0.08)',\n borderRadius: '50%',\n },\n },\n dialogTitle: {\n position: 'relative',\n paddingRight: '48px',\n margin: 0,\n padding: '16px 24px',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n },\n})\n\nexport const tagType = {\n BOMBOT_TAGS: 'BOMBOT_TAGS',\n FACEBOOK_TAGS: 'FACEBOOK_TAGS',\n}\n\nconst TagsManagementModal = ({\n isOpen,\n handleClose,\n getData,\n getFanpage,\n fanpageSelected\n}) => {\n const classes = useStyles();\n const [isLoading, setIsLoading] = useState(false);\n const [tabVal, setTabVal] = useState(tagType.BOMBOT_TAGS);\n\n const { t } = useTranslation();\n\n const handleChangeTab = (e, newVal) => {\n setTabVal(newVal);\n };\n\n return (\n \n \n \n {t(\"tag_management.label\")}\n \n \n \n \n\n \n \n \n \n\n {tabVal === tagType.BOMBOT_TAGS && (\n \n \n \n )}\n\n {tabVal === tagType.FACEBOOK_TAGS && (\n \n \n \n )}\n \n \n );\n};\n\nexport default TagsManagementModal\n","import React, { useEffect, useRef, useState } from 'react'\nimport { useHistory } from 'react-router-dom'\nimport PropTypes from 'prop-types'\nimport _ from 'lodash'\nimport { makeStyles } from '@material-ui/core/styles'\nimport Table from '@material-ui/core/Table'\nimport TableBody from '@material-ui/core/TableBody'\nimport TableCell from '@material-ui/core/TableCell'\nimport TableContainer from '@material-ui/core/TableContainer'\nimport TableHead from '@material-ui/core/TableHead'\nimport cn from 'classnames'\nimport TableRow from '@material-ui/core/TableRow'\nimport TableSortLabel from '@material-ui/core/TableSortLabel'\nimport Paper from '@material-ui/core/Paper'\nimport SettingsIcon from '@material-ui/icons/Settings'\nimport SearchIcon from '@material-ui/icons/Search'\nimport InputAdornment from '@material-ui/core/InputAdornment'\nimport Input from '@material-ui/core/Input'\nimport Checkbox from '@material-ui/core/Checkbox'\nimport ErrorOutlineIcon from '@material-ui/icons/ErrorOutline'\nimport EditIcon from '@material-ui/icons/Edit'\nimport moment from 'moment'\nimport types from '../constants/types'\nimport ButtonComponent from './Button'\nimport FilterListIcon from '@material-ui/icons/FilterList'\nimport Pagination from '@material-ui/lab/Pagination'\nimport FormDialog from './FormDialog'\nimport TextField from '@material-ui/core/TextField'\nimport Flex from './Flex'\nimport Menu from '@material-ui/core/Menu'\nimport MenuItem from '@material-ui/core/MenuItem'\nimport ModalTagsBombot from '../components/Modals/ModalTagsBombot'\nimport ExitToAppIcon from '@material-ui/icons/ExitToApp'\nimport GetAppIcon from '@material-ui/icons/GetApp'\nimport AddCircleIcon from '@material-ui/icons/AddCircle'\nimport MuiAlert from '@material-ui/lab/Alert'\nimport {\n Button,\n FormControlLabel,\n Snackbar,\n TablePagination,\n} from '@material-ui/core'\nimport FilterCustomerModal from './FilterCustomer'\nimport { useDispatch, useSelector } from 'react-redux'\nimport {\n selectFilterCus,\n selectTagsPageSelected,\n} from 'views/Customer/CustomerSelectors'\nimport useEffectIgnoreFirst from 'hook/useEffectIgnoreFirst'\nimport { useTranslation } from 'react-i18next'\nimport { createSearchQuery } from '../utils/helper'\nimport { setSearchUidName } from '../views/Customer/CustomerReducer'\nimport TagsModal, { colorDir1, getRandomTag } from './TagPreviewModal'\nimport TagPreviewItem from './TagPreviewItem'\nimport { Tag } from 'react-feather'\nimport ManageTagModal from './ManageTag'\nimport customerApi from '../api/customerApi'\nimport { getCustomer } from '../views/Customer/CustomerActions'\nimport TagsManagementModal from './TagsManagementModal/TagsManagementModal'\nimport { FilterIcon, Settings2Icon, SlidersHorizontalIcon } from 'lucide-react'\n\nfunction Alert(props) {\n return \n}\n\nconst headCells = [\n // {\n // id: \"actions\",\n // numeric: false,\n // disablePadding: false,\n // label: \"Thao tác\",\n // },\n {\n id: 'ord_num',\n numeric: false,\n disablePadding: false,\n label: 'customer_management.list.ord_number',\n },\n {\n id: 'id',\n numeric: false,\n disablePadding: false,\n label: 'customer_management.list.uid',\n },\n {\n id: 'name',\n numeric: false,\n disablePadding: false,\n label: 'customer_management.list.facebook_name',\n width: 100,\n },\n {\n id: 'gt',\n numeric: false,\n disablePadding: false,\n label: 'customer_management.list.gender',\n },\n {\n id: 'timeInbox',\n numeric: false,\n disablePadding: false,\n label: 'customer_management.list.last_inbox_time',\n },\n {\n id: 'timeCustomerInbox',\n numeric: false,\n disablePadding: false,\n label: 'customer_management.list.last_customer_inbox_time',\n },\n {\n id: 'phone',\n numeric: false,\n disablePadding: false,\n label: 'customer_management.list.phone',\n },\n {\n id: 'tagF',\n numeric: false,\n disablePadding: false,\n label: 'customer_management.list.facebook_tag',\n },\n {\n id: 'tagB',\n numeric: false,\n disablePadding: false,\n label: 'customer_management.list.bombot_tag',\n },\n {\n id: 'TimeLast',\n numeric: false,\n disablePadding: false,\n label: 'customer_management.list.last_update_time',\n },\n {\n id: 'actions',\n numeric: false,\n disablePadding: false,\n label: 'customer_management.list.action',\n },\n]\n\nfunction EnhancedTableHead(props) {\n const {\n classes,\n onSelectAllClick,\n numSelected,\n rowCount,\n checkBoxSelectAll,\n isEmptyCheckItem,\n } = props\n const { t } = useTranslation()\n return (\n \n \n \n 0 && numSelected < rowCount}\n checked={isEmptyCheckItem.length > 0 ? false : checkBoxSelectAll}\n onChange={onSelectAllClick}\n inputProps={{ 'aria-label': 'select all desserts' }}\n />\n \n {headCells.map((headCell) => (\n \n \n {t(headCell.label)}\n \n \n ))}\n \n \n )\n}\n\nEnhancedTableHead.propTypes = {\n classes: PropTypes.object.isRequired,\n numSelected: PropTypes.number.isRequired,\n onSelectAllClick: PropTypes.func.isRequired,\n rowCount: PropTypes.number.isRequired,\n}\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n width: '100%',\n padding: '15px 0px 60px 0px',\n '& .MuiTableCell-paddingCheckbox': {\n width: 130,\n },\n },\n paper: {\n width: '100%',\n marginBottom: '80px',\n },\n table: {\n minWidth: '100%',\n },\n visuallyHidden: {\n border: 0,\n clip: 'rect(0 0 0 0)',\n height: 1,\n margin: -1,\n overflow: 'hidden',\n padding: 0,\n position: 'absolute',\n top: 20,\n width: 1,\n },\n '.pagination': {\n '& .MuiTablePagination-input': {\n width: 70,\n },\n },\n\n wrapperSearch: {\n position: 'relative',\n },\n\n buttonIEA: {\n width: '100%',\n // marginTop: 10,\n textAlign: 'left',\n marginRight: '15px',\n padding: '20px 15px 15px 0px',\n position: 'fixed',\n bottom: 60,\n background: '#F6F9FC',\n '& button': {\n marginRight: 15,\n },\n },\n noData: {\n color: 'rgba(0,0,0,.5)',\n fontWeight: 'bold',\n textAlign: 'center',\n paddingBottom: 15,\n },\n iconCheck: {\n '& .MuiSvgIcon-root': {\n width: '40',\n height: '40',\n },\n },\n icon: {\n marginLeft: 5,\n cursor: 'pointer',\n '& .MuiSvgIcon-root': {\n width: '40',\n height: '40',\n },\n },\n classTags: {\n '&:last-child': {\n '& span': {\n display: 'none',\n },\n },\n },\n wrapBox: {\n padding: '15px',\n marginBottom: 30,\n },\n inputAdd: {\n width: '100%',\n marginBottom: 15,\n },\n wrapButton: {\n textAlign: 'center',\n },\n buttonLoadMore: {\n border: '0px',\n color: 'var(--primary-color) !important',\n backgroundColor: 'unset',\n },\n\n witdhSeq: {\n minWidth: '120px',\n width: '4%',\n },\n\n witdhCheckBox: {\n minWidth: '60px',\n width: '4%',\n },\n\n witdhUid: {\n minWidth: '60px',\n width: '15%',\n padding: '0 8px !important',\n },\n\n widthName: {\n minWidth: '160px',\n width: '15%',\n padding: '0 8px !important',\n },\n\n widthGender: {\n minWidth: '120px',\n width: '6%',\n padding: '0 8px !important',\n },\n\n widthPhone: {\n minWidth: '120px',\n width: '15%',\n padding: '0 8px !important',\n },\n\n widthDate: {\n minWidth: '180px',\n width: '15%',\n padding: '0 8px !important',\n },\n\n widthLinkFB: {\n minWidth: '120px',\n width: '15%',\n padding: '0 8px !important',\n },\n\n witdhAction: {\n minWidth: '120px',\n width: '4%',\n },\n\n widthTag: {\n minWidth: '140px',\n width: '15%',\n padding: '12px 8px !important',\n },\n\n witdhUidErr: {\n minWidth: '140px',\n width: '20%',\n padding: '0 8px !important',\n },\n\n p0: {\n padding: '0',\n margin: '0',\n },\n\n heightHeader: {\n height: '52px',\n },\n\n f600: {\n fontWeight: 600,\n },\n\n checkBoxPadding: {\n padding: '10px 20px',\n },\n\n actions: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '100%',\n marginBottom: '10px',\n },\n\n closeBtn: {\n color: '#ffffff', // Màu chữ trắng\n backgroundColor: '#dc3545', // Màu nền đỏ để nổi bật\n border: '2px solid #dc3545', // Viền có màu giống nền\n padding: '6px 20px', // Padding cho nút\n borderRadius: '4px', // Đường viền tròn cho nút\n cursor: 'pointer', // Con trỏ chuột khi hover\n margin: '0 36px !important',\n '&:hover': {\n backgroundColor: '#c82333', // Màu nền khi hover (đỏ đậm hơn)\n borderColor: '#bd2130', // Màu viền khi hover\n },\n },\n\n submitBtn: {\n color: 'white', // Màu chữ\n backgroundColor: '#28a745', // Màu nền\n border: '2px solid #28a745', // Viền\n padding: '6px 26px', // Padding cho nút\n borderRadius: '4px', // Đường viền tròn cho nút\n cursor: 'pointer', // Con trỏ chuột khi hover.\n margin: '0 36px !important',\n '&:hover': {\n backgroundColor: '#218838', // Màu nền khi hover\n borderColor: '#1e7e34', // Màu viền khi hover\n },\n },\n\n numCusInp: {\n fontSize: '14px',\n display: 'flex',\n justifyContent: 'end',\n alignItems: 'center',\n },\n\n footerContainer: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n width: '100%',\n margin: '12px 0',\n minHeight: '48px',\n },\n\n container: {\n flex: 1,\n width: '100%',\n },\n\n paginationBottom: {\n display: 'flex !important',\n justifyContent: 'end !important',\n alignItems: 'center !important',\n },\n\n buttonLoadMore: {\n alignItems: 'center',\n appearance: 'none',\n backgroundColor: '#fff',\n border: '1px solid #dbdbdb',\n borderRadius: '.375em',\n boxShadow: 'none',\n boxSizing: 'border-box',\n color: '#363636',\n cursor: 'pointer',\n display: 'inline-flex',\n fontFamily: `BlinkMacSystemFont, -apple-system, \"Segoe UI\", Roboto, Oxygen, Ubuntu, Cantarell, \"Fira Sans\", \"Droid Sans\", \"Helvetica Neue\", Helvetica, Arial, sans-serif`,\n fontSize: '0.8rem',\n height: '1.8em',\n justifyContent: 'center',\n lineHeight: '1.5',\n padding: 'calc(.5em - 1px) 1em',\n position: 'relative',\n textAlign: 'center',\n userSelect: 'none',\n WebkitUserSelect: 'none',\n touchAction: 'manipulation',\n verticalAlign: 'top',\n whiteSpace: 'nowrap',\n width: '100%',\n\n '&:hover': {\n borderColor: '#b5b5b5',\n },\n '&:active': {\n borderColor: '#4a4a4a',\n outline: '0',\n },\n '&:focus': {\n borderColor: '#485fc7',\n outline: '0',\n },\n '&:focus:not(:active)': {\n boxShadow: 'rgba(72, 95, 199, 0.25) 0 0 0 0.125em',\n },\n },\n\n rowItem: {\n cursor: 'pointer',\n },\n\n tagsContainer: {\n display: 'flex',\n flexWrap: 'wrap',\n gap: '4px',\n padding: '4px 0 !important',\n },\n}))\nlet timeout = 0\nexport default function EnhancedTable(props) {\n const {\n data,\n handleGetData,\n getData,\n isPagination,\n isSearch,\n fanpageSelected,\n detail,\n edit,\n handleExport,\n handleImport,\n handleFilter,\n onCreate,\n customerAll,\n onCustomerCheck,\n onCustomerCheckReset,\n customerCheck,\n createCustomerSucss,\n paramsFilter,\n paramsPagination,\n getFanpage,\n } = props\n // const rows = (data && data.content) || [];\n const classes = useStyles()\n const [selected, setSelected] = useState([])\n const [page, setPage] = useState(types.PAGINATION.PAGE)\n const [dense, setDense] = useState(true)\n const [rowsPerPage, setRowsPerPage] = useState(types.PAGINATION.SIZE)\n const [search, setSearch] = useState('')\n const [checkBoxSelectAll, setCheckBoxSelectAll] = useState(true)\n const [rows, setRows] = useState([])\n const [isCreateCampaign, setIsCreateCampaign] = useState(false)\n const [titleCampaign, setTitleCampaign] = useState('')\n const [isCheckedAllPage, setIsCheckedAllPage] = useState(true)\n const [selectedTags, setSeletedTags] = useState(null)\n\n const [isUseCheckedAllPage, setIsUseCheckedAllPage] = useState(true)\n\n const [customerAllState, setCustomerAllState] = useState([])\n const [anchorEl, setAnchorEl] = React.useState(null)\n console.log(\"🚀 ~ EnhancedTable ~ anchorEl:\", anchorEl)\n const [typeModalTag, setTypeModalTag] = useState(null)\n const [error, setError] = useState('')\n const [typeMessage, setTypeMessage] = useState(null)\n const [customerAfterFilter, setcustomerAfterFilter] = useState([])\n const [showModalAllTags, setshowModalAllTags] = useState(false)\n const [selectedModalTags, setSelectedModalTags] = useState([])\n const [isOpenModalManageTag, setIsOpenModalManageTag] = useState(false)\n const [isOpenModalFilter, setIsOpenModalFilter] = useState(false)\n\n const tagsObj = useSelector(selectTagsPageSelected)\n\n const dispatch = useDispatch()\n\n const history = useHistory()\n\n useEffect(() => {\n const searchParam = new URLSearchParams(window.location.search)\n const page = searchParam.get('page')\n if (page) {\n setPage(_.toNumber(page) + 1)\n }\n }, [paramsFilter])\n useEffect(() => {\n if (createCustomerSucss) {\n setIsCreateCampaign(false)\n }\n }, [createCustomerSucss])\n useEffect(() => {\n setCustomerAllState(customerAll)\n }, [customerAll])\n\n let totalNumber = data && data.totalElements - customerCheck.length\n\n useEffect(() => {\n setRows((data && data.content) || [])\n }, [data])\n\n // useEffect(() => {\n // if (timeout) clearTimeout(timeout)\n // timeout = setTimeout(() => {\n // dispatch(setSearchUidName(search))\n // handleSubmitSearch()\n // }, 300)\n // }, [search, fanpageSelected])\n\n const handleChangePage = (event, newPage) => {\n setPage(newPage)\n getData({\n page: newPage,\n size: rowsPerPage,\n search: `pageId==${fanpageSelected.id};${\n search && `uid|name==` + search\n }`,\n sort: 'lastInboxTime,desc',\n })\n }\n\n const handleChangeRowsPerPage = (event) => {\n setRowsPerPage(parseInt(event.target.value, types.PAGINATION.SIZE))\n setPage(types.PAGINATION.PAGE)\n getData({\n page: types.PAGINATION.PAGE,\n size: parseInt(event.target.value, types.PAGINATION.SIZE),\n search: `pageId==${fanpageSelected.id};${\n search && `uid|name==` + search\n }`,\n sort: 'lastInboxTime,desc',\n })\n const searchParam = new URLSearchParams(window.location.search)\n searchParam.set('size', parseInt(event.target.value, types.PAGINATION.SIZE))\n const newSearchParam = searchParam.toString()\n history.push({\n pathname: window.location.pathname,\n search: newSearchParam,\n })\n }\n\n const filterCus = useSelector(selectFilterCus)\n const handleChange = (event, value) => {\n const searchParam = new URLSearchParams(window.location.search)\n searchParam.set('page', value - 1)\n const search = searchParam.get('search')\n const newSearchParam = searchParam.toString()\n history.push({\n pathname: window.location.pathname,\n search: newSearchParam,\n })\n paramsPagination({\n page: value,\n size: rowsPerPage,\n pageId: fanpageSelected.id,\n })\n //setCheckBoxSelectAll(true);\n setPage(value)\n if (filterCus?.search_string) {\n getData({\n page: value - 1,\n size: 10,\n search: filterCus?.search_string,\n sort: 'lastInboxTime,desc',\n })\n } else {\n getData({\n page: value - 1,\n size: rowsPerPage,\n search: `${\n search\n ? search\n : `pageId==${fanpageSelected.id};${search && `uid|name==` + search}`\n }`,\n sort: 'lastInboxTime,desc',\n })\n }\n }\n const handleChangeDense = (event) => {\n setDense(event.target.checked)\n }\n\n const handleSearch = (key, value) => {\n switch (key) {\n case 'search':\n // setSearch(value)\n // if (value) {\n const customerFilter = customerAll.filter(\n (cus) =>\n (cus.uid && cus.uid.includes(value)) ||\n (cus.nameText && cus.nameText.includes(value))\n )\n setcustomerAfterFilter(customerFilter)\n dispatch(setSearchUidName(search))\n handleSubmitSearch()\n // }\n break\n default:\n break\n }\n // setTypeMessage(\"error\");\n }\n\n const handleSubmitSearch = () => {\n if (fanpageSelected?.id) {\n const searchParam = new URLSearchParams(window.location.search)\n searchParam.set('page', types.PAGINATION.PAGE)\n searchParam.set('size', types.PAGINATION.SIZE)\n searchParam.set('pageId', `${fanpageSelected.id}`)\n searchParam.set('sort', 'lastInboxTime,desc')\n const getSearch = searchParam.get('search')\n const newSearchParam = searchParam.toString()\n history.push({\n pathname: window.location.pathname,\n search: newSearchParam,\n })\n paramsPagination({\n page: types.PAGINATION.PAGE,\n size: types.PAGINATION.SIZE,\n pageId: fanpageSelected.id,\n })\n if (!_.isEmpty(fanpageSelected)) {\n let searchQuery = createSearchQuery(filterCus?.search_arr || null)\n\n searchQuery += `${\n getSearch ? getSearch : `pageId==${fanpageSelected.id}`\n };${search && `uid|name==` + search}`\n\n const params = {\n page: types.PAGINATION.PAGE,\n size: types.PAGINATION.SIZE,\n search: searchQuery,\n sort: 'lastInboxTime,desc',\n }\n getData(params)\n setRowsPerPage(types.PAGINATION.SIZE)\n setPage(types.PAGINATION.PAGE)\n }\n }\n }\n\n const handleSubmitFilter = () => {\n setIsOpenModalFilter(true)\n }\n\n const toggleModalFilter = () => {\n setIsOpenModalFilter(!isOpenModalFilter)\n }\n\n const onSubmitFilter = (data) => {\n setcustomerAfterFilter(data)\n }\n const handleDetail = (item) => {\n detail(item)\n }\n\n const handleEdit = (item) => {\n const searchParam = new URLSearchParams(window.location.search)\n const getSearch = searchParam.get('search')\n const params = {\n page: types.PAGINATION.PAGE,\n size: types.PAGINATION.SIZE,\n search: `${getSearch ? getSearch : `pageId==${fanpageSelected.id}`};${\n search && `uid|name==` + search\n }`,\n sort: 'lastInboxTime,desc',\n }\n edit(item, params)\n }\n const handleSubmitExport = () => {\n handleExport()\n }\n const handleSubmitImport = () => {\n handleImport()\n }\n const handleOpenExtention = () => {\n window.open(\n types.URL.FACEBOOK + `&token=${localStorage.getItem('token') || null}`,\n '_blank'\n )\n }\n const onKeyDown = (event) => {\n if (event.key === 'Enter') {\n handleSearch('search', search)\n }\n }\n\n const isSelected = (name) => selected.indexOf(name) !== -1\n\n const handleSelectAllClick = () => {\n let items = []\n const checkArr = data && data.content.find((item) => item.checked == false)\n if (checkBoxSelectAll && _.isEmpty(checkArr)) {\n ;(rows || []).map((item) => {\n onCustomerCheck({ ...item, checked: true })\n return items.push({\n ...item,\n checked: true,\n })\n })\n setCheckBoxSelectAll(false)\n } else {\n ;(rows || []).map((item) => {\n onCustomerCheck({ ...item, checked: false })\n return items.push({\n ...item,\n checked: false,\n })\n })\n setCheckBoxSelectAll(true)\n }\n setRows(items)\n }\n\n const handleSelectCheckBox = (value) => {\n let items = []\n ;(rows || []).map((item) => {\n if (item.id == value.id && value.checked == true) {\n onCustomerCheck(item)\n return items.push({\n ...item,\n checked: false,\n })\n } else if (item.id == value.id && value.checked == false) {\n onCustomerCheck(item)\n return items.push({\n ...item,\n checked: true,\n })\n } else {\n return items.push({\n ...item,\n })\n }\n })\n setRows(items)\n }\n const handleSubmitCreate = () => {\n setIsCreateCampaign(true)\n }\n const handleCloseCreatePopup = () => {\n setIsCreateCampaign(false)\n setError('')\n setTitleCampaign('')\n }\n\n const handleSubmitCreateCampaign = () => {\n const params = {\n name: titleCampaign,\n pageId: fanpageSelected.id,\n }\n if (titleCampaign) {\n onCreate(paramsFilter, customerCheck, params, data)\n setError('')\n setTitleCampaign('')\n setIsCreateCampaign(false)\n } else {\n setError(t('update.error_msg_name_camp'))\n }\n }\n\n const handleChangeCampaign = (key, value) => {\n switch (key) {\n case 'titleCampaign':\n setTitleCampaign(value)\n break\n default:\n break\n }\n }\n const handleCheckedAllPage = () => {\n setIsUseCheckedAllPage(true)\n let items = []\n let customerAll = []\n if (isCheckedAllPage && customerCheck.length == 0) {\n ;((data && data.content) || []).map((item) => {\n return items.push({\n ...item,\n checked: false,\n })\n })\n customerAllState.map((item) => {\n return customerAll.push({\n ...item,\n checked: false,\n })\n })\n onCustomerCheckReset(customerAllState)\n setIsCheckedAllPage(false)\n setCheckBoxSelectAll(false)\n } else {\n ;((data && data.content) || []).map((item) => {\n return items.push({\n ...item,\n checked: true,\n })\n })\n customerAllState.map((item) => {\n return customerAll.push({\n ...item,\n checked: true,\n })\n })\n onCustomerCheckReset([])\n setIsCheckedAllPage(true)\n setCheckBoxSelectAll(true)\n }\n setCustomerAllState(customerAllState)\n\n setRows(items)\n }\n let isEmptyCheckItem = []\n rows.map((item) => {\n if (!item.checked) {\n isEmptyCheckItem.push(item)\n }\n })\n\n const handleClick = (event) => {\n setAnchorEl(event.currentTarget)\n }\n\n const handleCloseMenu = () => {\n setAnchorEl(null)\n }\n\n const openModalTag = (type) => {\n setTypeModalTag(type)\n handleCloseMenu()\n }\n\n const onCloseModal = () => {\n setTypeModalTag(null)\n }\n\n const handleCloseShowModalAllTagsPopup = (tags) => {\n setshowModalAllTags(false)\n setSelectedModalTags([])\n }\n\n const { t } = useTranslation()\n\n const renderTagsCell = (tagList, type, row) => {\n const fanpageTags =\n type === 'bombotTag' ? tagsObj?.bombotTags : tagsObj?.fbTags\n\n const filterTags = tagList.filter((tag) => fanpageTags[tag])\n\n return (\n <>\n {filterTags?.length ? (\n \n {filterTags.map((tag, index) => {\n const colorCode = getRandomTag(colorDir1)\n\n return (\n fanpageTags[tag]?.name &&\n parseInt(index) < 3 && (\n \n )\n )\n })}\n \n ) : (\n \n {'_'}\n

\n )}\n {(filterTags || []).length > 3 && (\n {\n e.stopPropagation()\n setSeletedTags({\n tagList: filterTags || null,\n customer: row,\n type: type,\n })\n }}\n className={classes.buttonLoadMore}\n >\n Xem tất cả ({(filterTags || []).length}) tags\n \n )}\n \n )\n }\n\n const handleRemoveTags = async (customer, removingTags) => {\n const payload = {\n search: `pageId==${customer.pageId}`,\n exclude: [],\n bombotTags: [...removingTags],\n include: [customer.uid],\n }\n\n return customerApi.unAttachTags(payload).then((result) => {\n const searchParam = new URLSearchParams(window.location.search)\n const search = searchParam.get('search')\n\n paramsPagination({\n page: page,\n size: rowsPerPage,\n pageId: fanpageSelected.id,\n })\n //setCheckBoxSelectAll(true);\n if (filterCus?.search_string) {\n getData({\n page: page - 1,\n size: 10,\n search: filterCus?.search_string,\n sort: 'lastInboxTime,desc',\n })\n } else {\n getData({\n page: page - 1,\n size: rowsPerPage,\n search: `${\n search\n ? search\n : `pageId==${fanpageSelected.id};${\n search && `uid|name==` + search\n }`\n }`,\n sort: 'lastInboxTime,desc',\n })\n }\n\n getFanpage()\n })\n }\n\n return (\n <>\n {typeMessage && (\n setTypeMessage(null)}\n >\n {}} severity={typeMessage}>\n {typeMessage === \"error\"\n ? t(\"update.error_msg\")\n : t(\"customer_management.import_customer.import_result.success\")}\n \n \n )}\n handleCloseCreatePopup()}\n >\n
\n

\n {t(\"customer_management.create_campaign.title\")}\n

\n \n handleChangeCampaign(\"titleCampaign\", event.target.value)\n }\n />\n

{error}

\n
\n handleSubmitCreateCampaign()}\n />\n
\n
\n \n handleCloseShowModalAllTagsPopup()}\n >\n
\n

\n {t(\"customer_management.tags.list_title\")}\n

\n
\n {(selectedModalTags || []).map((item, idx) => {\n let obj = _.find(\n (fanpageSelected && fanpageSelected.bombotTags) || [],\n function (obj) {\n return obj.id === item;\n }\n );\n if (!_.isEmpty(obj)) {\n return (\n
\n \n {obj.name}\n \n
\n );\n }\n })}\n
\n
\n \n {isSearch && (\n
\n \n \n setSearch(event.target.value)}\n placeholder={t(\"customer_management.search\")}\n style={{ maxWidth: 500, width: \"100%\" }}\n id=\"input-with-icon-textfield\"\n className=\"bg-white\"\n onKeyDown={onKeyDown}\n InputProps={{\n startAdornment: (\n \n \n \n )\n }}\n />\n \n {t(\"common.btn.search\")}\n \n }\n backgroundColor=\"#05AE34\"\n color=\"white\"\n handleClickButton={() => handleSearch(\"search\", search)}\n style={{\n minWidth: \"fit-content\",\n padding: \"6px 16px\"\n }}\n />\n \n \n {/* \n \n

{t('common.btn.manage_tag')}

\n
\n }\n backgroundColor=\"#05AE34\"\n color=\"white\"\n disabled={_.isEmpty(fanpageSelected) ? true : false}\n handleClickButton={() => setIsOpenModalManageTag(true)}\n /> */}\n \n \n

{t(\"common.btn.filter_customer\")}

\n
\n }\n backgroundColor=\"#05AE34\"\n color=\"white\"\n disabled={_.isEmpty(fanpageSelected) ? true : false}\n handleClickButton={() => handleSubmitFilter()}\n />\n \n \n

{t(\"common.btn.update_info\")}

\n \n }\n backgroundColor=\"#05AE34\"\n color=\"white\"\n disabled={_.isEmpty(fanpageSelected) ? true : false}\n handleClickButton={handleClick}\n />\n \n \n
\n )}\n\n \n openModalTag(\"add\")}>\n {t(\"customer_management.add_bombot_tag.title\")}\n \n openModalTag(\"edit\")}>\n {t(\"customer_management.remove_bombot_tag.title\")}\n \n \n\n {rows.length > 0 && (\n <>\n

\n {t(\"customer_management.list.amount_customer\")}:\n \n {!isCheckedAllPage && isUseCheckedAllPage\n ? 0\n : totalNumber <= 0\n ? 0\n : totalNumber}\n \n \n /{parseInt(data && data.totalElements)}\n \n

\n \n )}\n
\n \n \n \n \n {(rows || []).map((row, index) => {\n const isItemSelected = isSelected(row.name);\n const labelId = `enhanced-table-checkbox-${index}`;\n return (\n \n \n handleSelectCheckBox(row)}\n />\n }\n />\n \n \n {data?.number * rowsPerPage + index + 1}\n \n \n {row.uid ? (\n
{row.uid}
\n ) : (\n \n {\"_\"}\n

\n )}\n \n \n {row.name ? (\n
{row.name}
\n ) : (\n \n {\"_\"}\n

\n )}\n \n \n {row.gender ? (\n
\n {_.upperCase(row.gender) ==\n _.upperCase(types.GENDER.MALE)\n ? t(\"update.gender.male\")\n : _.upperCase(row.gender) ==\n _.upperCase(types.GENDER.FEMALE)\n ? t(\"update.gender.female\")\n : t(\"update.gender.other\")}\n
\n ) : (\n \n {\"_\"}\n

\n )}\n \n \n {row.lastInboxTime ? (\n
\n {moment(row.lastInboxTime).format(\"DD/MM/YYYY HH:mm\")}\n
\n ) : (\n \n {\"_\"}\n

\n )}\n \n\n \n {row.lastCustomerInboxTime ? (\n
\n {moment(row.lastCustomerInboxTime).format(\n \"DD/MM/YYYY HH:mm\"\n )}\n
\n ) : (\n \n {\"_\"}\n

\n )}\n \n \n {row.phone ? (\n
{row.phone}
\n ) : (\n \n {\"_\"}\n

\n )}\n \n\n \n {/* {(() => {\n const filteredTags = (row.fbTags || []).filter((item) =>\n _.find(\n (fanpageSelected && fanpageSelected.fbTags) || [],\n { id: item }\n )\n )\n\n //CONSOLE HERE\n console.log('filteredTags',filteredTags)\n\n return (\n \n {filteredTags.map((item, idx) => {\n let obj = _.find(\n (fanpageSelected && fanpageSelected.fbTags) ||\n [],\n function (obj) {\n return obj.id === item\n }\n )\n if (!_.isEmpty(obj) && parseInt(idx) < 3) {\n const colorCode = getRandomTag(colorDir1)\n\n return (\n \n )\n }\n })}\n {filteredTags.length > 3 && !showModalAllTags && (\n {\n e.stopPropagation()\n\n setSeletedTags(filteredTags || null)\n }}\n className={classes.buttonLoadMore}\n >\n Xem tất cả ({(row.fbTags || []).length -1}) tags\n \n )}\n \n )\n })()} */}\n {renderTagsCell(row?.fbTags, \"fbTag\", row)}\n \n\n \n {/* {(() => {\n // Filter the tags to include only those present in fanpageSelected.bombotTags\n const filteredTags = (row.bombotTags || []).filter(\n (item) =>\n _.find(\n (fanpageSelected && fanpageSelected.bombotTags) ||\n [],\n { id: item }\n )\n )\n\n return (\n \n {filteredTags.map((item, idx) => {\n let obj = _.find(\n (fanpageSelected &&\n fanpageSelected.bombotTags) ||\n [],\n function (obj) {\n return obj.id === item\n }\n )\n if (!_.isEmpty(obj) && parseInt(idx) < 3) {\n const colorCode = getRandomTag(colorDir1)\n\n return (\n \n )\n }\n })}\n {filteredTags.length > 3 && !showModalAllTags && (\n {\n e.stopPropagation()\n setSeletedTags(filteredTags || null)\n }}\n className={classes.buttonLoadMore}\n >\n Xem tất cả ({(row.bombotTags || []).length -1})\n tags\n \n )}\n \n )\n })()} */}\n {renderTagsCell(row?.bombotTags, \"bombotTag\", row)}\n \n\n \n {row.lastSyncTime ? (\n
\n {moment(row.lastSyncTime).format(\"DD/MM/YYYY HH:mm\")}\n
\n ) : (\n \n {\"_\"}\n

\n )}\n \n \n \n handleDetail(row)}\n >\n \n \n handleEdit(row)}\n >\n \n \n \n \n \n );\n })}\n
\n
\n \n {rows.length == 0 && (\n

{t(\"update.no_data\")}

\n )}\n {isPagination && rows.length > 0 && (\n \n \n \n \n )}\n {/* {rows.length > 0 && (\n }\n label=\"Thay đổi khoảng cách hiển thị gần\"\n />\n )} */}\n\n
\n \n \n {t(\"common.btn.import_customer\")}\n \n }\n backgroundColor=\"#0c0b0b\"\n color=\"white\"\n handleClickButton={() => handleSubmitImport()}\n disabled={_.isEmpty(fanpageSelected) ? true : false}\n />\n \n \n {t(\"common.btn.export_customer\")}\n \n }\n backgroundColor=\"#FF8000\"\n color=\"white\"\n handleClickButton={() => handleSubmitExport()}\n disabled={_.isEmpty(fanpageSelected) ? true : false}\n />\n {/* handleOpenExtention()}\n disabled={_.isEmpty(fanpageSelected) ? true : false}\n /> */}\n \n \n \n {t(\"customer_management.create_campaign.title\")}\n \n \n }\n backgroundColor=\"#05AE34\"\n color=\"white\"\n handleClickButton={() => handleSubmitCreate()}\n disabled={_.isEmpty(fanpageSelected) ? true : false}\n />\n {typeModalTag && (\n \n )}\n \n {/* */}\n {isOpenModalManageTag && (\n setIsOpenModalManageTag(false)}\n getData={() => {\n return getData({\n page: page,\n size: rowsPerPage,\n search: `pageId==${fanpageSelected.id};${\n search && `uid|name==` + search\n }`,\n sort: \"lastInboxTime,desc\"\n });\n }}\n getFanpage={getFanpage}\n fanpageSelected={fanpageSelected}\n />\n )}\n
\n
\n\n {!_.isNull(selectedTags) && (\n setSeletedTags(null)}\n isOpen={!_.isNull(selectedTags)}\n selectedTags={selectedTags?.tagList || []}\n customer={selectedTags?.customer || null}\n type={selectedTags?.type}\n tagsObj={tagsObj}\n handleRemoveTags={handleRemoveTags}\n />\n )}\n \n );\n}\n\nEnhancedTable.propTypes = {\n data: PropTypes.array,\n search: PropTypes.string,\n isSearch: PropTypes.bool,\n isPagination: PropTypes.bool,\n getData: PropTypes.func,\n handleGetData: PropTypes.func,\n}\n\nEnhancedTable.defaultProps = {\n isPagination: true,\n isSearch: true,\n handleGetData: (f) => f,\n getData: (f) => f,\n data: [],\n search: null,\n}\n","import React from \"react\";\nimport { Button, CircularProgress } from \"@material-ui/core\";\nimport styles from \"./styles.module.scss\";\nimport cn from \"classnames\";\nimport Flex from \"components/Flex\";\n\nconst BaseSelectFile = ({\n loading,\n onChange,\n className,\n classCssLoading,\n fileNameSelected = \"\",\n ...rest\n}) => {\n if (loading)\n return (\n \n \n \n );\n return (\n \n \n

\n {fileNameSelected}\n

\n
\n );\n};\n\nexport default BaseSelectFile;\n","import React from \"react\";\nimport FormDialog from \"../../../components/FormDialog\";\n\nimport CheckCircleOutlineRoundedIcon from \"@material-ui/icons/CheckCircleOutlineRounded\";\nimport { Button, DialogActions, DialogContent } from \"@material-ui/core\";\nimport { useDispatch } from \"react-redux\";\nimport { clearImportResult } from \"../CustomerReducer\";\nimport Flex from \"components/Flex\";\n\nconst ModalResultImport = ({ data }) => {\n const dispatch = useDispatch();\n\n const handleClosePoup = () => {\n dispatch(clearImportResult());\n };\n return (\n handleClosePoup()}>\n \n \n \n

Đã import khách hàng!

\n
\n
\n

Thành công: {data?.updateSuccessful || 0}

\n

Thất bại: {data?.updateFailed || 0}

\n
\n
\n \n \n OK\n \n \n
\n );\n};\n\nexport default ModalResultImport;\n","import { useState } from 'react'\n\nconst VirtualScroll = ({\n rowHeight,\n totalItems,\n items,\n visibleItemsLength,\n containerHeight,\n}) => {\n // Calculate the total height of the container\n const totalHeight = rowHeight * totalItems\n // Current scroll position of the container\n const [scrollTop, setScrollTop] = useState(0)\n // Get the first element to be displayed\n const startNodeElem = Math.ceil(scrollTop / rowHeight)\n // Get the items to be displayed\n const visibleItems = items?.slice(\n startNodeElem,\n startNodeElem + visibleItemsLength\n )\n // Add padding to the empty space\n const offsetY = startNodeElem * rowHeight\n\n const handleScroll = (e) => {\n // set scrollTop to the current scroll position of the container.\n setScrollTop(e?.currentTarget?.scrollTop)\n }\n\n return (\n \n
\n \n {visibleItems}\n
\n \n \n )\n}\n\nexport default VirtualScroll\n","import React, { useEffect, useMemo, useRef, useState } from 'react'\nimport _ from 'lodash'\nimport { useHistory } from 'react-router-dom'\nimport clsx from 'clsx'\nimport { makeStyles } from '@material-ui/core/styles'\nimport MainLayout from '../MainLayout'\nimport FormControl from '@material-ui/core/FormControl'\nimport GetAppIcon from '@material-ui/icons/GetApp'\nimport ListCustomerComponent from '../../components/ListCustomer'\nimport FormDialog from '../../components/FormDialog'\nimport ButtonComponent from '../../components/Button'\nimport Grid from '@material-ui/core/Grid'\nimport TextField from '@material-ui/core/TextField'\nimport RadioGroup from '@material-ui/core/RadioGroup'\nimport Radio from '@material-ui/core/Radio'\nimport FormLabel from '@material-ui/core/FormLabel'\nimport { Button, Chip } from '@material-ui/core'\nimport SearchIcon from '@material-ui/icons/Search'\nimport FormControlLabel from '@material-ui/core/FormControlLabel'\nimport FormGroup from '@material-ui/core/FormGroup'\nimport Checkbox from '@material-ui/core/Checkbox'\nimport types from '../../constants/types'\nimport moment from 'moment'\nimport IMAGES from '../../images'\nimport Autocomplete from '@material-ui/lab/Autocomplete'\nimport DeleteIcon from '@material-ui/icons/Delete'\nimport Loading from '../../components/Loading'\nimport { getFanpageDetail } from 'views/Fanpage/FanpageActions'\nimport { useDispatch, useSelector } from 'react-redux'\nimport Flex from 'components/Flex'\nimport BaseSelectFile from 'components/BaseSelectFile'\nimport cn from 'classnames'\nimport { selectFilterCus, selectImportResult } from './CustomerSelectors'\nimport Tour from 'reactour'\nimport { selectSearchUidName } from './CustomerSelectors'\nimport { getIsGuideByKey, GUIDE_TYPE_ENUM, setIsGuideByKey } from 'utils/helper'\nimport { selectGuideListByKey } from 'stores/config/config.selector'\nimport ModalResultImport from './item/ModalResultImport'\nimport { useTranslation } from 'react-i18next'\nimport MessengerButton from './../Home/items/MessengerButton'\nimport TagPreviewItem from '../../components/TagPreviewItem'\nimport { colorDir1, getRandomTag } from '../../components/TagPreviewModal'\nimport VirtualScroll from '../../components/VirtualScroll'\n\nconst useStyles = makeStyles((theme) => ({\n wrapSelectFanpage: {\n marginTop: 30,\n // width: 'calc(100% - 15px)',\n width: '100%',\n '& h4': {\n marginBottom: 5,\n color: '#05AE34',\n fontSize: 16,\n },\n },\n wrapSelect: {\n width: '100%',\n marginTop: '12px',\n marginBottom: '12px',\n },\n select: {\n // margin: \"5px 0px !important\",\n },\n wrapSelectLabel: {\n zIndex: 1,\n fontSize: 16,\n paddingLeft: 10,\n marginTop: 7,\n '&.MuiFormLabel-filled': {\n display: 'none !important',\n },\n '&.Mui-focused': {\n display: 'none !important',\n },\n },\n\n root: {\n '&:hover': {\n backgroundColor: 'transparent',\n },\n },\n icon: {\n borderRadius: '50%',\n width: 16,\n height: 16,\n boxShadow:\n 'inset 0 0 0 1px rgba(16,22,26,.2), inset 0 -1px 0 rgba(16,22,26,.1)',\n backgroundColor: '#f5f8fa',\n backgroundImage:\n 'linear-gradient(180deg,hsla(0,0%,100%,.8),hsla(0,0%,100%,0))',\n '$root.Mui-focusVisible &': {\n outline: '2px auto rgba(19,124,189,.6)',\n outlineOffset: 2,\n },\n 'input:hover ~ &': {\n backgroundColor: '#ebf1f5',\n },\n 'input:disabled ~ &': {\n boxShadow: 'none',\n background: 'rgba(206,217,224,.5)',\n },\n },\n checkedIcon: {\n backgroundColor: '#05AE34',\n backgroundImage:\n 'linear-gradient(180deg,hsla(0,0%,100%,.1),hsla(0,0%,100%,0))',\n '&:before': {\n display: 'block',\n width: 16,\n height: 16,\n backgroundImage: 'radial-gradient(#fff,#fff 28%,transparent 32%)',\n content: '\"\"',\n },\n 'input:hover ~ &': {\n backgroundColor: '#106ba3',\n },\n },\n wrapRadioGroup: {\n display: 'inline-block',\n flexWrap: 'inherit',\n flexDirection: 'inherit',\n marginLeft: 15,\n fontSize: '16px',\n marginTop: 10,\n },\n // wrapperPopup: {\n // \"& h4\": {\n // color: \"#05AE34\",\n // paddingLeft: 15,\n // },\n // \"& .MuiInputLabel-filled.MuiInputLabel-shrink\": {\n // top: \"-25px\",\n // color: \"rgba(0, 0, 0, 0.87) !important\",\n // width: \"100%\",\n // fontSize: \"16px\",\n // transform: \"inherit\",\n // },\n // \"& .MuiInputLabel-filled\": {\n // top: \"-25px\",\n // color: \"rgba(0, 0, 0, 0.87) !important\",\n // width: \"100%\",\n // fontSize: \"16px\",\n // transform: \"inherit\",\n // },\n // \"& .MuiFilledInput-input\": {\n // padding: \"10px 12px 10px 2px !important\",\n // },\n // },\n // radioGroup: {\n // flexWrap: \"inherit\",\n // flexDirection: \"inherit\",\n // \"& label\": {\n // float: \"left\",\n // },\n // },\n // textField: {\n // width: \"100%\",\n // padding: \"0px 15px\",\n // margin: \"35px 0px 10px 0px\",\n // \"& .MuiInputLabel-filled\": {\n // marginLeft: 15,\n // },\n // },\n formControlCheckbox: {\n margin: '15px 0px 0px 15px',\n width: 'calc(100% - 30px)',\n '& .MuiFormLabel-root': {\n marginBottom: 5,\n fontSize: 16,\n },\n '& .MuiFormControlLabel-label': {\n fontSize: 16,\n },\n '& .MuiCheckbox-colorSecondary.Mui-checked': {\n color: '#05AE34',\n },\n '& .MuiFormLabel-root': {\n color: 'rgba(0, 0, 0, 0.87)',\n fontSize: 16,\n },\n },\n wrapButton: {\n width: '100%',\n display: 'inline-block',\n },\n button: {\n display: 'inline-block',\n width: 130,\n float: 'right',\n margin: '30px 15px 30px 0px',\n },\n title: {\n color: '#05AE34',\n },\n wrapButtonImport: {\n textAlign: 'right',\n },\n wrapBox: {\n padding: '15px 42px 30px 15px',\n },\n buttonChange: {\n margin: '0px 0px 0px 10px',\n },\n importInput: {\n margin: '15px 0px 30px 0px',\n },\n inboxDate: {\n left: 15,\n top: -5,\n width: 200,\n marginTop: 25,\n // marginwrapperPopupwrapperPopupTop: 25,\n '& label': {\n color: 'rgba(0, 0, 0, 0.87) !important',\n fontSize: '16px',\n transform: 'inherit',\n top: '-10px',\n width: '100%',\n },\n '& .MuiInputBase-formControl': {\n width: 140,\n },\n '& $root': {\n width: 120,\n },\n '& .MuiInputBase-input': {\n width: 120,\n position: 'absolute',\n left: 0,\n top: 0,\n width: '100%',\n height: '100%',\n opacity: 0,\n cursor: 'pointer',\n boxSizing: 'border-box',\n },\n '& .MuiInputBase-input::-webkit-calendar-picker-indicator': {\n position: 'absolute',\n left: 0,\n top: 0,\n width: '100%',\n height: '100%',\n margin: 0,\n padding: 0,\n cursor: 'pointer',\n },\n },\n inboxTime: {\n left: 15,\n top: -5,\n width: 200,\n marginTop: 25,\n // marginwrapperPopupwrapperPopupTop: 25,\n '& label': {\n color: 'rgba(0, 0, 0, 0.87) !important',\n fontSize: '16px',\n transform: 'inherit',\n top: '-10px',\n width: '100%',\n },\n '& .MuiInputBase-formControl': {\n width: 140,\n },\n '& $root': {\n width: 120,\n },\n },\n inboxTimeLast: {\n right: 30,\n position: 'absolute',\n top: -5,\n marginTop: 25,\n // marginwrapperPopupwrapperPopupTop: 25,\n '& label': {\n color: 'rgba(0, 0, 0, 0.87) !important',\n fontSize: '16px',\n transform: 'inherit',\n top: '-10px',\n width: '100%',\n },\n '& .MuiInputBase-formControl': {\n width: 140,\n },\n '& $root': {\n width: 120,\n },\n\n '& .MuiInputBase-input::-webkit-calendar-picker-indicator': {\n position: 'absolute',\n left: 0,\n top: 0,\n width: '100%',\n height: '100%',\n margin: 0,\n padding: 0,\n cursor: 'pointer',\n },\n },\n wrapperLoading: {\n height: 100,\n position: 'relative',\n textAlign: 'center',\n top: -20,\n '& img': {\n height: 100,\n position: 'absolute',\n top: 0,\n left: 'calc(50% - 50px)',\n width: 100,\n },\n '& p': {\n position: 'absolute',\n bottom: -11,\n textAlign: 'center',\n width: '100%',\n },\n },\n noData: {\n marginTop: 15,\n marginBottom: 10,\n color: 'rgba(0, 0, 0, 0.38)',\n },\n addTag: {\n width: '100%',\n marginBottom: 15,\n },\n wrapCheckbox: {\n position: 'relative',\n '&:hover': {\n '& $delete': {\n display: 'inline-block',\n },\n },\n },\n delete: {\n display: 'none',\n position: 'absolute',\n right: '-8%',\n top: '50%',\n transform: 'translateY(-50%)',\n '&:hover': {\n cursor: 'pointer',\n },\n },\n wrapButtonPopup: {\n textAlign: 'right',\n paddingBottom: 30,\n paddingRight: 15,\n },\n tagFormGroup: {\n // height: '200px',\n // overflowY: 'auto',\n // overflowX: 'hidden',\n display: 'initial',\n marginTop: '15px',\n '& .MuiFormControlLabel-root': {\n width: '100%',\n },\n },\n fromToIcon: {\n position: 'absolute',\n top: '45px',\n left: '180px',\n },\n}))\n\nfunction StyledRadio(props) {\n const classes = useStyles()\n\n return (\n }\n icon={}\n {...props}\n />\n )\n}\n\nconst CustomerView = (props) => {\n const classes = useStyles()\n\n const {\n getFanpage,\n getCustomer,\n fanpageFull,\n customer,\n onDetail,\n onEdit,\n detail,\n getListTagFacebook,\n onFanpageSelected,\n fanpageSelected,\n\n getListTagBombot,\n onExport,\n fileUpload,\n loadingImport,\n importSuccess,\n onSubmitAddTag,\n loading,\n onCreate,\n getCustomerAll,\n customerAll,\n customerCheck,\n onCustomerCheck,\n onCustomerCheckReset,\n createCustomerSucss,\n resetCustomer,\n messageImport,\n } = props\n const [data, setData] = useState([])\n const [isPopup, setIsPopup] = useState(false)\n const [detailState, setDetailState] = useState({})\n const [listTagFacebook, setListTagFacebook] = useState([])\n const [listTagBombot, setListTagBombot] = useState([])\n const [tagFbSelectedAll, setTagFbSelectedAll] = useState(false)\n const [tagBbSelectedAll, setTagBbSelectedAll] = useState(false)\n const [isActions, setIsActions] = useState(null)\n const [file, setFile] = useState({})\n const [isImportPopup, setIsImportPopup] = useState(false)\n\n const [uid, setUid] = useState(null)\n const [nameFacebook, setNameFacebook] = useState(null)\n const [lastInboxTime, setLastInboxTime] = useState(null)\n const [lastInboxTimeTo, setLastInboxTimeTo] = useState(null)\n\n // const [tagFacebook, setTagFacebook] = useState([]);\n // const [tagBombot, setTagBombot] = useState([]);\n const [gender, setGender] = useState(null)\n const [pagination, setPagination] = useState(null)\n const [isAddTag, setIsAddTag] = useState(false)\n const [addTag, setAddTag] = useState('')\n const [listBombotTag, setListBombotTag] = useState([])\n const [isConfirmDeleteTag, setIsConfirmDeleteTag] = useState(false)\n const [itemDelete, setItemDelete] = useState({})\n const [isCreateCampaign, setIsCreateCampaign] = useState(false)\n const [paramsFilter, setParamsFilter] = useState(undefined)\n const [messageAddTag, setMessageAddTag] = useState('')\n const [urlSearchParamPageId, setUrlSearchParamPageId] = useState(undefined)\n const [urlSearchParamSearch, setUrlSearchParamSearch] = useState(undefined)\n const [urlSearchParamPage, setUrlSearchParamPage] = useState(\n types.PAGINATION.PAGE\n )\n const [urlSearchParamSize, setUrlSearchParamSize] = useState(\n types.PAGINATION.SIZE\n )\n\n const [lastCustomerInboxTimeTo, setLastCustomerInboxTimeTo] = useState(null)\n const [lastCustomerInboxTime, setLastCustomerInboxTime] = useState(null)\n\n const importResult = useSelector(selectImportResult)\n const searchUidName = useSelector(selectSearchUidName)\n\n const [urlSearchParamSort, setUrlSearchParamSort] = useState('createdAt,desc')\n const [message, setMessage] = useState('')\n const [typeIdentif, setTypeIdentif] = useState('CONVERSATION_ID')\n const dispatch = useDispatch()\n const history = useHistory()\n const [selectedPageId, setSelectedPageId] = useState(\n fanpageSelected.id || null\n )\n\n const tourOverview = useSelector(\n selectGuideListByKey(GUIDE_TYPE_ENUM.customer_manager)\n )\n\n const { t } = useTranslation()\n\n const [tourConfig, setTourConfig] = useState(null)\n\n useEffect(() => {\n if (\n getIsGuideByKey(GUIDE_TYPE_ENUM.customer_manager) &&\n tourOverview?.length\n ) {\n setTourConfig(tourOverview)\n setIsGuideByKey(GUIDE_TYPE_ENUM.customer_manager)\n }\n }, [tourOverview])\n\n useEffect(() => {\n if (!importSuccess) {\n setMessage(messageImport?.message)\n }\n }, [messageImport])\n\n useEffect(() => {\n if (fanpageFull) {\n const searchParam = new URLSearchParams(window.location.search)\n let pageId = searchParam.get('pageId')\n const page = searchParam.get('page')\n const size = searchParam.get('size')\n const sort = searchParam.get('sort')\n const search = searchParam.get('search')\n if (pageId) {\n setUrlSearchParamPageId(pageId)\n }\n if (!pageId && fanpageFull[0]) {\n pageId = fanpageFull[0].id\n setUrlSearchParamPageId(fanpageFull[0].id)\n }\n if (page) {\n setUrlSearchParamPage(page)\n }\n if (size) {\n setUrlSearchParamSize(size)\n }\n if (sort) {\n setUrlSearchParamSort(sort)\n }\n if (search) {\n setUrlSearchParamSearch(search)\n }\n const fanpageCurrent = fanpageFull.find((item) => item.id == pageId)\n\n if (fanpageCurrent) {\n onFanpageSelected(fanpageCurrent)\n getCustomer({\n page: page,\n size: size,\n search: `${\n urlSearchParamSearch\n ? urlSearchParamSearch\n : `pageId==${fanpageCurrent.id ? fanpageCurrent.id : undefined}`\n }`,\n sort: sort,\n })\n getCustomerAll({\n search: `pageId==${\n fanpageCurrent.id ? fanpageCurrent.id : undefined\n }`,\n sort: 'lastInboxTime,desc',\n })\n } else {\n resetCustomer()\n onFanpageSelected({})\n }\n }\n }, [fanpageFull])\n\n const filterCus = useSelector(selectFilterCus)\n\n useEffect(() => {\n if (filterCus?.search_string) {\n let searchQuery = filterCus?.search_string\n\n if (!_.isEmpty(searchUidName)) {\n searchQuery += `;uid|name==` + searchUidName\n }\n\n getCustomer({\n page: 0,\n size: 10,\n search: searchQuery,\n sort: 'lastInboxTime,desc',\n })\n }\n }, [filterCus?.search_string])\n\n useEffect(() => {\n if (isPopup) {\n let listTagBombotTmp = sortListTag(getListTagBombot)\n setListTagBombot(listTagBombotTmp)\n }\n }, [getListTagBombot, isPopup])\n\n useEffect(() => {\n if (isPopup) {\n let listTagFbTmp = sortListTag(getListTagFacebook)\n setListTagFacebook(listTagFbTmp)\n }\n }, [getListTagFacebook, isPopup])\n\n useEffect(() => {\n if (importSuccess) {\n getCustomer({\n page: types.PAGINATION.PAGE,\n size: types.PAGINATION.SIZE,\n search: `pageId==${fanpageSelected.id}`,\n sort: 'lastInboxTime,desc',\n })\n setIsImportPopup(false)\n }\n }, [importSuccess])\n\n useEffect(() => {\n setData(customer)\n }, [customer])\n\n useEffect(() => {\n setDetailState(detail)\n setUid(detail.uid)\n setNameFacebook(detail.name)\n setLastInboxTime(detail.updatedAt)\n setGender(detail.gender)\n }, [detail])\n\n useEffect(() => {\n const params = {\n // page: page,\n // size: rowsPerPage,\n // search: search ? search : undefined,\n }\n getFanpage(params)\n setData([])\n onCustomerCheckReset([])\n }, [])\n\n const handleChangeFanpage = (key, value) => {\n switch (key) {\n case 'fanpage':\n if (value) {\n onFanpageSelected(value)\n getCustomer({\n page: types.PAGINATION.PAGE,\n size: types.PAGINATION.SIZE,\n search: `pageId==${value.id ? value.id : undefined}`,\n sort: 'lastInboxTime,desc',\n })\n getCustomerAll({\n search: `pageId==${value.id ? value.id : undefined}`,\n sort: 'lastInboxTime,desc',\n })\n\n const searchParam = new URLSearchParams(window.location.search)\n searchParam.set('page', types.PAGINATION.PAGE)\n searchParam.set('size', types.PAGINATION.SIZE)\n searchParam.set('pageId', `${value.id ? value.id : undefined}`)\n searchParam.set('sort', 'lastInboxTime,desc')\n searchParam.delete('search')\n searchParam.delete('query')\n const newSearchParam = searchParam.toString()\n history.push({\n pathname: window.location.pathname,\n search: newSearchParam,\n })\n dispatch(getFanpageDetail(value.id))\n }\n break\n default:\n break\n }\n }\n\n const handleCheckedAllTagFacebook = (event) => {\n const items = []\n if (tagFbSelectedAll) {\n ;(listTagFacebook || []).map((item) => {\n items.push({\n ...item,\n checked: false,\n })\n })\n } else {\n ;(listTagFacebook || []).map((item) => {\n items.push({\n ...item,\n checked: true,\n })\n })\n }\n setListTagFacebook(items)\n setTagFbSelectedAll(!tagFbSelectedAll)\n }\n\n const handleCheckedAllTagBombot = () => {\n if (tagBbSelectedAll) {\n const updatedTags = listTagBombot.map((tag) => ({\n ...tag,\n checked: false,\n }))\n setListTagBombot(updatedTags)\n } else {\n const updatedTags = listTagBombot.map((tag) => ({\n ...tag,\n checked: tag.name !== 'Không có tag',\n }))\n setListTagBombot(updatedTags)\n }\n setTagBbSelectedAll(!tagBbSelectedAll)\n }\n\n const handleCheckedTagBombot = (item) => {\n setTagBbSelectedAll(false)\n\n if (item.name === 'Không có tag') {\n const updatedTags = listTagBombot.map((it) => ({\n ...it,\n checked: it.name === 'Không có tag',\n }))\n setListTagBombot(updatedTags)\n } else {\n const updatedTags = listTagBombot.map((it) => {\n if (it.name === 'Không có tag') {\n return { ...it, checked: false }\n }\n if (it.id === item.id) {\n return { ...it, checked: !it.checked }\n }\n return it\n })\n setListTagBombot(updatedTags)\n }\n }\n\n const handleCheckedTagFacebook = (item) => {\n setTagFbSelectedAll(false)\n\n if (item.name === 'Không có tag') {\n const updatedTags = listTagFacebook.map((it) => ({\n ...it,\n checked: it.name === 'Không có tag',\n }))\n setListTagFacebook(updatedTags)\n } else {\n const updatedTags = listTagFacebook.map((it) => {\n if (it.name === 'Không có tag') {\n return { ...it, checked: false }\n }\n if (it.id === item.id) {\n return { ...it, checked: !it.checked }\n }\n return it\n })\n setListTagFacebook(updatedTags)\n }\n }\n\n const handleClosePoup = () => {\n setIsPopup(false)\n setLastInboxTimeTo(null)\n setLastInboxTime(null)\n setLastCustomerInboxTimeTo(null)\n setLastCustomerInboxTime(null)\n }\n\n const handleDetail = (item) => {\n setIsActions(types.ACTIONS.DETAIL)\n onDetail(item)\n setIsPopup(true)\n }\n\n const handleEdit = (item, pagination) => {\n setIsActions(types.ACTIONS.EDIT)\n onDetail(item)\n setIsPopup(true)\n setPagination(pagination)\n // handleSubmitActions(item)\n }\n\n const handleExport = () => {\n console.log('####handleExport customerCheck', customerCheck)\n if (!_.isEmpty(fanpageSelected)) {\n let excludeArr = []\n customerCheck.map((item) => {\n if (item.checked) {\n return excludeArr.push(item.uid)\n }\n })\n onExport({ fanpageSelected: fanpageSelected, exclude: excludeArr })\n }\n }\n\n const handleImport = () => {\n setIsImportPopup(true)\n setMessage('')\n }\n\n const handleFilter = (pagination) => {\n onDetail({})\n setIsActions(types.ACTIONS.FILTER)\n setIsPopup(true)\n setLastInboxTimeTo(null)\n setLastInboxTime(null)\n setLastCustomerInboxTimeTo(null)\n setLastCustomerInboxTime(null)\n setPagination(pagination)\n }\n const handleDownloadExcel = () => {\n const baseUrl = `${process.env.REACT_APP_API_URL}`\n window.open(`${baseUrl}api/v1.0/customer/customer-template.xlsx`, '_blank')\n }\n const handleCloseImport = () => {\n setIsImportPopup(false)\n }\n\n const sortListTag = (listTag) => {\n const noTag = (listTag || []).find((item) => item.name === 'Không có tag')\n const otherTags = (listTag || []).filter(\n (item) => item.name !== 'Không có tag'\n )\n const attachedTags = otherTags.filter((item) => item.checked)\n const unattachedTags = otherTags.filter((item) => !item.checked)\n\n attachedTags.sort((a, b) => a.name.localeCompare(b.name))\n unattachedTags.sort((a, b) => a.name.localeCompare(b.name))\n\n if (noTag) {\n return [noTag, ...attachedTags, ...unattachedTags]\n }\n\n return [...attachedTags, ...unattachedTags]\n }\n\n const handleSubmitOpenExtension = () => {\n let url =\n types.URL.FACEBOOK +\n `&token=${localStorage.getItem('token') || null}` +\n '&tab=scan'\n\n if (selectedPageId) {\n url += `&pageId=${selectedPageId}`\n }\n\n window.open(url, '_blank')\n }\n\n useEffect(() => {\n if (!fanpageSelected.id || selectedPageId) return\n setSelectedPageId(fanpageSelected.id)\n }, [fanpageSelected])\n\n // WORKING CODE ---------------------\n const handleSubmitImportExcel = (event) => {\n const params = {\n file: file,\n fanpage: fanpageSelected,\n type: typeIdentif,\n }\n fileUpload(params)\n }\n // WORKING CODE ---------------------\n\n const handleFile = (event) => {\n setFile(event.target.files[0])\n }\n\n const handleChange = (key, value) => {\n switch (key) {\n case 'uid':\n setUid(value)\n break\n case 'nameFacebook':\n setNameFacebook(value)\n break\n case 'lastInboxTime':\n setLastInboxTime(value)\n break\n case 'lastInboxTimeTo':\n setLastInboxTimeTo(value)\n break\n case 'lastCustomerInboxTime':\n setLastCustomerInboxTime(value)\n break\n case 'lastCustomerInboxTimeTo':\n setLastCustomerInboxTimeTo(value)\n break\n case 'gender':\n setGender(value)\n break\n case 'addTagBombot':\n setAddTag(value)\n break\n case 'identification':\n setTypeIdentif(value)\n break\n default:\n break\n }\n }\n\n const handleSubmitActions = () => {\n let fbTagsArr = []\n let bombotTagsArr = []\n let fbTagsArrAll = []\n let bombotTagsArrAll = []\n let notInTagBombot = false\n let notInTagFacebook = false\n\n listTagBombot.map((it) => {\n if (it.checked) {\n bombotTagsArr.push(it.id)\n }\n if (it.checked && it.id == 'not_in_tag') {\n notInTagBombot = true\n }\n if (it.id != 'not_in_tag' && !it.checked) {\n bombotTagsArrAll.push(it.id)\n }\n })\n\n listTagFacebook.map((it) => {\n if (it.checked) {\n fbTagsArr.push(it.id)\n }\n if (it.checked && it.id == 'not_in_tag') {\n notInTagFacebook = true\n }\n if (it.id != 'not_in_tag' && !it.checked) {\n fbTagsArrAll.push(it.id)\n }\n })\n // console.log('notInTagFacebook', notInTagBombot, bombotTagsArr, bombotTagsArr.length)\n if (isActions == types.ACTIONS.EDIT) {\n const params = {\n id: detail.id,\n uid: uid,\n name: nameFacebook,\n pageId: detail.pageId,\n gender: gender,\n fbTags: fbTagsArr,\n bombotTags: bombotTagsArr,\n facebookTags: fbTagsArr,\n lastInboxTime: detail.lastInboxTime,\n lastCustomerInboxTime: detail.lastCustomerInboxTime,\n }\n const searchParam = new URLSearchParams(window.location.search)\n const getSearch = searchParam.get('search')\n onEdit(params).then((res) => {\n if (res) {\n getCustomer({\n page: urlSearchParamPage,\n size: urlSearchParamSize,\n search: `${\n getSearch ? getSearch : `pageId==${fanpageSelected.id}`\n }`,\n // search: `pageId==${\n // urlSearchParamPageId ? urlSearchParamPageId : fanpageSelected.id\n // }`,\n sort: urlSearchParamSort\n ? urlSearchParamSort\n : 'lastInboxTime,desc',\n })\n }\n })\n // getCustomer(pagination);\n } else if (isActions == types.ACTIONS.FILTER) {\n let paramsSearch = `pageId==${fanpageSelected.id}`\n if (uid != undefined) {\n paramsSearch = `${paramsSearch};uid==` + uid\n }\n if (nameFacebook != undefined) {\n paramsSearch = `${paramsSearch};name==` + nameFacebook\n }\n if (gender != undefined && gender != 'all') {\n paramsSearch = `${paramsSearch};gender==` + _.upperCase(gender)\n }\n if (lastInboxTime) {\n paramsSearch = `${paramsSearch};lastInboxTime=bw=${lastInboxTime},${\n lastInboxTimeTo ? lastInboxTimeTo : lastInboxTime\n }`\n }\n if (lastCustomerInboxTime) {\n paramsSearch = `${paramsSearch};lastCustomerInboxTime=bw=${lastCustomerInboxTime},${\n lastCustomerInboxTimeTo\n ? lastCustomerInboxTimeTo\n : lastCustomerInboxTime\n }`\n }\n if (fbTagsArr.length > 0 && fbTagsArr.length < listTagFacebook.length) {\n paramsSearch = `${paramsSearch};fbTags=${\n notInTagFacebook ? 'notin' : 'in'\n }=${notInTagFacebook ? fbTagsArrAll.toString() : fbTagsArr.toString()}`\n }\n if (\n bombotTagsArr.length > 0 &&\n bombotTagsArr.length < listTagBombot.length\n ) {\n paramsSearch = `${paramsSearch};bombotTags=${\n notInTagBombot ? 'notin' : 'in'\n }=${\n notInTagBombot\n ? bombotTagsArrAll.toString()\n : bombotTagsArr.toString()\n }`\n }\n const params = {\n page: pagination.page,\n size: pagination.size,\n search: paramsSearch,\n sort: 'lastInboxTime,desc',\n }\n // {\"lastInboxTime\":[\"2020-09-30T17:00:00.000Z\",\"2021-05-10T17:00:00.000Z\"],\"gender\":\"all\",\"bombotTags\":[\"152053205\",\"425833478\"],\"fbTags\":[],\"pageId\":\"472971019831648\"}\n // query: JSON.stringify({\n // lastInboxTime: [lastInboxTime, lastInboxTimeTo],\n // gender: gender,\n // pageId: fanpageSelected.id,\n // bombotTags: Object.keys(bombotTagsArr) || [],\n // fbTags: Object.keys(fbTagsArr) || [],\n // }),\n\n const paramsFilter = JSON.stringify({\n lastInboxTime: [lastInboxTime, lastInboxTimeTo],\n lastCustomerInboxTime: [lastCustomerInboxTime, lastCustomerInboxTimeTo],\n gender: gender,\n pageId: fanpageSelected.id,\n bombotTags: bombotTagsArr || [],\n fbTags: fbTagsArr || [],\n })\n const searchParam = new URLSearchParams(window.location.search)\n searchParam.set('search', paramsSearch)\n searchParam.delete('query')\n searchParam.set('query', paramsFilter)\n searchParam.set('page', pagination.page)\n const newSearchParam = searchParam.toString()\n history.push({\n pathname: window.location.pathname,\n search: newSearchParam,\n })\n setParamsFilter(paramsFilter)\n getCustomer(params)\n }\n setIsPopup(false)\n }\n const handleOpenAddTag = () => {\n setMessageAddTag('')\n setAddTag('')\n setIsAddTag(true)\n }\n const handleCloseAddTag = () => {\n setIsAddTag(false)\n }\n const handleDeteleTag = (item) => {\n setItemDelete(item)\n setIsConfirmDeleteTag(true)\n }\n\n const handleSubmitAddTag = () => {\n if (!/\\S/.test(addTag)) {\n setMessageAddTag(t('update.noti.enter_tag'))\n } else {\n setMessageAddTag('')\n const checkAddTag = (obj) => obj.name === addTag\n const checkTagExist = listTagBombot.some(checkAddTag)\n if (checkTagExist) {\n setMessageAddTag(t('update.noti.tag_existed'))\n } else {\n if (addTag) {\n let bombotTags = listTagBombot.length > 0 ? listTagBombot : []\n const filtered = bombotTags.filter(function (el) {\n return el.id != 'not_in_tag'\n })\n let dataBombotTag = [...filtered, { name: addTag }]\n let facebookTags =\n fanpageSelected && fanpageSelected.fbTags\n ? fanpageSelected && fanpageSelected.fbTags\n : []\n const params = {\n id: fanpageSelected.id,\n name: fanpageSelected.name,\n fbTags: facebookTags,\n bombotTags: dataBombotTag,\n }\n onSubmitAddTag(params)\n setAddTag('')\n setIsAddTag(false)\n }\n }\n }\n\n // if (addTag)\n // if(listTagBombot.indexOf(addTag) !== -1){\n // alert(\"Value exists!\")\n // } else{\n // alert(\"Value does not exists!\")\n // }\n // if (!/\\S/.test(addTag)) {\n // setMessageAddTag(\"Vui lòng nhập tên tag\")\n // } else {\n // setMessageAddTag(\"\")\n // if (addTag) {\n // let bombotTags = listTagBombot.length > 0 ? listTagBombot : [];\n // const filtered = bombotTags.filter(function(el) { return el.id != \"not_in_tag\" });\n // let dataBombotTag = [...filtered, { name: addTag }];\n // let facebookTags =\n // fanpageSelected && fanpageSelected.fbTags\n // ? fanpageSelected && fanpageSelected.fbTags\n // : [];\n // const params = {\n // id: fanpageSelected.id,\n // name: fanpageSelected.name,\n // fbTags: facebookTags,\n // bombotTags: dataBombotTag,\n // };\n // onSubmitAddTag(params);\n // setAddTag(\"\");\n // setIsAddTag(false);\n // }\n // }\n }\n const handleCloseConfirmDeleteTag = () => {\n setIsConfirmDeleteTag(false)\n }\n const handleConfirmDeleteTag = () => {\n let bombotTags = listTagBombot.length > 0 ? listTagBombot : []\n const filtered = bombotTags.filter(function (el) {\n return el.id != 'not_in_tag'\n })\n let dataBombotTag = filtered.filter(function (it) {\n return it.id != itemDelete.id\n })\n let facebookTags =\n fanpageSelected && fanpageSelected.fbTags\n ? fanpageSelected && fanpageSelected.fbTags\n : []\n const params = {\n id: fanpageSelected.id,\n name: fanpageSelected.name,\n fbTags: facebookTags,\n bombotTags: dataBombotTag,\n }\n\n onSubmitAddTag(params)\n setAddTag('')\n setIsAddTag(false)\n setIsConfirmDeleteTag(false)\n }\n\n const handleParamsPagination = (params) => {\n setUrlSearchParamPage(params.page - 1)\n setUrlSearchParamSize(params.size)\n setUrlSearchParamPageId(params.pageId)\n }\n\n return (\n \n \n {t('common.btn.close')}\n \n }\n isOpen={tourConfig != null}\n accentColor=\"#05ae34\"\n onRequestClose={() => setTourConfig(null)}\n />\n {/* */}\n {loading && }\n handleCloseAddTag()}>\n
\n

\n {t('customer_management.add_bombot_tag.insert_tag_name')}\n

\n \n handleChange('addTagBombot', event.target.value)\n }\n />\n {messageAddTag && (\n

{messageAddTag}

\n )}\n
\n handleSubmitAddTag()}\n disabled={loadingImport ? true : false}\n />\n
\n
\n
\n handleCloseInviteCodePopup()}\n >\n
\n {/*

\n Xác nhân\n

*/}\n

\n {t('update.delete_tag.desc')}?\n

\n
\n handleCloseConfirmDeleteTag()}\n />\n handleConfirmDeleteTag()}\n />\n
\n
\n \n handleCloseImport()}\n >\n
\n \n

\n {t('customer_management.import_customer.title')}\n

\n \n \n

{t('common.btn.download_template')}

\n
\n }\n backgroundColor=\"#FF8000\"\n color=\"white\"\n handleClickButton={() => handleDownloadExcel()}\n />\n \n

\n {t('customer_management.import_customer.description')}\n

\n
\n \n
\n {/* */}\n\n \n

\n {t('customer_management.import_customer.choose_option')}\n

\n handleChange('identification', data)}\n >\n }\n label=\"Conversation_ID\"\n />\n\n }\n label={t('customer_management.import_customer.uid')}\n />\n\n }\n label={t('customer_management.import_customer.phone')}\n />\n }\n label={t('customer_management.import_customer.name_gender')}\n />\n }\n label={t('customer_management.import_customer.name_phone')}\n />\n }\n label={t(\n 'customer_management.import_customer.name_last_inbox_time'\n )}\n />\n }\n label={t(\n 'customer_management.import_customer.name_last_customer_inbox_time'\n )}\n />\n \n
\n {loadingImport && (\n
\n \n

{t('update.import_customer.loading')}

\n
\n )}\n {!loadingImport && message && (\n \n {message}\n

\n )}\n
\n handleCloseImport()}\n disabled={loadingImport ? true : false}\n />\n handleSubmitImportExcel()}\n disabled={loadingImport ? true : false}\n />\n
\n
\n \n
\n

Fanpage

\n\n \n \n \n {/* thanh chọn fanpage */}\n {\n setSelectedPageId(data?.id || null)\n handleChangeFanpage('fanpage', data)\n }}\n getOptionLabel={(option) => option?.name || ''}\n value={fanpageSelected || null}\n renderInput={(params) => {\n console.log('params ==>', params)\n return (\n {\n console.log(\n 'event.target.value ==>',\n event.target.value\n )\n }\n // handleChangeFanpage('fanpage', event.target.value)\n }\n />\n )\n }}\n />\n\n {/* button quet khach hang */}\n
\n \n \n {t('common.btn.scan_customer')}\n

\n }\n backgroundColor=\"#05AE34\"\n color=\"white\"\n handleClickButton={() => handleSubmitOpenExtension()}\n />\n
\n
\n\n {/* \n Chọn fanpage\n */}\n {/* \n handleChangeFanpage(\"fanpage\", event.target.value)\n }\n >\n {(fanpageFull || []).map((item, idx) => {\n return (\n \n {item.name}\n \n );\n })}\n */}\n \n \n handleGetData(params)}\n getData={(params) => getCustomer(params)}\n getFanpage={getFanpage}\n data={data}\n fanpageSelected={fanpageSelected}\n detail={(item) => handleDetail(item)}\n edit={(item, params) => handleEdit(item, params)}\n handleExport={() => handleExport()}\n handleImport={() => handleImport()}\n handleFilter={(value) => handleFilter(value)}\n onCreate={(paramsFilter, rows, params, data) =>\n onCreate(paramsFilter, rows, params, data)\n }\n // openCreate={() => openCreate()}\n customerAll={customerAll}\n onCustomerCheck={onCustomerCheck}\n customerCheck={customerCheck}\n onCustomerCheckReset={onCustomerCheckReset}\n createCustomerSucss={createCustomerSucss}\n paramsFilter={paramsFilter}\n paramsPagination={(params) => handleParamsPagination(params)}\n />\n handleClosePoup()}>\n
\n

{`${\n isActions == types.ACTIONS.DETAIL\n ? t('update.cus_info.title_detail')\n : isActions == types.ACTIONS.FILTER\n ? t('customer_management.customer_filter.title')\n : t('update.cus_info.title_edit')\n }`}

\n \n \n handleChange('uid', event.target.value)}\n />\n \n handleChange('nameFacebook', event.target.value)\n }\n />\n \n \n \n \n \n \n {/* gioi tinh */}\n \n \n
\n {t('customer_management.list.gender')}\n
\n }\n style={{\n paddingTop: '6px',\n }}\n label={t('update.all')}\n disabled={\n isActions == types.ACTIONS.DETAIL ||\n isActions == types.ACTIONS.EDIT\n ? true\n : false\n }\n onChange={(event) => handleChange('gender', event.target.value)}\n />\n }\n label={t('update.gender.male')}\n disabled={\n isActions == types.ACTIONS.DETAIL ||\n isActions == types.ACTIONS.EDIT\n ? true\n : false\n }\n style={{\n paddingTop: '6px',\n }}\n onChange={(event) => handleChange('gender', event.target.value)}\n />\n }\n label={t('update.gender.female')}\n disabled={\n isActions == types.ACTIONS.DETAIL ||\n isActions == types.ACTIONS.EDIT\n ? true\n : false\n }\n style={{\n paddingTop: '6px',\n }}\n onChange={(event) => handleChange('gender', event.target.value)}\n />\n }\n label={t('update.gender.other')}\n disabled={\n isActions == types.ACTIONS.DETAIL ||\n isActions == types.ACTIONS.EDIT\n ? true\n : false\n }\n style={{\n paddingTop: '6px',\n }}\n onChange={(event) => handleChange('gender', event.target.value)}\n />\n
\n \n \n \n \n \n \n {t('customer_management.list.facebook_tag')}\n \n {/* {listTagFacebook.length > 0 ? (\n \n \n }\n label={\n \n }\n />\n {(listTagFacebook || []).map((item, idx) => {\n return (\n handleCheckedTagFacebook(item)}\n name={item.id}\n style={{ paddingTop: 0, paddingBottom: 0 }}\n disabled={\n isActions == types.ACTIONS.DETAIL ? true : false\n }\n />\n }\n label={\n 50\n ? `${item.name.slice(0, 50)}...`\n : item.name\n }\n />\n }\n />\n );\n })}\n \n ) : (\n {t(\"update.no_data\")}\n )} */}\n\n \n \n }\n label={\n \n }\n />,\n ...listTagFacebook.map((opt, index) => {\n return (\n \n \n handleCheckedTagFacebook(opt)\n }\n name={opt.id}\n style={{\n paddingTop: 0,\n paddingBottom: 0,\n }}\n // disabled={\n // isActions == types.ACTIONS.DETAIL\n // ? opt.checked\n // : false\n // }\n disabled={true}\n />\n \n }\n label={\n \n }\n />\n )\n }),\n ]}\n visibleItemsLength={50}\n containerHeight={'200px'}\n />\n \n\n {/* {listTagFacebook.length > 0 ? (\n \n \n }\n label={\n \n }\n />\n {(listTagFacebook || []).map((item, idx) => {\n const colorCode = getRandomTag(colorDir1)\n\n return (\n \n \n handleCheckedTagFacebook(item)\n }\n name={item.id}\n style={{ paddingTop: 0, paddingBottom: 0 }}\n // disabled={\n // isActions == types.ACTIONS.DETAIL\n // ? item.checked\n // : false\n // }\n disabled={true}\n />\n \n }\n label={\n \n }\n />\n )\n })}\n \n ) : (\n \n {t('update.no_data')}\n \n )} */}\n \n \n \n \n \n {t('customer_management.list.bombot_tag')}\n \n\n \n \n }\n label={\n \n }\n />,\n ...(listTagBombot || []).map((item, idx) => {\n return (\n
\n \n handleCheckedTagBombot(item)\n }\n name={item.id}\n style={{ paddingTop: 0, paddingBottom: 0 }}\n disabled={\n isActions == types.ACTIONS.DETAIL\n ? true\n : false\n }\n />\n }\n label={\n \n }\n />\n {isActions == types.ACTIONS.EDIT && (\n handleDeteleTag(item)}\n >\n \n \n )}\n
\n )\n }),\n ]}\n visibleItemsLength={50}\n containerHeight={'200px'}\n />\n
\n\n {/* {listTagBombot.length > 0 ? (\n \n \n }\n label={\n \n }\n />\n {(listTagBombot || []).map((item, idx) => {\n return (\n
\n handleCheckedTagBombot(item)}\n name={item.id}\n style={{ paddingTop: 0, paddingBottom: 0 }}\n disabled={\n isActions == types.ACTIONS.DETAIL\n ? true\n : false\n }\n />\n }\n label={\n \n }\n />\n {isActions == types.ACTIONS.EDIT && (\n handleDeteleTag(item)}\n >\n \n \n )}\n
\n )\n })}\n
\n ) : (\n \n {t('update.no_data')}\n \n )} */}\n\n {isActions == types.ACTIONS.EDIT && (\n
\n \n (e.target.style.backgroundColor = '#f0f0f0')\n }\n onMouseLeave={(e) =>\n (e.target.style.backgroundColor = 'white')\n }\n onClick={() => handleOpenAddTag()}\n >\n {t('update.action.add_tag')}\n \n
\n )}\n \n
\n
\n
\n \n {/* \n \n {\"Lưu ý: Tính năng đồng bộ tag fanpages chưa được hỗ trợ\"}\n
\n \n {t(\"common.btn.cancel\")}\n \n }\n color=\"white\"\n handleClickButton={() => handleClosePoup()}\n />\n {isActions != types.ACTIONS.DETAIL && (\n \n {t(\"common.btn.save\")}\n \n }\n color=\"white\"\n handleClickButton={() => handleSubmitActions()}\n />\n )}\n */}\n \n
\n \n {t('dashboard.sync_to_fanpage_not_supported')}\n \n
\n\n \n \n {t('common.btn.save')}\n \n }\n color=\"white\"\n backgroundColor=\"#05AE34\"\n className=\"btn--primary--filled mr-2\"\n handleClickButton={() => handleSubmitActions()}\n style={{\n minWidth: 'fit-content',\n }}\n />\n \n {t('common.btn.cancel')}\n \n }\n color=\"white\"\n handleClickButton={() => handleClosePoup()}\n style={{\n minWidth: 'fit-content',\n }}\n />\n \n
\n \n \n \n {importResult && }\n \n \n )\n}\n\nfunction InputComponent({ defaultValue, inputRef, ...props }) {\n const classes = useStyles()\n const [value, setValue] = React.useState(null)\n const handleChange = (event) => {\n setValue(event.target.value)\n if (props.onChange) {\n props.onChange(event)\n }\n }\n return (\n
\n \n {value != null && moment(value).format('DD/MM/YYYY')}\n
\n \n \n )\n}\n\nCustomerView.propTypes = {}\n\nCustomerView.defaultProps = {}\n\nexport default CustomerView\n","import CustomerPage from \"./CustomerContainer\";\n\nexport default CustomerPage;\n","import { connect } from \"react-redux\";\nimport { withRouter } from 'react-router-dom';\nimport CustomerView from \"./CustomerView\";\nimport * as actionsFanpage from \"../Fanpage/FanpageActions\";\nimport * as actionsCustomer from \"./CustomerActions\";\nimport * as selectorsFanpage from \"../Fanpage/FanpageSelectors\";\nimport * as selectorsCustomer from \"./CustomerSelectors\";\nimport * as selectorsApp from \"../App/AppSelectors\";\nconst mapStateToProps = state => {\n return {\n fanpageFull: selectorsFanpage.fanpageFull(state),\n customer: selectorsCustomer.getCustomer(state),\n edit: selectorsCustomer.edit(state),\n detail: selectorsCustomer.getDetail(state),\n getListTagFacebook: selectorsCustomer.getListTagFacebook(state),\n getListTagBombot: selectorsCustomer.getListTagBombot(state),\n fanpageSelected: selectorsCustomer.fanpageSelected(state),\n tagFacebookSelectedAll: selectorsCustomer.tagFacebookSelectedAll(state),\n customerAll: selectorsCustomer.getCustomerAll(state),\n customerCheck: selectorsCustomer.customerCheck(state),\n loadingImport: selectorsCustomer.loadingImport(state),\n importSuccess: selectorsCustomer.importSuccess(state),\n createCustomerSucss: selectorsCustomer.createCustomerSucss(state),\n messageImport: selectorsCustomer.messageImport(state),\n loading: selectorsApp.loading(state),\n \n \n };\n};\n\nconst mapDispatchToProps = dispatch => ({\n getFanpage: (params) => dispatch(actionsFanpage.getFanpageFull(params)),\n getCustomer: (params) => dispatch(actionsCustomer.getCustomer(params)),\n resetCustomer: () => dispatch(actionsCustomer.resetCustomer()),\n getCustomerAll: (params) => dispatch(actionsCustomer.getCustomerAll(params)),\n onDetail: (params) => dispatch(actionsCustomer.detail(params)),\n onEdit: (params) => dispatch(actionsCustomer.edit(params)),\n onFanpageSelected: (params) => dispatch(actionsCustomer.fanpageSelected(params)),\n onTagFacebookSelectedAll: (params) => dispatch(actionsCustomer.tagFacebookSelectedAll(params)),\n onSelectTagFacebook: (params) => dispatch(actionsCustomer.selectTagFacebook(params)),\n onExport: (params) => dispatch(actionsCustomer.onExport(params)),\n fileUpload: (params) => dispatch(actionsCustomer.fileUpload(params)),\n downloadExcel: (params) => dispatch(actionsCustomer.downloadExcel(params)),\n onSubmitAddTag: (params) => dispatch(actionsCustomer.onSubmitAddTag(params)),\n onCreate: (paramsFilter, rows, params, data) => dispatch(actionsCustomer.onCreate(paramsFilter, rows, params, data)),\n onCustomerCheck: (params) => dispatch(actionsCustomer.onCustomerCheck(params)),\n onCustomerCheckReset: (params) => dispatch(actionsCustomer.onCustomerCheckReset(params)),\n});\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(CustomerView));\n","import { createSelector } from '@reduxjs/toolkit'\nimport _ from 'lodash'\nexport const customer = (state) => state.customerReducer.customer\nexport const edit = (state) => state.customerReducer.edit\nexport const detail = (state) => state.customerReducer.detail\nexport const fanpageSelected = (state) => state.customerReducer.fanpageSelected\nexport const tagFacebookSelectedAll = (state) =>\n state.customerReducer.tagFacebookSelectedAll\nexport const fanpageFull = (state) => state.fanpageReducer.fanpageFull\nexport const loadingImport = (state) => state.customerReducer.loadingImport\nexport const importSuccess = (state) => state.customerReducer.importSuccess\nexport const fanPageDetail = (state) => state.customerReducer.fanPageDetail\nexport const customerAll = (state) => state.customerReducer.customerAll\nexport const customerCheck = (state) => state.customerReducer.customerCheck\nexport const selectImportResult = (state) => state.customerReducer.importResult\nexport const createCustomerSucss = (state) =>\n state.customerReducer.createCustomerSucss\nexport const messageImport = (state) => state.customerReducer.messageImport\n\nexport const getCustomerAll = createSelector([customerAll], (customerAll) => {\n const items = []\n if (customerAll && customerAll.length > 0) {\n customerAll.map((item) => {\n items.push({\n ...item,\n checked: true,\n })\n })\n }\n return items\n})\n\nexport const getCustomer = createSelector(\n [customer, customerCheck],\n (customer, customerCheck) => {\n const items = []\n if (customer && customer.content && customer.content.length > 0) {\n ;(customer.content || []).map((item) => {\n let obj = _.find(customerCheck, function (obj) {\n return obj.id == item.id\n })\n if (obj) {\n items.push({\n ...item,\n checked: false,\n })\n } else {\n items.push({\n ...item,\n checked: true,\n })\n }\n })\n }\n return { ...customer, content: items }\n }\n)\n\nexport const getListTagFacebook = createSelector(\n [fanpageSelected, detail],\n (fanpageSelectedData, detail) => {\n const items = []\n if (\n fanpageSelectedData &&\n fanpageSelectedData.fbTags &&\n fanpageSelectedData.fbTags.length > 0\n ) {\n let data\n data = [\n {\n id: 'not_in_tag',\n name: 'Không có tag',\n color: '999',\n },\n ...fanpageSelectedData.fbTags,\n ]\n ;(data || []).map((item) => {\n let obj = _.find(detail.fbTags, function (obj) {\n return obj == item.id\n })\n if (obj) {\n items.push({\n ...item,\n checked: true,\n })\n } else {\n items.push({\n ...item,\n checked: false,\n })\n }\n })\n }\n\n return items\n }\n)\n\nexport const getListTagBombot = createSelector(\n [fanpageSelected, detail, fanPageDetail],\n (fanpageSelectedData, detail, fanPageDetail) => {\n const items = []\n if (\n fanpageSelectedData &&\n fanpageSelectedData.bombotTags &&\n fanpageSelectedData.bombotTags.length > 0\n ) {\n let data\n if (\n fanPageDetail &&\n fanPageDetail.bombotTags &&\n fanPageDetail.bombotTags.length > 0\n ) {\n data = [\n {\n id: 'not_in_tag',\n name: 'Không có tag',\n color: '999',\n },\n ...fanPageDetail.bombotTags,\n ]\n } else {\n data = [\n {\n id: 'not_in_tag',\n name: 'Không có tag',\n color: '999',\n },\n ...fanpageSelectedData.bombotTags,\n ]\n }\n ;(data || []).map((item) => {\n let obj = _.find(detail.bombotTags, function (obj) {\n return obj == item.id\n })\n if (obj) {\n items.push({\n ...item,\n checked: true,\n })\n } else {\n items.push({\n ...item,\n checked: false,\n })\n }\n })\n }\n return items\n }\n)\n\nexport const getDetail = createSelector([detail], (data) => {\n let fbTags = []\n let bombotTags = []\n if (data && data.fbTags && data.fbTags.length > 0) {\n ;(data.fbTags || []).map((item) => {\n fbTags.push({\n item,\n checked: true,\n })\n })\n }\n if (data && data.bombotTags && data.bombotTags.length > 0) {\n ;(data.bombotTags || []).map((item) => {\n bombotTags.push({\n item,\n checked: true,\n })\n })\n }\n\n return { ...data, fbTags: fbTags, bombotTags: bombotTags }\n})\n\n//////// tuan anh code\n\nconst selectCustomer = (state) => state.customerReducer\n\nexport const selectFilterCus = createSelector(\n selectCustomer,\n (state) => state.filter\n)\n\nexport const selectSearchUidName = createSelector(\n selectCustomer,\n (state) => state.searchUidName\n)\n\nexport const selectFanpageSelected = createSelector(\n selectCustomer,\n (state) => state.fanpageSelected\n)\n\nexport const selectBombotTags = createSelector(\n selectCustomer,\n (state) => state.fanpageSelected?.bombotTags || []\n)\n\nexport const selectAddTagLoading = createSelector(\n selectCustomer,\n (state) => state.loading_add_tag\n)\nexport const selectIsShowModal = createSelector(\n selectCustomer,\n (state) => state.is_show_modal_add\n)\n\nexport const selectTagSelected = createSelector(\n selectCustomer,\n (state) => state.tagsSelected\n)\n\nexport const selectTagsPageSelected = createSelector(\n fanpageSelected,\n (state) => {\n const fbTags = state?.fbTags\n const bombotTags = state?.bombotTags\n\n const fbTagsObj = {}\n const bombotTagsObj = {}\n\n if (fbTags) {\n fbTags.forEach((tag) => (fbTagsObj[tag.id] = tag))\n }\n if (bombotTags) {\n bombotTags.forEach((tag) => (bombotTagsObj[tag.id] = tag))\n }\n\n return { fbTags: fbTagsObj, bombotTags: bombotTagsObj }\n }\n)\n","import { createSlice } from '@reduxjs/toolkit'\nimport initialState from '../../configs/redux/initialState'\nimport _ from 'lodash'\nconst customerReducer = createSlice({\n name: \"customer\",\n initialState: {\n ...initialState.customerReducer,\n filter: {\n search_obj: {},\n search_string: \"\",\n search_arr: []\n },\n loading_add_tag: false,\n is_show_modal_add: false,\n tagsSelected: [],\n importResult: null,\n\n searchUidName: \"\"\n },\n reducers: {\n setCustomer: (state, action) => {\n state.customer = action.payload;\n },\n // setEdit: (state, action) => {\n // state.edit = action.payload;\n // },\n setDetail: (state, action) => {\n state.detail = action.payload;\n },\n setFanpageSelected: (state, action) => {\n state.fanpageSelected = action.payload;\n },\n setTagFacebookSelectedAll: (state, action) => {\n state.tagFacebookSelectedAll = action.payload;\n },\n setSelectTagFacebook: (state, action) => {\n state.selectTagFacebook = action.payload;\n },\n setLoadingImport: (state, action) => {\n state.loadingImport = action.payload;\n },\n setImportSuccess: (state, action) => {\n state.importSuccess = action.payload;\n },\n setFanPageDetail: (state, action) => {\n state.fanPageDetail = action.payload;\n },\n setCustomerAll: (state, action) => {\n state.customerAll = action.payload;\n },\n setCustomerCheck: (state, action) => {\n if (!action.payload.checked) {\n _.remove(state.customerCheck, function (n) {\n return n.id == action.payload.id;\n });\n state.customerCheck = _.concat(...state.customerCheck);\n } else {\n state.customerCheck = _.concat(...state.customerCheck, action.payload);\n }\n },\n setRestCustomerCheck: (state, action) => {\n state.customerCheck = action.payload;\n },\n setCreateCustomerSucss: (state, action) => {\n state.createCustomerSucss = action.payload;\n },\n setMessageImport: (state, action) => {\n state.messageImport = action.payload;\n },\n setFilter: (state, action) => {\n state.filter = {\n ...state.filter,\n search_arr: JSON.parse(JSON.stringify(action.payload.search_arr)), // Deep copy\n search_string: action.payload.search_string\n };\n },\n setSearchUidName: (state, action) => {\n state.searchUidName = action.payload;\n },\n setSearchTagName: (state, action) => {\n state.searchTagName = action.payload;\n },\n startAddTags: (state, action) => {\n state.error = null;\n state.loading_add_tag = true;\n },\n addTagsSuccess: (state, action) => {\n state.loading_add_tag = false;\n state.fanpageSelected = {\n ...state.fanpageSelected,\n ...action.payload\n };\n state.is_show_modal_add = false;\n },\n addTagsFailed: (state, action) => {\n state.loading_add_tag = false;\n state.error = action.payload;\n },\n toggleModalAdd: (state) => {\n state.is_show_modal_add = !state.is_show_modal_add;\n },\n importResult: (state, action) => {\n state.importResult = action.payload;\n },\n clearImportResult: (state) => {\n state.importResult = null;\n },\n setTagSelected: (state, action) => {\n state.tagsSelected = action.payload;\n }\n }\n});\n\nexport const {\n setCustomer,\n setDetail,\n setEdit,\n setFanpageSelected,\n setTagFacebookSelectedAll,\n setSelectTagFacebook,\n setLoadingImport,\n setImportSuccess,\n setFanPageDetail,\n setCustomerAll,\n setCustomerCheck,\n setRestCustomerCheck,\n setCreateCustomerSucss,\n setMessageImport,\n setFilter,\n setSearchUidName,\n startAddTags,\n addTagsSuccess,\n addTagsFailed,\n toggleModalAdd,\n setTagSelected,\n importResult,\n clearImportResult,\n} = customerReducer.actions\n\nexport default customerReducer.reducer\n","import React from 'react';\n\nconst CoppyIcon = ({ height, width }) => {\n return (\n \n \n \n \n \n );\n};\n\nexport default CoppyIcon;\n","import React from 'react'\nimport { useTranslation } from 'react-i18next'\n\n// Hàm tính khoảng thời gian còn lại\nconst calculateTimeRemaining = (sendTime) => {\n const now = new Date()\n const targetTime = new Date(sendTime)\n const diff = targetTime - now\n\n if (diff <= 0) return null // Không cần tính khi đã trễ\n\n const hours = Math.floor(diff / (1000 * 60 * 60))\n const minutes = Math.floor((diff % (1000 * 60 * 60)) / (1000 * 60))\n\n if (hours > 0) {\n return `${hours} hour(s) ${minutes} minute(s)`\n } else {\n return `${minutes} minute(s)`\n }\n}\n\n// Hàm xác định trạng thái thời gian\nconst determineTimeStatus = (sendTime) => {\n if (!sendTime) return 'unscheduled' // Không có thời gian gửi\n const now = new Date()\n const targetTime = new Date(sendTime)\n\n if (targetTime < now) {\n return 'overdue' // Trễ lịch\n } else if ((targetTime - now) / (1000 * 60) <= 30) {\n return 'upcoming' // Sắp tới\n } else {\n return 'scheduled' // Lịch gửi\n }\n}\n\n// Hàm xác định màu sắc dựa trên trạng thái\nconst getStatusColors = (status) => {\n switch (status) {\n case 'overdue':\n return { backgroundColor: '#ffcccc', textColor: '#ff0000' } // Đỏ nhạt\n case 'upcoming':\n return { backgroundColor: '#fff4cc', textColor: '#ffa500' } // Cam nhạt\n case 'scheduled':\n return { backgroundColor: '#ccffcc', textColor: '#008000' } // Xanh lá nhạt\n case 'unscheduled':\n return { backgroundColor: '#e0e0e0', textColor: '#808080' } // Xám\n default:\n return { backgroundColor: '#ffffff', textColor: '#000000' } // Trắng\n }\n}\n\n// Component chính\nconst TimeLabel = ({ sendTime, style }) => {\n const { t } = useTranslation();\n const status = determineTimeStatus(sendTime)\n const colors = getStatusColors(status)\n const timeRemaining = sendTime ? calculateTimeRemaining(sendTime) : null\n\n // Format thời gian gửi\n const formattedSendTime = sendTime\n ? new Date(sendTime).toLocaleString()\n : null\n\n // Nội dung hiển thị\n let displayText\n if (status === 'unscheduled') {\n displayText = `${t(\"campaign_management.scenario.no_scheduled_time\")}`;\n } else if (status === 'overdue') {\n displayText = `${t(\"campaign_management.scenario.overdue\")}`;\n } else if (status === 'upcoming') {\n displayText = `${t(\n \"campaign_management.scenario.upcoming\"\n )}: ${timeRemaining}`;\n } else {\n displayText = `${t(\n \"campaign_management.scenario.scheduled_at\"\n )}: ${formattedSendTime}`;\n }\n\n return (\n \n {displayText}\n \n )\n}\n\nexport default TimeLabel\n","import { useCallback, useEffect, useRef, useState } from \"react\";\nimport scenarioApi from \"../../../api/scenarioApi\";\n\nimport {\n IconButton,\n InputAdornment,\n makeStyles,\n Paper,\n styled,\n Table,\n TableBody,\n TableCell,\n TableContainer,\n TableHead,\n TablePagination,\n TableRow,\n TextField,\n Tooltip\n} from \"@material-ui/core\";\nimport Button from \"@material-ui/core/Button\";\nimport ClearIcon from \"@material-ui/icons/Clear\";\n\nimport { Pagination } from \"@material-ui/lab\";\nimport CampaignStatusLabel, { campaignStatusDir } from \"./CampaignStatusLabel\";\nimport CoppyIcon from \"./CoppyIcon\";\n\nimport { CheckOutlined, SortRounded } from \"@material-ui/icons\";\nimport cn from \"classnames\";\nimport { ChevronDown, FilterIcon, SearchIcon } from \"lucide-react\";\nimport moment from \"moment\";\nimport { useTranslation } from \"react-i18next\";\nimport ButtonComponent from \"../../../components/Button\";\nimport Flex from \"../../../components/Flex\";\nimport LoadingWrapper from \"../../../components/LoadingWrapper\";\nimport types from \"../../../constants/types\";\nimport TimeLabel from \"./TimeLabel\";\n\nconst defaultSizeGetScenario = types.PAGINATION.SIZE;\n\nconst useStyles = makeStyles((theme) => ({\n witdhOrd: {\n minWidth: \"140px\",\n padding: \"0 8px !important\"\n },\n\n witdhId: {\n minWidth: \"170px\",\n padding: \"0 8px !important\"\n },\n\n widthName: {\n minWidth: \"160px\",\n padding: \"0 8px !important\"\n },\n\n widthCreator: {\n minWidth: \"160px\",\n padding: \"0 8px !important\"\n },\n\n widthDate: {\n minWidth: \"160px\",\n padding: \"0 8px !important\"\n },\n\n widthStatisticBtn: {\n minWidth: \"170px\",\n padding: \"0 8px !important\"\n },\n\n widthStatistic: {\n minWidth: \"180px\",\n padding: \"0 8px !important\"\n },\n\n widthActions: {\n minWidth: \"120px\",\n padding: \"0 8px !important\"\n },\n\n widthStatus: {\n minWidth: \"130px\",\n padding: \"0 8px !important\"\n },\n\n p0: {\n padding: \"0\",\n margin: \"0\"\n },\n\n heightHeader: {\n height: \"52px\"\n },\n\n f600: {\n fontWeight: 600\n },\n\n actions: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"flex-end\",\n width: \"100%\",\n padding: \"10px 26px 16px 0\"\n },\n\n actionBtnRemove: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n color: \"#ff4d4f\", // Red color for delete button\n fontWeight: 600,\n padding: \"6px 12px\",\n borderRadius: theme.shape.borderRadius,\n transition: \"all 0.3s ease\", // Transition for smooth effect\n \"&:hover\": {\n backgroundColor: \"rgba(255, 77, 79, 0.1)\" // Light red background on hover\n }\n },\n\n actionBtnDetail: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n color: \"rgb(0, 123, 255)\", // Red color for delete button\n fontWeight: 600,\n padding: \"6px 10px\",\n borderRadius: theme.shape.borderRadius,\n transition: \"all 0.3s ease\", // Transition for smooth effect\n \"&:hover\": {\n backgroundColor: \"rgba(33, 150, 243, 0.2)\" // Light red background on hover\n }\n },\n\n actionSend: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n color: \"#52c41a\", // Màu xanh lá cho nút gửi tin nhắn\n fontWeight: 600,\n padding: \"8px 12px\",\n borderRadius: theme.shape.borderRadius,\n transition: \"all 0.3s ease\", // Hiệu ứng chuyển mượt\n \"&:hover\": {\n backgroundColor: \"rgba(82, 196, 26, 0.1)\" // Nền xanh lá nhạt khi hover\n }\n },\n\n actionAdd: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n color: \"#636ae8\", // Màu xanh lá cho nút gửi tin nhắn\n fontWeight: 600,\n padding: theme.spacing(1, 2),\n borderRadius: theme.shape.borderRadius,\n transition: \"all 0.3s ease\", // Hiệu ứng chuyển mượt\n \"&:hover\": {\n backgroundColor: \"rgba(99, 106, 232, 0.1)\" // Nền xanh lá nhạt khi hover\n\n // backgroundColor: 'rgba(82, 196, 26, 0.1)', // Nền xanh lá nhạt khi hover\n }\n },\n\n actionBtnSearch: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n color: \"#007bff\", // Blue color similar to \"Bombot Tags\" text\n fontWeight: 600,\n padding: theme.spacing(1, 2),\n borderRadius: theme.shape.borderRadius,\n transition: \"all 0.3s ease\", // Transition for smooth effect\n backgroundColor: \"rgb(230, 243, 255, 0.5)\",\n \"&:hover\": {\n backgroundColor: \"rgb(230, 243, 255, 0.8)\" // Light blue background color\n },\n border: \"1px solid #a3c1dd\"\n },\n\n actionIcon: {\n fontSize: \"14px\"\n },\n actionTitle: {\n margin: 0,\n fontSize: \"10px !important\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\"\n },\n\n rowItem: {\n cursor: \"pointer\"\n },\n clickableRow: {\n cursor: \"pointer\",\n \"&:hover\": {\n backgroundColor: \"rgba(0, 0, 0, 0.04)\"\n }\n }\n}));\n\nconst ScenarioList = ({ campaignId, isShowFilter, isPagination, isSearch }) => {\n const sortModalRef = useRef(null);\n const filterModalRef = useRef(null);\n const filterPopupRef = useRef(null);\n\n function useOutsideAlerter(ref, ...handleFuncs) {\n useEffect(() => {\n function handleClickOutside(event) {\n if (ref.current && !ref.current.contains(event.target)) {\n handleFuncs.forEach((func) => func());\n }\n }\n document.addEventListener(\"mousedown\", handleClickOutside);\n return () => {\n document.removeEventListener(\"mousedown\", handleClickOutside);\n };\n }, [ref, handleFuncs]);\n }\n\n useOutsideAlerter(\n filterModalRef,\n () => setOpenFilterModal(false),\n () => setIsOpen(false)\n );\n useOutsideAlerter(sortModalRef, () => setOpenSortModal(false));\n useOutsideAlerter(filterPopupRef, () => setIsOpen(false));\n\n const classes = useStyles();\n const { t } = useTranslation();\n\n const [scenarioList, setScenarioList] = useState(null);\n const [isCopiedId, setIsCopiedId] = useState(false);\n const [page, setPage] = useState(0);\n const [campaignSelected, setCampaignSelected] = useState(campaignId);\n\n const [sortNameOrder, setSortNameOrder] = useState(\"\");\n const [tempSortNameOrder, setTempSortNameOrder] = useState(\"\");\n\n const [sortDateRangeOrder, setSortDateRangeOrder] =\n useState(\"createdAt,desc\");\n const [tempSortDateRangeOrder, setTempSortDateRangeOrder] =\n useState(\"createdAt,desc\");\n\n const [isOpen, setIsOpen] = useState(false);\n\n const [startDate, setStartDate] = useState(\"\");\n const [endDate, setEndDate] = useState(\"\");\n const [tempStartDate, setTempStartDate] = useState(\"\");\n const [tempEndDate, setTempEndDate] = useState(\"\");\n\n const [search, setSearch] = useState(\"\");\n const [searchQuery, setSearchQuery] = useState(\"\");\n\n const [rowsPerPage, setRowsPerPage] = useState(types.PAGINATION.SIZE);\n const [isLoadingList, setIsLoadingList] = useState(false);\n\n const [openSortModal, setOpenSortModal] = useState(false);\n const [openFilterModal, setOpenFilterModal] = useState(false);\n\n const dataStatus = [\n {\n id: 0,\n name: \"pending\",\n value: t(\"campaign_management.scenario.status.pending\")\n },\n {\n id: 1,\n name: \"running\",\n value: t(\"campaign_management.scenario.status.running\")\n },\n {\n id: 2,\n name: \"done\",\n value: t(\"campaign_management.scenario.status.done\")\n },\n {\n id: 3,\n name: \"cancel\",\n value: t(\"campaign_management.scenario.status.cancel\")\n }\n ];\n\n const [selectedStatus, setSelectedStatus] = useState(\n dataStatus.map((s) => s.name)\n );\n const [tempSelectedStatus, setTempSelectedStatus] = useState(\n dataStatus.map((s) => s.name)\n );\n\n // useEffect(() => {\n // (async () => {\n // const params = createParams(\n // selectedStatus,\n // startDate,\n // endDate,\n // sortNameOrder,\n // sortDateRangeOrder,\n // search\n // );\n // const res = await getScenario(params);\n // })();\n // }, [page]);\n\n useEffect(() => {\n handleSubmitApply(search);\n }, []);\n\n const handleSortName = (order) => {\n setSortNameOrder(order);\n };\n\n const handleSortDateRange = (order) => {\n setSortDateRangeOrder(order);\n };\n\n useEffect(() => {\n if (openSortModal) {\n setSortNameOrder(tempSortNameOrder);\n setSortDateRangeOrder(tempSortDateRangeOrder);\n }\n }, [openSortModal]);\n\n useEffect(() => {\n if (openFilterModal) {\n setStartDate(tempStartDate);\n setEndDate(tempEndDate);\n setSelectedStatus(tempSelectedStatus);\n }\n }, [openFilterModal]);\n\n const getScenario = async (params) => {\n try {\n setIsLoadingList(true);\n const res = await scenarioApi.get(params);\n setScenarioList(res);\n return res;\n } catch (error) {\n console.log(error);\n } finally {\n setIsLoadingList(false);\n }\n };\n\n useEffect(() => {\n setCampaignSelected(campaignId);\n }, [campaignId]);\n\n const onViewScenario = useCallback((campaignId, scenarioId, pageId) => {\n window.open(\n `${types.URL.FACEBOOK}&token=${\n localStorage.getItem(\"token\") || null\n }&campaign=${campaignId}&pageId=${pageId}&scenario=${scenarioId}`,\n \"_blank\"\n );\n }, []);\n\n const handleChangePage = async (event, newPage) => {\n setPage(newPage);\n };\n\n const handleResetDateRange = () => {\n setStartDate(\"\");\n setEndDate(\"\");\n };\n\n const handleResetStatus = () => {\n setSelectedStatus(dataStatus.map((status) => status.name));\n };\n\n const handleResetAllFilter = () => {\n setStartDate(\"\");\n setEndDate(\"\");\n setSelectedStatus(dataStatus.map((s) => s.name));\n handleSubmitApply(\n search,\n 0,\n rowsPerPage,\n \"\",\n \"\",\n dataStatus.map((s) => s.name),\n sortNameOrder,\n sortDateRangeOrder\n );\n setTempStartDate(\"\");\n setTempEndDate(\"\");\n setTempSelectedStatus(dataStatus.map((s) => s.name));\n };\n\n const handleSubmitApply = (\n searchVal = search,\n pageVal = page,\n sizeVal = rowsPerPage,\n startdate = startDate,\n enddate = endDate,\n selectedstatus = selectedStatus,\n sortnameorder = sortNameOrder,\n sortdaterangeorder = sortDateRangeOrder\n ) => {\n setTempSortNameOrder(sortNameOrder);\n setTempSortDateRangeOrder(sortDateRangeOrder);\n setTempStartDate(startDate);\n setTempEndDate(endDate);\n setTempSelectedStatus(selectedStatus);\n const params = createParams(\n selectedstatus,\n startdate,\n enddate,\n sortnameorder,\n sortdaterangeorder,\n searchVal,\n pageVal,\n sizeVal\n );\n getScenario(params);\n setOpenSortModal(false);\n setOpenFilterModal(false);\n };\n\n const createParams = (\n selectedStatus,\n startDate,\n endDate,\n sortNameOrder,\n sortDateRangeOrder,\n search,\n page,\n size\n ) => {\n let searchParams = \"\";\n\n if (\n selectedStatus.length > 0 &&\n selectedStatus.length < dataStatus.length\n ) {\n searchParams += `scenario.status=in=${selectedStatus.join(\",\")};`;\n }\n\n if (startDate && endDate) {\n searchParams += `createdAt=bw=${startDate},${endDate};`;\n }\n if (search && typeof search === \"string\" && search.trim() !== \"\") {\n searchParams += `scenario.name=contain=${search};`;\n }\n\n console.log(\"searchParams ==>\", searchParams);\n\n const sortOptions = [];\n if (sortDateRangeOrder) {\n sortOptions.push(sortDateRangeOrder);\n }\n if (sortNameOrder) {\n sortOptions.push(sortNameOrder);\n }\n\n const sort =\n sortOptions.length > 0 ? sortOptions.join(\";\") : \"createdAt,desc\";\n\n const payload = {\n page: page,\n search: searchParams,\n size: size,\n sort: sort\n };\n\n return payload;\n };\n\n const handleSearch = (event) => {\n setSearch(event.target.value);\n };\n\n const onKeyDown = (event) => {\n if (event.key === \"Enter\") {\n handleSubmitApply();\n }\n };\n\n const handleResetAllSort = () => {\n setSortNameOrder(\"\");\n setSortDateRangeOrder(\"createdAt,desc\");\n handleSubmitApply(\n search,\n 0,\n rowsPerPage,\n startDate,\n endDate,\n dataStatus.map((s) => s.name),\n \"\",\n \"createdAt,desc\"\n );\n setSortNameOrder(\"\");\n setTempSortNameOrder(\"\");\n setSortDateRangeOrder(\"createdAt,desc\");\n setTempSortDateRangeOrder(\"createdAt,desc\");\n };\n\n const handleToggleSortModal = () => {\n setOpenSortModal(!openSortModal);\n };\n\n const handleToggleFilterModal = () => {\n setOpenFilterModal(!openFilterModal);\n };\n\n const handleSelect = (status) => {\n if (status === \"all\") {\n if (selectedStatus.length === dataStatus.length) {\n return;\n } else {\n setSelectedStatus(dataStatus.map((s) => s.name));\n }\n } else {\n setSelectedStatus((prev) => {\n if (prev.includes(status)) {\n const newSelected = prev.filter((s) => s !== status);\n if (newSelected.length === 0) {\n return [];\n }\n return newSelected;\n } else {\n const newSelected = [...prev, status];\n if (newSelected.length === dataStatus.length) {\n return newSelected;\n }\n return newSelected;\n }\n });\n }\n };\n\n const handleClickFilter = () => {\n handleSubmitApply();\n };\n\n const handleChangeRowsPerPage = (event) => {\n const newRowsPerPage = parseInt(event.target.value, 10);\n setRowsPerPage(newRowsPerPage);\n setPage(0);\n handleSubmitApply(search, 0, newRowsPerPage);\n };\n\n const handleChange = (event, value) => {\n setPage(value - 1);\n handleSubmitApply(search, value - 1);\n };\n\n const handleSubmitSearch = (search) => {\n handleSubmitApply();\n };\n\n return (\n \n \n \n \n \n ),\n endAdornment: (\n \n {search && (\n {\n setSearch(\"\");\n handleSubmitApply(\"\");\n }}\n size=\"small\"\n >\n \n \n )}\n \n )\n }}\n />\n \n {t(\"common.btn.search\")}\n \n }\n backgroundColor=\"#05AE34\"\n color=\"white\"\n handleClickButton={() => handleSubmitSearch(search)}\n style={{\n minWidth: \"fit-content\",\n padding: \"6px 16px\"\n }}\n />\n \n\n {/* open modal sort & filter */}\n {/* {isShowFilter && ( */}\n \n \n \n \n

{t(\"common.btn.sort\")}

\n \n }\n backgroundColor=\"#05AE34\"\n color=\"white\"\n handleClickButton={handleToggleSortModal}\n style={{\n minWidth: \"fit-content\",\n padding: \"6px 16px\",\n background: \"#05AE34\"\n }}\n />\n\n {openSortModal && (\n \n

{t(\"campaign_management.name\")}

\n\n {/* name: a-z */}\n
\n \n (e.currentTarget.style.backgroundColor = \"#E1E1E1FF\")\n }\n onMouseLeave={(e) =>\n (e.currentTarget.style.backgroundColor =\n sortNameOrder === \"name,asc\" ? \"#d8fcd2\" : \"#fff\")\n }\n onClick={() => handleSortName(\"name,asc\")}\n className=\"\"\n style={{\n display: \"flex\",\n justifyContent: \"start\",\n alignItems: \"center\",\n width: \"100%\",\n color: \"#333\",\n backgroundColor:\n sortNameOrder === \"name,asc\" ? \"#d8fcd2\" : \"#fff\"\n }}\n >\n \n \n
\n\n
A - Z
\n \n \n\n {/* name: z-a */}\n
\n \n (e.currentTarget.style.backgroundColor = \"#E1E1E1FF\")\n }\n onMouseLeave={(e) =>\n (e.currentTarget.style.backgroundColor =\n sortNameOrder === \"name,desc\" ? \"#d8fcd2\" : \"#fff\")\n }\n onClick={() => handleSortName(\"name,desc\")}\n style={{\n display: \"flex\",\n justifyContent: \"start\",\n alignItems: \"center\",\n width: \"100%\",\n color: \"#333\",\n backgroundColor:\n sortNameOrder === \"name,desc\" ? \"#d8fcd2\" : \"#fff\"\n }}\n >\n \n \n
\n\n
Z - A
\n \n \n\n \n\n

{t(\"campaign_management.time\")}

\n\n {/* newest-oldest */}\n
\n \n (e.currentTarget.style.backgroundColor = \"#E1E1E1FF\")\n }\n onMouseLeave={(e) =>\n (e.currentTarget.style.backgroundColor =\n sortDateRangeOrder === \"createdAt,desc\"\n ? \"#d8fcd2\"\n : \"#fff\")\n }\n onClick={() => handleSortDateRange(\"createdAt,desc\")}\n className=\"\"\n style={{\n display: \"flex\",\n justifyContent: \"start\",\n alignItems: \"center\",\n width: \"100%\",\n color: \"#333\",\n backgroundColor:\n sortDateRangeOrder === \"createdAt,desc\"\n ? \"#d8fcd2\"\n : \"#fff\"\n }}\n >\n \n \n
\n
\n \n {t(\"campaign_management.newest_oldest\")}\n \n
\n \n \n\n {/* oldest-newest */}\n
\n \n (e.currentTarget.style.backgroundColor = \"#E1E1E1FF\")\n }\n onMouseLeave={(e) =>\n (e.currentTarget.style.backgroundColor =\n sortDateRangeOrder === \"createdAt,asc\"\n ? \"#d8fcd2\"\n : \"#fff\")\n }\n onClick={() => handleSortDateRange(\"createdAt,asc\")}\n className=\"\"\n style={{\n display: \"flex\",\n justifyContent: \"start\",\n alignItems: \"center\",\n width: \"100%\",\n color: \"#333\",\n backgroundColor:\n sortDateRangeOrder === \"createdAt,asc\"\n ? \"#d8fcd2\"\n : \"#fff\"\n }}\n >\n \n \n
\n
\n {\" \"}\n \n {t(\"campaign_management.oldest_newest\")}\n \n
\n \n \n\n \n\n {/* reset va apply ben sort */}\n \n \n {t(\"common.btn.reset\")}\n \n }\n backgroundColor=\"#05AE34\"\n color=\"white\"\n style={{\n minWidth: \"fit-content\",\n padding: \"6px 16px\",\n background: \"#05ae34\"\n }}\n />\n \n {t(\"common.btn.apply\")}\n \n }\n backgroundColor=\"#05AE34\"\n color=\"white\"\n style={{\n minWidth: \"fit-content\",\n padding: \"6px 16px\"\n }}\n />\n \n \n )}\n\n {/* {openSortModal && (\n setOpenSortModal(false)}\n style={{\n // backgroundColor: \"rgba(51, 51, 51, 0.8)\",\n zIndex: 2,\n position: \"fixed\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0\n }}\n />\n )} */}\n \n\n \n \n \n {\" \"}\n \n {t(\"common.btn.filter\")}\n

\n \n \n }\n backgroundColor=\"#05AE34\"\n color=\"white\"\n handleClickButton={handleToggleFilterModal}\n style={{\n minWidth: \"fit-content\",\n padding: \"6px 16px\",\n background: \"rgb(5, 174, 52)\",\n color: \"white\"\n }}\n />\n\n {openFilterModal && (\n \n \n

{t(\"campaign_management.date_range\")}

\n \n {t(\"common.btn.reset\")}\n

\n \n\n {/* chon ngay */}\n \n setStartDate(e.target.value)}\n style={{\n cursor: \"pointer\",\n flex: 1,\n marginRight: \"8px\",\n padding: \"8px\",\n borderRadius: \"4px\",\n border: \"1px solid #C1C1C1FF\"\n }}\n />\n setEndDate(e.target.value)}\n style={{\n cursor: \"pointer\",\n flex: 1,\n marginLeft: \"8px\",\n padding: \"8px\",\n borderRadius: \"4px\",\n border: \"1px solid #C1C1C1FF\"\n }}\n />\n \n\n {/* duong line */}\n \n\n {/* status */}\n \n

{t(\"campaign_management.status.title\")}

\n \n {t(\"common.btn.reset\")}\n

\n \n\n {/* select status */}\n {/*
*/}\n setIsOpen(true)}\n >\n {isOpen && (\n setIsOpen(false)}\n style={{\n position: \"absolute\",\n top: \"100%\",\n left: 0,\n zIndex: 3,\n width: \"100%\",\n backgroundColor: \"white\",\n border: \"1px solid #D1D5DB\",\n borderRadius: \"0.375rem\",\n boxShadow: \"0 1px 2px rgba(0, 0, 0, 0.1)\",\n marginTop: \"4px\"\n }}\n >\n
\n {/* Checkbox for \"All\" option */}\n handleSelect(\"all\")}\n >\n \n {selectedStatus.length === dataStatus.length && (\n \n \n
\n )}\n
\n {t(\"campaign_management.status.all\")}\n \n\n {dataStatus.map((status) => (\n handleSelect(status.name)}\n >\n \n {selectedStatus.includes(status.name) && (\n \n \n \n )}\n \n {status.value}\n \n ))}\n \n \n )}\n \n \n {selectedStatus.length === 0\n ? t(\"common.btn.choose_status\")\n : selectedStatus.length < dataStatus.length\n ? selectedStatus\n .map((status) =>\n t(`campaign_management.status.${status}`)\n )\n .join(\", \")\n : t(\"campaign_management.status.all\")}\n \n\n \n \n \n {/* */}\n\n \n\n {/* reset va apply all o filter */}\n \n \n {t(\"common.btn.reset_all\")}\n \n }\n backgroundColor=\"#05AE34\"\n color=\"white\"\n style={{\n minWidth: \"fit-content\",\n padding: \"6px 16px\",\n background: \"#05ae34\"\n }}\n />\n \n {t(\"common.btn.apply\")}\n \n }\n backgroundColor=\"#05AE34\"\n color=\"white\"\n style={{\n minWidth: \"fit-content\",\n padding: \"6px 16px\"\n }}\n />\n \n \n )}\n\n {/* {openFilterModal && (\n setOpenFilterModal(false)}\n style={{\n // backgroundColor: \"rgba(51, 51, 51, 0.8)\",\n zIndex: 2,\n position: \"fixed\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0\n }}\n />\n )} */}\n \n \n {/* )} */}\n \n \n \n \n \n \n
{t(\"campaign_management.scenario.ord_number\")}
\n \n \n
{t(\"campaign_management.scenario.id\")}
\n \n \n
{t(\"campaign_management.scenario.name_scenrio\")}
\n \n \n
{t(\"campaign_management.scenario.creator\")}
\n \n \n
{t(\"campaign_management.scenario.created_at\")}
\n \n \n
{t(\"campaign_management.scenario.customers\")}
\n \n \n
\n {t(\"campaign_management.scenario.customers_success\")}\n
\n \n \n
\n {t(\"campaign_management.scenario.customers_failed\")}\n
\n \n \n
\n {t(\"campaign_management.scenario.customers_not_send\")}\n
\n \n \n
{t(\"campaign_management.scenario.messages\")}
\n \n \n
\n {t(\"campaign_management.scenario.messages_success\")}\n
\n \n \n
{t(\"campaign_management.scenario.messages_failed\")}
\n \n \n
\n {t(\"campaign_management.scenario.messages_not_send\")}\n
\n \n {/* \n
{t(\"campaign_management.scenario.sending_status\")}
\n */}\n\n \n \n \n {t(\"campaign_management.scenario.sending_status\")}\n \n \n {t(\"campaign_management.scenario.schedule_status\")}\n \n \n \n \n
\n\n \n {scenarioList?.content?.map((row, index) => {\n return (\n \n onViewScenario(row.campaignId, row.id, row.pageId)\n }\n key={row.id}\n className={[\n classes.heightHeader,\n classes.rowItem,\n classes.clickableRow\n ]}\n >\n \n
\n {scenarioList?.pageable?.pageNumber *\n defaultSizeGetScenario +\n index +\n 1}\n
\n \n\n \n \n \n \n {row.id}\n \n \n \n {\n e.stopPropagation();\n navigator.clipboard.writeText(row.id);\n setIsCopiedId(true);\n setTimeout(() => {\n setIsCopiedId(false);\n }, 1000);\n }}\n size=\"small\"\n style={{ marginLeft: \"14px\" }}\n >\n \n \n \n \n \n\n \n {row.name ? (\n
{row.name}
\n ) : (\n \n {\"\"}\n

\n )}\n \n\n \n {row.createdByUserId ? (\n \n \n {row.userFullName}\n

\n {/* {\n e.stopPropagation()\n setCreatorShowUp(null)\n }}\n >\n \n }\n PopperProps={{\n disablePortal: true,\n }}\n disableFocusListener\n disableHoverListener\n >\n {\n e.stopPropagation()\n console.log(row.createdByUserId)\n setCreatorShowUp((prev) => {\n if (row?.id === prev?.scenarioId) {\n return null\n }\n return {\n id: row.createdByUserId,\n scenarioId: row.id,\n }\n })\n }}\n >\n \n \n \n */}\n \n ) : (\n \n {\"_\"}\n

\n )}\n \n\n \n {row.createdAt ? (\n
\n {moment(row.createdAt).format(\"DD/MM/YYYY HH:mm\")}\n
\n ) : (\n \n {\"\"}\n

\n )}\n \n\n \n {row.totalCus ? (\n \n \n {row.totalCus}\n

\n {/* {\n e.stopPropagation()\n setScenarioCustomerSelected(row.id)\n }}\n >\n \n */}\n \n ) : (\n \n {\"\"}\n

\n )}\n \n\n \n
{row.customerSuccess}
\n \n\n \n
{row.customerFailed}
\n \n\n \n
{row.customerNotSend}
\n \n\n \n
{row.totalMes}
\n \n\n \n
{row.messageSuccess}
\n \n\n \n
{row.messageFailed}
\n \n\n \n
{row.messageNotSend}
\n \n\n {/* \n \n \n \n \n \n
\n \n
\n */}\n \n \n \n \n \n \n \n \n \n \n\n {/* action detail */}\n {/* \n \n \n \n onViewScenario(row.campaignId, row.id, row.pageId)\n }\n >\n
\n

\n {t(\"common.btn.detail\")}\n

\n
\n \n
\n \n */}\n \n );\n })}\n
\n
\n \n \n {/* \n \n handleChangePage(event, newPage - 1)}\n disabled={scenarioList?.totalMatch === 0}\n color=\"secondary\"\n />\n \n */}\n {/* {rows.length === 0 && (\n

{t(\"update.no_data\")}

\n )} */}\n {/* {isPagination && rows.length > 0 && ( */}\n \n \n \n \n {/* )} */}\n \n );\n};\n\nconst CellSticky = styled(TableCell)`\n position: sticky;\n background-color: #fff;\n right: 0;\n top: 0;\n z-index: 2;\n box-shadow: -15px 0px 17px -7px #f0eded;\n`;\n\nexport default ScenarioList;\n","import React, { useEffect, useMemo, useRef, useState } from 'react'\nimport _ from 'lodash'\nimport { useHistory } from 'react-router-dom'\nimport clsx from 'clsx'\nimport { makeStyles } from '@material-ui/core/styles'\nimport MainLayout from '../MainLayout'\nimport FormControl from '@material-ui/core/FormControl'\nimport GetAppIcon from '@material-ui/icons/GetApp'\nimport ListCustomerComponent from '../../components/ListCustomer'\nimport FormDialog from '../../components/FormDialog'\nimport ButtonComponent from '../../components/Button'\nimport Grid from '@material-ui/core/Grid'\nimport TextField from '@material-ui/core/TextField'\nimport RadioGroup from '@material-ui/core/RadioGroup'\nimport Radio from '@material-ui/core/Radio'\nimport FormLabel from '@material-ui/core/FormLabel'\nimport { Button, Chip } from '@material-ui/core'\nimport SearchIcon from '@material-ui/icons/Search'\nimport FormControlLabel from '@material-ui/core/FormControlLabel'\nimport FormGroup from '@material-ui/core/FormGroup'\nimport Checkbox from '@material-ui/core/Checkbox'\nimport types from '../../constants/types'\nimport moment from 'moment'\nimport IMAGES from '../../images'\nimport Autocomplete from '@material-ui/lab/Autocomplete'\nimport DeleteIcon from '@material-ui/icons/Delete'\nimport Loading from '../../components/Loading'\nimport { getFanpageDetail } from 'views/Fanpage/FanpageActions'\nimport { useDispatch, useSelector } from 'react-redux'\nimport Flex from 'components/Flex'\nimport BaseSelectFile from 'components/BaseSelectFile'\nimport cn from 'classnames'\nimport { selectFilterCus, selectImportResult } from './ScenarioSelectors'\nimport Tour from 'reactour'\nimport { selectSearchUidName } from './ScenarioSelectors'\nimport { getIsGuideByKey, GUIDE_TYPE_ENUM, setIsGuideByKey } from 'utils/helper'\nimport { selectGuideListByKey } from 'stores/config/config.selector'\nimport ModalResultImport from './item/ModalResultImport'\nimport { useTranslation } from 'react-i18next'\nimport MessengerButton from '../Home/items/MessengerButton'\nimport TagPreviewItem from '../../components/TagPreviewItem'\nimport { colorDir1, getRandomTag } from '../../components/TagPreviewModal'\nimport ScenarioList from './components/ScenarioList'\n\nconst useStyles = makeStyles((theme) => ({\n wrapSelectFanpage: {\n marginTop: 30,\n width: 'calc(100% - 15px)',\n '& h4': {\n marginBottom: 5,\n color: '#05AE34',\n fontSize: 16,\n },\n },\n wrapSelect: {\n width: '100%',\n },\n select: {\n // margin: \"5px 0px !important\",\n },\n wrapSelectLabel: {\n zIndex: 1,\n fontSize: 16,\n paddingLeft: 10,\n marginTop: 7,\n '&.MuiFormLabel-filled': {\n display: 'none !important',\n },\n '&.Mui-focused': {\n display: 'none !important',\n },\n },\n\n root: {\n '&:hover': {\n backgroundColor: 'transparent',\n },\n },\n icon: {\n borderRadius: '50%',\n width: 16,\n height: 16,\n boxShadow:\n 'inset 0 0 0 1px rgba(16,22,26,.2), inset 0 -1px 0 rgba(16,22,26,.1)',\n backgroundColor: '#f5f8fa',\n backgroundImage:\n 'linear-gradient(180deg,hsla(0,0%,100%,.8),hsla(0,0%,100%,0))',\n '$root.Mui-focusVisible &': {\n outline: '2px auto rgba(19,124,189,.6)',\n outlineOffset: 2,\n },\n 'input:hover ~ &': {\n backgroundColor: '#ebf1f5',\n },\n 'input:disabled ~ &': {\n boxShadow: 'none',\n background: 'rgba(206,217,224,.5)',\n },\n },\n checkedIcon: {\n backgroundColor: '#05AE34',\n backgroundImage:\n 'linear-gradient(180deg,hsla(0,0%,100%,.1),hsla(0,0%,100%,0))',\n '&:before': {\n display: 'block',\n width: 16,\n height: 16,\n backgroundImage: 'radial-gradient(#fff,#fff 28%,transparent 32%)',\n content: '\"\"',\n },\n 'input:hover ~ &': {\n backgroundColor: '#106ba3',\n },\n },\n wrapRadioGroup: {\n display: 'inline-block',\n flexWrap: 'inherit',\n flexDirection: 'inherit',\n marginLeft: 15,\n fontSize: '16px',\n marginTop: 10,\n },\n // wrapperPopup: {\n // \"& h4\": {\n // color: \"#05AE34\",\n // paddingLeft: 15,\n // },\n // \"& .MuiInputLabel-filled.MuiInputLabel-shrink\": {\n // top: \"-25px\",\n // color: \"rgba(0, 0, 0, 0.87) !important\",\n // width: \"100%\",\n // fontSize: \"16px\",\n // transform: \"inherit\",\n // },\n // \"& .MuiInputLabel-filled\": {\n // top: \"-25px\",\n // color: \"rgba(0, 0, 0, 0.87) !important\",\n // width: \"100%\",\n // fontSize: \"16px\",\n // transform: \"inherit\",\n // },\n // \"& .MuiFilledInput-input\": {\n // padding: \"10px 12px 10px 2px !important\",\n // },\n // },\n // radioGroup: {\n // flexWrap: \"inherit\",\n // flexDirection: \"inherit\",\n // \"& label\": {\n // float: \"left\",\n // },\n // },\n // textField: {\n // width: \"100%\",\n // padding: \"0px 15px\",\n // margin: \"35px 0px 10px 0px\",\n // \"& .MuiInputLabel-filled\": {\n // marginLeft: 15,\n // },\n // },\n formControlCheckbox: {\n margin: '15px 0px 0px 15px',\n width: 'calc(100% - 30px)',\n '& .MuiFormLabel-root': {\n marginBottom: 5,\n fontSize: 16,\n },\n '& .MuiFormControlLabel-label': {\n fontSize: 16,\n },\n '& .MuiCheckbox-colorSecondary.Mui-checked': {\n color: '#05AE34',\n },\n '& .MuiFormLabel-root': {\n color: 'rgba(0, 0, 0, 0.87)',\n fontSize: 16,\n },\n },\n wrapButton: {\n width: '100%',\n display: 'inline-block',\n },\n button: {\n display: 'inline-block',\n width: 130,\n float: 'right',\n margin: '30px 15px 30px 0px',\n },\n title: {\n color: '#05AE34',\n },\n wrapButtonImport: {\n textAlign: 'right',\n },\n wrapBox: {\n padding: '15px 42px 30px 15px',\n },\n buttonChange: {\n margin: '0px 0px 0px 10px',\n },\n importInput: {\n margin: '15px 0px 30px 0px',\n },\n inboxDate: {\n left: 15,\n top: -5,\n width: 200,\n marginTop: 25,\n // marginwrapperPopupwrapperPopupTop: 25,\n '& label': {\n color: 'rgba(0, 0, 0, 0.87) !important',\n fontSize: '16px',\n transform: 'inherit',\n top: '-10px',\n width: '100%',\n },\n '& .MuiInputBase-formControl': {\n width: 140,\n },\n '& $root': {\n width: 120,\n },\n '& .MuiInputBase-input': {\n width: 120,\n position: 'absolute',\n left: 0,\n top: 0,\n width: '100%',\n height: '100%',\n opacity: 0,\n cursor: 'pointer',\n boxSizing: 'border-box',\n },\n '& .MuiInputBase-input::-webkit-calendar-picker-indicator': {\n position: 'absolute',\n left: 0,\n top: 0,\n width: '100%',\n height: '100%',\n margin: 0,\n padding: 0,\n cursor: 'pointer',\n },\n },\n inboxTime: {\n left: 15,\n top: -5,\n width: 200,\n marginTop: 25,\n // marginwrapperPopupwrapperPopupTop: 25,\n '& label': {\n color: 'rgba(0, 0, 0, 0.87) !important',\n fontSize: '16px',\n transform: 'inherit',\n top: '-10px',\n width: '100%',\n },\n '& .MuiInputBase-formControl': {\n width: 140,\n },\n '& $root': {\n width: 120,\n },\n },\n inboxTimeLast: {\n right: 30,\n position: 'absolute',\n top: -5,\n marginTop: 25,\n // marginwrapperPopupwrapperPopupTop: 25,\n '& label': {\n color: 'rgba(0, 0, 0, 0.87) !important',\n fontSize: '16px',\n transform: 'inherit',\n top: '-10px',\n width: '100%',\n },\n '& .MuiInputBase-formControl': {\n width: 140,\n },\n '& $root': {\n width: 120,\n },\n\n '& .MuiInputBase-input::-webkit-calendar-picker-indicator': {\n position: 'absolute',\n left: 0,\n top: 0,\n width: '100%',\n height: '100%',\n margin: 0,\n padding: 0,\n cursor: 'pointer',\n },\n },\n wrapperLoading: {\n height: 100,\n position: 'relative',\n textAlign: 'center',\n top: -20,\n '& img': {\n height: 100,\n position: 'absolute',\n top: 0,\n left: 'calc(50% - 50px)',\n width: 100,\n },\n '& p': {\n position: 'absolute',\n bottom: -11,\n textAlign: 'center',\n width: '100%',\n },\n },\n noData: {\n marginTop: 15,\n marginBottom: 10,\n color: 'rgba(0, 0, 0, 0.38)',\n },\n addTag: {\n width: '100%',\n marginBottom: 15,\n },\n wrapCheckbox: {\n position: 'relative',\n '&:hover': {\n '& $delete': {\n display: 'inline-block',\n },\n },\n },\n delete: {\n display: 'none',\n position: 'absolute',\n right: 0,\n top: 0,\n '&:hover': {\n cursor: 'pointer',\n },\n },\n wrapButtonPopup: {\n textAlign: 'right',\n paddingBottom: 30,\n paddingRight: 15,\n },\n tagFormGroup: {\n height: '200px',\n overflowY: 'auto',\n overflowX: 'hidden',\n display: 'initial',\n marginTop: '15px',\n '& .MuiFormControlLabel-root': {\n width: '100%',\n },\n },\n fromToIcon: {\n position: 'absolute',\n top: '45px',\n left: '180px',\n },\n}))\n\nfunction StyledRadio(props) {\n const classes = useStyles()\n\n return (\n }\n icon={}\n {...props}\n />\n )\n}\n\nconst CustomerView = (props) => {\n const classes = useStyles()\n\n const { t } = useTranslation()\n\n const [campaignId, setCampaignId] = useState(null)\n\n const {} = props\n\n useEffect(() => {\n const searchParam = new URLSearchParams(window.location.search)\n\n setCampaignId(searchParam.get('campaignId'))\n }, [])\n\n const tourOverview = useSelector(\n selectGuideListByKey(GUIDE_TYPE_ENUM.scenario_manager)\n )\n\n const [tourConfig, setTourConfig] = useState(null)\n\n useEffect(() => {\n if (\n getIsGuideByKey(GUIDE_TYPE_ENUM.scenario_manager) &&\n tourOverview?.length\n ) {\n setTourConfig(tourOverview)\n setIsGuideByKey(GUIDE_TYPE_ENUM.scenario_manager)\n }\n }, [tourOverview])\n\n return (\n \n \n {t('common.btn.close')}\n \n }\n accentColor=\"#05ae34\"\n onRequestClose={() => setTourConfig(null)}\n />\n {/* */}\n {/* {loading && } */}\n \n \n )\n}\n\nCustomerView.propTypes = {}\n\nCustomerView.defaultProps = {}\n\nexport default CustomerView\n","import { connect } from 'react-redux'\nimport { withRouter } from 'react-router-dom'\nimport ScenarioView from './ScenarioView'\nimport * as actionsFanpage from '../Fanpage/FanpageActions'\nimport * as actionsCustomer from './ScenarioActions'\nimport * as selectorsFanpage from '../Fanpage/FanpageSelectors'\nimport * as selectorsCustomer from './ScenarioSelectors'\nimport * as selectorsApp from '../App/AppSelectors'\nconst mapStateToProps = (state) => {\n return {}\n}\n\nconst mapDispatchToProps = (dispatch) => ({})\n\nexport default withRouter(\n connect(mapStateToProps, mapDispatchToProps)(ScenarioView)\n)\n","import ScenarioPage from './ScenarioContainer'\n\nexport default ScenarioPage\n","import React, { useEffect, useState } from 'react'\nimport { makeStyles } from '@material-ui/core/styles'\nimport MainLayout from '../MainLayout'\nimport ListCampaignComponent from '../../components/ListCampaign'\nimport Loading from '../../components/Loading'\nimport MessengerButton from './../Home/items/MessengerButton'\nimport Tour from 'reactour'\nimport { useSelector } from 'react-redux'\nimport {\n getIsGuideByKey,\n GUIDE_TYPE_ENUM,\n setIsGuideByKey,\n} from '../../utils/helper'\nimport { selectGuideListByKey } from '../../stores/config/config.selector'\nimport { useTranslation } from 'react-i18next'\nimport { Button } from '@material-ui/core'\n\nconst useStyles = makeStyles((theme) => ({}))\nconst CampaignView = (props) => {\n const { getCampaign, campaign, loading } = props\n const [campaignData, setCampaignData] = useState([])\n\n const { t } = useTranslation()\n\n useEffect(() => {\n setCampaignData(campaign)\n }, [campaign])\n\n const handleGetCampaign = (params) => {\n getCampaign(params)\n }\n\n const tourOverview = useSelector(\n selectGuideListByKey(GUIDE_TYPE_ENUM.campaign_manager)\n )\n\n const [tourConfig, setTourConfig] = useState(null)\n\n useEffect(() => {\n if (\n getIsGuideByKey(GUIDE_TYPE_ENUM.campaign_manager) &&\n tourOverview?.length\n ) {\n setTourConfig(tourOverview)\n setIsGuideByKey(GUIDE_TYPE_ENUM.campaign_manager)\n }\n }, [tourOverview])\n\n return (\n \n \n {t('common.btn.close')}\n \n }\n accentColor=\"#05ae34\"\n onRequestClose={() => setTourConfig(null)}\n />\n\n {loading && }\n handleGetCampaign(params)}\n getCampaign={(params) => getCampaign(params)}\n data={campaignData}\n isShowFilter={true}\n />\n \n \n )\n}\n\nCampaignView.propTypes = {}\n\nCampaignView.defaultProps = {}\n\nexport default CampaignView\n","import CampaignPage from \"./CampaignContainer\";\n\nexport default CampaignPage;\n","import { connect } from \"react-redux\";\nimport { withRouter } from 'react-router-dom';\nimport CampaignView from \"./CampaignView\";\nimport * as actionsCampaign from \"./CampaignActions\";\nimport * as selectorsCampaign from \"./CampaignSelectors\";\nimport * as selectorsApp from \"../App/AppSelectors\";\nconst mapStateToProps = state => {\n return {\n campaign: selectorsCampaign.campaign(state),\n loading: selectorsApp.loading(state),\n };\n};\n\nconst mapDispatchToProps = dispatch => ({\n getCampaign: (params) => dispatch(actionsCampaign.getCampaign(params))\n});\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(CampaignView));\n","import {\n Button,\n Dialog,\n DialogContent,\n DialogTitle,\n IconButton,\n makeStyles,\n Tab,\n TableCell,\n Tabs,\n TextField,\n} from '@material-ui/core'\nimport { useEffect, useState } from 'react'\nimport { X } from 'react-feather'\nimport { useTranslation } from 'react-i18next'\nimport LoadingWrapper from '../../components/LoadingWrapper'\nimport BombotTagsManagement from '../../components/TagsManagementModal/BombotTagsManagement'\nimport FbTagsManagement from '../../components/TagsManagementModal/FbTagsManagement'\nimport MainLayout from '../MainLayout'\nimport { Autocomplete } from '@material-ui/lab'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { getFanpageDetail } from '../Fanpage/FanpageActions'\nimport Tour from 'reactour'\nimport {\n getIsGuideByKey,\n GUIDE_TYPE_ENUM,\n setIsGuideByKey,\n} from '../../utils/helper'\nimport { selectGuideListByKey } from '../../stores/config/config.selector'\nimport { Warning } from '@material-ui/icons'\nimport _ from 'lodash'\n\nconst useStyles = makeStyles({\n widthCheckBox: {\n minWidth: '60px',\n width: '4%',\n },\n widthSeq: {\n minWidth: '80px',\n padding: '0 8px !important',\n },\n widthId: {\n minWidth: '120px',\n padding: '0 8px !important',\n },\n widthName: {\n minWidth: '220px',\n padding: '0 8px !important',\n },\n widthCreatedAt: {\n minWidth: '220px',\n padding: '0 8px !important',\n },\n widthCreatedBy: {\n minWidth: '220px',\n padding: '0 8px !important',\n },\n widthQuantityCus: {\n minWidth: '120px',\n padding: '0 8px !important',\n },\n widthActions: {\n minWidth: '140px',\n width: '6%',\n padding: '0 8px !important',\n },\n p0: {\n padding: '0',\n margin: '0',\n },\n heightHeader: {\n height: '52px',\n },\n f600: {\n fontWeight: 600,\n },\n checkBoxPadding: {\n padding: '10px 20px',\n },\n actions: {\n display: 'flex',\n alignItems: 'center',\n width: '100%',\n justifyContent: 'space-between',\n marginTop: '10px',\n },\n closeBtn: {\n color: '#ffffff',\n backgroundColor: '#dc3545',\n border: '2px solid #dc3545',\n padding: '6px 20px',\n borderRadius: '4px',\n cursor: 'pointer',\n '&:hover': {\n backgroundColor: '#c82333',\n borderColor: '#bd2130',\n },\n },\n submitBtn: {\n color: 'white',\n backgroundColor: '#28a745',\n border: '2px solid #28a745',\n padding: '6px 26px',\n borderRadius: '4px',\n cursor: 'pointer',\n margin: '0 36px !important',\n '&:hover': {\n backgroundColor: '#218838',\n borderColor: '#1e7e34',\n },\n },\n numCusInp: {\n fontSize: '14px',\n display: 'flex',\n justifyContent: 'end',\n alignItems: 'center',\n },\n footerContainer: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n width: '100%',\n padding: '0 26px',\n margin: '12px 0',\n minHeight: '48px',\n },\n container: {\n flex: 1,\n width: '100%',\n },\n paginationBottom: {\n display: 'flex !important',\n justifyContent: 'end !important',\n alignItems: 'center !important',\n },\n buttonLoadMore: {\n alignItems: 'center',\n appearance: 'none',\n backgroundColor: '#fff',\n border: '1px solid #dbdbdb',\n borderRadius: '.375em',\n boxShadow: 'none',\n boxSizing: 'border-box',\n color: '#363636',\n cursor: 'pointer',\n display: 'inline-flex',\n fontFamily: `BlinkMacSystemFont, -apple-system, \"Segoe UI\", Roboto, Oxygen, Ubuntu, Cantarell, \"Fira Sans\", \"Droid Sans\", \"Helvetica Neue\", Helvetica, Arial, sans-serif`,\n fontSize: '0.8rem',\n height: '1.8em',\n justifyContent: 'center',\n lineHeight: '1.5',\n padding: 'calc(.5em - 1px) 1em',\n position: 'relative',\n textAlign: 'center',\n userSelect: 'none',\n WebkitUserSelect: 'none',\n touchAction: 'manipulation',\n verticalAlign: 'top',\n whiteSpace: 'nowrap',\n '&:hover': {\n borderColor: '#b5b5b5',\n },\n '&:active': {\n borderColor: '#4a4a4a',\n outline: '0',\n },\n '&:focus': {\n borderColor: '#485fc7',\n outline: '0',\n },\n '&:focus:not(:active)': {\n boxShadow: 'rgba(72, 95, 199, 0.25) 0 0 0 0.125em',\n },\n },\n rowItem: {\n cursor: 'pointer',\n },\n\n noData: {\n color: 'rgba(0,0,0,.5)',\n fontWeight: 'bold',\n textAlign: 'center',\n padding: '24px',\n },\n closeButton: {\n position: 'absolute',\n right: 0,\n top: '50%',\n transform: 'translateY(-50%)',\n color: '#637381',\n padding: '8px',\n marginRight: '8px',\n '&:hover': {\n color: '#212B36',\n backgroundColor: 'rgba(99, 115, 129, 0.08)',\n borderRadius: '50%',\n },\n },\n dialogTitle: {\n position: 'relative',\n paddingRight: '48px',\n margin: 0,\n padding: '16px 24px',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n },\n})\n\nexport const tagType = {\n BOMBOT_TAGS: 'BOMBOT_TAGS',\n FACEBOOK_TAGS: 'FACEBOOK_TAGS',\n}\n\nconst TagView = ({\n onFanpageSelected,\n fanpageSelected,\n fanpageFull,\n getData,\n getFanpage,\n}) => {\n const classes = useStyles()\n const [isLoading, setIsLoading] = useState(false)\n const [tabVal, setTabVal] = useState(tagType.BOMBOT_TAGS)\n\n const [selectedPageId, setSelectedPageId] = useState(\n fanpageSelected.id || null\n )\n\n const dispatch = useDispatch()\n\n const { t } = useTranslation()\n\n const handleChangeTab = (e, newVal) => {\n setTabVal(newVal)\n }\n\n const handleChangeFanpage = (key, value) => {\n switch (key) {\n case 'fanpage':\n if (value) {\n onFanpageSelected(value)\n\n dispatch(getFanpageDetail(value.id))\n }\n break\n default:\n break\n }\n }\n\n useEffect(() => {\n const params = {\n // page: page,\n // size: rowsPerPage,\n // search: search ? search : undefined,\n }\n getFanpage(params)\n }, [])\n\n const tourOverview = useSelector(\n selectGuideListByKey(GUIDE_TYPE_ENUM.tag_manager)\n )\n\n const [tourConfig, setTourConfig] = useState(null)\n\n useEffect(() => {\n console.log('fanpageSelected ==>', fanpageSelected)\n if (_.isEmpty(fanpageSelected)) return\n\n if (getIsGuideByKey(GUIDE_TYPE_ENUM.tag_manager) && tourOverview?.length) {\n setTourConfig(tourOverview)\n setIsGuideByKey(GUIDE_TYPE_ENUM.tag_manager)\n }\n }, [tourOverview, fanpageSelected])\n\n return (\n \n \n {t('common.btn.close')}\n \n }\n accentColor=\"#05ae34\"\n onRequestClose={() => setTourConfig(null)}\n />\n\n \n \n {/* thanh chọn fanpage */}\n {\n setSelectedPageId(data?.id || null)\n handleChangeFanpage('fanpage', data)\n }}\n getOptionLabel={(option) => option?.name || ''}\n value={fanpageSelected || null}\n renderInput={(params) => (\n \n )}\n />\n \n\n {selectedPageId ? (\n <>\n \n \n \n \n\n {tabVal === tagType.BOMBOT_TAGS && (\n \n )}\n\n {tabVal === tagType.FACEBOOK_TAGS && (\n \n )}\n \n ) : (\n \n \n \n Chưa chọn fanpage\n

\n \n Vui lòng chọn fanpage để tiếp tục truy cập và quản lý tag.\n

\n \n )}\n
\n
\n )\n}\n\nexport default TagView\n","import axiosClient from \"./axiosClient\";\nimport urlApi from \"./url\";\n\nconst tagApi = {\n get: (params) => {\n return axiosClient.get(`${urlApi.tagApi.tag}`, { params });\n }\n};\n\nexport default tagApi;\n","import { createSlice } from \"@reduxjs/toolkit\";\nimport initialState from \"../../configs/redux/initialState\";\n\nconst tagReducer = createSlice({\n name: \"tag\",\n initialState: initialState.tagReducer,\n reducers: {\n setTag: (state, action) => {\n state.tag = action.payload;\n }\n }\n});\n\nexport const { setTag } = tagReducer.actions;\n\nexport default tagReducer.reducer;\n","import { connect } from 'react-redux'\nimport { withRouter } from 'react-router-dom'\nimport TagView from './TagView'\nimport * as actionsTag from './TagActions'\n\nimport * as selectorsFanpage from '../Fanpage/FanpageSelectors'\nimport * as selectorsCustomer from '../Customer/CustomerSelectors'\nimport * as actionsCustomer from '../Customer/CustomerActions'\nimport * as actionsFanpage from '../Fanpage/FanpageActions'\n\nconst mapStateToProps = (state) => {\n return {\n fanpageFull: selectorsFanpage.fanpageFull(state),\n fanpageSelected: selectorsCustomer.fanpageSelected(state),\n }\n}\n\nconst mapDispatchToProps = (dispatch) => ({\n getTag: (params) => dispatch(actionsTag.getTag(params)),\n onFanpageSelected: (params) =>\n dispatch(actionsCustomer.fanpageSelected(params)),\n getFanpage: (params) => dispatch(actionsFanpage.getFanpageFull(params)),\n})\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(TagView))\n","import TagPage from \"./TagContainer\";\n\nexport default TagPage;\n","import tagApi from \"../../api/tagApi\";\nimport { setLoading } from \"../App/AppReducer\";\nimport { setTag } from \"./TagReducer\";\n\nexport function getTag(params) {\n return (dispatch) => {\n dispatch(setLoading(true));\n return tagApi.get(params).then(\n (res) => {\n dispatch(setTag(res));\n dispatch(setLoading(false));\n },\n (error) => {\n dispatch(setLoading(false));\n }\n );\n };\n}\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport _ from \"lodash\";\nimport Table from \"@material-ui/core/Table\";\nimport TableBody from \"@material-ui/core/TableBody\";\nimport TableCell from \"@material-ui/core/TableCell\";\nimport TableContainer from \"@material-ui/core/TableContainer\";\nimport TableHead from \"@material-ui/core/TableHead\";\nimport TableRow from \"@material-ui/core/TableRow\";\nimport TableSortLabel from \"@material-ui/core/TableSortLabel\";\nimport Paper from \"@material-ui/core/Paper\";\nimport moment from \"moment\";\nimport types from \"../constants/types\";\nimport { useTranslation } from \"react-i18next\";\nconst headCells = [\n {\n id: \"time\",\n numeric: true,\n disablePadding: true,\n label: \"account_management.payment_history.time\",\n },\n {\n id: \"code\",\n numeric: true,\n disablePadding: true,\n label: \"account_management.payment_history.order_code\",\n },\n {\n id: \"product\",\n numeric: true,\n disablePadding: true,\n label: \"account_management.payment_history.package\",\n },\n {\n id: \"totalPrice\",\n numeric: true,\n disablePadding: true,\n label: \"account_management.payment_history.total\",\n },\n {\n id: \"pay\",\n numeric: true,\n disablePadding: true,\n label: \"account_management.payment_history.method\",\n },\n {\n id: \"status\",\n numeric: true,\n disablePadding: true,\n label: \"account_management.payment_history.status\",\n },\n];\n\nfunction EnhancedTableHead(props) {\n const { t } = useTranslation();\n return (\n \n \n {headCells.map((headCell) => (\n \n \n {t(headCell.label)}\n \n \n ))}\n \n \n );\n}\n\nEnhancedTableHead.propTypes = {\n classes: PropTypes.object.isRequired,\n rowCount: PropTypes.number.isRequired,\n};\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n width: \"100%\",\n padding: \"15px 15px 15px 0px\",\n },\n paper: {\n width: \"100%\",\n marginBottom: theme.spacing(2),\n },\n table: {\n minWidth: \"100%\",\n },\n visuallyHidden: {\n border: 0,\n clip: \"rect(0 0 0 0)\",\n height: 1,\n margin: -1,\n overflow: \"hidden\",\n padding: 0,\n position: \"absolute\",\n top: 20,\n width: 1,\n },\n noData: {\n color: \"rgba(0,0,0,.5)\",\n fontWeight: \"bold\",\n textAlign: \"center\",\n paddingBottom: 15,\n },\n}));\n\nexport default function ListHistoryjs(props) {\n const { data } = props;\n const rows = (data && data.history) || [];\n const classes = useStyles();\n const [dense, setDense] = React.useState(true);\n const { t } = useTranslation();\n\n return (\n
\n \n \n \n \n \n {(rows || []).map((row, index) => {\n return (\n \n \n {moment(row.updatedAt).format(\"DD/MM/YYYY HH:mm\")}\n \n {row.id}\n {row.name}\n {row.amount}\n {row.method}\n \n {_.upperCase(row.status) == _.upperCase(types.STATUS.DONE)\n ? \"Hoàn thành\"\n : _.upperCase(row.status) ==\n _.upperCase(types.STATUS.PENDING)\n ? \"Chưa chạy\"\n : \"Đang chạy\"}\n \n \n );\n })}\n \n \n \n {rows.length == 0 && (\n

{t(\"update.no_data\")}

\n )}\n {/* */}\n
\n {/* {rows.length > 0 && (\n }\n label=\"Thay đổi khoảng cách hiển thị gần\"\n />\n )} */}\n
\n );\n}\n","import React, { useEffect, useState } from 'react'\nimport PropTypes from 'prop-types'\nimport { makeStyles } from '@material-ui/core/styles'\nimport _ from 'lodash'\nimport {\n Table,\n TableBody,\n TableCell,\n TableContainer,\n TableHead,\n TableRow,\n TableSortLabel,\n Paper,\n Avatar,\n FormControlLabel,\n Switch,\n} from '@material-ui/core'\nimport { Button, Tooltip, Snackbar, Alert } from '@mui/material'\nimport moment from 'moment'\nimport cn from 'classnames'\nimport ButtonComponent from './Button'\nimport FormDialog from './FormDialog'\nimport { useTranslation } from 'react-i18next'\nimport { BiTransfer } from 'react-icons/bi'\n\nconst headCells = [\n {\n id: 'avatar',\n numeric: true,\n disablePadding: true,\n label: 'account_management.linked_account.avatar',\n },\n {\n id: 'accountName',\n numeric: true,\n disablePadding: true,\n label: 'account_management.linked_account.name',\n },\n {\n id: 'sdt',\n numeric: true,\n disablePadding: true,\n label: 'account_management.linked_account.phone',\n },\n {\n id: 'email',\n numeric: true,\n disablePadding: true,\n label: 'account_management.linked_account.email',\n },\n {\n id: 'lastTime',\n numeric: true,\n disablePadding: true,\n label: 'account_management.linked_account.last_logged_in',\n },\n {\n id: 'account_type',\n numeric: true,\n disablePadding: true,\n label: 'account_management.linked_account.type',\n },\n {\n id: 'action',\n numeric: true,\n disablePadding: true,\n label: 'account_management.linked_account.action',\n },\n]\n\nfunction EnhancedTableHead(props) {\n const { t } = useTranslation()\n return (\n \n \n {headCells.map((headCell) => (\n \n \n {t(headCell.label)}\n \n \n ))}\n \n \n )\n}\n\nEnhancedTableHead.propTypes = {\n classes: PropTypes.object.isRequired,\n rowCount: PropTypes.number.isRequired,\n}\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n width: '100%',\n padding: '15px 15px 15px 0px',\n },\n paper: {\n width: '100%',\n },\n table: {\n minWidth: '100%',\n },\n visuallyHidden: {\n border: 0,\n clip: 'rect(0 0 0 0)',\n height: 1,\n margin: -1,\n overflow: 'hidden',\n padding: 0,\n position: 'absolute',\n top: 20,\n width: 1,\n },\n noData: {\n color: 'rgba(0,0,0,.5)',\n fontWeight: 'bold',\n textAlign: 'center',\n paddingBottom: 15,\n },\n buttonIEA: {\n width: '100%',\n textAlign: 'right',\n marginRight: '15px',\n paddingRight: '15px',\n '& button': {\n marginLeft: 15,\n },\n },\n avatar: {\n margin: '0px auto',\n },\n titlePopup: {\n textAlign: 'center',\n color: '#05AE34',\n },\n wrapButtonPopup: {\n textAlign: 'center',\n },\n}))\n\nexport default function ListHistoryjs(props) {\n const {\n data,\n handleInviteCode,\n handleUnlink,\n messageUnlink,\n statusUnlink,\n messageInviteError,\n user,\n handleOpenTransferConfirm,\n setTransferedId,\n handleOpenTransfer,\n } = props\n const rows = (data && data.users) || []\n const classes = useStyles()\n const [page, setPage] = useState(0)\n const [dense, setDense] = useState(true)\n const [unlink, setUnlink] = useState({})\n const [isUnlink, setIsUnlink] = useState(false)\n const [showStatus, setShowStatus] = useState({\n open: false,\n type: 'success',\n message: '',\n })\n const { t } = useTranslation()\n\n useEffect(() => {\n if (statusUnlink) {\n setIsUnlink(false)\n setShowStatus({\n open: true,\n type: 'success',\n message: t('account_management.linked_account.unlink_success'),\n })\n } else if (messageUnlink.message) {\n setShowStatus({\n open: true,\n type: 'error',\n message: t('update.error_unlink'),\n })\n }\n }, [messageUnlink, statusUnlink, messageInviteError])\n\n const handleChangeDense = (event) => {\n setDense(event.target.checked)\n }\n\n const handleSubmitInviteCode = () => {\n handleInviteCode()\n }\n\n const handleSubmitUnlink = (row) => {\n setIsUnlink(true)\n setUnlink(row)\n }\n\n const handleConfirmUnlink = () => {\n handleUnlink(unlink)\n }\n\n const handleCloseUnlink = () => {\n setIsUnlink(false)\n }\n\n const handleCloseStatus = (event, reason) => {\n if (reason === 'clickaway') {\n return\n }\n setShowStatus((prev) => ({\n ...prev,\n open: false,\n }))\n }\n\n return (\n <>\n
\n \n \n \n \n \n {(rows || []).map((row, index) => {\n return (\n \n \n {row.avatar ? (\n \n ) : (\n \n )}\n \n {row.name}\n {row.phone}\n {row.email}\n \n {moment(row.lastLogin).format(\"DD/MM/YYYY HH:mm\")}\n \n \n {row.usedWithUserId\n ? t(\"overall.account_info.linked_account\")\n : t(\"overall.account_info.main_account\")}\n \n \n {row.usedWithUserId ? (\n \n handleSubmitUnlink(row)}\n />\n\n {!user.usedWithUserId && (\n \n \n
\n }\n className=\"btn--rounder\"\n backgroundColor=\"#05ae34\"\n color=\"white\"\n style={{\n height: \"32px\",\n padding: \"6px 16px\",\n minWidth: \"40px\" // Width nhỏ hơn cho button icon\n }}\n handleClickButton={() => {\n setTransferedId(row.id);\n handleOpenTransferConfirm(true);\n }}\n />\n )}\n \n ) : (\n \n \n \n \n \n )}\n \n \n );\n })}\n \n \n \n {rows.length === 0 && (\n

{t(\"update.no_data\")}

\n )}\n \n \n\n
\n \n \n \n {t(\"common.btn.add_account\")}\n \n \n \n\n \n {t(\"account_management.service_information.transfer_main_account\")}\n \n
\n\n \n
\n

\n {t(\"account_management.linked_account.unlink\")}\n

\n
\n \n \n
\n
\n
\n\n \n \n {showStatus.message}\n \n \n \n );\n}\n","import * as React from 'react';\nimport { useEffect, useState } from \"react\";\nimport PropTypes from 'prop-types';\nimport SwipeableViews from 'react-swipeable-views';\nimport { useTheme } from '@mui/material/styles';\nimport AppBar from '@mui/material/AppBar';\nimport Tabs from '@mui/material/Tabs';\nimport Tab from '@mui/material/Tab';\nimport Typography from '@mui/material/Typography';\nimport Box from '@mui/material/Box';\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport { useTranslation } from \"react-i18next\";\nimport _ from \"lodash\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport IMAGES from \"../../../src/images\";\nimport Loading from \"../../components/Loading\";\n\nimport Card from '@mui/material/Card';\nimport CardContent from '@mui/material/CardContent';\nimport CardMedia from '@mui/material/CardMedia';\nimport { Button, CardActionArea, CardActions } from '@mui/material';\nimport { Snackbar, TablePagination } from \"@material-ui/core\";\nimport MuiAlert from \"@material-ui/lab/Alert\";\n\n\nfunction Alert(props) {\n return ;\n}\n\nfunction TabPanel(props) {\n const { children, value, index, ...other } = props;\n\n return (\n