{"version":3,"sources":["redux/constants/userConstants.js","services/bassUrl.js","services/axios.js","services/requests.js","redux/actions/userActions.js","pages/Admin/Overview/Overview.js","redux/constants/citiesContants.js","redux/actions/citiesActions.js","components/Admin/RegisterForm/RegisterForm.js","components/Admin/LoginForm/LoginForm.js","assets/img/png/logo-full.png","pages/Admin/SignIn/SignIn.js","config/routes.js","assets/img/png/no-avatar.png","components/Modal/Modal.js","components/EditUserForm/EditUserForm.js","components/UpdatePasswordForm/UpdatePasswordForm.js","components/Admin/MenuTop/MenuTop.js","components/Admin/MenuSlider/MenuSlider.js","layouts/AdminLayout.js","pages/Admin/AllF1Members/AllF1Members.js","layouts/AdminAllF1Member.js","components/AddCandidateMember/AddCandidateMember.js","pages/Admin/CandidateMember/CandidateMember.js","layouts/AdminCandidateMember.js","pages/Admin/AllF1CandidateMembers/AllF1CandidateMembers.js","layouts/AdminF1CandidateMember.js","pages/Admin/AllJobLinks/AllJobLinks.js","layouts/AdminJobLinks.js","redux/constants/documentConstants.js","redux/actions/documentActions.js","pages/Admin/AllDocuments/DocumentContent.js","pages/Admin/AllDocuments/AllDocuments.js","layouts/AdminDocuments.js","pages/Admin/SignUp/SignUp.js","components/Admin/ForgotPasswordForm/ForgotPasswordForm.js","components/Admin/ResetPasswordForm/ResetPasswordForm.js","pages/Admin/ForgotPassword/ForgotPassword.js","ScrollToTop.js","redux/constants/roomsContants.js","redux/actions/roomsAction.js","pages/Admin/AllBusinessRoom/AllBusinessRoom.js","layouts/AdminAllBusinessRoom.js","pages/Admin/AllBusinessRoom/BusinessRoomContent.js","App.js","reportWebVitals.js","redux/reducers/index.js","redux/reducers/userReducers.js","redux/reducers/documentReducers.js","redux/reducers/citiesReducers.js","redux/reducers/roomsReducer.js","redux/store.js","index.js"],"names":["USER_LOGIN_REQUEST","USER_LOGIN_SUCCESS","USER_LOGIN_FAIL","USER_LOGOUT","USER_REGISTER_REQUEST","USER_REGISTER_SUCCESS","USER_REGISTER_FAIL","FORGOT_PASSWORD_REQUEST","FORGOT_PASSWORD_SUCCESS","FORGOT_PASSWORD_FAIL","FORGOT_PASSWORD_RESET","RESET_PASSWORD_REQUEST","RESET_PASSWORD_SUCCESS","RESET_PASSWORD_FAIL","MEMBER_LIST_REQUEST","MEMBER_LIST_SUCCESS","MEMBER_LIST_FAIL","OVERVIEW_REQUEST","OVERVIEW_SUCCESS","OVERVIEW_FAIL","ADD_CANDIDATE_MEMBER_LIST_REQUEST","ADD_CANDIDATE_MEMBER_LIST_SUCCESS","ADD_CANDIDATE_MEMBER_LIST_FAIL","CANDIDATE_MEMBER_LIST_REQUEST","CANDIDATE_MEMBER_LIST_SUCCESS","CANDIDATE_MEMBER_LIST_FAIL","JOBS_CANDIDATE_MEMBER_LIST_REQUEST","JOBS_CANDIDATE_MEMBER_LIST_SUCCESS","JOBS_CANDIDATE_MEMBER_LIST_FAIL","F1_CANDIDATE_MEMBER_LIST_REQUEST","F1_CANDIDATE_MEMBER_LIST_SUCCESS","F1_CANDIDATE_MEMBER_LIST_FAIL","JOBS_LIST_REQUEST","JOBS_LIST_SUCCESS","JOBS_LIST_FAIL","MEMBER_CREATE_QRCODE_F1_REQUEST","MEMBER_CREATE_QRCODE_F1_SUCCESS","MEMBER_CREATE_QRCODE_F1_FAIL","MEMBER_CREATE_QRCODE_CANDIDATE_REQUEST","MEMBER_CREATE_QRCODE_CANDIDATE_SUCCESS","MEMBER_CREATE_QRCODE_CANDIDATE_FAIL","config","url","API_URL","config_app_url","APP_URL","instance","axios","create","baseURL","concat","requests","login","forgot","resetPassword","getProfile","updateProfile","updatePassword","uploadAvatar","createQrCodeF1","createQrCodeCandidate","register","addCandidate","allF1Members","page","quantity","query","overview","allCandidatesMembers","state","allF1CandidatesMembers","allJoblinksMembers","countrySeo","factorySeo","sectorSeo","allDocuments","arguments","length","undefined","categorySeo","getDocumentContent","seo","fetchVnCities","getAllRooms","getRoomContent","roomId","unSubscribeRoom","subscribeRoom","getAllJobsCandidate","logout","dispatch","localStorage","removeItem","type","listF1MemberUsersAction","async","getState","userLogin","userInfo","headers","Authorization","token","data","get","payload","error","message","response","status","listCandidateMemberUsersAction","listF1CandidateMemberUsersAction","UserSvg","_jsx","viewBox","focusable","class","width","height","fill","children","d","UserIcon","props","Icon","component","QrCodeSvg","QrCodeIcon","Overview","columns","title","dataIndex","key","render","text","record","Link","to","pathname","phone","target","columns_candidates","_jsxs","Popover","content","notes","map","note","style","fontSize","color","dateString","id","placement","trigger","Button","borderRadius","marginRight","lineHeight","padding","icon","InfoCircleOutlined","marginTop","className","backgroundColor","textColor","isPhoneHidden","referrer","jobType","jobSeo","referCode","referByYou","referrerBonus","f0Bonus","useDispatch","cadidatesWithState","setCadidatesWithState","useState","useSelector","latestF1Members","totalF1Members","totalCandidates","latestCandidates","referrerCode","qrCodeForF1Url","qrCodeForCandidateUrl","loading","copySuccess","setCopySuccess","useEffect","obj","candidateState","clickedQrCodeF1","setIsClickedQrCodeF1","clickedQrCodeCandidate","setIsclickedQrCodeCandidate","fontWeight","marginBottom","onClick","navigator","clipboard","writeText","copyMe","notification","description","window","open","err","copyToClipBoard","CopyOutlined","Row","gutter","xs","sm","md","lg","Col","span","Card","bordered","textAlign","float","SolutionOutlined","alignItems","src","disabled","e","preventDefault","post","location","reload","Divider","borderWidth","Table","dataSource","pagination","handleF1CadidateClick","href","handleCadidateClick","Helmet","LIST_VN_CITIES_REQUEST","LIST_VN_CITIES_SUCCESS","LIST_VN_CITIES_FAIL","allCities","Option","Select","RegisterForm","_ref","form","Form","useForm","isSpinning","setIsSpinning","antIcon","LoadingOutlined","spin","referrerDisabled","setReferrerDisabled","userRegister","allCitiesVn","onSuccess","errorState","setErrorState","inputs","setInputs","email","password","repeatPassword","phoneNumber","name","gender","dateOfBirth","address","privacyPolicy","onSubmit","onFinish","emailVal","values","passwordVal","repeatPasswordVal","cityId","moment","format","identityCardNumber","identityBankAccount","upload","originFileObj","member","Name","Phone","Email","Password","ConfirmPassword","Gender","DateOfBirth","CityId","IdentityCardNumber","BankAccount","KycFile","Address","Referrer","bodyFormData","FormData","append","rules","required","Item","Input","prefix","UserOutlined","placeholder","PhoneOutlined","LockOutlined","dependencies","_ref2","getFieldValue","validator","_","value","Promise","reject","Error","resolve","InboxOutlined","autocomplete","allowClear","cities","city","noStyle","DatePicker","locale","BankOutlined","defaultValue","valuePropName","getValueFromEvent","Array","isArray","fileList","Upload","listType","maxCount","beforeUpload","UploadOutlined","fontStyle","htmlType","Spin","position","top","transform","paddingTop","size","spinning","indicator","LoginForm","history","match","setItem","JSON","stringify","SignIn","Content","Layout","TabPane","Tabs","Redirect","logo","alt","routes","Modal","isVisible","setIsVisible","other","ModalAntd","centered","visible","onCancel","footer","EditForm","dateFormat","userData","setUserData","updateUser","onChange","date","getGenderString","String","HomeOutlined","bankAccount","UploadAvatar","avatar","setAvatar","avatarUrl","setAvatarUrl","preview","onDrop","useCallback","acceptedFiles","file","URL","createObjectURL","getRootProps","getInputProps","isDragActive","useDropzone","accept","noKeyboard","Avatar","NoAvatar","role","margin","EditUserForm","setIsReloaded","setLoading","fetchProfileData","avatarFullUrl","userUpdate","date_convert","config_multipart","update_data","UpdatePasswordForm","resetForm","resetFields","oldPasswordVal","oldPassword","OldPassword","NewPassword","MenuTop","isVisibleModal","setIsVisibleModal","modalTitle","setIsModalTitle","modalContent","setIsModalContent","isReloaded","menuCollapsed","setMenuCollapsed","_Fragment","Route","path","AdminSignIn","menu","Menu","editUser","editPassword","danger","logoutUser","marginLeft","MenuUnfoldOutlined","MenuFoldOutlined","Dropdown","overlay","withRouter","Sider","breakpoint","onBreakpoint","broken","onCollapse","collapsed","theme","mode","defaultSelectedKeys","TeamOutlined","ShoppingCartOutlined","BookOutlined","ShoppingOutlined","display","flexDirection","backgroundPosition","AdminLayout","Header","Footer","AdminOverview","AllF1Members","scroll","memberUserList","setPage","keyword","setKeyword","Search","total","members","tableColumns","item","pagination_config","pageSize","pageNumber","onSearch","enterButton","AdminAllF1Member","academicLevels","lable","AddCandidateMember","_data$allJobs","_data$allCities","setOpen","fetchData","allJobsCandidate","loadingJobs","jobs","allJobs","job","jobId","birthday","academicLevel","formCandidateMember","JobId","Note","AcademicLevel","cadidate","showSearch","optionFilterProp","filterOption","input","option","toLowerCase","indexOf","TextArea","states","label","CandidateMember","params_search","queryString","parse","search","setState","stateF1","setStateF1","keywordF1","setKeywordF1","pageCadidate","setPageCadidate","pageCadidateF1","setPageCadidateF1","columns_f1_candidates","toFixed","replace","files","fullUrl","FileDoneOutlined","createdAt","tableCandidatesColumns","tableF1CandidatesColumns","f1CadidatesWithState","setf1CadidatesWithState","candidateMemberUserList","candidates","f1Candidates","totalF1","errorF1","loadingF1","k","s","kf1","sf1","pagination_config_candidate","pagination_config_candidate_f1","PlusCircleOutlined","endpoint","origin","toString","x","handleAddCandidateSuccess","AdminCandidateMember","AllF1CandidateMembers","AdminF1CandidateMember","AllJobLinks","searchText","setSearchText","sectorTextSeo","setSectorTextSeo","factoryTextSeo","setFactoryTextSeo","countryTextSeo","setCountryTextSeo","sectorText","setSectorText","factoryText","setFactoryText","countryText","setCountryText","setQuantity","zIndex","jobName","detailJobUrl","cost","registrationEndDate","isExpired","allJobLinks","allSectors","allFactories","allCountries","onBlur","onFocus","c","f","listJobLinksAction","country","push","factory","cityName","sector","AdminJobLinks","DOCUMENTS_LIST_REQUEST","DOCUMENTS_LIST_SUCCESS","DOCUMENTS_LIST_FAIL","DocumentContent","setContent","fetchDocumentContent","categoryTextSeo","setCategoryTextSeo","showContent","subject","attachFileFullUrl","documents","allCategories","getDocumentsAction","category","AdminDocuments","AllDocuments","SignUp","referrerFromStorage","getItem","decodeURIComponent","RegExp","encodeURIComponent","getQueryStringValue","ref","ForgotPasswordForm","forgotPasswordState","forgotPassword","ResetPasswordUrl","info","ResetPasswordForm","resetkey","secretcode","resetPasswordState","Id","ResetKey","SecretCode","ForgotPassword","ArrowLeftOutlined","unlisten","listen","scrollTo","LIST_ROOMS_REQUEST","LIST_ROOMS_SUCCESS","LIST_ROOMS_FAIL","ROOM_CONTENT_FAIL","ROOM_CONTENT_REQUEST","ROOM_CONTENT_SUCCESS","allRooms","roomDetails","endponit","room","AllBusinessRoom","_roomsItems$rooms","_roomsItems$rooms$reg","_roomsItems$rooms2","_roomsItems$rooms3","_roomsItems$rooms3$un","_roomsItems$rooms4","roomsItems","setSpin","roomListLocal","setRoomListLocal","storedTotalMessages","handleSubscribeRoom","console","log","roomCheck","find","msg","totalMessages","rooms","registeredItems","featureImageUrl","totalMembers","BellOutlined","isSubscribed","handleUnSubscribeRoom","roomLocal","findIndex","updatedRoomList","handleJoinRoom","ArrowRightOutlined","offset","Empty","unregisteredItems","justifyContent","background","AdminAllBusinessRoom","BusinessRoomContent","_roomContent$room","_roomContent$room$roo","_roomContent$room2","_roomContent$room2$ro","_roomContent$room3","_roomContent$room3$ro","_roomContent$room4","_roomContent$room4$ro","_roomContent$room5","_roomContent$room5$ro","_roomContent$room6","_roomContent$room6$ro","_roomContent$room8","_roomContent$room8$ro","_roomContent$room9","_roomContent$room9$ro","_roomContent$room10","_roomContent$room10$i","_roomContent$room11","_roomContent$room12","confirm","roomContent","params","openStates","setOpenStates","p","q","updatedParams","searchString","openNotification","success","hideModal","handleToggle","itemId","prevStates","isImageFile","extension","split","pop","includes","innerWidth","ghost","borderColor","LeftOutlined","url_state","urlObject","supporters","support","_roomContent$room7","_roomContent$room7$ro","ExclamationCircleFilled","okType","cancelText","okText","onOk","items","_item$files","shortDescription","whiteSpace","dangerouslySetInnerHTML","__html","UpOutlined","DownOutlined","FieldTimeOutlined","twoToneColor","CopyToClipboard","onCopy","handleCopy","overflowX","React","Fragment","Image","PreviewGroup","current","prev","objectFit","rel","DownloadOutlined","Pagination","defaultCurrent","Number","App","Router","Switch","MenuSlider","exact","ScrollToTop","reportWebVitals","onPerfEntry","Function","then","getCLS","getFID","getFCP","getLCP","getTTFB","combineReducers","action","userDetail","user","userUpdateProfile","qrCodeF1","qrCodeF1Url","qrCodeCandidate","qrCodeCandidateUrl","initialState","middleware","thunk","store","createStore","rootReducer","composeWithDevTools","applyMiddleware","ReactDOM","Provider","document","getElementById"],"mappings":"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","file":"static/js/main.c7f10c0d.chunk.js","sourcesContent":["export const USER_LOGIN_REQUEST = \"USER_LOGIN_REQUEST\";\r\nexport const USER_LOGIN_SUCCESS = \"USER_LOGIN_SUCCESS\";\r\nexport const USER_LOGIN_FAIL = \"USER_LOGIN_FAIL\";\r\nexport const USER_LOGOUT = \"USER_LOGOUT\";\r\n\r\nexport const USER_REGISTER_REQUEST = \"USER_REGISTER_REQUEST\";\r\nexport const USER_REGISTER_SUCCESS = \"USER_REGISTER_SUCCESS\";\r\nexport const USER_REGISTER_FAIL = \"USER_REGISTER_FAIL\";\r\n\r\nexport const USER_DETAILS_REQUEST = \"USER_DETAILS_REQUEST\";\r\nexport const USER_DETAILS_SUCCESS = \"USER_DETAILS_SUCCESS\";\r\nexport const USER_DETAILS_FAIL = \"USER_DETAILS_FAIL\";\r\nexport const USER_DETAILS_RESET = \"USER_DETAILS_RESET\";\r\n\r\nexport const FORGOT_PASSWORD_REQUEST = \"FORGOT_PASSWORD_REQUEST\";\r\nexport const FORGOT_PASSWORD_SUCCESS = \"FORGOT_PASSWORD_SUCCESS\";\r\nexport const FORGOT_PASSWORD_FAIL = \"FORGOT_PASSWORD_FAIL\";\r\nexport const FORGOT_PASSWORD_RESET = \"FORGOT_PASSWORD_RESET\";\r\n\r\nexport const RESET_PASSWORD_REQUEST = \"RESET_PASSWORD_REQUEST\";\r\nexport const RESET_PASSWORD_SUCCESS = \"RESET_PASSWORD_SUCCESS\";\r\nexport const RESET_PASSWORD_FAIL = \"RESET_PASSWORD_FAIL\";\r\nexport const RESET_PASSWORD_RESET = \"RESET_PASSWORD_RESET\";\r\n\r\nexport const USER_UPDATE_PROFILE_REQUEST = \"USER_UPDATE_PROFILE_REQUEST\";\r\nexport const USER_UPDATE_PROFILE_SUCCESS = \"USER_UPDATE_PROFILE_SUCCESS\";\r\nexport const USER_UPDATE_PROFILE_FAIL = \"USER_UPDATE_PROFILE_FAIL\";\r\nexport const USER_UPDATE_PROFILE_RESET = \"USER_UPDATE_PROFILE_RESET\";\r\n\r\nexport const MEMBER_LIST_REQUEST = \"MEMBER_LIST_REQUEST\";\r\nexport const MEMBER_LIST_SUCCESS = \"MEMBER_LIST_SUCCESS\";\r\nexport const MEMBER_LIST_FAIL = \"MEMBER_LIST_FAIL\";\r\nexport const MEMBER_LIST_RESET = \"MEMBER_LIST_RESET\";\r\n\r\nexport const OVERVIEW_REQUEST = \"OVERVIEW_REQUEST\";\r\nexport const OVERVIEW_SUCCESS = \"OVERVIEW_SUCCESS\";\r\nexport const OVERVIEW_FAIL = \"OVERVIEW_FAIL\";\r\n\r\nexport const ADD_CANDIDATE_MEMBER_LIST_REQUEST =\r\n \"ADD_CANDIDATE_MEMBER_LIST_REQUEST\";\r\nexport const ADD_CANDIDATE_MEMBER_LIST_SUCCESS =\r\n \"ADD_CANDIDATE_MEMBER_LIST_SUCCESS\";\r\nexport const ADD_CANDIDATE_MEMBER_LIST_FAIL = \"ADD_CANDIDATE_MEMBER_LIST_FAIL\";\r\n\r\nexport const CANDIDATE_MEMBER_LIST_REQUEST = \"CANDIDATE_MEMBER_LIST_REQUEST\";\r\nexport const CANDIDATE_MEMBER_LIST_SUCCESS = \"CANDIDATE_MEMBER_LIST_SUCCESS\";\r\nexport const CANDIDATE_MEMBER_LIST_FAIL = \"CANDIDATE_MEMBER_LIST_FAIL\";\r\nexport const CANDIDATE_MEMBER_LIST_RESET = \"CANDIDATE_MEMBER_LIST_RESET\";\r\n\r\nexport const JOBS_CANDIDATE_MEMBER_LIST_REQUEST =\r\n \"JOBS_CANDIDATE_MEMBER_LIST_REQUEST\";\r\nexport const JOBS_CANDIDATE_MEMBER_LIST_SUCCESS =\r\n \"JOBS_CANDIDATE_MEMBER_LIST_SUCCESS\";\r\nexport const JOBS_CANDIDATE_MEMBER_LIST_FAIL =\r\n \"JOBS_CANDIDATE_MEMBER_LIST_FAIL\";\r\n\r\nexport const F1_CANDIDATE_MEMBER_LIST_REQUEST =\r\n \"F1_CANDIDATE_MEMBER_LIST_REQUEST\";\r\nexport const F1_CANDIDATE_MEMBER_LIST_SUCCESS =\r\n \"F1_CANDIDATE_MEMBER_LIST_SUCCESS\";\r\nexport const F1_CANDIDATE_MEMBER_LIST_FAIL = \"F1_CANDIDATE_MEMBER_LIST_FAIL\";\r\n\r\nexport const JOBS_LIST_REQUEST = \"JOBS_LIST_REQUEST\";\r\nexport const JOBS_LIST_SUCCESS = \"JOBS_LIST_SUCCESS\";\r\nexport const JOBS_LIST_FAIL = \"JOBS_LIST_FAIL\";\r\n\r\nexport const MEMBER_CREATE_QRCODE_F1_REQUEST =\r\n \"MEMBER_CREATE_QRCODE_F1_REQUEST\";\r\nexport const MEMBER_CREATE_QRCODE_F1_SUCCESS =\r\n \"MEMBER_CREATE_QRCODE_F1_SUCCESS\";\r\nexport const MEMBER_CREATE_QRCODE_F1_FAIL = \"MEMBER_CREATE_QRCODE_F1_FAIL\";\r\nexport const MEMBER_CREATE_QRCODE_CANDIDATE_REQUEST =\r\n \"MEMBER_CREATE_QRCODE_CANDIDATE_REQUEST\";\r\nexport const MEMBER_CREATE_QRCODE_CANDIDATE_SUCCESS =\r\n \"MEMBER_CREATE_QRCODE_CANDIDATE_SUCCESS\";\r\nexport const MEMBER_CREATE_QRCODE_CANDIDATE_FAIL =\r\n \"MEMBER_CREATE_QRCODE_CANDIDATE_FAIL\";\r\n","const prod = {\r\n url: {\r\n API_URL: 'https://api.hubgroup.vn',\r\n },\r\n};\r\nconst dev = {\r\n url: {\r\n API_URL: 'https://api.hubgroup.vn',\r\n },\r\n};\r\nexport const config = process.env.NODE_ENV === 'development' ? dev : prod;\r\n\r\nconst prod_app_url = {\r\n url: {\r\n APP_URL: 'https://app.hubgroup.vn',\r\n },\r\n};\r\nconst dev_app_url = {\r\n url: {\r\n APP_URL: 'http://localhost:3000',\r\n },\r\n};\r\nexport const config_app_url =\r\n process.env.NODE_ENV === 'development' ? dev_app_url : prod_app_url;\r\n","import axios from 'axios';\r\nimport { config } from './bassUrl';\r\n\r\nconst instance = axios.create({\r\n baseURL: `${config.url.API_URL}`,\r\n});\r\n\r\nexport default instance;\r\n","const requests = {\r\n login: `/member/login`,\r\n forgot: `/member/forgotpassword`,\r\n resetPassword: `/member/resetpassword`,\r\n getProfile: `/member/getprofile`,\r\n updateProfile: `/member/updateprofile`,\r\n updatePassword: `/member/updatepassword`,\r\n uploadAvatar: `/member/updateavatar`,\r\n createQrCodeF1: `/member/createqrcodeforf1`,\r\n createQrCodeCandidate: `/member/createqrcodeforcandidate`,\r\n register: `/member/register`,\r\n addCandidate: `/member/addcandidate`,\r\n allF1Members: (page, quantity, query) =>\r\n `/member/getf1members/${page}/${quantity}/${query}`,\r\n overview: `/member/getoverview`,\r\n allCandidatesMembers: (page, quantity, query, state) =>\r\n `/member/getcandidates/${page}/${quantity}/${query}/${state}`,\r\n allF1CandidatesMembers: (page, quantity, query, state) =>\r\n `/member/getf1candidates/${page}/${quantity}/${query}/${state}`,\r\n allJoblinksMembers: (\r\n page,\r\n quantity,\r\n query,\r\n countrySeo,\r\n factorySeo,\r\n sectorSeo\r\n ) =>\r\n `/member/getjoblinks/${page}/${quantity}/${query}/${countrySeo}/${factorySeo}/${sectorSeo}`,\r\n allDocuments: (page, quantity, query = \"\", categorySeo = \"\") =>\r\n `/document/search/${page}/${quantity}/${query}/${categorySeo}`,\r\n getDocumentContent: (seo) => `/document/getdetail/${seo}`,\r\n // allF1CandidatesMembers: (page, quantity, query, factoryId, sectorId) =>\r\n // `member/getjoblinks/${page}/${quantity}/${query}/${factoryId}/${sectorId} `,\r\n fetchVnCities: `/data/getvncities`,\r\n getAllRooms: `/room/getall`,\r\n getRoomContent: (page, quantity, roomId, query) =>\r\n `/room/search/${page}/${quantity}/${roomId}/${query} `,\r\n unSubscribeRoom: (roomId) => `/room/unsubscribe/${roomId}`,\r\n subscribeRoom: (roomId) => `/room/subscribe/${roomId}`,\r\n getAllJobsCandidate: `/job/getcandidatedata`,\r\n};\r\n\r\nexport default requests;\r\n","import {\r\n USER_DETAILS_FAIL,\r\n USER_DETAILS_REQUEST,\r\n USER_DETAILS_RESET,\r\n USER_DETAILS_SUCCESS,\r\n USER_LOGIN_FAIL,\r\n USER_LOGIN_REQUEST,\r\n USER_LOGIN_SUCCESS,\r\n USER_LOGOUT,\r\n USER_REGISTER_FAIL,\r\n USER_REGISTER_REQUEST,\r\n USER_REGISTER_SUCCESS,\r\n USER_UPDATE_PROFILE_FAIL,\r\n USER_UPDATE_PROFILE_REQUEST,\r\n USER_UPDATE_PROFILE_SUCCESS,\r\n USER_UPDATE_PROFILE_RESET,\r\n MEMBER_LIST_REQUEST,\r\n MEMBER_LIST_SUCCESS,\r\n MEMBER_LIST_FAIL,\r\n OVERVIEW_SUCCESS,\r\n OVERVIEW_REQUEST,\r\n OVERVIEW_FAIL,\r\n CANDIDATE_MEMBER_LIST_REQUEST,\r\n CANDIDATE_MEMBER_LIST_SUCCESS,\r\n CANDIDATE_MEMBER_LIST_FAIL,\r\n F1_CANDIDATE_MEMBER_LIST_REQUEST,\r\n F1_CANDIDATE_MEMBER_LIST_SUCCESS,\r\n F1_CANDIDATE_MEMBER_LIST_FAIL,\r\n JOBS_LIST_REQUEST,\r\n JOBS_LIST_SUCCESS,\r\n JOBS_LIST_FAIL,\r\n FORGOT_PASSWORD_REQUEST,\r\n FORGOT_PASSWORD_SUCCESS,\r\n FORGOT_PASSWORD_FAIL,\r\n RESET_PASSWORD_REQUEST,\r\n RESET_PASSWORD_SUCCESS,\r\n RESET_PASSWORD_FAIL,\r\n MEMBER_CREATE_QRCODE_F1_REQUEST,\r\n MEMBER_CREATE_QRCODE_F1_SUCCESS,\r\n MEMBER_CREATE_QRCODE_F1_FAIL,\r\n MEMBER_CREATE_QRCODE_CANDIDATE_REQUEST,\r\n MEMBER_CREATE_QRCODE_CANDIDATE_SUCCESS,\r\n MEMBER_CREATE_QRCODE_CANDIDATE_FAIL,\r\n ADD_CANDIDATE_MEMBER_LIST_REQUEST,\r\n ADD_CANDIDATE_MEMBER_LIST_SUCCESS,\r\n ADD_CANDIDATE_MEMBER_LIST_FAIL,\r\n JOBS_CANDIDATE_MEMBER_LIST_REQUEST,\r\n JOBS_CANDIDATE_MEMBER_LIST_SUCCESS,\r\n JOBS_CANDIDATE_MEMBER_LIST_FAIL,\r\n} from \"../constants/userConstants\";\r\n\r\nimport axios from \"../../services/axios\";\r\nimport requests from \"../../services/requests\";\r\n\r\nexport const login = (member) => async (dispatch) => {\r\n try {\r\n dispatch({\r\n type: USER_LOGIN_REQUEST,\r\n });\r\n\r\n const config = {\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n };\r\n\r\n const { data } = await axios.post(requests.login, member, config);\r\n\r\n dispatch({\r\n type: USER_LOGIN_SUCCESS,\r\n payload: data,\r\n });\r\n\r\n localStorage.setItem(\"userInfo\", JSON.stringify(data));\r\n } catch (error) {\r\n dispatch({\r\n type: USER_LOGIN_FAIL,\r\n payload:\r\n error.response && error.response.data.message\r\n ? error.response.data.message\r\n : error.message,\r\n });\r\n }\r\n};\r\n\r\nexport const resetPasswordAction = (info) => async (dispatch) => {\r\n try {\r\n dispatch({\r\n type: RESET_PASSWORD_REQUEST,\r\n });\r\n\r\n const config = {\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n };\r\n\r\n const response = await axios.post(requests.resetPassword, info, config);\r\n dispatch({\r\n type: RESET_PASSWORD_SUCCESS,\r\n payload: response,\r\n });\r\n } catch (error) {\r\n dispatch({\r\n type: RESET_PASSWORD_FAIL,\r\n payload:\r\n error.response && error.response.data.message\r\n ? error.response.data.message\r\n : error.message,\r\n });\r\n }\r\n};\r\n\r\nexport const forgotPasswordAction = (info) => async (dispatch) => {\r\n try {\r\n dispatch({\r\n type: FORGOT_PASSWORD_REQUEST,\r\n });\r\n\r\n const config = {\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n };\r\n\r\n const response = await axios.post(requests.forgot, info, config);\r\n\r\n dispatch({\r\n type: FORGOT_PASSWORD_SUCCESS,\r\n payload: response,\r\n });\r\n } catch (error) {\r\n dispatch({\r\n type: FORGOT_PASSWORD_FAIL,\r\n payload:\r\n error.response && error.response.data.message\r\n ? error.response.data.message\r\n : error.message,\r\n });\r\n }\r\n};\r\n\r\nexport const logout = () => (dispatch) => {\r\n localStorage.removeItem(\"userInfo\");\r\n\r\n dispatch({ type: USER_LOGOUT });\r\n // dispatch({ type: USER_DETAILS_RESET });\r\n // document.location.href = '/login';\r\n};\r\n\r\nexport const register = (member) => async (dispatch) => {\r\n try {\r\n dispatch({\r\n type: USER_REGISTER_REQUEST,\r\n });\r\n\r\n const config = {\r\n headers: {\r\n \"Content-Type\": \"multipart/form-data\",\r\n },\r\n };\r\n\r\n var bodyFormData = new FormData();\r\n bodyFormData.append(\"Name\", member.Name);\r\n bodyFormData.append(\"Phone\", member.Phone);\r\n bodyFormData.append(\"Password\", member.Password);\r\n bodyFormData.append(\"ConfirmPassword\", member.ConfirmPassword);\r\n bodyFormData.append(\"Email\", member.Email);\r\n bodyFormData.append(\"Gender\", member.Gender);\r\n bodyFormData.append(\"DateOfBirth\", member.DateOfBirth);\r\n bodyFormData.append(\"Address\", member.Address);\r\n bodyFormData.append(\"IdentityCardNumber\", member.IdentityCardNumber);\r\n bodyFormData.append(\"BankAccount\", member.BankAccount);\r\n bodyFormData.append(\"KycFile\", member.KycFile);\r\n bodyFormData.append(\"Referrer\", member.Referrer);\r\n axios.post();\r\n const response = await axios.post(requests.register, bodyFormData, config);\r\n dispatch({\r\n type: USER_REGISTER_SUCCESS,\r\n payload: response,\r\n });\r\n\r\n // localStorage.setItem('userInfo', JSON.stringify(data));\r\n } catch (error) {\r\n dispatch({\r\n type: USER_REGISTER_FAIL,\r\n payload:\r\n error.response && error.response.data.message\r\n ? error.response.data.message\r\n : error.message,\r\n });\r\n }\r\n};\r\n\r\nexport const addCandidateMember = (cadidate) => async (dispatch, getState) => {\r\n // console.log(\"cadidate\", cadidate);\r\n try {\r\n dispatch({\r\n type: ADD_CANDIDATE_MEMBER_LIST_REQUEST,\r\n });\r\n\r\n const {\r\n userLogin: { userInfo },\r\n } = getState();\r\n\r\n const config = {\r\n headers: {\r\n Authorization: `Bearer ${userInfo.token}`,\r\n \"Content-type\": \"application/json; charset=UTF-8\",\r\n },\r\n };\r\n\r\n const response = await axios.post(requests.addCandidate, cadidate, {\r\n headers: {\r\n Authorization: `Bearer ${userInfo.token}`,\r\n \"Content-Type\": \"application/json\",\r\n },\r\n });\r\n dispatch({\r\n type: ADD_CANDIDATE_MEMBER_LIST_SUCCESS,\r\n payload: response,\r\n });\r\n\r\n // localStorage.setItem('userInfo', JSON.stringify(data));\r\n } catch (error) {\r\n dispatch({\r\n type: ADD_CANDIDATE_MEMBER_LIST_FAIL,\r\n payload:\r\n error.response && error.response.data.message\r\n ? error.response.data.message\r\n : error.message,\r\n });\r\n }\r\n};\r\n\r\nexport const listF1MemberUsersAction =\r\n (page, quantity, query) => async (dispatch, getState) => {\r\n try {\r\n dispatch({\r\n type: MEMBER_LIST_REQUEST,\r\n });\r\n\r\n const {\r\n userLogin: { userInfo },\r\n } = getState();\r\n\r\n const config = {\r\n headers: {\r\n Authorization: `Bearer ${userInfo.token}`,\r\n },\r\n };\r\n\r\n const { data } = await axios.get(\r\n requests.allF1Members(page, quantity, query),\r\n config\r\n );\r\n dispatch({\r\n type: MEMBER_LIST_SUCCESS,\r\n payload: data,\r\n });\r\n } catch (error) {\r\n const message =\r\n error.response && error.response.data.message\r\n ? error.response.data.message\r\n : error.message;\r\n if (error.response && error.response.status === 401) {\r\n dispatch(logout());\r\n }\r\n dispatch({\r\n type: MEMBER_LIST_FAIL,\r\n payload: message,\r\n });\r\n }\r\n };\r\n\r\nexport const listCandidateMemberUsersAction =\r\n (page, quantity, query = 0, state) =>\r\n async (dispatch, getState) => {\r\n try {\r\n dispatch({\r\n type: CANDIDATE_MEMBER_LIST_REQUEST,\r\n });\r\n\r\n const {\r\n userLogin: { userInfo },\r\n } = getState();\r\n\r\n const config = {\r\n headers: {\r\n Authorization: `Bearer ${userInfo.token}`,\r\n },\r\n };\r\n\r\n const { data } = await axios.get(\r\n requests.allCandidatesMembers(page, quantity, query, state),\r\n config\r\n );\r\n dispatch({\r\n type: CANDIDATE_MEMBER_LIST_SUCCESS,\r\n payload: data,\r\n });\r\n } catch (error) {\r\n const message =\r\n error.response && error.response.data.message\r\n ? error.response.data.message\r\n : error.message;\r\n if (error.response && error.response.status === 401) {\r\n dispatch(logout());\r\n }\r\n dispatch({\r\n type: CANDIDATE_MEMBER_LIST_FAIL,\r\n payload: message,\r\n });\r\n }\r\n };\r\n\r\nexport const listF1CandidateMemberUsersAction =\r\n (page, quantity, query = \" \", state) =>\r\n async (dispatch, getState) => {\r\n try {\r\n dispatch({\r\n type: F1_CANDIDATE_MEMBER_LIST_REQUEST,\r\n });\r\n\r\n const {\r\n userLogin: { userInfo },\r\n } = getState();\r\n\r\n const config = {\r\n headers: {\r\n Authorization: `Bearer ${userInfo.token}`,\r\n },\r\n };\r\n\r\n const { data } = await axios.get(\r\n requests.allF1CandidatesMembers(page, quantity, query, state),\r\n config\r\n );\r\n dispatch({\r\n type: F1_CANDIDATE_MEMBER_LIST_SUCCESS,\r\n payload: data,\r\n });\r\n } catch (error) {\r\n const message =\r\n error.response && error.response.data.message\r\n ? error.response.data.message\r\n : error.message;\r\n if (error.response && error.response.status === 401) {\r\n dispatch(logout());\r\n }\r\n dispatch({\r\n type: F1_CANDIDATE_MEMBER_LIST_FAIL,\r\n payload: message,\r\n });\r\n }\r\n };\r\n\r\nexport const listJobLinksAction =\r\n (\r\n page,\r\n quantity,\r\n query = \"\",\r\n countrySeo = \"\",\r\n factorySeo = \"\",\r\n sectorSeo = \"\"\r\n ) =>\r\n async (dispatch, getState) => {\r\n try {\r\n dispatch({\r\n type: JOBS_LIST_REQUEST,\r\n });\r\n\r\n const {\r\n userLogin: { userInfo },\r\n } = getState();\r\n\r\n const config = {\r\n headers: {\r\n Authorization: `Bearer ${userInfo.token}`,\r\n },\r\n };\r\n\r\n // const response = await axios.get(\r\n // requests.allJoblinksMembers(\r\n // page,\r\n // quantity,\r\n // query,\r\n // countrySeo,\r\n // factorySeo,\r\n // sectorSeo\r\n // ),\r\n // config\r\n // );\r\n\r\n const { data } = await axios.get(\r\n requests.allJoblinksMembers(\r\n page,\r\n quantity,\r\n query,\r\n countrySeo,\r\n factorySeo,\r\n sectorSeo\r\n ),\r\n config\r\n );\r\n dispatch({\r\n type: JOBS_LIST_SUCCESS,\r\n payload: data,\r\n });\r\n } catch (error) {\r\n const message =\r\n error.response && error.response.data.message\r\n ? error.response.data.message\r\n : error.message;\r\n if (error.response && error.response.status === 401) {\r\n dispatch(logout());\r\n }\r\n dispatch({\r\n type: JOBS_LIST_FAIL,\r\n payload: message,\r\n });\r\n }\r\n };\r\n\r\nexport const overviewAction = () => async (dispatch, getState) => {\r\n try {\r\n dispatch({\r\n type: OVERVIEW_REQUEST,\r\n });\r\n\r\n const {\r\n userLogin: { userInfo },\r\n } = getState();\r\n\r\n const config = {\r\n headers: {\r\n Authorization: `Bearer ${userInfo.token}`,\r\n },\r\n };\r\n const { data } = await axios.get(requests.overview, config);\r\n dispatch({\r\n type: OVERVIEW_SUCCESS,\r\n payload: data,\r\n });\r\n } catch (error) {\r\n const message =\r\n error.response && error.response.data.message\r\n ? error.response.data.message\r\n : error.message;\r\n if (error.response && error.response.status === 401) {\r\n dispatch(logout());\r\n }\r\n dispatch({\r\n type: OVERVIEW_FAIL,\r\n payload: message,\r\n });\r\n }\r\n};\r\n\r\nexport const qrCodeF1Action = () => async (dispatch, getState) => {\r\n try {\r\n dispatch({\r\n type: MEMBER_CREATE_QRCODE_F1_REQUEST,\r\n });\r\n\r\n const {\r\n userLogin: { userInfo },\r\n } = getState();\r\n\r\n const config = {\r\n headers: {\r\n Authorization: `Bearer ${userInfo.token}`,\r\n },\r\n };\r\n\r\n const { data } = await axios.post(requests.createQrCodeF1, null, config);\r\n dispatch({\r\n type: MEMBER_CREATE_QRCODE_F1_SUCCESS,\r\n payload: data,\r\n });\r\n window.location.reload(true);\r\n } catch (error) {\r\n const message =\r\n error.response && error.response.data.message\r\n ? error.response.data.message\r\n : error.message;\r\n dispatch({\r\n type: MEMBER_CREATE_QRCODE_F1_FAIL,\r\n payload: message,\r\n });\r\n if (error.response && error.response.status === 401) {\r\n dispatch(logout());\r\n } else {\r\n window.location.reload(true);\r\n }\r\n }\r\n};\r\n\r\nexport const qrCodeCandidateAction = () => async (dispatch, getState) => {\r\n try {\r\n dispatch({\r\n type: MEMBER_CREATE_QRCODE_CANDIDATE_REQUEST,\r\n });\r\n\r\n const {\r\n userLogin: { userInfo },\r\n } = getState();\r\n\r\n const config = {\r\n headers: {\r\n Authorization: `Bearer ${userInfo.token}`,\r\n },\r\n };\r\n const { data } = await axios.post(\r\n requests.createQrCodeCandidate,\r\n null,\r\n config\r\n );\r\n dispatch({\r\n type: MEMBER_CREATE_QRCODE_CANDIDATE_SUCCESS,\r\n payload: data,\r\n });\r\n window.location.reload(true);\r\n } catch (error) {\r\n const message =\r\n error.response && error.response.data.message\r\n ? error.response.data.message\r\n : error.message;\r\n dispatch({\r\n type: MEMBER_CREATE_QRCODE_CANDIDATE_FAIL,\r\n payload: message,\r\n });\r\n if (error.response && error.response.status === 401) {\r\n dispatch(logout());\r\n } else {\r\n window.location.reload(true);\r\n }\r\n }\r\n};\r\n\r\nexport const getAllJobsCandidateAction = () => async (dispatch, getState) => {\r\n try {\r\n dispatch({\r\n type: JOBS_CANDIDATE_MEMBER_LIST_REQUEST,\r\n });\r\n\r\n const {\r\n userLogin: { userInfo },\r\n } = getState();\r\n\r\n const config = {\r\n headers: {\r\n Authorization: `Bearer ${userInfo.token}`,\r\n },\r\n };\r\n const { data } = await axios.get(requests.getAllJobsCandidate, config);\r\n // console.log(\"data\", data);\r\n dispatch({\r\n type: JOBS_CANDIDATE_MEMBER_LIST_SUCCESS,\r\n payload: data,\r\n });\r\n } catch (error) {\r\n const message =\r\n error.response && error.response.data.message\r\n ? error.response.data.message\r\n : error.message;\r\n if (error.response && error.response.status === 401) {\r\n dispatch(logout());\r\n }\r\n dispatch({\r\n type: JOBS_CANDIDATE_MEMBER_LIST_FAIL,\r\n payload: message,\r\n });\r\n }\r\n};\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { Popover, Table } from \"antd\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { Divider, Row, Col, Card, Button, notification } from \"antd\";\r\nimport Icon, { InfoCircleOutlined } from \"@ant-design/icons\";\r\nimport { Helmet } from \"react-helmet\";\r\n\r\nimport {\r\n overviewAction,\r\n qrCodeF1Action,\r\n qrCodeCandidateAction,\r\n} from \"../../../redux/actions/userActions\";\r\nimport {\r\n UserOutlinedm,\r\n CopyOutlined,\r\n SolutionOutlined,\r\n} from \"@ant-design/icons\";\r\nimport \"./Overview.scss\";\r\nimport { config_app_url } from \"../../../services/bassUrl\";\r\n\r\nconst UserSvg = () => (\r\n \r\n \r\n \r\n);\r\n\r\nconst UserIcon = (props) => ;\r\n\r\nconst CandidateSvg = () => (\r\n \r\n \r\n \r\n);\r\n\r\nconst CandidateIcon = (props) => ;\r\n\r\nconst QrCodeSvg = () => (\r\n \r\n \r\n \r\n);\r\n\r\nconst QrCodeIcon = (props) => ;\r\n\r\nconst Overview = () => {\r\n const columns = [\r\n // {\r\n // title: 'Ảnh / KYC',\r\n // dataIndex: 'avatarFullUrl',\r\n // key: 'avatarFullUrl',\r\n // responsive: ['md'],\r\n\r\n // render: (imageUrl) => {imageUrl},\r\n // },\r\n {\r\n title: \"Họ tên\",\r\n dataIndex: \"name\",\r\n key: \"name\",\r\n // responsive: ['md'],\r\n },\r\n {\r\n title: \"Email\",\r\n dataIndex: \"email\",\r\n key: \"email\",\r\n // responsive: ['md'],\r\n },\r\n {\r\n title: \"Số điện thoại\",\r\n dataIndex: \"phone\",\r\n key: \"phone\",\r\n render: (text, record) => (\r\n \r\n {text}\r\n \r\n ),\r\n },\r\n {\r\n title: \"Địa chỉ\",\r\n dataIndex: \"address\",\r\n key: \"address\",\r\n // responsive: ['md'],\r\n },\r\n ];\r\n\r\n const columns_candidates = [\r\n {\r\n title: \"Thông tin ứng viên\",\r\n dataIndex: \"name\",\r\n key: \"name\",\r\n render: (text, record) => (\r\n
\r\n {/* {console.log(\"record\", record)} */}\r\n
\r\n \r\n {record.notes.length > 0\r\n ? record.notes.map((note) => (\r\n

\r\n \r\n {note.dateString}\r\n {\" \"}\r\n - {note.message}\r\n

\r\n ))\r\n : \"Trống\"}\r\n
\r\n }\r\n placement=\"right\"\r\n title=\"Tiến độ\"\r\n trigger=\"click\"\r\n >\r\n }\r\n title=\"Tiến độ\"\r\n >\r\n \r\n {text}\r\n
\r\n\r\n
\r\n \r\n {record.text}\r\n \r\n
\r\n \r\n ),\r\n },\r\n\r\n // {\r\n // title: 'Thông tin ứng viên',\r\n // dataIndex: 'name',\r\n // key: 'name',\r\n // // responsive: ['md'],\r\n // },\r\n\r\n {\r\n title: \"Số điện thoại\",\r\n dataIndex: \"phone\",\r\n key: \"phone\",\r\n render: (text, record) =>\r\n record.isPhoneHidden ? (\r\n record.phone\r\n ) : (\r\n \r\n {text}\r\n \r\n ),\r\n },\r\n {\r\n title: \"Địa chỉ\",\r\n dataIndex: \"address\",\r\n key: \"address\",\r\n },\r\n {\r\n title: \"Thành viên giới thiệu\",\r\n dataIndex: \"referrer\",\r\n key: \"referrer\",\r\n render: (text, record) => (\r\n \r\n {text}\r\n \r\n ),\r\n },\r\n {\r\n title: \"Tên đơn hàng/việc làm\",\r\n dataIndex: \"jobName\",\r\n key: \"jobName\",\r\n render: (text, record) => (\r\n \r\n {text}\r\n \r\n ),\r\n },\r\n {\r\n title: \"Tiền hoa hồng\",\r\n dataIndex: \"referrerBonus\",\r\n key: \"referrerBonus\",\r\n render: (text, record) =>\r\n record.referByYou && record.referByYou === true\r\n ? record.referrerBonus\r\n : record.f0Bonus,\r\n },\r\n ];\r\n const dispatch = useDispatch();\r\n const [cadidatesWithState, setCadidatesWithState] = useState([]);\r\n\r\n // const memberUserList = useSelector((state) => state.memberUserList);\r\n const overview = useSelector((state) => state.overview);\r\n\r\n const {\r\n latestF1Members,\r\n totalF1Members,\r\n totalCandidates,\r\n latestCandidates,\r\n referrerCode,\r\n qrCodeForF1Url,\r\n qrCodeForCandidateUrl,\r\n error,\r\n loading,\r\n } = overview;\r\n\r\n const [copySuccess, setCopySuccess] = useState(\"\");\r\n\r\n const copyToClipBoard = async (copyMe) => {\r\n try {\r\n await navigator.clipboard.writeText(copyMe);\r\n notification[\"success\"]({\r\n message: `Sao chép thành công link giới thiệu:`,\r\n description: copyMe,\r\n onClick: () => {\r\n window.open(copyMe, \"_blank\");\r\n },\r\n });\r\n } catch (err) {\r\n // setCopySuccess('Lỗi sao chép');\r\n }\r\n };\r\n useEffect(() => {\r\n dispatch(overviewAction());\r\n }, [dispatch]);\r\n\r\n useEffect(() => {\r\n if (latestCandidates) {\r\n setCadidatesWithState(\r\n latestCandidates.map((obj) => {\r\n switch (obj.candidateState) {\r\n case 1:\r\n return { ...obj, text: \"Chờ tư vấn\", textColor: \"#343a40\" };\r\n case 2:\r\n return { ...obj, text: \"Đang tư vấn\", textColor: \"#ff9800\" };\r\n case 3:\r\n return { ...obj, text: \"Chờ đơn phù hợp\", textColor: \"#c60\" };\r\n case 4:\r\n return { ...obj, text: \"Đã từ chối\", textColor: \"#f44336\" };\r\n case 5:\r\n return { ...obj, text: \"Chuẩn bị hồ sơ\", textColor: \"#07cfc3\" };\r\n case 6:\r\n return { ...obj, text: \"Đang đào tạo\", textColor: \"#04a7a0\" };\r\n case 7:\r\n return { ...obj, text: \"Chờ thi tuyển\", textColor: \"#0487ce\" };\r\n case 8:\r\n return { ...obj, text: \"Chờ xuất cảnh\", textColor: \"#ab0080\" };\r\n case 9:\r\n return {\r\n ...obj,\r\n text: \"Đang thanh toán cho bạn\",\r\n textColor: \"#09008e\",\r\n };\r\n case 10:\r\n return {\r\n ...obj,\r\n text: \"Đã hủy\",\r\n textColor: \"#b11307\",\r\n };\r\n case 11:\r\n return {\r\n ...obj,\r\n text: \"Đã trượt\",\r\n textColor: \"#ead304\",\r\n };\r\n case 12:\r\n return {\r\n ...obj,\r\n text: \"Đã bảo lưu\",\r\n textColor: \"#5c616f\",\r\n };\r\n case 100:\r\n return { ...obj, text: \"Đã hoàn thành\", textColor: \"#4caf50\" };\r\n default:\r\n return [];\r\n }\r\n })\r\n );\r\n }\r\n }, [latestCandidates]);\r\n\r\n // useEffect(() => {\r\n // if (latestCandidates) {\r\n // setCadidatesWithState(\r\n // latestCandidates.map((obj) => {\r\n // switch (obj.candidateState) {\r\n // case 1:\r\n // return { ...obj, text: 'Chờ tư vấn', textColor: '#343a40' };\r\n // case 2:\r\n // return { ...obj, text: 'Đang tư vấn', textColor: '#ff9800' };\r\n // case 3:\r\n // return { ...obj, text: 'Chờ đơn phù hợp', textColor: '#c60' };\r\n // case 4:\r\n // return { ...obj, text: 'Đã từ chối', textColor: '#f44336' };\r\n // case 5:\r\n // return { ...obj, text: 'Chuẩn bị hồ sơ', textColor: '#07cfc3' };\r\n // case 6:\r\n // return { ...obj, text: 'Đang đào tạo', textColor: '#04a7a0' };\r\n // case 7:\r\n // return { ...obj, text: 'Chờ thi tuyển', textColor: '#0487ce' };\r\n // case 8:\r\n // return { ...obj, text: 'Chờ xuất cảnh', textColor: '#ab0080' };\r\n // case 9:\r\n // return {\r\n // ...obj,\r\n // text: 'Đang thanh toán cho bạn',\r\n // textColor: '#09008e',\r\n // };\r\n // case 100:\r\n // return { ...obj, text: 'Đã hoàn thành', textColor: '#4caf50' };\r\n // default:\r\n // return [];\r\n // }\r\n // })\r\n // );\r\n // }, [dispatch]);\r\n\r\n const handleF1CadidateClick = () => {\r\n window.location.href = \"/thanh-vien-f1\";\r\n };\r\n\r\n const handleCadidateClick = () => {\r\n window.location.href = \"/ung-vien\";\r\n };\r\n\r\n const [clickedQrCodeF1, setIsClickedQrCodeF1] = useState(false);\r\n const [clickedQrCodeCandidate, setIsclickedQrCodeCandidate] = useState(false);\r\n\r\n const handleQrCodeF1Click = (e) => {\r\n e.preventDefault();\r\n if (clickedQrCodeF1 == false) {\r\n setIsClickedQrCodeF1(true);\r\n dispatch(qrCodeF1Action());\r\n }\r\n };\r\n\r\n const handleQrCodeCandidateClick = (e) => {\r\n e.preventDefault();\r\n if (!clickedQrCodeCandidate) {\r\n setIsclickedQrCodeCandidate(true);\r\n dispatch(qrCodeCandidateAction());\r\n }\r\n };\r\n\r\n return (\r\n
\r\n \r\n Tổng quan\r\n \r\n

\r\n Link giới thiệu:{\" \"}\r\n {`${config_app_url.url.APP_URL}/dang-ky?ref=${referrerCode}`}{\" \"}\r\n \r\n copyToClipBoard(\r\n `${config_app_url.url.APP_URL}/dang-ky?ref=${referrerCode}`\r\n )\r\n }\r\n >\r\n {\" \"}\r\n
\r\n {\" \"}\r\n {\" \"}\r\n Sao chép link giới thiệu\r\n
\r\n {/* \r\n {copySuccess}\r\n */}\r\n \r\n

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

Số thành viên F1

\r\n

\r\n {totalF1Members ? totalF1Members : 0}\r\n

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

Số ứng viên

\r\n

\r\n {totalCandidates ? totalCandidates : 0}\r\n

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

QR Code tuyển thành viên F1

\r\n {qrCodeForF1Url ? (\r\n
\r\n \r\n \r\n
\r\n TẢI QR CODE\r\n
\r\n \r\n
\r\n ) : (\r\n
\r\n {clickedQrCodeF1 ? (\r\n \r\n TẠO QR CODE\r\n \r\n ) : (\r\n \r\n TẠO QR CODE\r\n \r\n )}\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n

\r\n QR Code tổng hợp chương trình\r\n

\r\n {qrCodeForCandidateUrl ? (\r\n
\r\n \r\n \r\n
\r\n TẢI QR CODE\r\n
\r\n \r\n
\r\n ) : (\r\n
\r\n {clickedQrCodeCandidate ? (\r\n \r\n TẠO QR CODE\r\n \r\n ) : (\r\n \r\n TẠO QR CODE\r\n \r\n )}\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n \r\n
\r\n
\r\n

Danh sách F1 mới nhất

\r\n\r\n

\r\n {\" \"}\r\n {totalF1Members ? totalF1Members : \"0\"} thành viên F1\r\n

\r\n
\r\n \r\n
\r\n \r\n Xem tất cả\r\n \r\n
\r\n\r\n \r\n\r\n
\r\n

Danh sách ứng viên mới nhất

\r\n\r\n

\r\n {\" \"}\r\n {totalCandidates ? totalCandidates : \"0\"} ứng viên\r\n

\r\n
\r\n \r\n\r\n
\r\n \r\n Xem tất cả\r\n \r\n
\r\n
\r\n \r\n Tổng quan\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default Overview;\r\n","export const LIST_VN_CITIES_REQUEST = \"LIST_VN_CITIES\";\r\nexport const LIST_VN_CITIES_SUCCESS = \"LIST_VN_CITIES_SUCCESS\";\r\nexport const LIST_VN_CITIES_FAIL = \"LIST_VN_CITIES_FAIL\";\r\n","import {\r\n LIST_VN_CITIES_FAIL,\r\n LIST_VN_CITIES_SUCCESS,\r\n LIST_VN_CITIES_REQUEST,\r\n} from \"../constants/citiesContants\";\r\nimport requests from \"../../services/requests\";\r\n\r\nimport axios from \"../../services/axios\";\r\n\r\nexport const allCities = () => async (dispatch) => {\r\n try {\r\n dispatch({ type: LIST_VN_CITIES_REQUEST });\r\n const { data } = await axios.get(requests.fetchVnCities);\r\n // console.log(\"fetchVnCities\", data);\r\n dispatch({ type: LIST_VN_CITIES_SUCCESS, payload: data });\r\n } catch (error) {\r\n dispatch({\r\n type: LIST_VN_CITIES_FAIL,\r\n payload:\r\n error.response && error.response.data.message\r\n ? error.message.data.message\r\n : error.message,\r\n });\r\n }\r\n};\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { register } from \"../../../redux/actions/userActions\";\r\nimport Webcam from \"react-webcam\";\r\nimport { LoadingOutlined } from \"@ant-design/icons\";\r\n\r\nimport locale from \"antd/es/date-picker/locale/vi_VN\";\r\nimport \"./RegisterForm.scss\";\r\nimport { Link } from \"react-router-dom\";\r\nimport moment from \"moment\";\r\n\r\n// import {\r\n// emailValidation,\r\n// minLengthValidation,\r\n// } from '../../../utils/formValidation';\r\n\r\nimport {\r\n Form,\r\n Input,\r\n Button,\r\n Checkbox,\r\n notification,\r\n Upload,\r\n Select,\r\n DatePicker,\r\n Spin,\r\n} from \"antd\";\r\nimport {\r\n UserOutlined,\r\n LockOutlined,\r\n InboxOutlined,\r\n UploadOutlined,\r\n PhoneOutlined,\r\n BankOutlined,\r\n} from \"@ant-design/icons\";\r\nimport { allCities } from \"../../../redux/actions/citiesActions\";\r\nconst { Option } = Select;\r\n\r\nconst RegisterForm = ({ referrer }) => {\r\n const dateFormat = \"DD-MM-YYYY\";\r\n\r\n const [form] = Form.useForm();\r\n const [isSpinning, setIsSpinning] = useState(false);\r\n const antIcon = (\r\n \r\n );\r\n const dispatch = useDispatch();\r\n const [referrerDisabled, setReferrerDisabled] = useState(false);\r\n const userRegister = useSelector((state) => state.userRegister);\r\n const allCitiesVn = useSelector((state) => state.allCitiesVn);\r\n // console.log(\"allCitiesVnư\", allCitiesVn);\r\n const { loading, error, onSuccess } = userRegister;\r\n const [errorState, setErrorState] = useState(false);\r\n // console.log(\"allCitiesVn\", allCitiesVn);\r\n const [inputs, setInputs] = useState({\r\n email: \"\",\r\n password: \"\",\r\n repeatPassword: \"\",\r\n phoneNumber: \"\",\r\n name: \"\",\r\n gender: \"\",\r\n dateOfBirth: \"\",\r\n address: \"\",\r\n privacyPolicy: false,\r\n // fileList: [],\r\n });\r\n\r\n const registerMember = async (values) => {\r\n setIsSpinning(true);\r\n // e.preventDefault();\r\n const emailVal = values.email;\r\n const passwordVal = values.password;\r\n const repeatPasswordVal = values.repeatPassword;\r\n const name = values.name;\r\n const gender = values.gender;\r\n // const dateOfBirth = new Date(values.dateOfBirth).toLocaleDateString(\r\n // 'en-US'\r\n // );\r\n const cityId = values.cityId;\r\n const dateOfBirth = moment(values.dateOfBirth).format(\"MM/DD/YYYY\");\r\n const address = values.address;\r\n const phoneNumber = values.phoneNumber;\r\n const identityCardNumber = values.identityCardNumber;\r\n const identityBankAccount = values.identityBankAccount;\r\n\r\n const upload = values.upload[0].originFileObj;\r\n\r\n if (\r\n !passwordVal ||\r\n !repeatPasswordVal ||\r\n !phoneNumber ||\r\n !name ||\r\n !gender ||\r\n !dateOfBirth ||\r\n !cityId ||\r\n !address ||\r\n !identityCardNumber ||\r\n !identityBankAccount ||\r\n !upload\r\n ) {\r\n notification.error({\r\n message: \"Bạn cần điền đầy đủ các trường yêu cầu.\",\r\n });\r\n } else {\r\n const member = {\r\n Name: name,\r\n Phone: phoneNumber,\r\n Email: emailVal ? emailVal : \"\",\r\n Password: passwordVal,\r\n ConfirmPassword: repeatPasswordVal,\r\n Gender: gender,\r\n DateOfBirth: dateOfBirth,\r\n CityId: cityId,\r\n IdentityCardNumber: identityCardNumber,\r\n BankAccount: identityBankAccount,\r\n KycFile: upload,\r\n Address: address,\r\n Referrer: referrer ? referrer : values.referrer ? values.referrer : \"\",\r\n };\r\n dispatch(register(member));\r\n }\r\n };\r\n\r\n const resetForm = () => {\r\n // form.resetFields();\r\n };\r\n\r\n const normFile = (e) => {\r\n if (Array.isArray(e)) {\r\n return e;\r\n }\r\n\r\n return e && e.fileList;\r\n };\r\n\r\n useEffect(() => {\r\n if (onSuccess) {\r\n notification[\"success\"]({\r\n message:\r\n \"Đã đăng ký thành công. Vui lòng chờ tin nhắn kích hoạt tài khoản để đăng nhập!\",\r\n });\r\n resetForm();\r\n setIsSpinning(false);\r\n } else {\r\n setErrorState(true);\r\n }\r\n\r\n if (error && errorState) {\r\n notification[\"error\"]({\r\n message: \"Có lỗi xảy ra.\",\r\n });\r\n resetForm();\r\n setIsSpinning(false);\r\n }\r\n dispatch(allCities());\r\n }, [error, onSuccess, dispatch]);\r\n\r\n return (\r\n e.preventDefault()}\r\n onFinish={registerMember}\r\n rules={[{ required: true }]}\r\n form={form}\r\n name=\"control-hooks\"\r\n >\r\n \r\n }\r\n placeholder=\"Họ tên\"\r\n />\r\n \r\n \r\n }\r\n placeholder=\"Số điện thoại\"\r\n style={{ width: \"100%\" }}\r\n />\r\n \r\n \r\n }\r\n placeholder=\"Mật khẩu\"\r\n type=\"password\"\r\n className=\"register-form__input\"\r\n // onChange={inputValidation}\r\n // value={inputs.password}\r\n />\r\n \r\n\r\n ({\r\n validator(_, value) {\r\n if (!value || getFieldValue(\"password\") === value) {\r\n return Promise.resolve();\r\n }\r\n\r\n return Promise.reject(new Error(\"Xác nhận mật khẩu chưa khớp\"));\r\n },\r\n }),\r\n ]}\r\n >\r\n }\r\n placeholder=\"Xác nhận mật khẩu\"\r\n type=\"password\"\r\n className=\"register-form__input\"\r\n // onChange={inputValidation}\r\n // value={inputs.repeatPassword}\r\n />\r\n \r\n \r\n }\r\n type=\"email\"\r\n placeholder=\"Email\"\r\n className=\"register-form__input\"\r\n // onChange={inputValidation}\r\n // value={inputs.email}\r\n autocomplete=\"off\"\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n placeholder=\"Số CMND / CCCD\"\r\n />\r\n \r\n \r\n }\r\n placeholder=\"TK Ngân hàng (Số TK, Tên TK, Tên NH )\"\r\n />\r\n \r\n\r\n \r\n }\r\n placeholder=\"Người giới thiệu\"\r\n defaultValue={referrer ? referrer : \"\"}\r\n disabled={referrer ? true : false}\r\n />\r\n \r\n \r\n false}>\r\n \r\n \r\n \r\n \r\n *** Ảnh KYC yêu cầu chụp rõ mặt + tay cầm CMND / CCCD.\r\n

\r\n {/* \r\n \r\n I have read and accept the privacy policy.\r\n \r\n */}\r\n \r\n \r\n ĐĂNG KÝ{\" \"}\r\n {\" \"}\r\n \r\n \r\n\r\n {/* \r\n \r\n */}\r\n\r\n \r\n
\r\n Đã là thành viên? Đăng nhập\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default RegisterForm;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { Form, Icon, Input, Button, notification, Spin } from \"antd\";\r\nimport { LoadingOutlined } from \"@ant-design/icons\";\r\n\r\nimport {\r\n UserOutlined,\r\n LockOutlined,\r\n InboxOutlined,\r\n UploadOutlined,\r\n PhoneOutlined,\r\n} from \"@ant-design/icons\";\r\nimport \"./LoginForm.scss\";\r\nimport { login } from \"../../../redux/actions/userActions\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { Link } from \"react-router-dom\";\r\nconst LoginForm = ({ location, history, match }) => {\r\n const [form] = Form.useForm();\r\n const dispatch = useDispatch();\r\n const [isSpinning, setIsSpinning] = useState(false);\r\n const userLogin = useSelector((state) => state.userLogin);\r\n const { loading, error, userInfo } = userLogin;\r\n const [errorState, setErrorState] = useState(false);\r\n\r\n // const redirect = location.search ? location.search.split('=')[1] : '/';\r\n\r\n const loginMember = async (values) => {\r\n const passwordVal = values.password;\r\n const phoneNumber = values.phoneNumber;\r\n setIsSpinning(true);\r\n if (!passwordVal || !phoneNumber) {\r\n notification.error({\r\n message: \"All fields are required\",\r\n });\r\n } else {\r\n const member = {\r\n Phone: phoneNumber,\r\n Password: passwordVal,\r\n };\r\n dispatch(login(member));\r\n }\r\n };\r\n const antIcon = (\r\n \r\n );\r\n\r\n useEffect(() => {\r\n if (userInfo) {\r\n notification[\"success\"]({\r\n message: \"Đăng nhập thành công.\",\r\n });\r\n setErrorState(false);\r\n setIsSpinning(false);\r\n\r\n window.location.href = \"/\";\r\n } else {\r\n setErrorState(true);\r\n }\r\n\r\n if (error && errorState) {\r\n notification[\"error\"]({\r\n message: \"Sai thông tin đăng nhập.\",\r\n });\r\n setIsSpinning(false);\r\n }\r\n return () => {};\r\n }, [userInfo, error]);\r\n\r\n return (\r\n e.preventDefault()}\r\n onFinish={loginMember}\r\n rules={[{ required: true }]}\r\n form={form}\r\n name=\"control-hooks\"\r\n className=\"login-form\"\r\n >\r\n \r\n }\r\n placeholder=\"Số điện thoại\"\r\n style={{ width: \"100%\" }}\r\n className=\"login-form__input\"\r\n />\r\n \r\n \r\n }\r\n placeholder=\"Mật khẩu\"\r\n type=\"password\"\r\n className=\"login-form__input\"\r\n // onChange={inputValidation}\r\n // value={inputs.password}\r\n />\r\n \r\n \r\n \r\n ĐĂNG NHẬP\r\n \r\n \r\n \r\n \r\n \r\n {\" \"}\r\n Quên mật khẩu?\r\n \r\n \r\n \r\n
\r\n Chưa là thành viên? Đăng ký ngay\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default LoginForm;\r\n","export default \"data:image/png;base64,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\"","import React, { useEffect, useState } from 'react';\r\nimport { Layout, Tabs } from 'antd';\r\nimport { Redirect, Route } from 'react-router-dom';\r\nimport RegisterForm from '../../../components/Admin/RegisterForm';\r\nimport LoginForm from '../../../components/Admin/LoginForm';\r\nimport { useSelector } from 'react-redux';\r\nimport queryString from 'query-string';\r\nimport { Helmet } from 'react-helmet';\r\n\r\nimport logo from '../../../assets/img/png/logo-full.png';\r\nimport './SignIn.scss';\r\nconst SignIn = ({ location, match }) => {\r\n const userLogin = useSelector((state) => state.userLogin);\r\n const { userInfo } = userLogin;\r\n const { Content } = Layout;\r\n const { TabPane } = Tabs;\r\n // const params_search = queryString.parse(location.search);\r\n // const referrerFromStorage = localStorage.getItem('referrer')\r\n // ? localStorage.getItem('referrer')\r\n // : null;\r\n // useEffect(() => {\r\n // if (params_search.referrer) {\r\n // localStorage.setItem('referrer', params_search.referrer);\r\n // }\r\n // }, [params_search.referrer]);\r\n\r\n if (userInfo) {\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n \r\n
\r\n

\r\n HubGroup\r\n

\r\n \r\n ĐĂNG NHẬP THÀNH VIÊN\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n Đăng nhập thành viên\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default SignIn;\r\n","import AdminLayout from '../layouts/AdminLayout';\r\n\r\nimport AdminOverview from '../pages/Admin/Overview';\r\nimport AdminSignIn from '../pages/Admin/SignIn';\r\n// import AdminMembers from '../pages/Admin/Members';\r\n\r\nimport Error404 from '../pages/Error404';\r\n\r\nconst routes = [\r\n {\r\n path: '/',\r\n component: AdminLayout,\r\n exact: false,\r\n routes: [\r\n {\r\n path: '/',\r\n component: AdminOverview,\r\n exact: true,\r\n },\r\n\r\n {\r\n path: '/dang-nhap',\r\n component: AdminSignIn,\r\n exact: true,\r\n },\r\n\r\n {\r\n component: Error404,\r\n },\r\n ],\r\n },\r\n];\r\n\r\nexport default routes;\r\n","export default \"data:image/png;base64,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\"","import React from 'react';\r\nimport { Modal as ModalAntd } from 'antd';\r\n\r\nexport default function Modal(props) {\r\n const { children, title, isVisible, setIsVisible, ...other } = props;\r\n\r\n return (\r\n setIsVisible(false)}\r\n footer={false}\r\n {...other}\r\n >\r\n {children}\r\n \r\n );\r\n}\r\n","import React, { useState, useEffect, useCallback } from 'react';\r\nimport {\r\n Avatar,\r\n Form,\r\n Input,\r\n Select,\r\n Button,\r\n Row,\r\n Col,\r\n notification,\r\n Spin,\r\n DatePicker,\r\n} from 'antd';\r\nimport moment from 'moment';\r\nimport { LoadingOutlined, BankOutlined } from '@ant-design/icons';\r\n\r\nimport { useSelector } from 'react-redux';\r\nimport locale from 'antd/es/date-picker/locale/vi_VN';\r\nimport {\r\n UserOutlined,\r\n MailOutlined,\r\n LockOutlined,\r\n HomeOutlined,\r\n CalendarOutlined,\r\n InboxOutlined,\r\n} from '@ant-design/icons';\r\nimport { useDropzone } from 'react-dropzone';\r\nimport NoAvatar from '../../assets/img/png/no-avatar.png';\r\nimport axios from '../../services/axios';\r\nimport requests from '../../services/requests';\r\nimport './EditUserForm.scss';\r\n\r\nconst EditUserForm = ({ setIsReloaded }) => {\r\n const [isSpinning, setIsSpinning] = useState(false);\r\n\r\n const userLogin = useSelector((state) => state.userLogin);\r\n const { userInfo } = userLogin;\r\n const [avatar, setAvatar] = useState(null);\r\n const [userData, setUserData] = useState({});\r\n const [loading, setLoading] = useState(false);\r\n useEffect(() => {\r\n async function fetchProfileData() {\r\n // You can await here\r\n const config = {\r\n headers: {\r\n Authorization: `Bearer ${userInfo.token}`,\r\n },\r\n };\r\n setLoading(true);\r\n\r\n const { data } = await axios.get(requests.getProfile, config);\r\n\r\n if (data) {\r\n setLoading(false);\r\n setUserData(data);\r\n }\r\n }\r\n fetchProfileData();\r\n // if (JSON.stringify(userData) !== '{}') {\r\n // setLoading(true);\r\n // }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (userData.avatarFullUrl) {\r\n setAvatar(userData.avatarFullUrl);\r\n } else {\r\n setAvatar(null);\r\n }\r\n }, [userData.avatarFullUrl]);\r\n\r\n const updateUser = async () => {\r\n let userUpdate = userData;\r\n setIsSpinning(true);\r\n // if (userUpdate.password || userUpdate.repeatPassword) {\r\n // if (userUpdate.password !== userUpdate.repeatPassword) {\r\n // notification['error']({\r\n // message: 'Xác nhận mật khẩu chưa khớp',\r\n // });\r\n // return;\r\n // } else {\r\n // delete userUpdate.repeatPassword;\r\n // }\r\n // }\r\n\r\n if (\r\n !userUpdate.name ||\r\n !userUpdate.address ||\r\n !userUpdate.dateOfBirth ||\r\n !userUpdate.gender ||\r\n !userUpdate.email ||\r\n !userUpdate.bankAccount\r\n ) {\r\n notification['error']({\r\n message: 'Không trường nào được để trống.',\r\n });\r\n setIsSpinning(false);\r\n\r\n return;\r\n }\r\n const date_convert = moment(userUpdate.dateOfBirth, 'DD/MM/YYYY').format(\r\n 'MM/DD/YYYY'\r\n );\r\n if (avatar != null && avatar.file) {\r\n const config_multipart = {\r\n headers: {\r\n 'Content-Type': 'multipart/form-data',\r\n Authorization: `Bearer ${userInfo.token}`,\r\n },\r\n };\r\n\r\n var bodyFormData = new FormData();\r\n bodyFormData.append('Avatar', avatar.file);\r\n try {\r\n const response = await axios.post(\r\n requests.uploadAvatar,\r\n bodyFormData,\r\n config_multipart\r\n );\r\n const config = {\r\n headers: {\r\n Authorization: `Bearer ${userInfo.token}`,\r\n },\r\n };\r\n const update_data = {\r\n Name: userUpdate.name,\r\n Gender: userUpdate.gender,\r\n Address: userUpdate.address,\r\n DateOfBirth: date_convert,\r\n Email: userUpdate.email,\r\n BankAccount: userUpdate.bankAccount,\r\n };\r\n // const { data } = await axios.post(requests.login, member, config);\r\n\r\n const response_profile = await axios.post(\r\n requests.updateProfile,\r\n update_data,\r\n config\r\n );\r\n\r\n if (response_profile.status === 200) {\r\n notification['success']({\r\n message: 'Cập nhật thông tin thành công',\r\n });\r\n setIsReloaded(true);\r\n setIsSpinning(false);\r\n }\r\n } catch (error) {\r\n notification['error']({\r\n message: 'Có lỗi xảy ra.',\r\n });\r\n setIsSpinning(false);\r\n }\r\n } else {\r\n const config = {\r\n headers: {\r\n Authorization: `Bearer ${userInfo.token}`,\r\n },\r\n };\r\n const update_data = {\r\n Name: userUpdate.name,\r\n Gender: userUpdate.gender,\r\n Address: userUpdate.address,\r\n DateOfBirth: date_convert,\r\n Email: userUpdate.email,\r\n BankAccount: userUpdate.bankAccount,\r\n };\r\n // const { data } = await axios.post(requests.login, member, config);\r\n try {\r\n const response = await axios.post(\r\n requests.updateProfile,\r\n update_data,\r\n config\r\n );\r\n\r\n notification['success']({\r\n message: 'Cập nhật thông tin tài khoản thành công.',\r\n });\r\n setIsReloaded(true);\r\n setIsSpinning(false);\r\n } catch (error) {\r\n notification['error']({\r\n message: 'Có lỗi xảy ra.',\r\n });\r\n setIsSpinning(false);\r\n }\r\n }\r\n };\r\n\r\n return loading ? (\r\n
\r\n \r\n
\r\n ) : (\r\n
\r\n \r\n {' '}\r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nfunction EditForm(props) {\r\n const antIcon = (\r\n \r\n );\r\n const dateFormat = 'DD-MM-YYYY';\r\n\r\n function onChange(date, dateString) {\r\n if (date != null) {\r\n // const old_date = moment(dateString, 'DD/MM/YYYY');\r\n setUserData({ ...userData, dateOfBirth: dateString });\r\n }\r\n }\r\n\r\n const { userData, setUserData, updateUser, isSpinning } = props;\r\n const { Option } = Select;\r\n const getGenderString = (gender) => {\r\n switch (gender) {\r\n case '1':\r\n return 'Nam';\r\n case '2':\r\n return 'Nữ';\r\n case '0':\r\n return 'Khác';\r\n\r\n default:\r\n return 'Khác';\r\n }\r\n };\r\n\r\n return (\r\n e.preventDefault()}\r\n rules={[{ required: true }]}\r\n name='control-hooks'\r\n onFinish={updateUser}\r\n className='form-edit'\r\n >\r\n \r\n \r\n \r\n }\r\n placeholder='Họ tên'\r\n value={userData.name}\r\n onChange={(e) =>\r\n setUserData({ ...userData, name: e.target.value })\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n }\r\n type='email'\r\n placeholder='Email'\r\n className='register-form__input'\r\n value={userData.email}\r\n onChange={(e) =>\r\n setUserData({ ...userData, email: e.target.value })\r\n }\r\n autocomplete='off'\r\n />\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n setUserData({ ...userData, gender: e })}\r\n value={getGenderString(String(userData.gender))}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n }\r\n placeholder='Địa chỉ'\r\n value={userData.address}\r\n onChange={(e) =>\r\n setUserData({ ...userData, address: e.target.value })\r\n }\r\n />\r\n \r\n {/* \r\n }\r\n type='email'\r\n placeholder='Email'\r\n className='register-form__input'\r\n value={userData.email}\r\n onChange={(e) =>\r\n setUserData({ ...userData, email: e.target.value })\r\n }\r\n autocomplete='off'\r\n />\r\n */}\r\n \r\n \r\n \r\n \r\n \r\n }\r\n placeholder='TK Ngân hàng (Số TK, Tên TK, Tên NH )'\r\n value={userData.bankAccount}\r\n onChange={(e) =>\r\n setUserData({ ...userData, bankAccount: e.target.value })\r\n }\r\n />\r\n \r\n \r\n \r\n\r\n {/* \r\n \r\n \r\n }\r\n type='password'\r\n placeholder='Contraseña'\r\n // onChange={(e) =>\r\n // setUserData({ ...userData, password: e.target.value })\r\n // }\r\n />\r\n \r\n \r\n \r\n \r\n }\r\n type='password'\r\n placeholder='Repetir contraseña'\r\n // onChange={(e) =>\r\n // setUserData({ ...userData, repeatPassword: e.target.value })\r\n // }\r\n />\r\n \r\n \r\n */}\r\n\r\n \r\n \r\n Cập nhật{' '}\r\n {' '}\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nfunction UploadAvatar(props) {\r\n const { avatar, setAvatar } = props;\r\n const [avatarUrl, setAvatarUrl] = useState(null);\r\n\r\n useEffect(() => {\r\n if (avatar) {\r\n if (avatar.preview) {\r\n setAvatarUrl(avatar.preview);\r\n } else {\r\n setAvatarUrl(avatar);\r\n }\r\n } else {\r\n setAvatarUrl(null);\r\n }\r\n }, [avatar]);\r\n\r\n const onDrop = useCallback(\r\n (acceptedFiles) => {\r\n const file = acceptedFiles[0];\r\n setAvatar({ file, preview: URL.createObjectURL(file) });\r\n },\r\n [setAvatar]\r\n );\r\n\r\n const { getRootProps, getInputProps, isDragActive } = useDropzone({\r\n accept: 'image/jpeg, image/png',\r\n noKeyboard: true,\r\n onDrop,\r\n });\r\n\r\n return (\r\n \r\n
\r\n \r\n {isDragActive ? (\r\n \r\n ) : (\r\n \r\n )}\r\n
\r\n
\r\n Click hoặc kéo thả ảnh vào đây để thay đổi ảnh đại diện\r\n
\r\n {' '}\r\n
\r\n );\r\n}\r\n\r\nexport default EditUserForm;\r\n","import React, { useState, useEffect, useCallback } from 'react';\r\nimport {\r\n Avatar,\r\n Form,\r\n Input,\r\n Select,\r\n Button,\r\n Row,\r\n Col,\r\n notification,\r\n Spin,\r\n DatePicker,\r\n} from 'antd';\r\nimport moment from 'moment';\r\nimport { LoadingOutlined } from '@ant-design/icons';\r\n\r\nimport { useSelector } from 'react-redux';\r\nimport locale from 'antd/es/date-picker/locale/vi_VN';\r\nimport {\r\n UserOutlined,\r\n MailOutlined,\r\n LockOutlined,\r\n HomeOutlined,\r\n CalendarOutlined,\r\n} from '@ant-design/icons';\r\nimport { useDropzone } from 'react-dropzone';\r\nimport NoAvatar from '../../assets/img/png/no-avatar.png';\r\nimport axios from '../../services/axios';\r\nimport requests from '../../services/requests';\r\nimport './UpdatePasswordForm.scss';\r\n\r\nconst UpdatePasswordForm = () => {\r\n const [isSpinning, setIsSpinning] = useState(false);\r\n\r\n const userLogin = useSelector((state) => state.userLogin);\r\n const { userInfo } = userLogin;\r\n const [loading, setLoading] = useState(false);\r\n const antIcon = (\r\n \r\n );\r\n const [form] = Form.useForm();\r\n // const [isSpinning, setIsSpinning] = useState(false);\r\n\r\n // const redirect = location.search ? location.search.split('=')[1] : '/';\r\n // useEffect(() => {\r\n // if (onSuccess) {\r\n // notification['success']({\r\n // message: 'Mật khẩu của bạn đã được cập nhật thành công.',\r\n // });\r\n // resetForm();\r\n // setIsSpinning(false);\r\n // } else {\r\n // setErrorState(true);\r\n // }\r\n\r\n // if (error && errorState) {\r\n // notification['error']({\r\n // message: 'Có lỗi xảy ra',\r\n // });\r\n // resetForm();\r\n // setIsSpinning(false);\r\n // }\r\n // }, [error, onSuccess]);\r\n const resetForm = () => {\r\n form.resetFields();\r\n };\r\n\r\n const updatePassword = async (values) => {\r\n const oldPasswordVal = values.oldPassword;\r\n const passwordVal = values.password;\r\n const repeatPasswordVal = values.repeatPassword;\r\n setIsSpinning(true);\r\n if (!oldPasswordVal || !passwordVal || !repeatPasswordVal) {\r\n notification.error({\r\n message: 'All fields are required.',\r\n });\r\n } else {\r\n const data = {\r\n OldPassword: oldPasswordVal,\r\n NewPassword: passwordVal,\r\n ConfirmPassword: repeatPasswordVal,\r\n };\r\n const config = {\r\n headers: {\r\n Authorization: `Bearer ${userInfo.token}`,\r\n },\r\n };\r\n\r\n try {\r\n const response = await axios.post(\r\n requests.updatePassword,\r\n data,\r\n config\r\n );\r\n if (response.status === 200) {\r\n notification['success']({\r\n message: 'Thay đổi mật khẩu thành công.',\r\n });\r\n setIsSpinning(false);\r\n\r\n resetForm();\r\n }\r\n } catch (error) {\r\n notification.error({\r\n message: 'Có lỗi xảy ra. Vui lòng kiểm tra lại thông tin mật khẩu',\r\n });\r\n setIsSpinning(false);\r\n\r\n resetForm();\r\n }\r\n\r\n // dispatch(resetPasswordAction(data));\r\n }\r\n };\r\n\r\n return (\r\n e.preventDefault()}\r\n onFinish={updatePassword}\r\n rules={[{ required: true }]}\r\n form={form}\r\n name='control-hooks'\r\n className='login-form'\r\n >\r\n \r\n }\r\n placeholder='Mật khẩu cũ'\r\n type='password'\r\n className='register-form__input'\r\n />\r\n \r\n \r\n }\r\n placeholder='Mật khẩu mới'\r\n type='password'\r\n className='register-form__input'\r\n // onChange={inputValidation}\r\n // value={inputs.password}\r\n />\r\n \r\n\r\n ({\r\n validator(_, value) {\r\n if (!value || getFieldValue('password') === value) {\r\n return Promise.resolve();\r\n }\r\n\r\n return Promise.reject(\r\n new Error('Xác nhận mật khẩu mới chưa khớp')\r\n );\r\n },\r\n }),\r\n ]}\r\n >\r\n }\r\n placeholder='Xác nhận mật khẩu mới'\r\n type='password'\r\n className='register-form__input'\r\n // onChange={inputValidation}\r\n // value={inputs.repeatPassword}\r\n />\r\n \r\n \r\n \r\n Cập nhật mật khẩu{' '}\r\n {' '}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default UpdatePasswordForm;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { Button, Avatar, Menu, Dropdown } from 'antd';\r\nimport {\r\n MenuFoldOutlined,\r\n MenuUnfoldOutlined,\r\n PoweroffOutlined,\r\n UserOutlined,\r\n} from '@ant-design/icons';\r\nimport NoAvatar from '../../../assets/img/png/no-avatar.png';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { logout } from '../../../redux/actions/userActions';\r\nimport logo from '../../../assets/img/png/logo-full.png';\r\nimport AdminSignIn from '../../../pages/Admin/SignIn/SignIn';\r\nimport './MenuTop.scss';\r\nimport { Route, Switch, Redirect, Link } from 'react-router-dom';\r\nimport Modal from '../../Modal';\r\nimport EditUserForm from '../../EditUserForm';\r\nimport UpdatePasswordForm from '../../UpdatePasswordForm';\r\nimport axios from '../../../services/axios';\r\nimport requests from '../../../services/requests';\r\nexport default function MenuTop(props) {\r\n const dispatch = useDispatch();\r\n const userLogin = useSelector((state) => state.userLogin);\r\n const { userInfo } = userLogin;\r\n const [isVisibleModal, setIsVisibleModal] = useState(false);\r\n const [modalTitle, setIsModalTitle] = useState('');\r\n const [modalContent, setIsModalContent] = useState(null);\r\n const [isReloaded, setIsReloaded] = useState(false);\r\n const [userData, setUserData] = useState({});\r\n\r\n const { menuCollapsed, setMenuCollapsed } = props;\r\n useEffect(() => {\r\n // setUserData(userInfo);\r\n async function fetchProfileData() {\r\n // You can await here\r\n const config = {\r\n headers: {\r\n Authorization: `Bearer ${userInfo.token}`,\r\n },\r\n };\r\n\r\n const { data } = await axios.get(requests.getProfile, config);\r\n if (data) {\r\n setUserData(data);\r\n }\r\n }\r\n if (userInfo) {\r\n fetchProfileData();\r\n setIsReloaded(false);\r\n }\r\n }, [userInfo, isReloaded]);\r\n if (!userInfo) {\r\n return (\r\n <>\r\n \r\n\r\n \r\n \r\n );\r\n }\r\n\r\n const logoutUser = () => {\r\n dispatch(logout());\r\n // window.location.reload();\r\n };\r\n const editUser = () => {\r\n setIsVisibleModal(true);\r\n setIsModalTitle(`Cập nhật thông tin`);\r\n setIsModalContent();\r\n };\r\n const editPassword = () => {\r\n setIsVisibleModal(true);\r\n setIsModalTitle(`Thay đổi mật khẩu`);\r\n setIsModalContent();\r\n };\r\n const menu = (\r\n \r\n \r\n {' '}\r\n Cập nhật tài khoản\r\n \r\n \r\n {' '}\r\n Thay đổi mật khẩu\r\n \r\n \r\n {' '}\r\n Đăng xuất\r\n \r\n \r\n );\r\n\r\n if (userInfo) {\r\n return (\r\n
\r\n
\r\n \r\n setMenuCollapsed(!menuCollapsed)}\r\n >\r\n {menuCollapsed ? : }\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n {userData.name}\r\n \r\n \r\n \r\n \r\n
\r\n \r\n {modalContent}\r\n \r\n
\r\n );\r\n }\r\n return null;\r\n}\r\n","import React from \"react\";\r\nimport { Link, withRouter } from \"react-router-dom\";\r\nimport { Layout, Menu } from \"antd\";\r\nimport {\r\n UserOutlined,\r\n MenuOutlined,\r\n BookOutlined,\r\n MessageOutlined,\r\n HomeOutlined,\r\n ShoppingCartOutlined,\r\n SolutionOutlined,\r\n UsergroupAddOutlined,\r\n UserSwitchOutlined,\r\n TeamOutlined,\r\n UsergroupDeleteOutlined,\r\n ShoppingOutlined,\r\n} from \"@ant-design/icons\";\r\nimport \"./MenuSlider.scss\";\r\n\r\nfunction MenuSider(props) {\r\n const { menuCollapsed, location } = props;\r\n const { Sider } = Layout;\r\n return (\r\n \r\n {\r\n // console.log(broken);\r\n }}\r\n onCollapse={(collapsed, type) => {\r\n // console.log(collapsed, type);\r\n }}\r\n className=\"admin-sider\"\r\n collapsed={menuCollapsed}\r\n style={{ position: \"relative\" }}\r\n >\r\n \r\n \r\n \r\n \r\n Tổng quan\r\n \r\n \r\n \r\n \r\n \r\n Thành viên F1\r\n \r\n \r\n \r\n \r\n \r\n Ứng viên của bạn\r\n \r\n \r\n {/* \r\n \r\n \r\n Ứng viên F1\r\n \r\n */}\r\n \r\n \r\n \r\n Danh sách việc làm\r\n \r\n \r\n\r\n \r\n \r\n \r\n Tài liệu\r\n \r\n \r\n \r\n \r\n \r\n Phòng kinh doanh\r\n \r\n \r\n {/* \r\n \r\n \r\n Menu\r\n \r\n \r\n */}\r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n );\r\n}\r\n\r\nexport default withRouter(MenuSider);\r\n","import React, { useState, useEffect } from 'react';\r\nimport { Layout } from 'antd';\r\nimport { Route, Switch, Redirect, Link } from 'react-router-dom';\r\nimport './AdminLayout.scss';\r\nimport routes from '../config/routes';\r\nimport MenuTop from '../components/Admin/MenuTop';\r\nimport MenuSlider from '../components/Admin/MenuSlider';\r\nimport AdminSignIn from '../pages/Admin/SignIn/SignIn';\r\nimport AdminOverview from '../pages/Admin/Overview';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nconst AdminLayout = (props) => {\r\n const { routes, location } = props;\r\n const [menuCollapsed, setMenuCollapsed] = useState(false);\r\n const { Header, Content, Footer } = Layout;\r\n const userLogin = useSelector((state) => state.userLogin);\r\n const { userInfo } = userLogin;\r\n\r\n if (!userInfo) {\r\n return (\r\n <>\r\n \r\n \r\n \r\n );\r\n } else {\r\n }\r\n\r\n if (userInfo) {\r\n return ;\r\n }\r\n\r\n return null;\r\n};\r\n\r\nconst LoadRoutes = ({ routes }) => {\r\n return (\r\n \r\n {routes.map((route, index) => (\r\n \r\n ))}\r\n \r\n );\r\n};\r\n\r\nexport default AdminLayout;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { Input, Table } from \"antd\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { Divider } from \"antd\";\r\nimport { Helmet } from \"react-helmet\";\r\n\r\nimport { listF1MemberUsersAction } from \"../../../redux/actions/userActions\";\r\nimport \"./AllF1Members.scss\";\r\nconst AllF1Members = () => {\r\n const scroll = {};\r\n scroll.x = \"100%\";\r\n const memberUserList = useSelector((state) => state.memberUserList);\r\n const dispatch = useDispatch();\r\n const [page, setPage] = useState(1);\r\n const [keyword, setKeyword] = useState(\"\");\r\n const { Search } = Input;\r\n const { total, members, error, loading } = memberUserList;\r\n const columns = [\r\n // {\r\n // title: 'Ảnh / KYC',\r\n // dataIndex: 'avatarFullUrl',\r\n // key: 'avatarFullUrl',\r\n // responsive: ['md'],\r\n\r\n // render: (imageUrl) => {imageUrl},\r\n // },\r\n {\r\n title: \"Họ tên\",\r\n dataIndex: \"name\",\r\n key: \"name\",\r\n },\r\n {\r\n title: \"Email\",\r\n dataIndex: \"email\",\r\n key: \"email\",\r\n },\r\n {\r\n title: \"Số điện thoại\",\r\n dataIndex: \"phone\",\r\n key: \"phone\",\r\n render: (text, record) => (\r\n \r\n {text}\r\n \r\n ),\r\n },\r\n {\r\n title: \"Địa chỉ\",\r\n dataIndex: \"address\",\r\n key: \"address\",\r\n },\r\n ];\r\n\r\n const tableColumns = columns.map((item) => ({\r\n ...item,\r\n }));\r\n\r\n useEffect(() => {\r\n dispatch(listF1MemberUsersAction(page, 20, keyword));\r\n }, [dispatch, page]);\r\n const pagination_config = {\r\n pageSize: 20,\r\n onChange: onChange,\r\n total: total,\r\n };\r\n\r\n function onChange(pageNumber) {\r\n setPage(pageNumber);\r\n }\r\n\r\n const onSearch = (e) => {\r\n // e.preventDefault();\r\n // console.log(\"vào đây\");\r\n // Thực hiện tìm kiếm khi người dùng nhấn nút tìm kiếm\r\n const keywordToUse = keyword !== \"\" ? keyword : \" \";\r\n\r\n dispatch(listF1MemberUsersAction(page, 20, keywordToUse));\r\n };\r\n // useEffect(() => {\r\n // dispatch(listMemberUsersAction(1, 10));\r\n // }, [dispatch]);\r\n\r\n return (\r\n
\r\n \r\n Danh sách thành viên F1\r\n \r\n
\r\n
\r\n {/*

Danh sách tất cả F1

*/}\r\n

\r\n {\" \"}\r\n {total ? total : \"0\"} thành viên\r\n

\r\n
\r\n
\r\n setKeyword(e.target.value)}\r\n onSearch={onSearch}\r\n enterButton\r\n style={{ width: \"300px\" }}\r\n />\r\n
\r\n\r\n \r\n
\r\n \r\n Danh sách thành viên F1\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default AllF1Members;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { Layout } from 'antd';\r\nimport { Route, Switch, Redirect, Link } from 'react-router-dom';\r\nimport './AdminLayout.scss';\r\nimport routes from '../config/routes';\r\nimport MenuTop from '../components/Admin/MenuTop';\r\nimport MenuSlider from '../components/Admin/MenuSlider';\r\nimport AdminSignIn from '../pages/Admin/SignIn/SignIn';\r\nimport AllF1Members from '../pages/Admin/AllF1Members';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nconst AdminAllF1Member = (props) => {\r\n const { routes, location } = props;\r\n const [menuCollapsed, setMenuCollapsed] = useState(false);\r\n const { Header, Content, Footer } = Layout;\r\n const userLogin = useSelector((state) => state.userLogin);\r\n const { userInfo } = userLogin;\r\n\r\n if (!userInfo) {\r\n return (\r\n <>\r\n \r\n\r\n \r\n \r\n );\r\n }\r\n\r\n if (userInfo) {\r\n return ;\r\n }\r\n\r\n return null;\r\n};\r\n\r\n// const LoadRoutes = ({ routes }) => {\r\n// return (\r\n// \r\n// {routes.map((route, index) => (\r\n// \r\n// ))}\r\n// \r\n// );\r\n// };\r\n\r\nexport default AdminAllF1Member;\r\n","import {\r\n BankOutlined,\r\n HomeOutlined,\r\n InboxOutlined,\r\n LoadingOutlined,\r\n PhoneOutlined,\r\n UserOutlined,\r\n} from \"@ant-design/icons\";\r\nimport {\r\n Button,\r\n Col,\r\n DatePicker,\r\n Form,\r\n Input,\r\n Row,\r\n Select,\r\n Spin,\r\n notification,\r\n} from \"antd\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport moment from \"moment\";\r\n\r\nimport { allCities } from \"../../redux/actions/citiesActions\";\r\nimport {\r\n addCandidateMember,\r\n getAllJobsCandidateAction,\r\n} from \"../../redux/actions/userActions\";\r\nimport axios from \"axios\";\r\nimport requests from \"../../services/requests\";\r\n\r\nconst academicLevels = [\r\n {\r\n value: \"0\",\r\n lable: \"Không có\",\r\n },\r\n {\r\n value: \"1\",\r\n lable: \"Tiểu học\",\r\n },\r\n {\r\n value: \"2\",\r\n lable: \"Trung học cơ sở\",\r\n },\r\n {\r\n value: \"3\",\r\n lable: \"Trung học phổ thông\",\r\n },\r\n {\r\n value: \"4\",\r\n lable: \"Trung cấp\",\r\n },\r\n {\r\n value: \"5\",\r\n lable: \"Cao đẳng\",\r\n },\r\n {\r\n value: \"6\",\r\n lable: \"Đại học\",\r\n },\r\n {\r\n value: \"100\",\r\n lable: \"Sau đại học\",\r\n },\r\n];\r\n\r\nconst AddCandidateMember = ({ setOpen, fetchData }) => {\r\n const [form] = Form.useForm();\r\n const dateFormat = \"DD-MM-YYYY\";\r\n const dispatch = useDispatch();\r\n const { Option } = Select;\r\n const userLogin = useSelector((state) => state.userLogin);\r\n const addCandidate = useSelector((state) => state.addCandidate);\r\n const allJobsCandidate = useSelector((state) => state.allJobsCandidate);\r\n // console.log(\"allJobsCandidate\", allJobsCandidate);\r\n const [isSpinning, setIsSpinning] = useState(false);\r\n const antIcon = (\r\n \r\n );\r\n const [errorState, setErrorState] = useState(false);\r\n const { loading, error, onSuccess } = addCandidate;\r\n const { loadingJobs, data } = allJobsCandidate;\r\n // console.log(\"data\", data);\r\n const jobs =\r\n data &&\r\n data?.allJobs?.map((job) => ({\r\n lable: job.name,\r\n value: job.id,\r\n jobType: job.jobType,\r\n }));\r\n\r\n const allCitiesVn =\r\n data &&\r\n data?.allCities?.map((city) => ({ lable: city.name, value: city.id }));\r\n const { userInfo } = userLogin;\r\n const handleAddCandidate = async (values) => {\r\n // console.log(\"values\", values);\r\n // console.log(\"values\", values.birthday);\r\n setIsSpinning(true);\r\n const email = values.email;\r\n const job = values.jobId;\r\n const name = values.name;\r\n const gender = values.gender;\r\n\r\n const cityId = values.cityId;\r\n const dateOfBirth = moment(values.birthday).format(\"YYYY/MM/DD\");\r\n const address = values.address;\r\n const phoneNumber = values.phone;\r\n const note = values.note;\r\n const academicLevel = values.academicLevel;\r\n if (\r\n !job ||\r\n !phoneNumber ||\r\n !name ||\r\n !gender ||\r\n !dateOfBirth ||\r\n !cityId ||\r\n !note ||\r\n !academicLevel\r\n ) {\r\n notification.error({\r\n message: \"Bạn cần điền đầy đủ các trường yêu cầu.\",\r\n });\r\n } else {\r\n const formCandidateMember = {\r\n Phone: phoneNumber,\r\n JobId: job,\r\n Name: name,\r\n Email: email,\r\n DateOfBirth: dateOfBirth,\r\n Address: address,\r\n CityId: cityId,\r\n Note: note,\r\n AcademicLevel: academicLevel,\r\n Gender: gender,\r\n Referrer: data ? data?.referrerCode : \"\",\r\n };\r\n\r\n // console.log(\"formCandidateMember\", formCandidateMember);\r\n\r\n dispatch(addCandidateMember(formCandidateMember));\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n dispatch(getAllJobsCandidateAction());\r\n }, [dispatch]);\r\n\r\n useEffect(() => {\r\n if (onSuccess) {\r\n notification[\"success\"]({\r\n message: \"Thêm ứng viên mới thành công\",\r\n });\r\n\r\n // resetForm();\r\n form.resetFields();\r\n setIsSpinning(false);\r\n fetchData();\r\n setOpen(false);\r\n } else {\r\n setErrorState(true);\r\n }\r\n\r\n if (error && errorState) {\r\n notification[\"error\"]({\r\n message: \"Có lỗi xảy ra.\",\r\n });\r\n // resetForm();\r\n setIsSpinning(false);\r\n }\r\n dispatch(allCities());\r\n }, [error, onSuccess, dispatch]);\r\n return (\r\n
\r\n e.preventDefault()}\r\n rules={[{ required: true }]}\r\n name=\"control-hooks\"\r\n onFinish={handleAddCandidate}\r\n className=\"form-edit\"\r\n >\r\n \r\n \r\n \r\n \r\n option.children.toLowerCase().indexOf(input.toLowerCase()) >=\r\n 0\r\n }\r\n placeholder=\"Đơn hàng/Việc làm\"\r\n >\r\n {jobs &&\r\n jobs.map((job) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n placeholder=\"Họ tên\"\r\n // value={userData.name}\r\n // onChange={(e) =>\r\n // setUserData({ ...userData, name: e.target.value })\r\n // }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n type=\"email\"\r\n placeholder=\"Email\"\r\n className=\"register-form__input\"\r\n // value={userData.email}\r\n // onChange={(e) =>\r\n // setUserData({ ...userData, email: e.target.value })\r\n // }\r\n autocomplete=\"off\"\r\n />\r\n \r\n \r\n \r\n \r\n \r\n option.children.toLowerCase().indexOf(input.toLowerCase()) >=\r\n 0\r\n }\r\n placeholder=\"Tỉnh/Thành phố\"\r\n >\r\n {allCitiesVn && allCitiesVn?.length > 0 ? (\r\n allCitiesVn?.map((city) => (\r\n \r\n ))\r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n placeholder=\"Địa chỉ chi tiết\"\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {/* \r\n \r\n \r\n }\r\n type='password'\r\n placeholder='Contraseña'\r\n // onChange={(e) =>\r\n // setUserData({ ...userData, password: e.target.value })\r\n // }\r\n />\r\n \r\n \r\n \r\n \r\n }\r\n type='password'\r\n placeholder='Repetir contraseña'\r\n // onChange={(e) =>\r\n // setUserData({ ...userData, repeatPassword: e.target.value })\r\n // }\r\n />\r\n \r\n \r\n */}\r\n\r\n \r\n \r\n Thêm mới{\" \"}\r\n {\" \"}\r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default AddCandidateMember;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { Popover, Table } from \"antd\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { Divider } from \"antd\";\r\nimport { Helmet } from \"react-helmet\";\r\nimport queryString from \"query-string\";\r\n\r\nimport {\r\n FileDoneOutlined,\r\n InfoCircleOutlined,\r\n PlusCircleOutlined,\r\n} from \"@ant-design/icons\";\r\nimport { Button, Col, Row, Input, Select } from \"antd\";\r\nimport Modal from \"../../../components/Modal\";\r\nimport {\r\n listCandidateMemberUsersAction,\r\n listF1CandidateMemberUsersAction,\r\n} from \"../../../redux/actions/userActions\";\r\nimport \"./CandidateMember.scss\";\r\nimport AddCandidateMember from \"../../../components/AddCandidateMember\";\r\n\r\nconst states = [\r\n {\r\n value: \"\",\r\n label: \"Tất cả trạng thái\",\r\n },\r\n {\r\n value: 1,\r\n label: \"Chờ tư vấn\",\r\n },\r\n {\r\n value: 2,\r\n label: \"Đang tư vấn\",\r\n },\r\n {\r\n value: 3,\r\n label: \"Chờ đơn phù hợp\",\r\n },\r\n {\r\n value: 4,\r\n label: \"Đã từ chối\",\r\n },\r\n {\r\n value: 5,\r\n label: \"Chuẩn bị hồ sơ\",\r\n },\r\n {\r\n value: 6,\r\n label: \"Đang đào tạo\",\r\n },\r\n {\r\n value: 7,\r\n label: \"Chờ thi tuyển\",\r\n },\r\n {\r\n value: 8,\r\n label: \"Chờ xuất cảnh\",\r\n },\r\n {\r\n value: 9,\r\n label: \"Thanh toán thành viên\",\r\n },\r\n {\r\n value: 10,\r\n label: \"Đã hủy\",\r\n },\r\n {\r\n value: 11,\r\n label: \"Đã trượt\",\r\n },\r\n {\r\n value: 12,\r\n label: \"Đã bảo lưu\",\r\n },\r\n {\r\n value: 100,\r\n label: \"Đã hoàn thành\",\r\n },\r\n];\r\n\r\nconst CandidateMember = ({ location, history }) => {\r\n // console.log(\"location\", location);\r\n const params_search = queryString.parse(location.search);\r\n\r\n const { Search } = Input;\r\n const { Option } = Select;\r\n const scroll = {};\r\n scroll.x = \"100vw\";\r\n const [keyword, setKeyword] = useState(\"\");\r\n const [state, setState] = useState(\"\");\r\n const [stateF1, setStateF1] = useState(\"\");\r\n const [keywordF1, setKeywordF1] = useState(\"\");\r\n const [pageCadidate, setPageCadidate] = useState(1);\r\n const [pageCadidateF1, setPageCadidateF1] = useState(1);\r\n const [isVisibleModal, setIsVisibleModal] = useState(false);\r\n const columns_candidates = [\r\n {\r\n title: \"Thông tin ứng viên\",\r\n dataIndex: \"name\",\r\n key: \"name\",\r\n render: (text, record) => (\r\n
\r\n {/* {console.log(\"record\", record)} */}\r\n
\r\n \r\n {record.notes.length > 0\r\n ? record.notes.map((note) => (\r\n

\r\n \r\n {note.dateString}\r\n {\" \"}\r\n - {note.message}\r\n

\r\n ))\r\n : \"Chưa có thông tin\"}\r\n
\r\n }\r\n placement=\"right\"\r\n title=\"Tiến độ\"\r\n trigger=\"click\"\r\n >\r\n }\r\n title=\"Tiến độ\"\r\n >\r\n \r\n {text}\r\n
\r\n\r\n
\r\n \r\n {record.text}\r\n \r\n
\r\n \r\n ),\r\n },\r\n\r\n {\r\n title: \"Số điện thoại\",\r\n dataIndex: \"phone\",\r\n key: \"phone\",\r\n render: (text, record) =>\r\n record.isPhoneHidden ? (\r\n record.phone\r\n ) : (\r\n \r\n {text}\r\n \r\n ),\r\n },\r\n {\r\n title: \"Địa chỉ\",\r\n dataIndex: \"address\",\r\n key: \"address\",\r\n },\r\n {\r\n title: \"Tên đơn hàng/việc làm\",\r\n dataIndex: \"jobName\",\r\n key: \"jobName\",\r\n render: (text, record) => (\r\n \r\n {text}\r\n \r\n ),\r\n },\r\n {\r\n title: \"Tiền hoa hồng\",\r\n dataIndex: \"referrerBonus\",\r\n key: \"referrerBonus\",\r\n render: (text, record) => (\r\n
\r\n
\r\n {text\r\n ? text.toFixed(0).replace(/(\\d)(?=(\\d{3})+(?!\\d))/g, \"$1,\")\r\n : \"\"}\r\n
\r\n
\r\n {/* \r\n Tải về\r\n */}\r\n {record.files &&\r\n record.files.map((file) => (\r\n
\r\n \r\n {\" \"}\r\n [{file.createdAt}] {file.name}\r\n \r\n
\r\n ))}\r\n
\r\n
\r\n ),\r\n },\r\n ];\r\n\r\n const columns_f1_candidates = [\r\n {\r\n title: \"Thông tin ứng viên\",\r\n dataIndex: \"name\",\r\n key: \"name\",\r\n render: (text, record) => (\r\n
\r\n
\r\n \r\n {record.notes.length > 0\r\n ? record.notes.map((note) => (\r\n

\r\n \r\n {note.dateString}\r\n {\" \"}\r\n - {note.message}\r\n

\r\n ))\r\n : \"Chưa có thông tin\"}\r\n
\r\n }\r\n placement=\"right\"\r\n title=\"Tiến độ\"\r\n trigger=\"click\"\r\n >\r\n }\r\n title=\"Tiến độ\"\r\n >\r\n \r\n {text}\r\n
\r\n\r\n
\r\n \r\n {record.text}\r\n \r\n
\r\n \r\n ),\r\n },\r\n\r\n {\r\n title: \"Số điện thoại\",\r\n dataIndex: \"phone\",\r\n key: \"phone\",\r\n render: (text, record) =>\r\n record.isPhoneHidden ? (\r\n record.phone\r\n ) : (\r\n \r\n {text}\r\n \r\n ),\r\n },\r\n {\r\n title: \"Địa chỉ\",\r\n dataIndex: \"address\",\r\n key: \"address\",\r\n },\r\n {\r\n title: \"Thành viên giới thiệu\",\r\n dataIndex: \"referrer\",\r\n key: \"referrer\",\r\n render: (text, record) => (\r\n \r\n {text}\r\n \r\n ),\r\n },\r\n {\r\n title: \"Tên đơn hàng/việc làm\",\r\n dataIndex: \"jobName\",\r\n key: \"jobName\",\r\n render: (text, record) => (\r\n \r\n {text}\r\n \r\n ),\r\n },\r\n\r\n {\r\n title: \"Tiền hoa hồng\",\r\n dataIndex: \"f0Bonus\",\r\n key: \"f0Bonus\",\r\n render: (text, record) => (\r\n
\r\n
\r\n {text\r\n ? text.toFixed(0).replace(/(\\d)(?=(\\d{3})+(?!\\d))/g, \"$1,\")\r\n : \"\"}\r\n
\r\n
\r\n {/* \r\n Tải về\r\n */}\r\n {record.files &&\r\n record.files.map((file) => (\r\n
\r\n \r\n {\" \"}\r\n [{file.createdAt}] {file.name}\r\n \r\n
\r\n ))}\r\n
\r\n
\r\n ),\r\n },\r\n ];\r\n\r\n const tableCandidatesColumns = columns_candidates.map((item) => ({\r\n ...item,\r\n }));\r\n\r\n const tableF1CandidatesColumns = columns_f1_candidates.map((item) => ({\r\n ...item,\r\n }));\r\n\r\n const [cadidatesWithState, setCadidatesWithState] = useState([]);\r\n const [f1CadidatesWithState, setf1CadidatesWithState] = useState([]);\r\n\r\n const dispatch = useDispatch();\r\n\r\n // const memberUserList = useSelector((state) => state.memberUserList);\r\n const candidateMemberUserList = useSelector(\r\n (state) => state.candidateMemberUserList\r\n );\r\n\r\n const { candidates, total, error, loading } = candidateMemberUserList;\r\n const allF1CandidatesMembers = useSelector(\r\n (state) => state.allF1CandidatesMembers\r\n );\r\n\r\n const { f1Candidates, totalF1, errorF1, loadingF1 } = allF1CandidatesMembers;\r\n useEffect(() => {\r\n var k = \"\";\r\n var s = \"\";\r\n var kf1 = \"\";\r\n var sf1 = \"\";\r\n if (params_search.k) {\r\n setKeyword(params_search.k);\r\n k = params_search.k;\r\n } else {\r\n k = \" \";\r\n }\r\n if (params_search.s) {\r\n setState(params_search.s);\r\n s = params_search.s;\r\n } else {\r\n s = \" \";\r\n }\r\n\r\n if (params_search.kf1) {\r\n setKeywordF1(params_search.kf1);\r\n kf1 = params_search.kf1;\r\n } else {\r\n kf1 = \" \";\r\n }\r\n if (params_search.sf1) {\r\n setStateF1(params_search.sf1);\r\n sf1 = params_search.sf1;\r\n } else {\r\n sf1 = \" \";\r\n }\r\n dispatch(listCandidateMemberUsersAction(pageCadidate, 10, k, s));\r\n\r\n dispatch(listF1CandidateMemberUsersAction(pageCadidateF1, 10, kf1, sf1));\r\n }, [\r\n dispatch,\r\n pageCadidate,\r\n pageCadidateF1,\r\n params_search.s,\r\n params_search.sf1,\r\n params_search.k,\r\n params_search.kf1,\r\n ]);\r\n\r\n const handleAddCandidateSuccess = () => {\r\n dispatch(listCandidateMemberUsersAction(pageCadidate, 10, keyword, state));\r\n const keywordToUse = keywordF1 !== \"\" ? keywordF1 : \" \";\r\n dispatch(\r\n listF1CandidateMemberUsersAction(\r\n pageCadidateF1,\r\n 10,\r\n keywordToUse,\r\n stateF1\r\n )\r\n );\r\n };\r\n useEffect(() => {\r\n if (candidates) {\r\n setCadidatesWithState(\r\n candidates.map((obj) => {\r\n switch (obj.candidateState) {\r\n case 1:\r\n return { ...obj, text: \"Chờ tư vấn\", textColor: \"#343a40\" };\r\n case 2:\r\n return { ...obj, text: \"Đang tư vấn\", textColor: \"#ff9800\" };\r\n case 3:\r\n return { ...obj, text: \"Chờ đơn phù hợp\", textColor: \"#c60\" };\r\n case 4:\r\n return { ...obj, text: \"Đã từ chối\", textColor: \"#f44336\" };\r\n case 5:\r\n return { ...obj, text: \"Chuẩn bị hồ sơ\", textColor: \"#07cfc3\" };\r\n case 6:\r\n return { ...obj, text: \"Đang đào tạo\", textColor: \"#04a7a0\" };\r\n case 7:\r\n return { ...obj, text: \"Chờ thi tuyển\", textColor: \"#0487ce\" };\r\n case 8:\r\n return { ...obj, text: \"Chờ xuất cảnh\", textColor: \"#ab0080\" };\r\n case 9:\r\n return {\r\n ...obj,\r\n text: \"Đang thanh toán cho bạn\",\r\n textColor: \"#09008e\",\r\n };\r\n case 10:\r\n return {\r\n ...obj,\r\n text: \"Đã hủy\",\r\n textColor: \"#b11307\",\r\n };\r\n case 11:\r\n return {\r\n ...obj,\r\n text: \"Đã trượt\",\r\n textColor: \"#ead304\",\r\n };\r\n case 12:\r\n return {\r\n ...obj,\r\n text: \"Đã bảo lưu\",\r\n textColor: \"#5c616f\",\r\n };\r\n case 100:\r\n return { ...obj, text: \"Đã hoàn thành\", textColor: \"#4caf50\" };\r\n default:\r\n return [];\r\n }\r\n })\r\n );\r\n }\r\n }, [candidates]);\r\n\r\n useEffect(() => {\r\n if (f1Candidates) {\r\n setf1CadidatesWithState(\r\n f1Candidates.map((obj) => {\r\n switch (obj.candidateState) {\r\n case 1:\r\n return { ...obj, text: \"Chờ tư vấn\", textColor: \"#343a40\" };\r\n case 2:\r\n return { ...obj, text: \"Đang tư vấn\", textColor: \"#ff9800\" };\r\n case 3:\r\n return { ...obj, text: \"Chờ đơn phù hợp\", textColor: \"#c60\" };\r\n case 4:\r\n return { ...obj, text: \"Đã từ chối\", textColor: \"#f44336\" };\r\n case 5:\r\n return { ...obj, text: \"Chuẩn bị hồ sơ\", textColor: \"#07cfc3\" };\r\n case 6:\r\n return { ...obj, text: \"Đang đào tạo\", textColor: \"#04a7a0\" };\r\n case 7:\r\n return { ...obj, text: \"Chờ thi tuyển\", textColor: \"#0487ce\" };\r\n case 8:\r\n return { ...obj, text: \"Chờ xuất cảnh\", textColor: \"#ab0080\" };\r\n case 9:\r\n return {\r\n ...obj,\r\n text: \"Đang thanh toán cho bạn\",\r\n textColor: \"#09008e\",\r\n };\r\n case 10:\r\n return {\r\n ...obj,\r\n text: \"Đã hủy\",\r\n textColor: \"#b11307\",\r\n };\r\n case 11:\r\n return {\r\n ...obj,\r\n text: \"Đã trượt\",\r\n textColor: \"#ead304\",\r\n };\r\n case 12:\r\n return {\r\n ...obj,\r\n text: \"Đã bảo lưu\",\r\n textColor: \"#5c616f\",\r\n };\r\n case 100:\r\n return { ...obj, text: \"Đã hoàn thành\", textColor: \"#4caf50\" };\r\n default:\r\n return [];\r\n }\r\n })\r\n );\r\n }\r\n }, [f1Candidates]);\r\n const pagination_config_candidate = {\r\n pageSize: 10,\r\n onChange: onChangeCandidate,\r\n total: total,\r\n };\r\n function onChangeCandidate(pageNumber) {\r\n setPageCadidate(pageNumber);\r\n }\r\n\r\n const pagination_config_candidate_f1 = {\r\n pageSize: 10,\r\n onChange: onChangeCandidateF1,\r\n total: totalF1,\r\n };\r\n function onChangeCandidateF1(pageNumber) {\r\n setPageCadidateF1(pageNumber);\r\n }\r\n const onSearch = (value) => {\r\n // e.preventDefault();\r\n // console.log(\"vào đây\");\r\n // Thực hiện tìm kiếm khi người dùng nhấn nút tìm kiếm\r\n setKeyword(value);\r\n\r\n // dispatch(\r\n // listJobLinksAction(1, 99999, value, factoryTextSeo, sectorTextSeo)\r\n // );\r\n const endpoint = `${location.pathname}?k=${keyword}&s=${state}&kf1=${keywordF1}&sf1=${stateF1}`;\r\n\r\n // history.push(endpoint);\r\n window.location.href = window.location.origin + endpoint;\r\n };\r\n\r\n // console.log(\"keywordF1\", keywordF1);\r\n\r\n const onChangeState = (value) => {\r\n // console.log(\"value\", value);\r\n setState(value);\r\n const endpoint = `${location.pathname}?k=${keyword}&s=${value}&kf1=${keywordF1}&sf1=${stateF1}`;\r\n\r\n // history.push(endpoint);\r\n window.location.href = window.location.origin + endpoint;\r\n };\r\n\r\n const onChangeStateF1 = (value) => {\r\n // console.log(\"value\", value);\r\n setStateF1(value);\r\n const endpoint = `${location.pathname}?k=${keyword}&s=${state}&kf1=${keywordF1}&sf1=${value}`;\r\n\r\n // history.push(endpoint);\r\n window.location.href = window.location.origin + endpoint;\r\n };\r\n\r\n const onSearchF1Candidate = (value) => {\r\n // e.preventDefault();\r\n // console.log(\"vào đây\");\r\n // Thực hiện tìm kiếm khi người dùng nhấn nút tìm kiếm\r\n // setPageCadidateF1(1);\r\n // const keywordToUse = keywordF1 !== \"\" ? keywordF1 : \" \";\r\n // // console.log(\"keywordToUse\", keywordToUse);\r\n // dispatch(\r\n // listF1CandidateMemberUsersAction(pageCadidate, 10, keywordToUse, stateF1)\r\n // );\r\n setKeywordF1(value);\r\n const endpoint = `${location.pathname}?k=${keyword}&s=${state}&kf1=${keywordF1}&sf1=${stateF1}`;\r\n\r\n // history.push(endpoint);\r\n window.location.href = window.location.origin + endpoint;\r\n };\r\n\r\n return (\r\n
\r\n \r\n Danh sách ứng viên\r\n \r\n
\r\n
\r\n
\r\n \r\n Ứng viên của bạn (\r\n \r\n {total ? total : \"0\"} ứng viên\r\n \r\n )\r\n \r\n }\r\n style={{\r\n display: \"inline\",\r\n marginLeft: \"3px\",\r\n borderRadius: \"5px\",\r\n color: \"#2cb67b\",\r\n }}\r\n onClick={() => setIsVisibleModal(true)}\r\n title=\"Thêm ứng viên\"\r\n />\r\n
\r\n \r\n \r\n \r\n option.children.toLowerCase().indexOf(input.toLowerCase()) >=\r\n 0\r\n }\r\n onChange={onChangeState}\r\n value={loading === true ? \"\" : state.toString()}\r\n >\r\n {states.map((state) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n setKeyword(e.target.value)}\r\n onSearch={onSearch}\r\n enterButton\r\n style={{ width: \"100%\" }}\r\n />\r\n \r\n \r\n\r\n {/*

{total ? total : \"0\"} ứng viên

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

\r\n Ứng viên của thành viên F1 (\r\n \r\n {totalF1 ? totalF1 : \"0\"} ứng viên\r\n \r\n )\r\n

\r\n\r\n {/*

\r\n {\" \"}\r\n {totalF1 ? totalF1 : \"0\"} ứng viên\r\n

*/}\r\n \r\n \r\n \r\n option.children.toLowerCase().indexOf(input.toLowerCase()) >=\r\n 0\r\n }\r\n onChange={onChangeStateF1}\r\n value={loadingF1 === true ? \"\" : stateF1.toString()}\r\n >\r\n {states.map((state) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n setKeywordF1(e.target.value)}\r\n onSearch={onSearchF1Candidate}\r\n enterButton\r\n style={{ width: \"100%\" }}\r\n />\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n Danh sách ứng viên\r\n \r\n \r\n {/* {modalContent} */}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default CandidateMember;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { Layout } from \"antd\";\r\nimport { Route, Switch, Redirect, Link } from \"react-router-dom\";\r\nimport \"./AdminLayout.scss\";\r\nimport routes from \"../config/routes\";\r\nimport MenuTop from \"../components/Admin/MenuTop\";\r\nimport MenuSlider from \"../components/Admin/MenuSlider\";\r\nimport AdminSignIn from \"../pages/Admin/SignIn/SignIn\";\r\n// import CandidateMember from '../pages/Admin/CandidateMember';\r\nimport CandidateMember from \"../pages/Admin/CandidateMember\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\n\r\nconst AdminCandidateMember = (props) => {\r\n const { routes, location, history } = props;\r\n const [menuCollapsed, setMenuCollapsed] = useState(false);\r\n const { Header, Content, Footer } = Layout;\r\n const userLogin = useSelector((state) => state.userLogin);\r\n const { userInfo } = userLogin;\r\n\r\n if (!userInfo) {\r\n return (\r\n <>\r\n \r\n\r\n \r\n \r\n );\r\n }\r\n\r\n if (userInfo) {\r\n return ;\r\n }\r\n\r\n return null;\r\n};\r\n\r\n// const LoadRoutes = ({ routes }) => {\r\n// return (\r\n// \r\n// {routes.map((route, index) => (\r\n// \r\n// ))}\r\n// \r\n// );\r\n// };\r\n\r\nexport default AdminCandidateMember;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { Table } from \"antd\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { Divider } from \"antd\";\r\nimport { Helmet } from \"react-helmet\";\r\n\r\nimport { listF1MemberUsersAction } from \"../../../redux/actions/userActions\";\r\nimport \"./AllF1CandidateMembers.scss\";\r\nconst AllF1CandidateMembers = () => {\r\n const columns_candidates = [\r\n {\r\n title: \"Thông tin ứng viên\",\r\n dataIndex: \"name\",\r\n key: \"name\",\r\n },\r\n\r\n {\r\n title: \"Số điện thoại\",\r\n dataIndex: \"phone\",\r\n key: \"phone\",\r\n render: (text, record) =>\r\n record.isPhoneHidden ? (\r\n record.phone\r\n ) : (\r\n \r\n {text}\r\n \r\n ),\r\n },\r\n {\r\n title: \"Địa chỉ\",\r\n dataIndex: \"address\",\r\n key: \"address\",\r\n },\r\n {\r\n title: \"Thành viên giới thiệu\",\r\n dataIndex: \"referrer\",\r\n key: \"referrer\",\r\n render: (text, record) => (\r\n \r\n {text}\r\n \r\n ),\r\n },\r\n {\r\n title: \"Tên đơn hàng/việc làm\",\r\n dataIndex: \"jobName\",\r\n key: \"jobName\",\r\n render: (text, record) => (\r\n \r\n {text}\r\n \r\n ),\r\n },\r\n {\r\n title: \"Tiền hoa hồng\",\r\n dataIndex: \"referrerBonus\",\r\n key: \"referrerBonus\",\r\n },\r\n\r\n {\r\n title: \"Tiền hoa hồng F0\",\r\n dataIndex: \"f0Bonus\",\r\n key: \"f0Bonus\",\r\n },\r\n ];\r\n const dispatch = useDispatch();\r\n\r\n // const memberUserList = useSelector((state) => state.memberUserList);\r\n const allF1CandidatesMembers = useSelector(\r\n (state) => state.allF1CandidatesMembers\r\n );\r\n\r\n const { candidates, total, error, loading } = allF1CandidatesMembers;\r\n\r\n useEffect(() => {\r\n dispatch(listF1MemberUsersAction());\r\n }, [dispatch]);\r\n // useEffect(() => {\r\n // dispatch(listMemberUsersAction(1, 10));\r\n // }, [dispatch]);\r\n\r\n return (\r\n
\r\n
\r\n
\r\n

Danh sách tất cả ứng viên

\r\n\r\n

{total ? total : \"0\"} ứng viên

\r\n
\r\n \r\n
\r\n \r\n Danh sách ứng viên\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default AllF1CandidateMembers;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { Layout } from 'antd';\r\nimport { Route, Switch, Redirect, Link } from 'react-router-dom';\r\nimport './AdminLayout.scss';\r\nimport routes from '../config/routes';\r\nimport MenuTop from '../components/Admin/MenuTop';\r\nimport MenuSlider from '../components/Admin/MenuSlider';\r\nimport AdminSignIn from '../pages/Admin/SignIn/SignIn';\r\n// import CandidateMember from '../pages/Admin/CandidateMember';\r\nimport AllF1CandidateMembers from '../pages/Admin/AllF1CandidateMembers';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\n\r\nconst AdminF1CandidateMember = (props) => {\r\n const { routes, location, history } = props;\r\n const [menuCollapsed, setMenuCollapsed] = useState(false);\r\n const { Header, Content, Footer } = Layout;\r\n const userLogin = useSelector((state) => state.userLogin);\r\n const { userInfo } = userLogin;\r\n\r\n if (!userInfo) {\r\n return (\r\n <>\r\n \r\n\r\n \r\n \r\n );\r\n }\r\n\r\n if (userInfo) {\r\n return ;\r\n }\r\n\r\n return null;\r\n};\r\n\r\n// const LoadRoutes = ({ routes }) => {\r\n// return (\r\n// \r\n// {routes.map((route, index) => (\r\n// \r\n// ))}\r\n// \r\n// );\r\n// };\r\n\r\nexport default AdminF1CandidateMember;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { Table } from \"antd\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { Link, Redirect } from \"react-router-dom\";\r\nimport { Divider, Button, notification } from \"antd\";\r\nimport { CopyOutlined } from \"@ant-design/icons\";\r\nimport { Helmet } from \"react-helmet\";\r\nimport { Row, Col, Select } from \"antd\";\r\nimport { Input, Space } from \"antd\";\r\nimport { AudioOutlined } from \"@ant-design/icons\";\r\nimport queryString from \"query-string\";\r\n\r\nimport { listJobLinksAction } from \"../../../redux/actions/userActions\";\r\nimport \"./AllJobLinks.scss\";\r\nconst AllJobLinks = ({ location, history }) => {\r\n const params_search = queryString.parse(location.search);\r\n // console.log(\"location\", location);\r\n\r\n const scroll = {};\r\n scroll.x = \"100vw\";\r\n const { Search } = Input;\r\n const [searchText, setSearchText] = useState(\"\");\r\n const [sectorTextSeo, setSectorTextSeo] = useState(\"\");\r\n const [factoryTextSeo, setFactoryTextSeo] = useState(\"\");\r\n const [countryTextSeo, setCountryTextSeo] = useState(\"\");\r\n const [sectorText, setSectorText] = useState(\"\");\r\n const [factoryText, setFactoryText] = useState(\"\");\r\n const [countryText, setCountryText] = useState(\"\");\r\n\r\n const [page, setPage] = useState(1);\r\n const [quantity, setQuantity] = useState(20);\r\n\r\n const [copySuccess, setCopySuccess] = useState(\"\");\r\n const { Option } = Select;\r\n\r\n const copyToClipBoard = async (copyMe, jobName) => {\r\n try {\r\n await navigator.clipboard.writeText(copyMe);\r\n notification[\"success\"]({\r\n message: `Sao chép link thành công đơn hàng/việc làm: ${jobName}`,\r\n description: copyMe,\r\n onClick: () => {\r\n window.open(copyMe, \"_blank\");\r\n },\r\n });\r\n } catch (err) {\r\n // setCopySuccess('Lỗi sao chép');\r\n }\r\n };\r\n const columns_jobs = [\r\n {\r\n title: \"Đơn hàng/Việc làm\",\r\n dataIndex: \"name\",\r\n key: \"name\",\r\n render: (text, record) => (\r\n <>\r\n \r\n copyToClipBoard(\r\n `${record.detailJobUrl}?ref=${record.referrerCode}`,\r\n record.name\r\n )\r\n }\r\n >\r\n {\" \"}\r\n
\r\n {\" \"}\r\n {\" \"}\r\n \r\n Sao chép link đơn hàng/việc làm\r\n \r\n
\r\n \r\n \r\n {record.cost\r\n ? record.cost.toFixed(0).replace(/(\\d)(?=(\\d{3})+(?!\\d))/g, \"$1,\")\r\n : \"0\"}\r\n $\r\n \r\n\r\n \r\n {text}\r\n \r\n
\r\n \r\n {record.jobType === 1 ? \"Trong nước\" : \"Nước ngoài\"}\r\n \r\n {record.registrationEndDate ? (\r\n \r\n {record.registrationEndDate}\r\n \r\n ) : (\r\n Gửi lý lịch\r\n )}\r\n
\r\n \r\n ),\r\n },\r\n\r\n {\r\n title: \"Ngành nghề\",\r\n dataIndex: \"sectorName\",\r\n key: \"sectorName\",\r\n },\r\n {\r\n title: \"Nơi học tập, làm việc\",\r\n dataIndex: \"factoryName\",\r\n key: \"factoryName\",\r\n },\r\n {\r\n title: \"Thành phố\",\r\n dataIndex: \"cityName\",\r\n key: \"cityName\",\r\n },\r\n ];\r\n\r\n const tableColumns = columns_jobs.map((item) => ({\r\n ...item,\r\n }));\r\n const dispatch = useDispatch();\r\n\r\n // const memberUserList = useSelector((state) => state.memberUserList);\r\n const allJobLinks = useSelector((state) => state.allJobLinks);\r\n\r\n const {\r\n jobs,\r\n total,\r\n error,\r\n loading,\r\n allSectors,\r\n allFactories,\r\n allCountries,\r\n } = allJobLinks;\r\n\r\n const pagination_config = {\r\n pageSize: quantity,\r\n onChange: onChange,\r\n total: total,\r\n };\r\n\r\n function onChange(pageNumber) {\r\n setPage(pageNumber);\r\n }\r\n function onFactoryChange(value) {\r\n setFactoryTextSeo(value);\r\n\r\n // dispatch(listJobLinksAction(1, 99999, searchText, value, sectorTextSeo));\r\n const endpoint = `${location.pathname}?k=${searchText}&c=${countryTextSeo}&f=${value}&s=${sectorTextSeo}`;\r\n\r\n history.push(endpoint);\r\n window.location.href = window.location.origin + endpoint;\r\n // setPage(1);\r\n }\r\n function onCountryChange(value) {\r\n setCountryTextSeo(value);\r\n // dispatch(listJobLinksAction(1, 99999, searchText, value, sectorTextSeo));\r\n const endpoint = `${location.pathname}?k=${searchText}&c=${value}&f=${factoryTextSeo}&s=${sectorTextSeo}`;\r\n\r\n // history.push(endpoint);\r\n window.location.href = window.location.origin + endpoint;\r\n\r\n // setPage(1);\r\n }\r\n function onSectorChange(value) {\r\n setSectorTextSeo(value);\r\n const endpoint = `${location.pathname}?k=${searchText}&c=${countryTextSeo}&f=${factoryTextSeo}&s=${value}`;\r\n\r\n // history.push(endpoint);\r\n window.location.href = window.location.origin + endpoint;\r\n\r\n // setPage(1);\r\n\r\n // dispatch(listJobLinksAction(1, 99999, searchText, factoryTextSeo, value));\r\n }\r\n\r\n function onBlur() {}\r\n\r\n function onFocus() {}\r\n\r\n const onTextSearch = (value) => {\r\n setSearchText(value);\r\n\r\n // dispatch(\r\n // listJobLinksAction(1, 99999, value, factoryTextSeo, sectorTextSeo)\r\n // );\r\n const endpoint = `${location.pathname}?k=${searchText}&c=${countryTextSeo}&f=${factoryTextSeo}&s=${sectorTextSeo}`;\r\n\r\n // history.push(endpoint);\r\n window.location.href = window.location.origin + endpoint;\r\n\r\n // setPage(1);\r\n };\r\n\r\n function onSearchTextChange(e) {\r\n e.preventDefault();\r\n\r\n setSearchText(e.target.value);\r\n }\r\n\r\n useEffect(() => {\r\n var k = \"\";\r\n var c = \"\";\r\n var f = \"\";\r\n var s = \"\";\r\n if (params_search.k) {\r\n setSearchText(params_search.k);\r\n k = params_search.k;\r\n } else {\r\n k = \" \";\r\n }\r\n if (params_search.c) {\r\n setCountryTextSeo(params_search.c);\r\n c = params_search.c;\r\n } else {\r\n c = \" \";\r\n }\r\n if (params_search.f) {\r\n setFactoryTextSeo(params_search.f);\r\n f = params_search.f;\r\n } else {\r\n f = \" \";\r\n }\r\n if (params_search.s) {\r\n setSectorTextSeo(params_search.s);\r\n s = params_search.s;\r\n } else {\r\n s = \" \";\r\n }\r\n // if (allCountries) {\r\n\r\n // for (c in allFactories) {\r\n // if (c.id === countryTextSeo) {\r\n // }\r\n // }\r\n // }\r\n dispatch(listJobLinksAction(page, quantity, k, c, f, s));\r\n }, [\r\n dispatch,\r\n params_search.c,\r\n params_search.f,\r\n params_search.k,\r\n params_search.s,\r\n page,\r\n quantity,\r\n ]);\r\n // useEffect(() => {\r\n // dispatch(listMemberUsersAction(1, 10));\r\n // }, [dispatch]);\r\n\r\n return (\r\n
\r\n \r\n Danh sách đơn hàng/việc làm\r\n \r\n\r\n \r\n\r\n
\r\n \r\n \r\n \r\n option.children.toLowerCase().indexOf(input.toLowerCase()) >= 0\r\n }\r\n onChange={onCountryChange}\r\n value={loading === true ? \"\" : countryTextSeo}\r\n >\r\n {allCountries ? : \"\"}\r\n\r\n {allCountries &&\r\n allCountries.map((country) => (\r\n \r\n ))}\r\n \r\n \r\n\r\n \r\n \r\n // option.children.toLowerCase().indexOf(input.toLowerCase()) >= 0\r\n // }\r\n onFocus={onFocus}\r\n onBlur={onBlur}\r\n value={loading === true ? \"\" : factoryTextSeo}\r\n >\r\n {allFactories ? (\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n\r\n {allFactories &&\r\n allFactories.map((factory) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n // option.children.toLowerCase().indexOf(input.toLowerCase()) >= 0\r\n // }\r\n onChange={onSectorChange}\r\n onFocus={onFocus}\r\n onBlur={onBlur}\r\n value={loading === true ? \"\" : sectorTextSeo}\r\n >\r\n {allSectors ? : \"\"}\r\n\r\n {allSectors &&\r\n allSectors.map((sector) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n

\r\n {total ? total : \"0\"} đơn hàng/việc làm\r\n

\r\n
\r\n \r\n
\r\n \r\n Danh sách đơn hàng/việc làm\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default AllJobLinks;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { Layout } from 'antd';\r\nimport { Route, Switch, Redirect, Link } from 'react-router-dom';\r\nimport './AdminLayout.scss';\r\nimport routes from '../config/routes';\r\nimport MenuTop from '../components/Admin/MenuTop';\r\nimport MenuSlider from '../components/Admin/MenuSlider';\r\nimport AdminSignIn from '../pages/Admin/SignIn/SignIn';\r\n// import CandidateMember from '../pages/Admin/CandidateMember';\r\nimport AllJobLinks from '../pages/Admin/AllJobLinks';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\n\r\nconst AdminJobLinks = (props) => {\r\n const { routes, location, history } = props;\r\n const [menuCollapsed, setMenuCollapsed] = useState(false);\r\n const { Header, Content, Footer } = Layout;\r\n const userLogin = useSelector((state) => state.userLogin);\r\n const { userInfo } = userLogin;\r\n\r\n if (!userInfo) {\r\n return (\r\n <>\r\n \r\n\r\n \r\n \r\n );\r\n }\r\n\r\n if (userInfo) {\r\n return ;\r\n }\r\n\r\n return null;\r\n};\r\n\r\n// const LoadRoutes = ({ routes }) => {\r\n// return (\r\n// \r\n// {routes.map((route, index) => (\r\n// \r\n// ))}\r\n// \r\n// );\r\n// };\r\n\r\nexport default AdminJobLinks;\r\n","export const DOCUMENTS_LIST_REQUEST = 'DOCUMENTS_LIST_REQUEST';\r\nexport const DOCUMENTS_LIST_SUCCESS = 'DOCUMENTS_LIST_SUCCESS';\r\nexport const DOCUMENTS_LIST_FAIL = 'DOCUMENTS_LIST_FAIL';\r\n","import {\r\n DOCUMENTS_LIST_REQUEST,\r\n DOCUMENTS_LIST_SUCCESS,\r\n DOCUMENTS_LIST_FAIL,\r\n} from '../constants/documentConstants';\r\n\r\nimport { USER_LOGOUT } from '../constants/userConstants';\r\n\r\nimport axios from '../../services/axios';\r\nimport requests from '../../services/requests';\r\n\r\nexport const getDocumentsAction = (\r\n page,\r\n quantity,\r\n query = '',\r\n categorySeo = ''\r\n) => async (dispatch, getState) => {\r\n try {\r\n dispatch({\r\n type: DOCUMENTS_LIST_REQUEST,\r\n });\r\n\r\n const {\r\n userLogin: { userInfo },\r\n } = getState();\r\n\r\n const config = {\r\n headers: {\r\n Authorization: `Bearer ${userInfo.token}`,\r\n },\r\n };\r\n\r\n const { data } = await axios.get(\r\n requests.allDocuments(page, quantity, query, categorySeo),\r\n config\r\n );\r\n dispatch({\r\n type: DOCUMENTS_LIST_SUCCESS,\r\n payload: data,\r\n });\r\n } catch (error) {\r\n const message =\r\n error.response && error.response.data.message\r\n ? error.response.data.message\r\n : error.message;\r\n if (error.response && error.response.status === 401) {\r\n dispatch(logout());\r\n }\r\n dispatch({\r\n type: DOCUMENTS_LIST_FAIL,\r\n payload: message,\r\n });\r\n }\r\n};\r\n\r\nexport const logout = () => (dispatch) => {\r\n localStorage.removeItem('userInfo');\r\n\r\n dispatch({ type: USER_LOGOUT });\r\n // dispatch({ type: USER_DETAILS_RESET });\r\n // document.location.href = '/login';\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\n\r\nimport { useSelector } from 'react-redux';\r\nimport { Spin } from 'antd';\r\nimport axios from '../../../services/axios';\r\nimport requests from '../../../services/requests';\r\nimport parse from 'html-react-parser';\r\n\r\nconst DocumentContent = ({ seo }) => {\r\n const [isSpinning, setIsSpinning] = useState(false);\r\n\r\n const userLogin = useSelector((state) => state.userLogin);\r\n const { userInfo } = userLogin;\r\n const [loading, setLoading] = useState(false);\r\n const [content, setContent] = useState('');\r\n useEffect(() => {\r\n async function fetchDocumentContent() {\r\n // You can await here\r\n const config = {\r\n headers: {\r\n Authorization: `Bearer ${userInfo.token}`,\r\n },\r\n };\r\n setLoading(true);\r\n const { data } = await axios.get(\r\n requests.getDocumentContent(seo),\r\n config\r\n );\r\n setContent(data.content);\r\n setLoading(false);\r\n }\r\n fetchDocumentContent();\r\n // if (JSON.stringify(userData) !== '{}') {\r\n // setLoading(true);\r\n // }\r\n }, [seo]);\r\n\r\n return loading ? (\r\n
\r\n \r\n
\r\n ) : (\r\n
{parse(content)}
\r\n );\r\n};\r\n\r\nexport default DocumentContent;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { Table } from \"antd\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { Divider } from \"antd\";\r\nimport { Helmet } from \"react-helmet\";\r\nimport { Row, Col, Select, Input } from \"antd\";\r\nimport queryString from \"query-string\";\r\nimport { Button } from \"antd\";\r\n\r\nimport { getDocumentsAction } from \"../../../redux/actions/documentActions\";\r\nimport \"./AllDocuments.scss\";\r\nimport Modal from \"../../../components/Modal\";\r\nimport DocumentContent from \"./DocumentContent\";\r\n\r\nconst AllF1CandidateMembers = ({ location, history }) => {\r\n const scroll = {};\r\n scroll.x = \"100vw\";\r\n const { Search } = Input;\r\n const [searchText, setSearchText] = useState(\"\");\r\n const [categoryTextSeo, setCategoryTextSeo] = useState(\"\");\r\n const { Option } = Select;\r\n const params_search = queryString.parse(location.search);\r\n const [isVisibleModal, setIsVisibleModal] = useState(false);\r\n const [modalTitle, setIsModalTitle] = useState(\"\");\r\n const [modalContent, setIsModalContent] = useState(null);\r\n const [page, setPage] = useState(1);\r\n\r\n const columns_documents = [\r\n {\r\n title: \"Tên tài liệu\",\r\n dataIndex: \"attachFileFullUrl\",\r\n key: \"attachFileFullUrl\",\r\n // responsive: ['lg'],\r\n render: (text, record) => (\r\n
\r\n
\r\n {\" \"}\r\n {/* showContent(record.seo)}>\r\n */}\r\n showContent(record.seo)}\r\n >\r\n {record.subject}\r\n \r\n
\r\n
\r\n \r\n Tải về\r\n \r\n
\r\n
\r\n ),\r\n },\r\n\r\n {\r\n title: \"Danh mục\",\r\n dataIndex: \"docCategoryName\",\r\n key: \"docCategoryName\",\r\n },\r\n {\r\n title: \"Nội dung\",\r\n dataIndex: \"shortContent\",\r\n\r\n key: \"shortContent\",\r\n // responsive: ['lg'],\r\n },\r\n ];\r\n const tableColumns = columns_documents.map((item) => ({\r\n ...item,\r\n }));\r\n\r\n const dispatch = useDispatch();\r\n\r\n const allDocuments = useSelector((state) => state.allDocuments);\r\n\r\n const { documents, total, allCategories, error, loading } = allDocuments;\r\n\r\n useEffect(() => {\r\n var k = \"\";\r\n var c = \"\";\r\n\r\n if (params_search.k) {\r\n setSearchText(params_search.k);\r\n k = params_search.k;\r\n } else {\r\n k = \" \";\r\n }\r\n if (params_search.c) {\r\n setCategoryTextSeo(params_search.c);\r\n c = params_search.c;\r\n } else {\r\n c = \" \";\r\n }\r\n\r\n dispatch(getDocumentsAction(page, 20, k, c));\r\n }, [dispatch, params_search.c, params_search.k, page]);\r\n const showContent = (seo) => {\r\n setIsVisibleModal(true);\r\n setIsModalTitle(`Nội dung tài liệu`);\r\n setIsModalContent();\r\n };\r\n function onCategoryChange(value) {\r\n setCategoryTextSeo(value);\r\n // dispatch(listJobLinksAction(1, 99999, searchText, value, sectorTextSeo));\r\n const endpoint = `${location.pathname}?k=${searchText}&c=${value}`;\r\n\r\n history.push(endpoint);\r\n setPage(1);\r\n }\r\n\r\n const onTextSearch = (value) => {\r\n setSearchText(value);\r\n\r\n const endpoint = `${location.pathname}?k=${searchText}&c=${categoryTextSeo}`;\r\n\r\n history.push(endpoint);\r\n setPage(1);\r\n };\r\n\r\n function onSearchTextChange(e) {\r\n e.preventDefault();\r\n\r\n setSearchText(e.target.value);\r\n }\r\n\r\n const pagination_config = {\r\n pageSize: 20,\r\n onChange: onChange,\r\n total: total,\r\n };\r\n\r\n function onChange(pageNumber) {\r\n setPage(pageNumber);\r\n }\r\n\r\n return (\r\n
\r\n \r\n Danh sách tài liệu\r\n \r\n \r\n\r\n
\r\n \r\n \r\n \r\n \r\n\r\n {allCategories &&\r\n allCategories.map((category) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n {/*

Danh sách tất cả F1

*/}\r\n

\r\n {\" \"}\r\n {total ? total : \"0\"} tài liệu\r\n

\r\n
\r\n \r\n
\r\n \r\n Danh sách tài liệu\r\n \r\n \r\n {modalContent}\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default AllF1CandidateMembers;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { Layout } from 'antd';\r\nimport { Route, Switch, Redirect, Link } from 'react-router-dom';\r\nimport './AdminLayout.scss';\r\nimport routes from '../config/routes';\r\nimport MenuTop from '../components/Admin/MenuTop';\r\nimport MenuSlider from '../components/Admin/MenuSlider';\r\nimport AdminSignIn from '../pages/Admin/SignIn/SignIn';\r\n// import CandidateMember from '../pages/Admin/CandidateMember';\r\nimport AllDocuments from '../pages/Admin/AllDocuments';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\n\r\nconst AdminDocuments = (props) => {\r\n const { routes, location, history } = props;\r\n const [menuCollapsed, setMenuCollapsed] = useState(false);\r\n const { Header, Content, Footer } = Layout;\r\n const userLogin = useSelector((state) => state.userLogin);\r\n const { userInfo } = userLogin;\r\n\r\n if (!userInfo) {\r\n return (\r\n <>\r\n \r\n\r\n \r\n \r\n );\r\n }\r\n\r\n if (userInfo) {\r\n return ;\r\n }\r\n\r\n return null;\r\n};\r\n\r\n// const LoadRoutes = ({ routes }) => {\r\n// return (\r\n// \r\n// {routes.map((route, index) => (\r\n// \r\n// ))}\r\n// \r\n// );\r\n// };\r\n\r\nexport default AdminDocuments;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { Layout, Tabs } from 'antd';\r\nimport { Redirect, Route } from 'react-router-dom';\r\nimport RegisterForm from '../../../components/Admin/RegisterForm';\r\nimport { useSelector } from 'react-redux';\r\nimport queryString from 'query-string';\r\nimport LoginForm from '../../../components/Admin/LoginForm';\r\nimport { Helmet } from 'react-helmet';\r\n\r\nimport logo from '../../../assets/img/png/logo-full.png';\r\nimport './SignUp.scss';\r\nconst SignUp = ({ location, match }) => {\r\n const userLogin = useSelector((state) => state.userLogin);\r\n const { userInfo } = userLogin;\r\n const { Content } = Layout;\r\n var params_search = queryString.parse(location.search);\r\n let referrerFromStorage = localStorage.getItem('member_referrer')\r\n ? getQueryStringValueFrom(\r\n `?ref=${localStorage.getItem('member_referrer')}`,\r\n 'ref'\r\n )\r\n : null;\r\n useEffect(() => {\r\n if (params_search.ref) {\r\n // const data = { referrer: getQueryStringValue('ref').replace('+', '%2B') };\r\n\r\n localStorage.setItem(\r\n 'member_referrer',\r\n getQueryStringValue('ref').replace('+', '%2B')\r\n );\r\n }\r\n }, [params_search.ref]);\r\n\r\n function getQueryStringValueFrom(query, key) {\r\n return decodeURIComponent(\r\n query.replace(\r\n new RegExp(\r\n '^(?:.*[&\\\\?]' +\r\n encodeURIComponent(key).replace(/[\\.\\+\\*]/g, '\\\\$&') +\r\n '(?:\\\\=([^&]*))?)?.*$',\r\n 'i'\r\n ),\r\n '$1'\r\n )\r\n );\r\n }\r\n function getQueryStringValue(key) {\r\n return decodeURIComponent(\r\n window.location.search.replace(\r\n new RegExp(\r\n '^(?:.*[&\\\\?]' +\r\n encodeURIComponent(key).replace(/[\\.\\+\\*]/g, '\\\\$&') +\r\n '(?:\\\\=([^&]*))?)?.*$',\r\n 'i'\r\n ),\r\n '$1'\r\n )\r\n );\r\n }\r\n\r\n if (userInfo) {\r\n return ;\r\n }\r\n\r\n return (\r\n // \r\n // \r\n // {/*

\r\n // HubGroup\r\n //

*/}\r\n // \r\n // {/*
*/}\r\n // {/* \r\n // Đăng nhập} key='1'>\r\n // \r\n // \r\n // Đăng ký} key='2'>\r\n // \r\n // \r\n // */}\r\n // {/*
*/}\r\n //
\r\n //
\r\n\r\n \r\n \r\n
\r\n

\r\n HubGroup\r\n

\r\n \r\n ĐĂNG KÝ THÀNH VIÊN\r\n \r\n \r\n
\r\n
\r\n \r\n Đăng ký thành viên\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default SignUp;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { Form, Icon, Input, Button, notification, Spin } from \"antd\";\r\nimport { LoadingOutlined } from \"@ant-design/icons\";\r\n\r\nimport {\r\n UserOutlined,\r\n LockOutlined,\r\n InboxOutlined,\r\n UploadOutlined,\r\n PhoneOutlined,\r\n} from \"@ant-design/icons\";\r\nimport { forgotPasswordAction } from \"../../../redux/actions/userActions\";\r\nimport { FORGOT_PASSWORD_RESET } from \"../../../redux/constants/userConstants\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { Link } from \"react-router-dom\";\r\nconst ForgotPasswordForm = ({ location, history, match }) => {\r\n const antIcon = (\r\n \r\n );\r\n const [form] = Form.useForm();\r\n const dispatch = useDispatch();\r\n const [isSpinning, setIsSpinning] = useState(false);\r\n const forgotPasswordState = useSelector((state) => state.forgotPassword);\r\n const { loading, error, onSuccess } = forgotPasswordState;\r\n const [errorState, setErrorState] = useState(false);\r\n\r\n // const redirect = location.search ? location.search.split('=')[1] : '/';\r\n useEffect(() => {\r\n if (onSuccess) {\r\n notification[\"success\"]({\r\n message:\r\n \"Chúng tôi đã gửi link đặt lại mật khẩu cho bạn. Vui lòng kiểm tra tin nhắn điện thoại!\",\r\n });\r\n resetForm();\r\n setIsSpinning(false);\r\n } else {\r\n setErrorState(true);\r\n }\r\n\r\n if (error && errorState) {\r\n notification[\"error\"]({\r\n message: \"Có lỗi xảy ra.\",\r\n });\r\n resetForm();\r\n setIsSpinning(false);\r\n }\r\n return () => {\r\n dispatch({ type: FORGOT_PASSWORD_RESET });\r\n };\r\n }, [dispatch, error, onSuccess]);\r\n const resetForm = () => {\r\n form.resetFields();\r\n };\r\n\r\n const forgotPassword = async (values) => {\r\n const phoneNumber = values.phoneNumber;\r\n setIsSpinning(true);\r\n if (!phoneNumber) {\r\n notification.error({\r\n message: \"All fields are required\",\r\n });\r\n } else {\r\n const data = {\r\n Phone: phoneNumber,\r\n ResetPasswordUrl: match.path.replace(/\\//g, \"\") + \"?\",\r\n };\r\n dispatch(forgotPasswordAction(data));\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n \r\n Vui lòng nhập số điện thoại của bạn. Chúng tôi sẽ gửi một tin nhắn hướng\r\n dẫn cách đặt lại mật khẩu.\r\n

\r\n e.preventDefault()}\r\n onFinish={forgotPassword}\r\n rules={[{ required: true }]}\r\n form={form}\r\n name=\"control-hooks\"\r\n className=\"login-form\"\r\n >\r\n \r\n }\r\n placeholder=\"Số điện thoại\"\r\n style={{ width: \"100%\" }}\r\n className=\"login-form__input\"\r\n />\r\n \r\n \r\n \r\n GỬI YÊU CẦU{\" \"}\r\n {\" \"}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ForgotPasswordForm;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { Form, Icon, Input, Button, notification, Spin } from \"antd\";\r\nimport {\r\n UserOutlined,\r\n LockOutlined,\r\n InboxOutlined,\r\n UploadOutlined,\r\n PhoneOutlined,\r\n} from \"@ant-design/icons\";\r\nimport { resetPasswordAction } from \"../../../redux/actions/userActions\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { LoadingOutlined } from \"@ant-design/icons\";\r\n\r\nconst ResetPasswordForm = ({\r\n location,\r\n history,\r\n match,\r\n id,\r\n resetkey,\r\n secretcode,\r\n}) => {\r\n const antIcon = (\r\n \r\n );\r\n const [form] = Form.useForm();\r\n const dispatch = useDispatch();\r\n const [isSpinning, setIsSpinning] = useState(false);\r\n const resetPasswordState = useSelector((state) => state.resetPassword);\r\n const { loading, error, onSuccess } = resetPasswordState;\r\n const [errorState, setErrorState] = useState(false);\r\n\r\n // const redirect = location.search ? location.search.split('=')[1] : '/';\r\n useEffect(() => {\r\n if (onSuccess) {\r\n notification[\"success\"]({\r\n message: \"Mật khẩu của bạn đã được cập nhật thành công.\",\r\n });\r\n resetForm();\r\n setIsSpinning(false);\r\n } else {\r\n setErrorState(true);\r\n }\r\n\r\n if (error && errorState) {\r\n notification[\"error\"]({\r\n message: \"Có lỗi xảy ra.\",\r\n });\r\n resetForm();\r\n setIsSpinning(false);\r\n }\r\n }, [error, onSuccess]);\r\n const resetForm = () => {\r\n form.resetFields();\r\n };\r\n\r\n const resetPassword = async (values) => {\r\n const passwordVal = values.password;\r\n const repeatPasswordVal = values.repeatPassword;\r\n setIsSpinning(true);\r\n if (!passwordVal || !repeatPasswordVal) {\r\n notification.error({\r\n message: \"All fields are required.\",\r\n });\r\n } else {\r\n const data = {\r\n Id: id,\r\n Password: passwordVal,\r\n ConfirmPassword: repeatPasswordVal,\r\n ResetKey: resetkey,\r\n SecretCode: secretcode,\r\n };\r\n dispatch(resetPasswordAction(data));\r\n }\r\n };\r\n\r\n return (\r\n e.preventDefault()}\r\n onFinish={resetPassword}\r\n rules={[{ required: true }]}\r\n form={form}\r\n name=\"control-hooks\"\r\n className=\"login-form\"\r\n >\r\n \r\n }\r\n placeholder=\"Mật khẩu mới\"\r\n type=\"password\"\r\n className=\"register-form__input\"\r\n // onChange={inputValidation}\r\n // value={inputs.password}\r\n />\r\n \r\n\r\n ({\r\n validator(_, value) {\r\n if (!value || getFieldValue(\"password\") === value) {\r\n return Promise.resolve();\r\n }\r\n\r\n return Promise.reject(\r\n new Error(\"Xác nhận mật khẩu mới chưa khớp\")\r\n );\r\n },\r\n }),\r\n ]}\r\n >\r\n }\r\n placeholder=\"Xác nhận mật khẩu mới\"\r\n type=\"password\"\r\n className=\"register-form__input\"\r\n // onChange={inputValidation}\r\n // value={inputs.repeatPassword}\r\n />\r\n \r\n \r\n \r\n ĐẶT LẠI MẬT KHẨU{\" \"}\r\n {\" \"}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ResetPasswordForm;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { Layout, Tabs, Button } from 'antd';\r\nimport { Redirect, Route, Link } from 'react-router-dom';\r\nimport ForgotPasswordForm from '../../../components/Admin/ForgotPasswordForm';\r\nimport ResetPasswordForm from '../../../components/Admin/ResetPasswordForm';\r\n\r\nimport { useSelector } from 'react-redux';\r\nimport queryString from 'query-string';\r\nimport { Helmet } from 'react-helmet';\r\nimport { ArrowLeftOutlined } from '@ant-design/icons';\r\n\r\nimport logo from '../../../assets/img/png/logo-full.png';\r\nconst ForgotPassword = ({ location, match }) => {\r\n const userLogin = useSelector((state) => state.userLogin);\r\n const { userInfo } = userLogin;\r\n const { Content } = Layout;\r\n const params_search = queryString.parse(location.search);\r\n // const referrerFromStorage = localStorage.getItem('referrer')\r\n // ? localStorage.getItem('referrer')\r\n // : null;\r\n // useEffect(() => {\r\n // if (params_search.referrer) {\r\n // localStorage.setItem('referrer', params_search.referrer);\r\n // }\r\n // }, [params_search.referrer]);\r\n\r\n if (userInfo) {\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n \r\n
\r\n \r\n {' '}\r\n Đăng nhập\r\n \r\n

\r\n HubGroup\r\n

\r\n \r\n {params_search.id ? 'CẬP NHẬT MẬT KHẨU' : 'QUÊN MẬT KHẨU'}\r\n \r\n {params_search.id ? (\r\n \r\n ) : (\r\n \r\n )}\r\n
\r\n
\r\n
\r\n \r\n Đặt lại mật khẩu\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default ForgotPassword;\r\n","import { useEffect } from 'react';\r\nimport { withRouter } from 'react-router-dom';\r\n\r\nfunction ScrollToTop({ history }) {\r\n useEffect(() => {\r\n const unlisten = history.listen(() => {\r\n window.scrollTo(0, 0);\r\n });\r\n return () => {\r\n unlisten();\r\n };\r\n }, []);\r\n\r\n return null;\r\n}\r\n\r\nexport default withRouter(ScrollToTop);\r\n","export const LIST_ROOMS_REQUEST = \"LIST_ROOMS_REQUEST\";\r\nexport const LIST_ROOMS_SUCCESS = \"LIST_ROOMS_SUCCESS\";\r\nexport const LIST_ROOMS_FAIL = \"LIST_ROOMS_FAIL\";\r\nexport const ROOM_CONTENT_FAIL = \"ROOM_CONTENT_FAIL\";\r\nexport const ROOM_CONTENT_REQUEST = \"ROOM_CONTENT_REQUEST\";\r\nexport const ROOM_CONTENT_SUCCESS = \"ROOM_CONTENT_SUCCESS\";\r\nexport const SUBSCRIBE_ROOM_REQUEST = \"SUBSCRIBE_ROOM_REQUEST\";\r\nexport const SUBSCRIBE_ROOM_FAIL = \"SUBSCRIBE_ROOM_FAIL\";\r\nexport const SUBSCRIBE_ROOM_SUCCESS = \"SUBSCRIBE_ROOM_SUCCESS\";\r\nexport const UNSUBSCRIBE_ROOM_REQUEST = \"UNSUBSCRIBE_ROOM_REQUEST\";\r\nexport const UNSUBSCRIBE_ROOM_FAIL = \"UNSUBSCRIBE_ROOM_FAIL\";\r\nexport const UNSUBSCRIBE_ROOM_SUCCESS = \"UNSUBSCRIBE_ROOM_SUCCESS\";\r\n","import {\r\n LIST_ROOMS_FAIL,\r\n LIST_ROOMS_SUCCESS,\r\n LIST_ROOMS_REQUEST,\r\n ROOM_CONTENT_FAIL,\r\n ROOM_CONTENT_REQUEST,\r\n ROOM_CONTENT_SUCCESS,\r\n SUBSCRIBE_ROOM_FAIL,\r\n SUBSCRIBE_ROOM_REQUEST,\r\n SUBSCRIBE_ROOM_SUCCESS,\r\n UNSUBSCRIBE_ROOM_FAIL,\r\n UNSUBSCRIBE_ROOM_REQUEST,\r\n UNSUBSCRIBE_ROOM_SUCCESS,\r\n} from \"../constants/roomsContants\";\r\nimport requests from \"../../services/requests\";\r\n\r\nimport axios from \"../../services/axios\";\r\n\r\nexport const allRooms = () => async (dispatch, getState) => {\r\n try {\r\n dispatch({ type: LIST_ROOMS_REQUEST });\r\n const {\r\n userLogin: { userInfo },\r\n } = getState();\r\n\r\n const config = {\r\n headers: {\r\n Authorization: `Bearer ${userInfo.token}`,\r\n },\r\n };\r\n const { data } = await axios.get(requests.getAllRooms, config);\r\n // console.log(\"fetchVnCities\", data);\r\n dispatch({ type: LIST_ROOMS_SUCCESS, payload: data });\r\n } catch (error) {\r\n dispatch({\r\n type: LIST_ROOMS_FAIL,\r\n payload:\r\n error.response && error.response.data.message\r\n ? error.message.data.message\r\n : error.message,\r\n });\r\n }\r\n};\r\n\r\nexport const roomDetails =\r\n (page = 1, quantity = 9, roomId, endponit, token) =>\r\n async (dispatch, getState) => {\r\n try {\r\n dispatch({ type: ROOM_CONTENT_REQUEST });\r\n const config = {\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n };\r\n if (token !== \"\") {\r\n config.headers.Authorization = `Bearer ${token}`;\r\n }\r\n\r\n const room = await axios.get(\r\n requests.getRoomContent(page, quantity, roomId, endponit),\r\n config\r\n );\r\n // console.log(\"Room\", room);\r\n\r\n dispatch({ type: ROOM_CONTENT_SUCCESS, payload: room.data });\r\n } catch (error) {\r\n dispatch({\r\n type: ROOM_CONTENT_FAIL,\r\n payload:\r\n error.response && error.response.data.message\r\n ? error.message.data.message\r\n : error.message,\r\n });\r\n }\r\n };\r\n\r\nexport const subscribeRoom = (roomId, token) => async (dispatch, getState) => {\r\n try {\r\n // console.log(\"token\", token);\r\n dispatch({ type: SUBSCRIBE_ROOM_REQUEST });\r\n const {\r\n userLogin: { userInfo },\r\n } = getState();\r\n\r\n const config = {\r\n headers: {\r\n Authorization: `Bearer ${userInfo.token}`,\r\n },\r\n };\r\n\r\n // console.log(\"Config\", config);\r\n\r\n const room = await axios.post(requests.subscribeRoom(roomId), null, config);\r\n // console.log(\"Room\", room);\r\n\r\n dispatch({ type: SUBSCRIBE_ROOM_SUCCESS, payload: room.data });\r\n } catch (error) {\r\n dispatch({\r\n type: SUBSCRIBE_ROOM_FAIL,\r\n payload:\r\n error.response && error.response.data.message\r\n ? error.message.data.message\r\n : error.message,\r\n });\r\n }\r\n};\r\n\r\nexport const unSubscribeRoom =\r\n (roomId, token) => async (dispatch, getState) => {\r\n try {\r\n dispatch({ type: UNSUBSCRIBE_ROOM_REQUEST });\r\n const config = {\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n };\r\n if (token !== \"\") {\r\n config.headers.Authorization = `Bearer ${token}`;\r\n }\r\n\r\n const room = await axios.post(\r\n requests.unSubscribeRoom(roomId),\r\n null,\r\n config\r\n );\r\n // console.log(\"Room\", room);\r\n\r\n dispatch({ type: UNSUBSCRIBE_ROOM_SUCCESS, payload: room.data });\r\n } catch (error) {\r\n dispatch({\r\n type: UNSUBSCRIBE_ROOM_FAIL,\r\n payload:\r\n error.response && error.response.data.message\r\n ? error.message.data.message\r\n : error.message,\r\n });\r\n }\r\n };\r\n","import { Button, Card, Col, Empty, Row, Spin } from \"antd\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport \"./AllBusinessRoom.scss\";\r\nimport {\r\n ArrowRightOutlined,\r\n BellOutlined,\r\n UserOutlined,\r\n} from \"@ant-design/icons\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\n\r\nimport {\r\n allRooms,\r\n subscribeRoom,\r\n unSubscribeRoom,\r\n} from \"../../../redux/actions/roomsAction\";\r\nimport { Link } from \"react-router-dom\";\r\nconst AllBusinessRoom = () => {\r\n const dispatch = useDispatch();\r\n const userLogin = useSelector((state) => state.userLogin);\r\n const roomsItems = useSelector((state) => state.allRooms);\r\n // console.log(\"roomsItems\", roomsItems);\r\n const [spin, setSpin] = useState(false);\r\n const [roomListLocal, setRoomListLocal] = useState(() => {\r\n const storedTotalMessages = JSON.parse(localStorage.getItem(\"roomArray\"));\r\n return Array.isArray(storedTotalMessages)\r\n ? JSON.parse(JSON.stringify(storedTotalMessages))\r\n : [];\r\n });\r\n\r\n // console.log(\"total\", roomListLocal);\r\n\r\n // console.log(\"Total messages\", totalMessages);\r\n const { userInfo } = userLogin;\r\n useEffect(() => {\r\n // console.log(\"gọi lại\");\r\n setSpin(true);\r\n dispatch(allRooms());\r\n\r\n setSpin(false);\r\n }, [dispatch]);\r\n\r\n // useEffect(() => {\r\n // const totalMessagesArray = roomsItems?.rooms?.registeredItems?.map(\r\n // (room) => ({\r\n // id: room.id,\r\n // totalMessages: 0,\r\n // })\r\n // );\r\n // localStorage.setItem(\"roomArray\", JSON.stringify(totalMessagesArray));\r\n // }, [roomsItems]);\r\n\r\n const handleSubscribeRoom = async (roomId) => {\r\n try {\r\n // console.log(\"token\", userInfo);\r\n await dispatch(subscribeRoom(roomId, userInfo.token));\r\n dispatch(allRooms());\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n };\r\n\r\n const handleUnSubscribeRoom = async (roomId) => {\r\n try {\r\n await dispatch(unSubscribeRoom(roomId, userInfo.token));\r\n dispatch(allRooms());\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n };\r\n const handleJoinRoom = (room) => {\r\n if (roomListLocal.length < 1) {\r\n const roomLocal = [\r\n {\r\n id: room.id,\r\n totalMessages: room.totalMessages,\r\n },\r\n ];\r\n localStorage.setItem(\"roomArray\", JSON.stringify(roomLocal));\r\n } else {\r\n const roomIndex = roomListLocal.findIndex((msg) => msg.id === room.id);\r\n\r\n if (roomIndex === -1) {\r\n const updatedRoomList = [\r\n ...roomListLocal,\r\n { id: room.id, totalMessages: room.totalMessages },\r\n ];\r\n localStorage.setItem(\"roomArray\", JSON.stringify(updatedRoomList));\r\n } else {\r\n const updatedRoomList = roomListLocal.map((msg) =>\r\n msg.id === room.id\r\n ? {\r\n ...msg,\r\n totalMessages: room.totalMessages,\r\n }\r\n : msg\r\n );\r\n localStorage.setItem(\"roomArray\", JSON.stringify(updatedRoomList));\r\n }\r\n }\r\n // setRoomListLocal(updatedTotalMessages);\r\n };\r\n\r\n function roomCheck(room) {\r\n // console.log(\"roomCheck\", room);\r\n var roomCheck = roomListLocal.find((msg) => msg.id === room.id);\r\n // console.log(\"roomCheck\", roomCheck);\r\n return (\r\n roomCheck === null ||\r\n roomCheck === undefined ||\r\n roomCheck.totalMessages < room?.totalMessages\r\n );\r\n }\r\n\r\n return (\r\n <>\r\n {spin === true ? (\r\n
\r\n \r\n
\r\n ) : (\r\n <>\r\n
\r\n

Đã đăng ký

\r\n \r\n {roomsItems?.rooms?.registeredItems?.length > 0 ? (\r\n roomsItems?.rooms?.registeredItems.map((room) => (\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n {room.totalMembers}\r\n \r\n \r\n \r\n \r\n {/* {console.log(\r\n `${room.id}-${room.totalMessages}`,\r\n roomListLocal.find(\r\n (roomItem) => roomItem.id === room.id\r\n )?.totalMessages < room.totalMessages\r\n )} */}\r\n {roomListLocal.length < 1 ? (\r\n \r\n ) : roomCheck(room) ? (\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n \r\n {room.totalMessages}\r\n \r\n
\r\n {room.isSubscribed === true && (\r\n handleUnSubscribeRoom(room.id)}\r\n type=\"primary\"\r\n danger\r\n >\r\n Rời phòng\r\n \r\n )}\r\n
\r\n
\r\n

{room.name}

\r\n

{room.description}

\r\n handleJoinRoom(room)}\r\n className=\"btn_join_room\"\r\n >\r\n \r\n \r\n
\r\n
\r\n \r\n ))\r\n ) : (\r\n \r\n \r\n \r\n )}\r\n
\r\n
\r\n
\r\n

Chưa đăng ký

\r\n \r\n {roomsItems?.rooms?.unregisteredItems?.length > 0 ? (\r\n roomsItems?.rooms?.unregisteredItems.map((room) => (\r\n \r\n
\r\n \r\n \r\n {/*
\r\n \r\n \r\n {room.totalMembers}\r\n \r\n \r\n \r\n {room.totalMessages}\r\n \r\n
*/}\r\n {\r\n handleSubscribeRoom(room.id)}\r\n >\r\n Đăng ký\r\n \r\n }\r\n
\r\n
\r\n

{room.name}

\r\n

{room.description}

\r\n
\r\n
\r\n \r\n ))\r\n ) : (\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default AllBusinessRoom;\r\n","import React from \"react\";\r\nimport AllBusinessRoom from \"../pages/Admin/AllBusinessRoom/AllBusinessRoom\";\r\nimport { Layout } from \"antd\";\r\nimport { Route, Switch, Redirect, Link } from \"react-router-dom\";\r\nimport { useSelector } from \"react-redux\";\r\nimport AdminSignIn from \"../pages/Admin/SignIn/SignIn\";\r\n\r\nconst AdminAllBusinessRoom = () => {\r\n const userLogin = useSelector((state) => state.userLogin);\r\n const { userInfo } = userLogin;\r\n\r\n if (!userInfo) {\r\n return (\r\n <>\r\n \r\n\r\n \r\n \r\n );\r\n }\r\n\r\n if (userInfo) {\r\n return ;\r\n }\r\n\r\n return null;\r\n};\r\n\r\nexport default AdminAllBusinessRoom;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { Link } from \"react-router-dom/cjs/react-router-dom.min\";\r\nimport { CopyToClipboard } from \"react-copy-to-clipboard\";\r\nimport {\r\n roomDetails,\r\n subscribeRoom,\r\n unSubscribeRoom,\r\n} from \"../../../redux/actions/roomsAction\";\r\nimport {\r\n Button,\r\n Col,\r\n Row,\r\n Input,\r\n Spin,\r\n Empty,\r\n Image,\r\n notification,\r\n Modal,\r\n Popover,\r\n} from \"antd\";\r\nimport { Pagination } from \"antd\";\r\nimport queryString from \"query-string\";\r\nimport \"./AllBusinessRoom.scss\";\r\nimport {\r\n BellOutlined,\r\n CopyOutlined,\r\n DownOutlined,\r\n DownloadOutlined,\r\n ExclamationCircleFilled,\r\n FieldTimeOutlined,\r\n FileImageOutlined,\r\n LeftOutlined,\r\n ShareAltOutlined,\r\n UpOutlined,\r\n UserOutlined,\r\n} from \"@ant-design/icons\";\r\nimport ReactShare from \"../../../components/SocialShare/ReactShare\";\r\nimport { config } from \"../../../services/bassUrl\";\r\nconst BusinessRoomContent = ({ match, history, location }) => {\r\n const dispatch = useDispatch();\r\n const { confirm } = Modal;\r\n\r\n const showConfirm = (id) => {\r\n // console.log(\"showConfirm\", id);\r\n confirm({\r\n title: \"Bạn có chắc muốn rời khỏi phòng?\",\r\n icon: ,\r\n // content: 'Some descriptions',\r\n okType: \"danger\",\r\n cancelText: \"Không\",\r\n okText: \"Rời\",\r\n onOk() {\r\n handleUnSubscribeRoom(id);\r\n },\r\n onCancel() {\r\n console.log(\"Cancel\");\r\n },\r\n });\r\n };\r\n // const [api, contextHolder] = notification.useNotification();\r\n const userLogin = useSelector((state) => state.userLogin);\r\n const roomContent = useSelector((state) => state.roomContent);\r\n const { userInfo } = userLogin;\r\n const { Search } = Input;\r\n const [spin, setSpin] = useState(false);\r\n let params = location.state !== undefined ? location.state : {};\r\n var params_search = queryString.parse(location.search);\r\n const [openStates, setOpenStates] = useState({});\r\n const [keyword, setKeyword] = useState(\r\n `${params?.keyword !== undefined ? params?.keyword : \"\"}`\r\n );\r\n\r\n useEffect(() => {\r\n if (params_search.k !== undefined) {\r\n setKeyword(params_search.k);\r\n }\r\n }, []);\r\n useEffect(() => {\r\n const params_search = queryString.parse(location.search);\r\n const { p, q } = params_search;\r\n\r\n const endpoint = params_search.k || \"\";\r\n if (!p || !q) {\r\n const updatedParams = { p: 1, q: 9 };\r\n const searchString = queryString.stringify(updatedParams);\r\n history.push(`/phong-kinh-doanh/${match.params.id}/?${searchString}`);\r\n }\r\n setSpin(true);\r\n dispatch(\r\n roomDetails(\r\n params_search.p,\r\n params_search.q,\r\n match.params.id,\r\n endpoint,\r\n userInfo.token\r\n )\r\n );\r\n setSpin(false);\r\n }, [dispatch, match, location.search, history]);\r\n const onPageChange = (page) => {\r\n const params_search = queryString.parse(location.search);\r\n params_search.p = page;\r\n if (params_search.k === undefined) {\r\n params_search.k = \"\";\r\n }\r\n const searchString = queryString.stringify(params_search);\r\n\r\n history.push(`/phong-kinh-doanh/${match.params.id}/?${searchString}`);\r\n\r\n // Gọi lại hàm dispatch để cập nhật dữ liệu với trang mới\r\n dispatch(\r\n roomDetails(\r\n params_search.p,\r\n params_search.q,\r\n match.params.id,\r\n params_search.k,\r\n userInfo.token\r\n )\r\n );\r\n };\r\n\r\n // const onSearchSubmit = (e) => {\r\n // e.preventDefault();\r\n // let search = \"?p=1&q=9\";\r\n // let url_state = {};\r\n\r\n // if (keyword !== \"\") {\r\n // search = `${search}&k=${keyword}`;\r\n // url_state[\"keyword\"] = keyword;\r\n // }\r\n\r\n // const urlObject = {\r\n // pathname: `/phong-kinh-doanh/${match.params.id}`,\r\n // search: search,\r\n // state: url_state,\r\n // };\r\n // history.push(urlObject);\r\n // };\r\n const onSearch = (e) => {\r\n // e.preventDefault();\r\n let search = \"?p=1&q=9\";\r\n let url_state = {};\r\n\r\n if (keyword !== \"\") {\r\n search = `${search}&k=${keyword}`;\r\n url_state[\"keyword\"] = keyword;\r\n }\r\n\r\n const urlObject = {\r\n pathname: `/phong-kinh-doanh/${match.params.id}`,\r\n search: search,\r\n state: url_state,\r\n };\r\n history.push(urlObject);\r\n };\r\n\r\n const handleCopy = (content) => {\r\n // console.log(\"content: \", content);\r\n openNotification(\"topRight\", content);\r\n };\r\n\r\n const openNotification = (placement, content) => {\r\n // console.log(\"thông báo\", content);\r\n notification.success({\r\n message: `Đã sao chép thành công thông báo: ${content}`,\r\n placement,\r\n });\r\n };\r\n\r\n const handleUnSubscribeRoom = async (roomId) => {\r\n try {\r\n await dispatch(unSubscribeRoom(roomId, userInfo.token));\r\n // dispatch(allRooms());\r\n hideModal();\r\n history.push(\"/phong-kinh-doanh\");\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n };\r\n\r\n const handleToggle = (itemId) => {\r\n setOpenStates((prevStates) => ({\r\n ...prevStates,\r\n [itemId]: !prevStates[itemId],\r\n }));\r\n };\r\n\r\n const isImageFile = (url) => {\r\n const imageExtensions = [\"jpg\", \"jpeg\", \"png\", \"gif\", \"bmp\", \"svg\"];\r\n const extension = url.split(\".\").pop().toLowerCase();\r\n return imageExtensions.includes(extension);\r\n };\r\n const isMobile = window.innerWidth <= 768;\r\n\r\n const files = [\r\n {\r\n id: 1,\r\n fullUrl: \"file1.jpg\",\r\n },\r\n {\r\n id: 2,\r\n fullUrl: \"file2.svg\",\r\n },\r\n {\r\n id: 3,\r\n fullUrl: \"file3.docx\",\r\n name: \"tên file\",\r\n },\r\n {\r\n id: 4,\r\n fullUrl: \"file4.xlsx\",\r\n },\r\n {\r\n id: 5,\r\n fullUrl: \"file5.pdf\",\r\n },\r\n ];\r\n\r\n const [open, setOpen] = useState(false);\r\n\r\n const showModal = () => {\r\n setOpen(true);\r\n };\r\n\r\n const hideModal = () => {\r\n setOpen(false);\r\n };\r\n\r\n // const isOpen = openStates[item.id];\r\n return (\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n setKeyword(e.target.value)}\r\n onSearch={onSearch}\r\n enterButton\r\n style={{ width: \"300px\" }}\r\n />\r\n {/* }\r\n /> */}\r\n
\r\n
\r\n
\r\n \r\n {roomContent?.room?.room?.supporters.map((support) => (\r\n

\r\n {support.name}:{\" \"}\r\n \r\n {support.phone}\r\n \r\n

\r\n ))}\r\n
\r\n }\r\n placement=\"left\" // Chọn vị trí hiển thị tùy thuộc vào thiết bị\r\n title=\"Zalo\"\r\n trigger=\"click\"\r\n >\r\n \r\n \r\n \r\n \r\n \r\n {roomContent?.room?.room?.supporters.map((support) => (\r\n

\r\n {support.name}:{\" \"}\r\n \r\n {support.phone}\r\n \r\n

\r\n ))}\r\n
\r\n }\r\n placement=\"left\"\r\n title=\"Điện thoại\"\r\n trigger=\"click\"\r\n >\r\n \r\n \r\n \r\n \r\n \r\n {spin === true ? (\r\n
\r\n \r\n
\r\n ) : (\r\n <>\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n {roomContent?.room?.room?.totalMembers}\r\n \r\n \r\n \r\n {roomContent?.room?.room?.totalMessages}\r\n \r\n
\r\n {roomContent?.room?.room?.isSubscribed === true && (\r\n showConfirm(roomContent?.room?.room?.id)}\r\n >\r\n Rời phòng\r\n {/* \r\n handleUnSubscribeRoom(roomContent?.room?.room?.id)\r\n }\r\n onCancel={() => setOpen(false)}\r\n okText=\"Đồng ý\"\r\n cancelText=\"Thoát\"\r\n > */}\r\n \r\n )}\r\n
\r\n
\r\n
\r\n

{roomContent?.room?.room?.name}

\r\n

{roomContent?.room?.room?.description}

\r\n
\r\n {/*
\r\n Hỗ trợ\r\n {roomContent?.room?.room?.supporters.map((support) => (\r\n \r\n {support.name}: {support.phone}\r\n \r\n ))}\r\n
*/}\r\n
\r\n
\r\n \r\n
\r\n \r\n {roomContent?.room?.items?.length > 0 ? (\r\n roomContent?.room?.items.map((item) => (\r\n \r\n
\r\n

{item?.subject}

\r\n
\r\n
\r\n {openStates[item.id] ? (\r\n \"\"\r\n ) : (\r\n

{item?.shortDescription}

\r\n )}\r\n\r\n {openStates[item.id] && (\r\n \r\n `${url}`\r\n ),\r\n }}\r\n >

\r\n )}\r\n {openStates[item.id] ? (\r\n handleToggle(item.id)}\r\n >\r\n Thu gọn \r\n \r\n ) : (\r\n handleToggle(item.id)}\r\n type=\"text\"\r\n >\r\n Đọc thêm \r\n \r\n )}\r\n
\r\n \r\n \r\n \r\n {item?.createdAt}\r\n \r\n
\r\n handleCopy(item.subject)}\r\n text={item?.description}\r\n >\r\n \r\n */}\r\n
\r\n
\r\n\r\n \r\n {item.files?.map((file) => (\r\n \r\n {isImageFile(file.fullUrl) ? (\r\n \r\n console.log(\r\n `current index: ${current}, prev index: ${prev}`\r\n ),\r\n }}\r\n >\r\n \r\n \r\n ) : (\r\n \r\n }\r\n size={\"large\"}\r\n >\r\n {file.name}\r\n \r\n \r\n )}\r\n \r\n ))}\r\n
\r\n \r\n \r\n \r\n ))\r\n ) : (\r\n \r\n \r\n \r\n )}\r\n
\r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default BusinessRoomContent;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { Layout } from \"antd\";\r\nimport { BrowserRouter as Router, Route, Link, Switch } from \"react-router-dom\";\r\n\r\nimport \"./App.scss\";\r\n\r\nimport AdminLayout from \"./layouts/AdminLayout\";\r\nimport AdminAllF1Member from \"./layouts/AdminAllF1Member\";\r\nimport AdminCandidateMember from \"./layouts/AdminCandidateMember\";\r\nimport AdminF1CandidateMember from \"./layouts/AdminF1CandidateMember\";\r\nimport AdminJobLinks from \"./layouts/AdminJobLinks\";\r\nimport AdminDocuments from \"./layouts/AdminDocuments\";\r\nimport routes from \"./config/routes\";\r\nimport SignIn from \"./pages/Admin/SignIn\";\r\nimport SignUp from \"./pages/Admin/SignUp\";\r\nimport ForgotPassword from \"./pages/Admin/ForgotPassword\";\r\nimport ScrollToTop from \"./ScrollToTop\";\r\nimport MenuTop from \"./components/Admin/MenuTop\";\r\nimport MenuSlider from \"./components/Admin/MenuSlider\";\r\nimport AdminAllBusinessRoom from \"./layouts/AdminAllBusinessRoom\";\r\nimport BusinessRoomContent from \"./pages/Admin/AllBusinessRoom/BusinessRoomContent\";\r\nconst App = () => {\r\n const [menuCollapsed, setMenuCollapsed] = useState(false);\r\n const { Header, Content, Footer } = Layout;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n {/* */}\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n {\" \"}\r\n
\r\n
\r\n
\r\n
\r\n \r\n {\" \"}\r\n © Copyright 2021 by{\" \"}\r\n \r\n hubgroup.vn.{\" \"}\r\n {\" \"}\r\n All rights reserved.\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n {/* {routes.map((route, index) => (\r\n \r\n ))} */}\r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\n// const RouteWithSubRoutes = (route) => {\r\n// return (\r\n// }\r\n// />\r\n// );\r\n// };\r\n\r\nexport default App;\r\n","const reportWebVitals = onPerfEntry => {\r\n if (onPerfEntry && onPerfEntry instanceof Function) {\r\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\r\n getCLS(onPerfEntry);\r\n getFID(onPerfEntry);\r\n getFCP(onPerfEntry);\r\n getLCP(onPerfEntry);\r\n getTTFB(onPerfEntry);\r\n });\r\n }\r\n};\r\n\r\nexport default reportWebVitals;\r\n","import { combineReducers } from \"redux\";\r\n// import auth from './authReducer';\r\nimport {\r\n userLoginReducer,\r\n userRegisterReducer,\r\n memberUserListReducer,\r\n candidateMemberUserListReducer,\r\n overviewReducer,\r\n userDetailsReducer,\r\n userUpdateProfileReducer,\r\n allF1CandidatesMembersReducer,\r\n allJobLinksReducer,\r\n forgotPasswordReducer,\r\n resetPasswordReducer,\r\n qrCodeF1Reducer,\r\n qrCodeCandidateReducer,\r\n addCandidateReducer,\r\n getAllJobsCandidateReducer,\r\n} from \"./userReducers\";\r\nimport { citiesListReducer } from \"./citiesReducers\";\r\nimport { allDocumentsReducer } from \"./documentReducers\";\r\nimport { roomDetailsReducer, roomsListReducer } from \"./roomsReducer\";\r\n\r\nexport default combineReducers({\r\n userLogin: userLoginReducer,\r\n userRegister: userRegisterReducer,\r\n forgotPassword: forgotPasswordReducer,\r\n resetPassword: resetPasswordReducer,\r\n overview: overviewReducer,\r\n addCandidate: addCandidateReducer,\r\n memberUserList: memberUserListReducer,\r\n candidateMemberUserList: candidateMemberUserListReducer,\r\n allF1CandidatesMembers: allF1CandidatesMembersReducer,\r\n allJobLinks: allJobLinksReducer,\r\n userDetail: userDetailsReducer,\r\n userUpdateProfile: userUpdateProfileReducer,\r\n allDocuments: allDocumentsReducer,\r\n qrCodeF1: qrCodeF1Reducer,\r\n qrCodeCandidate: qrCodeCandidateReducer,\r\n allCitiesVn: citiesListReducer,\r\n allRooms: roomsListReducer,\r\n roomContent: roomDetailsReducer,\r\n allJobsCandidate: getAllJobsCandidateReducer,\r\n});\r\n","import {\r\n USER_DETAILS_FAIL,\r\n USER_DETAILS_REQUEST,\r\n USER_DETAILS_RESET,\r\n USER_DETAILS_SUCCESS,\r\n USER_LOGIN_FAIL,\r\n USER_LOGIN_REQUEST,\r\n USER_LOGIN_SUCCESS,\r\n USER_LOGOUT,\r\n USER_REGISTER_FAIL,\r\n USER_REGISTER_REQUEST,\r\n USER_REGISTER_SUCCESS,\r\n USER_UPDATE_PROFILE_FAIL,\r\n USER_UPDATE_PROFILE_REQUEST,\r\n USER_UPDATE_PROFILE_SUCCESS,\r\n USER_UPDATE_PROFILE_RESET,\r\n MEMBER_LIST_REQUEST,\r\n MEMBER_LIST_SUCCESS,\r\n MEMBER_LIST_FAIL,\r\n OVERVIEW_SUCCESS,\r\n OVERVIEW_REQUEST,\r\n OVERVIEW_FAIL,\r\n CANDIDATE_MEMBER_LIST_REQUEST,\r\n CANDIDATE_MEMBER_LIST_SUCCESS,\r\n CANDIDATE_MEMBER_LIST_FAIL,\r\n F1_CANDIDATE_MEMBER_LIST_REQUEST,\r\n F1_CANDIDATE_MEMBER_LIST_SUCCESS,\r\n F1_CANDIDATE_MEMBER_LIST_FAIL,\r\n JOBS_LIST_REQUEST,\r\n JOBS_LIST_SUCCESS,\r\n JOBS_LIST_FAIL,\r\n FORGOT_PASSWORD_REQUEST,\r\n FORGOT_PASSWORD_SUCCESS,\r\n FORGOT_PASSWORD_FAIL,\r\n FORGOT_PASSWORD_RESET,\r\n RESET_PASSWORD_REQUEST,\r\n RESET_PASSWORD_SUCCESS,\r\n RESET_PASSWORD_FAIL,\r\n RESET_PASSWORD_RESET,\r\n MEMBER_CREATE_QRCODE_F1_REQUEST,\r\n MEMBER_CREATE_QRCODE_F1_SUCCESS,\r\n MEMBER_CREATE_QRCODE_F1_FAIL,\r\n MEMBER_CREATE_QRCODE_CANDIDATE_REQUEST,\r\n MEMBER_CREATE_QRCODE_CANDIDATE_SUCCESS,\r\n MEMBER_CREATE_QRCODE_CANDIDATE_FAIL,\r\n ADD_CANDIDATE_MEMBER_LIST_REQUEST,\r\n ADD_CANDIDATE_MEMBER_LIST_SUCCESS,\r\n ADD_CANDIDATE_MEMBER_LIST_FAIL,\r\n JOBS_CANDIDATE_MEMBER_LIST_REQUEST,\r\n JOBS_CANDIDATE_MEMBER_LIST_SUCCESS,\r\n JOBS_CANDIDATE_MEMBER_LIST_FAIL,\r\n} from \"../constants/userConstants\";\r\n\r\nexport const userLoginReducer = (state = {}, action) => {\r\n switch (action.type) {\r\n case USER_LOGIN_REQUEST:\r\n return { loading: true };\r\n case USER_LOGIN_SUCCESS:\r\n return { loading: false, userInfo: action.payload };\r\n case USER_LOGIN_FAIL:\r\n return { loading: false, error: action.payload };\r\n case USER_LOGOUT:\r\n return {};\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport const forgotPasswordReducer = (state = {}, action) => {\r\n switch (action.type) {\r\n case FORGOT_PASSWORD_REQUEST:\r\n return { loading: true };\r\n case FORGOT_PASSWORD_SUCCESS:\r\n return { loading: false, onSuccess: action.payload };\r\n case FORGOT_PASSWORD_FAIL:\r\n return { loading: false, error: action.payload };\r\n case FORGOT_PASSWORD_RESET:\r\n return {};\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport const resetPasswordReducer = (state = {}, action) => {\r\n switch (action.type) {\r\n case RESET_PASSWORD_REQUEST:\r\n return { loading: true };\r\n case RESET_PASSWORD_SUCCESS:\r\n return { loading: false, onSuccess: action.payload };\r\n case RESET_PASSWORD_FAIL:\r\n return { loading: false, error: action.payload };\r\n case RESET_PASSWORD_RESET:\r\n return {};\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport const userRegisterReducer = (state = {}, action) => {\r\n switch (action.type) {\r\n case USER_REGISTER_REQUEST:\r\n return { loading: true };\r\n case USER_REGISTER_SUCCESS:\r\n return { loading: false, onSuccess: action.payload };\r\n case USER_REGISTER_FAIL:\r\n return { loading: false, error: action.payload };\r\n case USER_LOGOUT:\r\n return {};\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport const addCandidateReducer = (state = {}, action) => {\r\n switch (action.type) {\r\n case ADD_CANDIDATE_MEMBER_LIST_REQUEST:\r\n return { loading: true };\r\n case ADD_CANDIDATE_MEMBER_LIST_SUCCESS:\r\n return { loading: false, onSuccess: action.payload };\r\n case ADD_CANDIDATE_MEMBER_LIST_FAIL:\r\n return { loading: false, error: action.payload };\r\n case USER_LOGOUT:\r\n return {};\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport const getAllJobsCandidateReducer = (state = {}, action) => {\r\n switch (action.type) {\r\n case JOBS_CANDIDATE_MEMBER_LIST_REQUEST:\r\n return { loading: true };\r\n case JOBS_CANDIDATE_MEMBER_LIST_SUCCESS:\r\n return { loading: false, data: action.payload };\r\n case JOBS_CANDIDATE_MEMBER_LIST_FAIL:\r\n return { loading: false, error: action.payload };\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport const userDetailsReducer = (state = { user: {} }, action) => {\r\n switch (action.type) {\r\n case USER_DETAILS_REQUEST:\r\n return { ...state, loading: true };\r\n case USER_DETAILS_SUCCESS:\r\n return { loading: false, user: action.payload };\r\n case USER_DETAILS_FAIL:\r\n return { loading: false, error: action.payload };\r\n case USER_DETAILS_RESET:\r\n return { user: {} };\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport const userUpdateProfileReducer = (state = {}, action) => {\r\n switch (action.type) {\r\n case USER_UPDATE_PROFILE_REQUEST:\r\n return { loading: true };\r\n case USER_UPDATE_PROFILE_SUCCESS:\r\n return { loading: false, success: true, userInfo: action.payload };\r\n case USER_UPDATE_PROFILE_FAIL:\r\n return { loading: false, error: action.payload };\r\n case USER_UPDATE_PROFILE_RESET:\r\n return {};\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport const memberUserListReducer = (state = { members: [] }, action) => {\r\n switch (action.type) {\r\n case MEMBER_LIST_REQUEST:\r\n return { loading: true };\r\n case MEMBER_LIST_SUCCESS:\r\n return {\r\n loading: false,\r\n members: action.payload.items,\r\n total: action.payload.total,\r\n };\r\n case MEMBER_LIST_FAIL:\r\n return { loading: false, error: action.payload };\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport const candidateMemberUserListReducer = (state = {}, action) => {\r\n switch (action.type) {\r\n case CANDIDATE_MEMBER_LIST_REQUEST:\r\n return { loading: true };\r\n case CANDIDATE_MEMBER_LIST_SUCCESS:\r\n // let candidateState = {};\r\n // switch (action.payload.candidateState) {\r\n // case 1:\r\n // candidateState.color = '';\r\n // candidateState.text = 'Chờ tư vấn';\r\n // break;\r\n // case 2:\r\n // candidateState.color = '';\r\n // candidateState.text = 'Đang tư vấn';\r\n // break;\r\n // case 3:\r\n // candidateState.color = '';\r\n // candidateState.text = 'Chờ đơn phù hợp';\r\n // break;\r\n // case 4:\r\n // candidateState.color = '';\r\n // candidateState.text = 'Đã từ chối';\r\n // break;\r\n // case 5:\r\n // candidateState.color = '';\r\n // candidateState.text = 'Chuẩn bị hồ sơ';\r\n // break;\r\n // case 6:\r\n // candidateState.color = '';\r\n // candidateState.text = 'Đang đào tạo';\r\n // break;\r\n // case 7:\r\n // candidateState.color = '';\r\n // candidateState.text = 'Chờ thi tuyển';\r\n // break;\r\n // case 8:\r\n // candidateState.color = '';\r\n // candidateState.text = 'Chờ xuất cảnh';\r\n // break;\r\n // case 9:\r\n // candidateState.color = '';\r\n // candidateState.text = 'Đang thanh toán cho bạn';\r\n // break;\r\n // case 100:\r\n // candidateState.color = '';\r\n // candidateState.text = 'Đã hoàn thành';\r\n // break;\r\n // default:\r\n // break;\r\n // }\r\n return {\r\n loading: false,\r\n candidates: action.payload.items,\r\n total: action.payload.total,\r\n // candidateValue: candidateState,\r\n };\r\n case CANDIDATE_MEMBER_LIST_FAIL:\r\n return { loading: false, error: action.payload };\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport const allF1CandidatesMembersReducer = (state = {}, action) => {\r\n switch (action.type) {\r\n case F1_CANDIDATE_MEMBER_LIST_REQUEST:\r\n return { loadingF1: true };\r\n case F1_CANDIDATE_MEMBER_LIST_SUCCESS:\r\n return {\r\n loadingF1: false,\r\n f1Candidates: action.payload.items,\r\n totalF1: action.payload.total,\r\n };\r\n case F1_CANDIDATE_MEMBER_LIST_FAIL:\r\n return { loadingF1: false, errorF1: action.payload };\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport const allJobLinksReducer = (state = {}, action) => {\r\n switch (action.type) {\r\n case JOBS_LIST_REQUEST:\r\n return { loading: true };\r\n case JOBS_LIST_SUCCESS:\r\n return {\r\n loading: false,\r\n jobs: action.payload.items,\r\n total: action.payload.total,\r\n allFactories: action.payload.allFactories,\r\n allSectors: action.payload.allSectors,\r\n allCountries: action.payload.allCountries,\r\n };\r\n case JOBS_LIST_FAIL:\r\n return { loading: false, error: action.payload };\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport const overviewReducer = (state = {}, action) => {\r\n switch (action.type) {\r\n case OVERVIEW_REQUEST:\r\n return { loading: true };\r\n case OVERVIEW_SUCCESS:\r\n return {\r\n loading: false,\r\n data: action.payload,\r\n latestF1Members: action.payload.latestF1Members,\r\n totalF1Members: action.payload.totalF1Members,\r\n totalCandidates: action.payload.totalCandidates,\r\n latestCandidates: action.payload.latestCandidates,\r\n referrerCode: action.payload.referrerCode,\r\n qrCodeForF1Url: action.payload.qrCodeForF1Url,\r\n qrCodeForCandidateUrl: action.payload.qrCodeForCandidateUrl,\r\n };\r\n case OVERVIEW_FAIL:\r\n return { loading: false, error: action.payload };\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport const qrCodeF1Reducer = (state = {}, action) => {\r\n switch (action.type) {\r\n case MEMBER_CREATE_QRCODE_F1_REQUEST:\r\n return { loading: true };\r\n case MEMBER_CREATE_QRCODE_F1_SUCCESS:\r\n return {\r\n loading: false,\r\n qrCodeF1Url: action.payload,\r\n };\r\n case MEMBER_CREATE_QRCODE_F1_FAIL:\r\n return { loading: false, error: action.payload };\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport const qrCodeCandidateReducer = (state = {}, action) => {\r\n switch (action.type) {\r\n case MEMBER_CREATE_QRCODE_CANDIDATE_REQUEST:\r\n return { loading: true };\r\n case MEMBER_CREATE_QRCODE_CANDIDATE_SUCCESS:\r\n return {\r\n loading: false,\r\n qrCodeCandidateUrl: action.payload,\r\n };\r\n case MEMBER_CREATE_QRCODE_CANDIDATE_FAIL:\r\n return { loading: false, error: action.payload };\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\n","import {\r\n DOCUMENTS_LIST_REQUEST,\r\n DOCUMENTS_LIST_SUCCESS,\r\n DOCUMENTS_LIST_FAIL,\r\n} from '../constants/documentConstants';\r\n\r\nexport const allDocumentsReducer = (state = {}, action) => {\r\n switch (action.type) {\r\n case DOCUMENTS_LIST_REQUEST:\r\n return { loading: true };\r\n case DOCUMENTS_LIST_SUCCESS:\r\n return {\r\n loading: false,\r\n documents: action.payload.items,\r\n total: action.payload.total,\r\n allCategories: action.payload.allCategories,\r\n };\r\n case DOCUMENTS_LIST_FAIL:\r\n return { loading: false, error: action.payload };\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\n","import {\r\n LIST_VN_CITIES_FAIL,\r\n LIST_VN_CITIES_REQUEST,\r\n LIST_VN_CITIES_SUCCESS,\r\n} from \"../constants/citiesContants\";\r\n\r\nexport const citiesListReducer = (state = { cities: [] }, action) => {\r\n switch (action.type) {\r\n case LIST_VN_CITIES_REQUEST:\r\n return {\r\n loading: true,\r\n cities: [],\r\n };\r\n case LIST_VN_CITIES_SUCCESS:\r\n return {\r\n loading: false,\r\n cities: action.payload,\r\n };\r\n case LIST_VN_CITIES_FAIL:\r\n return { loading: false, error: action.payload };\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\n","import {\r\n LIST_ROOMS_FAIL,\r\n LIST_ROOMS_REQUEST,\r\n LIST_ROOMS_SUCCESS,\r\n ROOM_CONTENT_FAIL,\r\n ROOM_CONTENT_REQUEST,\r\n ROOM_CONTENT_SUCCESS,\r\n} from \"../constants/roomsContants\";\r\n\r\nexport const roomsListReducer = (state = { rooms: [] }, action) => {\r\n switch (action.type) {\r\n case LIST_ROOMS_REQUEST:\r\n return {\r\n loading: true,\r\n rooms: [],\r\n };\r\n case LIST_ROOMS_SUCCESS:\r\n return {\r\n loading: false,\r\n rooms: action.payload,\r\n };\r\n case LIST_ROOMS_FAIL:\r\n return { loading: false, error: action.payload };\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport const roomDetailsReducer = (state = { room: {} }, action) => {\r\n switch (action.type) {\r\n case ROOM_CONTENT_REQUEST:\r\n // console.log(\"test\");\r\n return { loading: true, room: {} };\r\n case ROOM_CONTENT_SUCCESS:\r\n return { loading: false, room: action.payload };\r\n case ROOM_CONTENT_FAIL:\r\n return { loading: false, error: action.payload };\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\n","import { createStore, applyMiddleware } from 'redux';\r\nimport thunk from 'redux-thunk';\r\nimport { composeWithDevTools } from 'redux-devtools-extension';\r\nimport rootReducer from './reducers/';\r\n\r\n// const store = createStore(\r\n// rootReducer,\r\n// window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__()\r\n// );\r\n\r\n// function DataProvider({ children }) {\r\n// return {children};\r\n// }\r\n\r\n// export default DataProvider;\r\nconst userInfoFromStorage = localStorage.getItem('userInfo')\r\n ? JSON.parse(localStorage.getItem('userInfo'))\r\n : null;\r\n\r\nconst initialState = {\r\n userLogin: { userInfo: userInfoFromStorage },\r\n};\r\nconst middleware = [thunk];\r\n\r\nconst store = createStore(\r\n rootReducer,\r\n initialState,\r\n composeWithDevTools(applyMiddleware(...middleware))\r\n);\r\n\r\nexport default store;\r\n","import React from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport \"./index.css\";\r\nimport App from \"./App\";\r\nimport reportWebVitals from \"./reportWebVitals\";\r\nimport \"antd/dist/antd.css\";\r\nimport store from \"./redux/store\";\r\nimport { Provider } from \"react-redux\";\r\n\r\nReactDOM.render(\r\n \r\n \r\n ,\r\n document.getElementById(\"root\")\r\n);\r\n\r\n// If you want to start measuring performance in your app, pass a function\r\n// to log results (for example: reportWebVitals(console.log))\r\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\r\nreportWebVitals();\r\n"],"sourceRoot":""}