{"version":3,"sources":["Components/Wallet/acc-edit/AccForm.module.scss","Components/Wallet/acc-edit/EditBankInfoForm.module.scss","Components/Wallet/acc-edit/AccList.module.scss","locales/zh-HK.js","locales/zh-CN.js","lang/I18nProvider.js","lang/I18nContext.js","lang/useI18n.js","Components/Ui/BaseCard/index.jsx","Components/Layout/Header.jsx","Assets/i_complete.png","Components/Auth/Register/successRegister/index.jsx","Components/Auth/Register/ValidCode/ButtonTimer/index.jsx","Components/Ui/BaseSpinner/index.jsx","Components/Auth/Register/ValidCode/index.jsx","Components/Auth/Register/index.jsx","context/auth/AuthContext.jsx","Components/Auth/LoginForm.jsx","Components/Auth/index.jsx","Assets/icon-error-new.png","Assets/blue_close_btn.png","Components/Ui/ErrorModal.jsx","Components/Auth/Timer.jsx","Components/Auth/ForgetPassword.jsx","context/httpError/HttpErrorContext.jsx","context/buy/BuyContext.jsx","Components/TransactionNav/index.jsx","context/sell/SellContext.jsx","lib/utils.js","context/balance/BalanceContext.jsx","Components/Sell/SellExRate.jsx","Assets/i_twoways.png","Components/Sell/SellForm.jsx","store/type.js","Assets/88u/icon_注意.png","config/axiosConfig.js","store/actions/kycAction.js","Components/Sell/SellBankForm.jsx","store/actions/bankFormActions.js","Assets/icon_search.gif","Components/Sell/Pairing.jsx","Components/Layout/FormFooter.jsx","Components/Sell/Sell.jsx","hooks/useHttp.js","lib/api.js","Components/Buy/SetAccount.jsx","Components/universal/countDownTimer.jsx","Assets/i_clock.png","Components/Sell/SellHeader.jsx","Assets/warning.png","Components/Sell/SellDetail.jsx","Assets/btn_wait.png","context/chat/ChatContext.jsx","Assets/mp3/newMessage.mp3","Components/Chat/TheChat.js","context/history/HistoryContext.jsx","context/instant/InstantContext.jsx","store/actions/orderActions.js","Assets/i_usdt_red.png","Assets/i_usdt_blue.png","Assets/i_usdt_purple.png","Components/History/HistoryAllDetail.jsx","Assets/i_copy.png","Components/universal/CompleteStatus.jsx","Assets/i_ask2.png","Components/Sell/SellInfo.jsx","Assets/icon_trans.gif","Components/Transfer/OnLoading/index.jsx","context/transfer/TransferContext.jsx","Components/Transfer/index.jsx","Assets/icon_load02.gif","Components/Transfer/TransferInfo/index.jsx","Components/Buy/Pairing/index.jsx","Components/Buy/ExRate.jsx","Components/Buy/BuyForm.jsx","Components/Buy/BankForm.jsx","Components/Buy/TheBuy.jsx","Components/Buy/Timer/index.jsx","Components/Buy/BuyInfoHeader.jsx","Components/universal/Cancel.jsx","Components/Buy/BuyDetail.jsx","Components/Buy/BuyInfo.jsx","pages/Transaction/index.jsx","Components/Layout/TheNav.jsx","Components/MoneyRecord/index.jsx","store/actions/memberChatActions.js","store/actions/userAction.js","store/actions/agentAction.js","store/actions/autoPickAction.js","Assets/mp3/newOrder.mp3","Components/Instant/InstantNav.jsx","Components/NoData/index.jsx","Components/universal/Timer.jsx","Components/universal/StopWatch.jsx","firebaseInit.js","lib/unitDate.js","hooks/useRwd.js","Components/Instant/InstantAllItem.jsx","Components/Instant/InstantAll.jsx","store/actions/instantActions.js","lib/orderStatus.js","Components/Instant/InstantOnGoingItem.jsx","Components/Instant/InstantOnGoing.jsx","Components/Instant/TheInstant.jsx","lib/scrollToBottom.js","lib/imageResize.js","Assets/cs.png","config/customText.js","Components/member-chat/MemberChat.jsx","hooks/useWebSocket.jsx","Assets/attach_icon.png","Assets/send_icon.png","Assets/k100u-phone.png","Assets/88u/會員等級.png","Components/Overview/index.jsx","context/wallet/WalletContext.jsx","store/actions/accountAction.js","Components/Wallet/acc-edit/AccForm.jsx","lib/helper.js","Components/Wallet/acc-edit/PaginatedItems.jsx","Components/Wallet/acc-edit/AccListMobile.jsx","Components/Wallet/acc-edit/AccList.jsx","Components/Wallet/acc-edit/EditBankInfoForm.js","Components/Wallet/TheWallet.jsx","Components/Wallet/WalletDetail.jsx","Components/History/HistoryPaginate.jsx","Components/History/HistoryAll.jsx","Components/History/HistoryWait.jsx","Components/History/ExpiredItem.jsx","Components/History/HistoryExpired.jsx","store/actions/expiredAction.js","Components/History/index.jsx","Components/Instant/SellDetail.jsx","Components/Instant/BuyDetail.jsx","Components/Instant/InstantDetail.jsx","Components/universal/NoOrder.jsx","Components/Instant/InstantCount.jsx","Components/universal/Pairing/index.jsx","pages/InstantScreen.jsx","Components/member-level-alert/MemberLevelAlert.jsx","data/tw-city.js","Components/Kyc/KycValidForm.jsx","pages/Home/index.jsx","context/type.jsx","context/sell/SellReducer.jsx","store/reducers/agentReducer.js","store/reducers/instantReducer.js","store/reducers/orderReducer.js","store/reducers/expiredReducer.js","store/reducers/autoPickReducer.js","store/reducers/bankFormReducer.js","store/reducers/memberChatReducer.js","store/reducers/kycReducer.js","store/reducers/userReducer.js","store/reducers/accountReducer.js","store/store.js","context/sell/SellState.jsx","context/balance/BalanceReducer.jsx","context/balance/BalanceState.jsx","context/auth/AuthReducer.jsx","context/auth/AuthState.jsx","context/transfer/TransferReducer.jsx","context/transfer/TransferState.jsx","context/history/HistoryReducer.jsx","context/history/HistoryState.jsx","context/httpError/HttpErrorReducer.jsx","context/httpError/HttpErrorState.jsx","context/buy/BuyReducer.jsx","context/buy/BuyState.jsx","context/chat/ChatReducer.jsx","context/chat/ChatState.jsx","context/instant/InstantReducer.jsx","context/instant/InstantState.jsx","context/wallet/WalletReducer.jsx","context/wallet/WalletState.jsx","Components/Auth/Agreement.js","Components/Notifications/Notifications.js","Components/Notifications/ReactNotification.js","lib/parseUrl.js","App.js","index.js","Components/History/History.module.scss","Components/Auth/Agreenment.module.scss","Components/Chat/TheChat.module.scss","Components/Layout/Header.module.scss","Components/member-level-alert/MemberLevelAlert.module.scss","Components/Overview/overView.module.scss","Components/member-chat/MemberChat.module.scss","Components/Wallet/acc-edit/AccListMobile.module.scss","Components/Kyc/KycValidForm.module.scss"],"names":["module","exports","agreement_title","agreement_rule","agreement_rule_list","agreement_buy_rule","agreement_buy_rule_sub","agreement_buy_rule_list","agreement_sell_rule","agreement_sell_rule_sub","agreement_sell_rule_list","user_rule","user_rule_list","table_1_th","table_1_td_1","table_1_td_2","table_1_td_3","table_1_td_4","table_1_td_5","table_1_td_6","table_1_td_7","table_1_td_8","table_1_td_9","table_1_td_10","table_1_td_11","table_1_td_12","table_1_td_13","table_1_td_14","table_1_ps","table_2_th","table_2_td_1","table_2_td_2","table_2_td_3","table_2_td_4","table_2_td_5","table_2_td_6","table_2_td_7","table_2_ps","table_3_th","table_3_td_1","table_3_td_2","table_3_td_3","table_3_td_4","table_3_td_5","table_3_td_6","table_3_td_7","table_3_td_8","understand_agreement","e_wallet","choose_e_wallet","no_data","no_data_2","no_order","no_order_buy","no_order_sell","no_token","cancel_fail","btn_continue","btn_confirm","btn_return","btn_pair_start","btn_pairing","btn_loading","btn_already_pay","btn_cancel_order","btn_over_time","btn_copy","btn_copy_fail","btn_back_home","btn_transaction_detail","btn_confirm_cancel","btn_fetch_all","btn_next","btn_buyer_already_pay","btn_preparing","btn_close","btn_detail","btn_instant","btn_login","btn_forget_password","btn_send_valid_code","btn_valid_code_already_send","btn_back_to_login","btn_bank","btn_aliPay","welcome_text","exRate","payment_contact","limit","payment_contact_time","limit_usdt","please_wait","buy_order","nav_transaction","nav_history","nav_wallet","nav_logout","nav_logout_alert","balance_avb","balance_real","overView_transaction","overView_transfer","overView_wallet","overView_history","slogan_title","slogan_sub_text_1","slogan_sub_text_2","transaction_nav_buy","transaction_nav_sell","transaction_nav_transfer","avb_insufficient","avb_over_limit","buy_usdt","no_account_name","no_bank_account","no_bank_code","invalid_number","please_enter_quantity","account_name_placeholder","account_placeholder","bank_code_placeholder","account_name_prompt","buy_total","buy_quantity","transfer_data","limit_time","amount","payee","payee_account","bank","city","pair_title","pair_text","sell_usdt","sell_error_invalid_number","sell_error_enter_payee","sell_error_enter_bank","sell_error_enter_payee_account","sell_error_enter_city","sell_enter_qua","sell_payee","sell_payee_account","sell_bank","sell_city","sell_info_transfer_data","sell_info_limit_time","sell_over_time","sell_detail_amount","sell_detail_payee","sell_detail_payee_account","sell_detail_payee_bank","sell_detail_payee_city","transfer_address_error","transfer_error_invalid_number","select_protocol","protocol_trc20","protocol_erc20","transfer_charge","transfer_title","transfer_address","open_camera","transfer_info_success","transfer_info_address","transfer_info_hash","transfer_info_loading","transfer_info_fail","transfer_onLoading","transfer_text","transfer_enter_number","transfer_enter_address","wait_confirm","transaction_hash","complete_text","transaction_done","transaction_cancel","transaction_over_time","cancel_component_title","order_number","form_footer_text_1","form_footer_text_2","form_footer_text_3","form_footer_text_4","form_footer_text_5","form_footer_text_6","form_footer_text_7","form_footer_text_8","form_footer_text_9","form_footer_text_10","history_all","history_wait","history_expires","history_date","history_transaction_deal","history_transaction_real","history_transaction_status","history_transaction_complete","history_previousLabel","history_nextLabel","history_buy","history_sell","history_transfer_in","history_transfer_out","history_transaction_hash","history_transaction_charge","history_transaction_price","history_RMB","history_account","history_payee","history_bank","history_branch","history_payer","history_payer_account","history_payer_bank_code","history_currency","history_wait_pay","history_account_receivable","history_onGoing","wallet_address","chat_help","chat_sound_open","chat_sound_close","chat_order_number","chat_customer_server","chat_send_message","instant_transaction","instant_sound_open","instant_sound_close","instant_over_time","instant_over_time_short","instant_auto_pick","instant_auto_pick_close","instant_nav_all","instant_nav_onGoing","instant_exRate","instant_price","instant_qua","instant_acc_time","instant_limit_time","instant_buy","instant_pay","instant_sell","instant_get","instant_no_transaction","instant_payee_data","instant_pay_time","instant_payee_name","instant_payee_account","instant_bank","instant_city","instant_payer_data","instant_payer_name","instant_payer_account","instant_payer_bankCode","auth_login","auth_register","auth_nav_login","auth_nav_register","register_success","alert_text_1","no_countryCode","invalid_phoneNumber","invalid_password","confirm_password_fail","no_account","captcha_error","countryCode","china","taiwan","singapore","malaysia","hk","phoneNumber","password","enter_valid","enter_password","enter_new_password","enter_confirm_password","captcha_check","read_and_agree","user_agreement","click_and_send_valid_code","one_time_code","china_area_alert_1","china_area_alert_2","login_again","set_password_success","password_changed","http_error_code_1","http_error_code_10","http_error_code_11","http_error_code_12","http_error_code_13","http_error_code_14","http_error_code_15","http_error_code_16","http_error_code_17","http_error_code_20","http_error_code_21","http_error_code_22","http_error_code_30","http_error_code_31","http_error_code_32","http_error_code_41","http_error_code_42","http_error_code_91","http_error_other","EditBankInfoForm_account_info","EditBankInfoForm_edit_account_info","EditBankInfoForm_account","EditBankInfoForm_name","EditBankInfoForm_bank","EditBankInfoForm_city","EditBankInfoForm_confirm","EditBankInfoForm_error","web_push_button_allow","web_push_button_deny","web_push_open_notify_request","web_push_not_support","instant_name","instant_timer","instant_appeal","philippines","lan","I18nContext","createContext","t","getLocale","setLocale","I18nProvider","props","useState","locale","i18n","key","translations","Provider","value","children","useI18n","useContext","BaseCard","className","this","Component","Header","style","backgroundColor","header","SuccessRegister","history","useHistory","src","CompleteImg","alt","Button","block","size","onClick","replace","index","resendValidCode","getValidCode","minutes","seconds","completed","variant","disabled","slice","BaseSpinner","ValidCode","clockRef","useRef","validNum","setValidNum","formIsValid","setFormIsValid","error","setError","setResendValidCode","isLoading","setIsLoading","isRegister","setIsRegister","timer","token","setToken","useEffect","length","handleSubmit","localStorage","removeItem","handleHttpError","data","code","handleStart","charAt","substr","fetch","method","body","JSON","stringify","reg_countrycode","reg_tel","res","json","resData","alert","OneTimePwd","registerClient","reg_pwd","reg_token","current","start","Form","Row","Group","as","Col","sm","controlId","Label","InputGroup","Prepend","Text","Control","placeholder","onChange","event","target","trim","autoComplete","type","isValid","autoStart","ref","onComplete","date","Date","now","renderer","ButtonTimer","RegisterForm","val","setPhoneNumber","setPassword","confirmPassword","setConfirmPassword","setCountryCode","captcha","setCaptcha","checkAccountErr","setCheckAccountErr","agree","setAgree","showValidCode","setShowValidCode","showAlert","setShowAlert","btnLoading","setBtnLoading","validRegister","validateCaptcha","validator","isMobilePhone","isAlphanumeric","checkAccountExists","handleRegisterSubmit","preventDefault","loadCaptchaEnginge","md","name","e","includes","isInvalid","process","fontSize","startsWith","split","onWheel","currentTarget","blur","xl","width","height","Check","label","checked","cursor","alignSelf","marginBottom","push","Spinner","animation","role","Fade","in","id","xmlns","fill","class","viewBox","d","color","AuthContext","LoginForm","authContext","login","loginLoading","errorText","setErrorText","getItem","validateForm","onKeyUp","keyCode","display","background","to","Auth","formType","setFormType","location","useLocation","pathname","host","logo","position","bottom","right","alignItems","justifyContent","overflow","zIndex","Paring","Modal","centered","Body","closeBtn","onHide","status","errorIcon","successIcon","marginTop","title","Timer","phoneValid","setExpirTime","time","Number","ForgetPassword","isSendValidCode","checkValidCode","authLoading","validToken","forgetPassword","showErrorModal","cleanErr","setCountDown","expiredTime","accountIsExists","setAccountExists","removeValidToken","errText","setErrText","showNewPw","setShowNewPw","setPhoneValid","validCode","setValidCode","newPassword","setNewPassword","passwordValid","setPasswordValid","setLoading","handleChange","sendValidCode","goToLogin","Card","borderRadius","maxWidth","show","ErrorModal","text","Collapse","HttpErrorContext","BuyContext","linkBox","borderBottom","paddingTop","paddingLeft","linkStyle","outline","padding","marginRight","textAlign","linkActive","border","TransactionNav","buyWsClient","handleClick","close","SellContext","locationMoneyCalc","toFixed","locationMoneyCalcWithThousand","parseFloat","toLocaleString","minimumFractionDigits","thousandBitSeparator","usdtThousandBitSeparator","Math","abs","usdtThousandBitSeparatorNonAbs","BalanceContext","SellHeader","sellContext","getExRate","level","letterSpacing","day","changeMoneyIcon","changeMoneyIconMobile","transform","inputText","top","SellForm","mobileApp","useMediaQuery","query","balanceContext","getBalance","avb","setSellCount","setShowBank","httpErrorContext","setHttpError","usdt","setUsdt","cny","setCny","formValid","setFormValid","fetchLoading","setFetchLoading","showBankWallet","setShowBankWallet","counter","fetchAll","usdtCount","cnyCount","step","changeMoney","rule","upperLimit","test","React_APP_HOST_NAME","OPEN_WEB_PUSH_NOTIFY","SET_DEVICE_ID","instantActionsTypes","SET_INSTANT_ORDER","CURRENT_INSTANT_ORDER","orderActionsTypes","accountActionsTypes","expiredActionTypes","autoPickActionTypes","bankFormActionsTypes","memberChatActionsTypes","kycActionsTypes","userActionsTypes","authFetch","axios","create","baseURL","interceptors","request","use","config","headers","common","Promise","reject","response","setKyc","kycData","dispatch","post","payload","message","getKyc","get","SellBankForm","useDispatch","isAgent","allowTrans","setAllowTrans","getKycData","useSelector","state","setName","setBank","account","setAccount","setCity","getOrderToken","setWsPairing","sellCount","wsPairing","lastItem","User_BankStatus","cautionImag","fontWeight","showCloseButton","content","confirmText","onConfirm","setSellBankForm","defaultValue","currentBank","find","el","console","log","P2","P1","P3","filter","map","Pairing","backdrop","searchIcon","FormFooter","Sell","wsData","cleanAll","wsClient","sellStatus","orderToken","showBank","cancelOrder","SellExRate","UsdtAmt","D2","httpReducer","action","responseData","errorMessage","useHttp","reqFun","startWithPending","useReducer","httpState","sendRequest","useCallback","reqData","getHeaders","Headers","append","delAgentAcc","H_id","ok","Error","msg","mag","getOrderDetail","accData","sendWebPushToken","deviceId","DeviceID","confirmReceived","url","Token","orderAppeal","confirmBuyTextBox","SetAccount","lg","rmbAmt","toString","usdtAmt","CountDownTimer","pairTitleBox","clockStyle","setOverTime","statusID","order","orderStatus","Order_StatusID","deltaTime","timeLeft","setTimeLeft","clockIcon","infoBtn","margin","transition","infoBtnDisabled","opacity","SellDetail","appealReq","appealStatus","match","useRouteMatch","params","setConfirmSell","confirmSellAction","httpLoading","buyContext","GetDeltaTime","setDeltaTime","isClick","setIsClick","overTime","Container","warningImg","TheChat","statusHash","Tx_HASH","messagesEndRef","userInput","setUserInput","setIsAgent","useSound","newMessageSound","interrupt","loop","play","stop","soundState","setSoundState","chatContext","ChatContext","instantClient","client","instantMessages","messages","chatConnect","instantChat","setInstantMessages","setMessages","chatLoading","setChatLoading","newMessage","setNewMessage","sendMessage","send","Message_Type","Message","resizeFile","file","resolve","Resizer","imageFileResizer","uri","sendImg","files","image","path","scroll","behavior","scrollToBottom","classes","chatBox","isChat","soundBtnBox","hash","talk","Message_Role","Badge","talk_l","talk_r","talk_time","a_right","Sysdate","splice","join","attach_icon","talkBox","send_icon","HistoryContext","InstantContext","setOrderStatus","orderData","gridBox","gridTemplateRows","gridTemplateColumns","gridGap","headerTitle","gridContent1","gridColumn","borderRight","flexDirection","gridContent2","gridContent4","gridContent5","gridContent6","gridContent7","gridContent8","borderTop","gridContent9","gridContent10","gridContent11","gridContent12","gridContent13","gridContent14","gridContent15","gridContent16","iconStyle","textStyle","lineHeight","HistoryAllDetail","historyContext","singleDetail","setSingleDetail","blueIcon","redIcon","purpleIcon","balance","txHASH","copy","transformOrigin","charge","exchangePrice","rmb","branch","payer","payerAccount","payerBankCode","CompleteStatus","instantData","backToHome","setShowComplete","MasterType","setShow","detailReq","instantContext","sell1Data","buy1Data","appealData","appealError","handleInstantData","orderDetail","CreateDate","P4","D1","D3","orderState","wsStatus","helpBtn","paddingRight","paddingBottom","MobileChatContainer","chatContainer","SellInfo","isMobile","useParams","sellWebSocket","showChat","setShowChat","helpIcon","OnLoading","trans","TransferContext","showCameraText","Transfer","transferContext","transferOrderToken","transferWebSocket","transferStatus","closeWebSocket","setUsdtCount","transferErrText","checkErcAddress","checkTrcAddress","transferHandle","rateAllData","setTransferHandle","setHttpLoading","scanResultWebCam","setScanResultWebCam","transferCount","setTransferCount","transferAddress","setTransferAddress","transferLoading","setTransferLoading","isPairing","setIsPairing","protocolType","setProtocolType","showCamera","setShowCamera","TransferHandle","TransferHandle2","getAll","all","String","delay","onError","onScan","result","facingMode","TransferInfo","cleanStatus","setOrderToken","completeIcon","transIcon","ExRate","buyRate","formStyle","formInput","BuyForm","setBuyCount","buyCount","buyErrorText","setUsdtAmt","setRmbAmt","BankFrom","bankForm","buy","buyBtnLoading","confirmBuy","handleBuyBtnLoading","accountName","setAccountName","bankCode","setBankCode","setBuyBankForm","handleKeyUp","validForm","TheBuy","handlePairing","buyPairing","buyOrderToken","buyConnectWs","BankForm","BuyInfoHeader","setHideBuyInfo","Cancel","buyWsData","Title","wordBreak","Footer","InfoDetail","BuyerAlreadyPay","showCancel","setShowCancel","handleCopy","onShow","onExited","copyValue","REACT_REACT_APP_HOST_NAME","borderColor","BuyInfo","confirmReceivedReq","confirmReceivedStatus","Transaction","exact","component","TheNav","wsStatusClient","Nav","navList","redirectToDi","navLink","href","window","confirm","logout","MoneyRecord","real","getTick","tick","checkTick","setInterval","clearInterval","setMessageList","messageList","setKycUserData","userData","getKycUserData","setOpenWebPushNotify","openWebPushNotify","setDeviceIdAction","autoPickReq","mode","InstantNva","wsOnGoingData","setTab","jumpTo","tab","NoData","second","minute","floor","messaging","StopWatch","setSecond","secondInterval","unitDate","dateString","useRwd","InstantAllItem","MType","gap","DeltaTime","P5","moment","format","extraInfo","InstantAll","setCountData","setCurrentInstantData","sellOrderStatusCode","buyOrderStatusCode","InstantOnGoingItem","handleCountDownComplete","TheInstant","setType","sellMatch1","buyMatch1","setSell1Data","setBuy1Data","setActionType","httpError","firebaseConfig","apiKey","REACT_APP_API_KEY","authDomain","REACT_APP_FIREBASE_AUTH_DOMAIN","projectId","REACT_APP_FIREBASE_PROJECT_ID","storageBucket","REACT_APP_FIREBASE_STORAGE_BUCKET","messagingSenderId","REACT_APP_FIREBASE_MESSAGING_SENDER_ID","appId","REACT_APP_FIREBASE_APP_ID","firebase","initializeApp","REACT_APP_VAPID_KEY","currentToken","REACT_APP_VAPID_KEY_LOCAL","getToken","setTokenFound","vapidKey","deleteToken","playbackRate","agent","setDeviceId","autoPick","autoPickData","autoPickLoading","loading","autoPickError","AutoMode","setDeviceIdStatus","setDeviceIdError","newOrderSound","sound","connectInstantWs","instantOngoingWsConnect","instantAllClient","instantOnGoingClient","setItem","parse","Notification","permission","pre","marginLeft","InstantNav","InstantOnGoing","scrollToBottomAnimated","animateScroll","containerId","duration","customText","SysDate","dayjs","SysID","uuidv4","MemberChat","loginSession","socket","setSocket","online","setOnline","connectMemberLevelWs","ws","ReconnectingWebSocket","openListen","addEventListener","removeEventListener","closeListen","sendImage","useWebSocket","inputRef","imageInputRef","inputValue","setInputValue","memberChat","onImageChange","filterArr","messageListen","dataFromServer","Array","isArray","setMessage","styles","container","csImage","onSubmit","referance","inputStyle","input","leftButtons","click","upload","multiple","accept","rightButtons","_","memberMap","backImg1","OverView","linkRef","diSessionID","sessionStorage","diOrderID","lvl","diOrderData","getUer","getUserKycData","getUserLoading","setUser","userKycLoading","looper","hasOrderUrl","URL","isKyc","disableLevel","Status","Data","reqStatus","memberLevelImg","xs","landingBlock","textBox","subText","imgBox","phone","phoneImg","WalletContext","getAcc","getAccHistory","setAcc","AccForm","onHideHandler","setShowForm","editData","canSubmit","setCanSubmit","formData","setFormData","setAccLoading","setAccData","setAccError","prev","Toast","icon","form","PaginatedItems","itemsPerPage","items","setCurrentItems","pageCount","setPageCount","itemOffset","setItemOffset","endOffset","ceil","nextLabel","previousLabel","onPageChange","newOffset","selected","pageRangeDisplayed","marginPagesDisplayed","containerClassName","pageClassName","breakClassName","previousClassName","nextClassName","pageLinkClassName","previousLinkClassName","nextLinkClassName","breakLinkClassName","breakLabel","activeClassName","renderOnZeroPageCount","AccListMobile","accHistoryData","onClickHandler","currentItems","currentAccData","currentAcc","delAcc","delAccData","delAccStatus","delAccError","item","justifySelf","stopPropagation","AccList","showForm","selectAccHandler","clearItem","setClearItem","historyAccData","historyAcc","currentItem","setCurrentItem","acc","maxHeight","overflowY","overflowX","EditBankInfoForm","afterClose","closeImg","newData","footer","TheWallet","accLoading","accError","historyAccError","walletContext","getQrCode","setWalletType","walletData","preState","ListGroup","Item","WalletDetail","walletType","Qr_img2","Qr_img","WalletAddress2","WalletAddress","dateText","verticalAlign","transactionAmount","avbStyle","statusStyle","HistoryPaginate","pageNumber","pagesVisited","allHistory","Balance","titleStyle","HistoryAll","getHistoryAll","historyLoading","setBalance","setPageNumber","num","Table","responsive","bordered","hover","disabledClassName","initialPage","HistoryWait","waitList","setWaitList","h","ExpiredItem","HistoryExpired","expired","waitBox","waitCount","History","historyState","setHistoryState","section","sellMatch2","statusWs","wsStatusData","paymentName","setOvertime1","overTime2","setOvertime2","showComplete","setTimeLeft2","handleCancel","BuyDetail","confirmReceivedData","confirmReceivedError","buyMatch2","InstantDetail","isSell","isBuy","NoOrder","InstantCount","countData","orderExists","setOrderExists","setShowPop","cssFloat","showPop","InstantScreen","actionType","MemberLevelAlert","handleClose","contentClassName","button","month","TWCity","state_name","full_name","zipcodes_endpoint","KycValidForm","setKycError","userKycError","userKycData","kycLoading","userLoading","bankLastItem","isValidIng","validSuccess","SType","Img1","bankData","setBankData","p3","bankStatus","setBankStatus","country","idType","email","birthday","IDNumber","area","address","idLocation","idDate","IDPhotoFront","IDPhotoBack","IDPhotoSecondFront","IDPhotoSecondBack","selfPhoto","sign","setUserData","idPhotoFront","setIdPhotoFront","idPhotoBack","setIdPhotoBack","setIDPhotoSecondFront","setIDPhotoSecondBack","selfList","setSelfList","accountList","setAccountList","signList","setSignList","kycValidUerStatus","setKycValidUserStatus","kycValidUerDesc","setKycValidUserDesc","des","bankset","formBtnRef","datePickerRef","scrollRef","mockUpload","createObjectURL","beforeUpload","isNationalIdentificationNumberValid","scrollTo","offsetTop","Img","rest","sendUserData","userDataOnChange","Alert","required","max","subtract","muted","maxCount","showUpload","showFailed","imageFit","HomeScreen","showModal","setShowModal","setText","setAgent","autoLogout","checkAgentExpires","logoLink","Overview","kycForm","React","memo","SET_RMB_SELL_RATE","SET_ORDER_TOKEN","SET_WS_PAIRING","SET_WS_DATA","SET_SELL_COMPLETED","CLEAN_ORDER_TOKEN","SET_WS_CLIENT","SET_CANCEL_ORDER_DATA","SET_CONFIRM_SELL","SET_SELL_STATUS","SET_RATE_DATA","SET_TRANSFER_HANDLE","SET_SELL_COUNT","SET_SHOW_SELL_BANK","SET_TRANSFER_ORDER_TOKEN","SET_TRANSFER_STATUS","SET_USDT_COUNT","SET_ORDER_DETAIL","GET_WS_CLIENT","SET_BALANCE","SET_TICK","SET_TRANSLATE","SET_MESSAGES","SET_CHAT_WS_CLIENT","CHAT_SET_ORDER_TOKEN","SET_INSTANT_CLIENT","SET_INSTANT_MESSAGES","SET_CHAT_LOADING","SET_NEW_MESSAGE","IS_SEND_VALID_CODE","SET_VALID_TOKEN","SET_AUTH_LOADING","SHOW_ERROR_MODAL","REMOVE_VALID_TOKEN","SET_EXPIRED_TIME","SET_AGENT","SET_ACCOUNT_EXISTS","SET_ALL_HISTORY","SET_SINGLE_DETAIL","SET_WAIT_HISTORY","HISTORY_LOADING","LOGIN_SET_LOADING","SET_ERROR_TEXT","SET_HTTP_ERROR","SET_HTTP_LOADING","SET_BUTTON_LOADING","BUY_BTN_LOADING","SET_BUY_COUNT","SET_BUY_ERROR_TEXT","SET_BUY_ORDER_TOKEN","SET_BUY_WS_STATUS","HANDLE_PAIRING","SET_SHOW_BANK","SET_BUY_WS_CLIENT","SET_BUY_WS_DATA","SET_DELTA_TIME","HIDE_BUY_INFO","SET_INSTANT_WS_DATA","SET_COUNT_DATA","SET_SELL1_DATA","SET_BUY1_DATA","INSTANT_ALL_WS_CLIENT","INSTANT_ON_GOING_WS_CLIENT","SET_STATUS_WS_CLIENT","SET_WS_STATUS_DATA","SET_INSTANT_ONGOING_DATA","SET_ACTION_TYPE","ORDER_NOT_EXISTS","SET_PAYMENT_NAME","SET_WALLET_DATA","SET_WALLET_TYPE","SellReducer","RMB_SELL","RMB_BUY","confirmSell","sellIsCompleted","cancelData","initialState","currentInstantData","initState","sell","setInitialState","getInitialState","removeInitialState","setAccInitialState","currentAccInitialState","AccHistoryInitialState","persistConfig","storage","whitelist","middleware","thunk","reducer","combineReducers","instant","SET_ORDER_DATA","arr","sort","a","b","valueOf","existsCustomText","removeKyc","persistedReducer","persistReducer","undefined","store","createStore","composeWithDevTools","applyMiddleware","persisStore","persistStore","SellState","getHeader","setExRateData","setRateAllData","AccountNumber","AccountName","BankName","BankBranch","order_token","setWsClient","onopen","onmessage","setSellStatus","setWsData","setCompleteStatus","onclose","sellData","closeWs","sellCurrentToken","cleanOrderToken","BalanceReducer","Lvl","Avb_Balance","Real_Balance","BalanceState","setTick","UpdateTick","AuthReducer","AuthState","handleLoginLoading","Login_countrycode","Login_tel","Login_pwd","expiresDate","getTime","login_session","changePw","oldPw","New_pwd","newPw","TransferState","ToAddress","sendTransferReq","sendTransferReqTrc","setOrderDetail","TransferReducer","connectWs","HistoryReducer","HistoryState","detailToken","receivingAddress","HttpErrorReducer","HttpErrorState","isHideBuyInfo","BuyState","ClientName","setWsStatus","BuyReducer","ChatReducer","reverse","isTranslate","ChatState","setInstantClient","setClient","setTranslate","chatApi","protocol","closeUserChatWebSocket","InstantReducer","InstantState","setInstantData","setAllClient","setOnGoingClient","setWsStatusClient","setWsStatusData","setOnGoingData","setPaymentName","WalletReducer","WalletState","setWalletData","Agreement","dangerouslySetInnerHTML","__html","striped","Notifications","sendDeviceStatus","sendDeviceError","sendDeviceData","sendDeviceIdToServerRequest","clear","replaceState","tokenFunc","propTypes","ReactNotificationComponent","Display","toast","info","autoClose","hideProgressBar","newestOnTop","closeOnClick","rtl","pauseOnFocusLoss","draggable","pauseOnHover","defaultProps","urlParamsKey","getParamsFromUrl","str","URLSearchParams","App","isAuth","setIsAuth","showNotify","setShowNotify","notification","setNotification","user","sessionID","orderID","isKycFromDi","notifyStat","callback","onMessage","setAuth","ReactNotification","Home","require","default","ReactDOM","render","persistor","zhTW","locales","document","getElementById"],"mappings":"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","file":"static/js/main.b2cf909e.chunk.js","sourcesContent":["// extracted by mini-css-extract-plugin\nmodule.exports = {\"form\":\"AccForm_form__1bJdf\",\"input\":\"AccForm_input__3UMu-\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"header\":\"EditBankInfoForm_header__373GZ\",\"title\":\"EditBankInfoForm_title__21GI8\",\"close\":\"EditBankInfoForm_close__UQMXD\",\"footer\":\"EditBankInfoForm_footer__Xba6k\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"header-box\":\"AccList_header-box__p6ca5\",\"content-item\":\"AccList_content-item__qji6_\",\"icon-box\":\"AccList_icon-box__38DBk\",\"footer\":\"AccList_footer__34oi5\"};","// eslint-disable-next-line\nexport default {\n // K100U Rule\n agreement_title: \"88UU法幣區交易規則\",\n agreement_rule: \"法幣區交易基本原則:\",\n agreement_rule_list: [\n \"本規則自發布之日起正式實施,並將不時予以修改或完善,修改或完善後的新規則自公佈之日起即生效。\",\n \"如您不同意本規則及修改或完善後的規則內容,請立即停止使用平台服務\",\n \"如您繼續使用平台服務的,視為您完全理解並接受本規則及不時修改或完善後的規則內容,並自願受其約束\",\n ],\n\n // Buy Rule\n agreement_buy_rule: \"買方應遵循的原則:\",\n agreement_buy_rule_sub: \"創建訂單後,買方應當:\",\n agreement_buy_rule_list: [\n \"在訂單規定的付款時間內完成支付,再點擊「我已付款」\",\n \"使用本人實名付款方式、按訂單金額及訂單指定的收款帳戶以實時到帳方式完成訂單支付\",\n \"選擇非實時到帳方式支付訂單的,必須事先獲得賣方同意\",\n \"支付訂單不得備註「數字貨幣、USDT」等信息\",\n // \"支付訂單不得備註「數字貨幣、USDT」等信息\",\n \"創建訂單後,賣家收到的金額總數應和訂單詳情介面的金額一致。若在支付過程中產生了額外的費用,需由買家承擔\",\n ],\n\n // Sell Rule\n agreement_sell_rule: \"賣方應遵循的原則:\",\n agreement_sell_rule_sub: \"生成訂單後,賣方應當:\",\n agreement_sell_rule_list: [\n \"提供經平台認證的收款帳戶\",\n \"收到買方全額付款後,在訂單規定時間內完成放行\",\n // \"收到買方全額付款後,在訂單規定時間內完成放行\",\n \"非經買方同意,不得對已創建的訂單價格提出異議\",\n ],\n\n // User Rule\n user_rule: \"用戶應遵守反洗錢原則:\",\n user_rule_list: [\n \"用戶應遵守平台的《88U 條款和條件》並嚴格照此履行相關義務\",\n \"用戶應遵守平台的《88U 條款和條件》並嚴格照此履行相關義務\",\n \"用戶在觸發平台的反洗錢風控預警時,應積極配合平台的進一步反洗錢核實工作,並積極協助提供相關的風控舉證材料(具體措施以屆時平台風控審核要求為準)\",\n ],\n\n // Table #1 Th\n table_1_th: [\"#\", \"異常處理\", \"處理措施\"],\n\n // Table #1 Td\n table_1_td_1: [\n \"1\",\n \"訂單創建後,買方主動取消訂單,或者因付款超時而係統自動取消訂單。\",\n \"當日達到4次,系統將限制買方買入功能;連續2日觸發,系統將進一步限制買方賬戶部分功能。\",\n ],\n table_1_td_2: [\n \"2\",\n \"未付款的情況下,點擊“我已付款\",\n // \"賣方有權要求取消此筆訂單,買方當日被投訴達到2次,系統將限制買方賬戶部分功能;此類投訴單筆金額超過8萬人民幣的,系統將直接限制買方賬戶48小時。\",\n \"賣方有權要求取消此筆訂單,買方當日被投訴達到2次,系統將限制買方賬戶功能。\",\n ],\n table_1_td_3: [\n \"3\",\n \"賣方無違規,買方未付款的情況下,無故點擊“申訴”。\",\n \"賣方有權要求取消此筆訂單,買方當日被投訴達到2次,系統將限制買方賬戶部分功能;\",\n ],\n table_1_td_4: [\n \"4\",\n \"未按照賣方訂單詳情頁面顯示的收款賬戶進行付款。\",\n \"賣家有權要求取消訂單,數字資產歸還給賣方,買方自行承擔轉錯款的風險。\",\n ],\n table_1_td_5: [\n \"5\",\n \"未付款的情況下,優先點擊“我已付款”,再進行支付。\",\n \"賣方有權選擇繼續成交或者退款後取消訂單。 1)如賣方選擇成交,賣方用戶需要在收到全部付款的10分鐘內完成放行;2)如賣方選擇取消訂單,賣方應在訂單申訴後2小時內完成退款,數字資產歸還給賣方。\",\n ],\n table_1_td_6: [\n \"6\",\n \"未使用與平台賬戶實名一致的支付賬戶付款。\",\n \"賣方有權直接拒絕成交,賣方可在收到付款後的48小時內完成退款處理,數字資產歸還給賣方。使用企業賬戶付款(不論法人與認證本人實名是否一致),依然屬於非實名支付。買方因此類情況被投訴達到2次,系統將限制買方賬戶的部分功能。\",\n ],\n table_1_td_7: [\n \"7\",\n \"在訂單規定的付款時間內付款。 (1)買方已完成所有付款,訂單被買方主動取消或被系統超時取消;(2)買方完成部分付款,但訂單被買方主動取消或被系統超時取消。\",\n \"訂單被買方主動取消以及訂單被系統超時取消的,賣方有權選擇繼續成交或者退款不成交。 1、如賣方選擇成交,—賣方是普通用戶,訂單由平台直接重開,賣方需在重開後,10分鐘內完成資產放行。 —賣方是廣告方用戶,訂單金額≤8萬,請使用“重開訂單並放行”完成資產放行操作;訂單金額>8萬,請在訂單重開10分鐘內完成資產放行。 2、如賣方選擇取消訂單,則賣方需在收到平台或者買方用戶反饋後60分鐘內完成退款,數字資產歸還給賣方;\",\n ],\n table_1_td_8: [\n \"8\",\n \"如需要多筆付款,未完成所有轉款的情況下,優先點擊“我已付款”,再繼續完成付款。\",\n \"1)提前與賣方溝通,賣方允許其行為的,賣方應繼續完成訂單;2)未徵得賣方同意,賣方有權選擇繼續成交或者退款後取消訂單。 —如賣方選擇繼續成交,賣方應在收到所有付款的10分鐘內完成放行。 —如賣方選擇取消訂單,則賣方需在收到付款後30分鐘內完成退款,數字資產歸還給賣方。\",\n ],\n table_1_td_9: [\n \"9\",\n \"付款金額與訂單金額不符。\",\n \"1)付款金額大於訂單金額的,訂單成交,賣家應於收到款項後30分鐘內退還多餘部分款項。 2)付款金額小於訂單金額的,賣方有權選擇繼續成交或者退款後要求取消訂單。 —如賣方選擇繼續成交,有權按實際訂單金額進行成交,並完成此訂單。 —如賣方選擇取消訂單,則賣方需在收到付款後30分鐘內完成退款,數字資產歸還給賣方。\",\n ],\n table_1_td_10: [\n \"10\",\n \"買方點擊“我已付款”後,賣方1小時內未收到付款。\",\n \"1)賣方有權選擇繼續成交或退款後取消訂單。 —如賣方選擇成交,賣方需要在收到付款的10分鐘內完成放行。 —如賣方選擇取消訂單,則賣方需在收到付款後30分鐘內完成退款,數字資產歸還給賣方。 2)賣方是廣告發布方,申訴後10分鐘內無法聯繫上買方,經核實賣方未收到款,在廣告方保證資產範圍內申訴專員會優先取消訂單。\",\n ],\n table_1_td_11: [\n \"11\",\n \"付款到賬後,賣方收款賬戶無法核實到賬實名信息。\",\n \"1)經核實買方付款賬戶與平台實名賬戶一致,且在訂單規定時間內完成了付款,此訂單正常成交。 2)經核實買方付款賬戶與平台實名賬戶不一致,按上述第6條措施處理。\",\n ],\n table_1_td_12: [\n \"12\",\n \"如買方付款後賣方收款賬戶異常。\",\n \"1)買方無法提供賬戶正常證明,賣方應在收款賬戶轉至正常後,24小時內完成退款,平台取消訂單。 2)買方能提供賬戶正常證明,在核實買方賬戶無異常後,訂單成交,數字資產應交付買方。如:賣方為加V用戶,在保證資產範圍內,數字資產歸還給賣方,賣方應在收款賬戶轉至正常後,24小時內完成退款。\",\n ],\n table_1_td_13: [\n \"13\",\n \"付款時備註:類似”數字貨幣、BTC、比特幣、火幣“等字樣的。\",\n \"賣方有權選擇繼續成交或退款不成交。 1)如賣方選擇成交,賣方應在收到付款的10分鐘內完成放行。 2)如賣方選擇退款不成交,此訂單取消,數字資產歸還給賣方,賣方在收到付款後60分鐘內完成退款;如賣方收款賬戶因此被凍結,按上述第12條措施處理。\",\n ],\n table_1_td_14: [\n \"14\",\n \"買方用戶被風控系統判斷惡意搶拍低價單\",\n \" 1)買方未付款,平台將取消訂單,資產歸還給賣方。 2)買方已付款,請賣方在申訴處理的10分鐘內完成退款處理,平台將協助取消訂單,資產歸還給賣方。買方此類行為達到兩次,風控系統將會限制買方賬戶部分功能。\",\n ],\n table_1_ps: [\n \"注:本規則涉及賣方退款或放行,而賣家未按時完成操作的,系統將限制賣方賬戶部分功能。\",\n \"注:OTC交易使用三方電話系統過程中如您主動挑起語言衝突,有辱罵、嘲諷或其他語言過激行為等情況,系統將限制您賬戶部分功能。\",\n ],\n\n // Table #2 Th\n table_2_th: [\"#\", \"異常處理\", \"處理措施\"],\n\n // Table #2 Td\n table_2_td_1: [\n \"1\",\n \"賣方為訂單詳情頁面展示的收款賬戶、以及訂單聊天窗口發送的收款賬戶負全部責任;\",\n \"賣方提供的收款賬戶非本人所有,或受他人引導綁定他人收款賬戶,或發送他人賬戶到聊天窗。買方完成付款後,資產判定將屬於買方。\",\n ],\n table_2_td_2: [\n \"2\",\n \"訂單生成後,對訂單價格有異議的。\",\n \"除經買方同意協商訂單價格外,訂單正常成交,賣方應在訂單規定時間內放行。\",\n ],\n table_2_td_3: [\n \"3\",\n \"賣方所提供的收款賬戶出現異常。 \",\n \"買方有權選擇繼續成交或取消訂單。 —如買方選擇成交,確認買方已在訂單規定的時間內全額付款的,賣家應在收到付款後,在訂單規定的時間完成放行。 —如買方選擇取消訂單的,賣方完成退款後數字資產歸還給賣方。\",\n ],\n table_2_td_4: [\n \"4\",\n \"因賣方未及時提供有效的收款方式,買方無法完成付款,導致訂單取消。\",\n \"因賣方不提供收款方式,此訂單無法成交,平台在處理申訴時,會直接取消訂單,並對賣方用戶做處罰,平台取消訂單不計買方當天取消次數;\",\n ],\n table_2_td_5: [\n \"5\",\n \"賣方(非廣告方),未綁定與本人實名一致的有效收款信息或向買方提供與平台實名不一致的收款方式,如:通過支付寶或者微信收款時,賬號以及二維碼收款人姓名與訂單詳情頁展示的收款人姓名不匹配。\",\n \"1)買方有權取消訂單並向平台投訴。 2)賣方因此被投訴達到3次,系統將會永久限制賣方賬戶。買方選擇繼續成交,因此被投訴達到2次,系統將限制買方賬戶部分功能。\",\n ],\n table_2_td_6: [\n \"6\",\n \"賣方收取買方非平台實名一致的賬戶付款,未拒絕成交的。\",\n \"1)由此引發的風險,由賣方自行承擔。 2)因此而被投訴的,系統將限制賣方賬戶部分功能。\",\n ],\n table_2_td_7: [\n \"7\",\n \"買方全額付款後標記“我已付款”,賣方收到買方全額付款後,未在20分鐘內完成放行。\",\n \"買方有權選擇繼續成交或取消訂單後要求退款。 —如買方選擇成交,申訴專員將判定資產屬於買方。 —如買方要求退款後取消訂單,賣方應在30分鐘內完成退款。如:買方在標記付款20分鐘以內點擊申訴,導致賣方無法放行,且賣方在聊天窗無法與買方取得聯繫,此訂單將正常成交。\",\n ],\n table_2_ps:\n \"注:OTC交易使用三方電話系統過程中如您主動挑起語言衝突,有辱罵、嘲諷或其他語言過激行為等情況,系統將限制您賬戶部分功能。\",\n\n // Table #3 Th\n table_3_th: [\"#\", \"觸發風控異常\", \"處理措施\"],\n\n // Table #2 Td\n table_3_td_1: [\n \"1\",\n \"當用戶被風控系統檢測到異常,用戶明確拒絕或不積極配合完成平颱風控要求的進一步反洗錢核查工作。\",\n \"本平台將有權選擇直接認定為此賬戶異常,並對此採取包括但不限於上調用戶風險等級、直接凍結此類用戶的賬戶及關聯賬戶直至用戶配合提供的風控舉證材料已通過平台的風控審核。\",\n ],\n table_3_td_2: [\n \"2\",\n \"當用戶被核實從 88U OTC 買幣去其他平台場外群售出以獲利等其他高危行為。\",\n \"本平台將視情況有權選擇採取包括但不僅限於延遲提幣、限制交易、凍結賬戶等處置措施; 注:此類行為一經發現,如有進行中的訂單,廣告方有權選擇不成交。\",\n ],\n table_3_td_3: [\n \"3\",\n \"賬戶非本人使用或為他人代買賣幣:當用戶被平颱風控核實出賬戶存在出售、出借、租賃自身賬戶為他人使用的情況,或存在為他人代買賣幣的行為。風險提醒:請注意自身信息安全,避免被他人利用進行犯罪行為。\",\n \"本平台將有權選擇包括但不限於暫時或永久限制OTC交易、延遲提幣、限制提幣或直接凍結此類用戶的賬戶及關聯賬戶等某項或多項措施。注:此類行為一經發現,如有進行中的訂單,廣告方有權選擇不成交。\",\n ],\n table_3_td_4: [\n \"4\",\n \"利用平台其他用戶測卡:用戶在訂單未發生的情況下向平台其他用戶小額打款,且無法合理解釋該行為時。\",\n \"本平台將有權選擇暫時或永久限制OTC交易、限制提幣或凍結賬戶等某項或多項措施。\",\n ],\n table_3_td_5: [\n \"5\",\n \"接收或引入來源不合法的數字資產或資金:當用戶明知或據合理常識判斷可推知在其他平台/微信群收到的幣為黑幣或資金為黑錢時,但仍無視風險並直接將該黑幣/黑錢流入到本平台其它用戶的賬戶。\",\n \"本平台將直接永久限制此類用戶的賬戶及關聯賬戶全部功能。\",\n ],\n table_3_td_6: [\n \"6\",\n \"被認定洗錢的用戶:當用戶被風控系統檢測或風控工作人員核實,用戶直接參與或協助洗黑錢等犯罪行為。\",\n \"本平台將直接永久限制此類用戶的賬戶及關聯賬戶全部功能。\",\n ],\n table_3_td_7: [\n \"7\",\n \"被司法凍結:當用戶賬戶被司法機構要求凍結時。\",\n \"本平台將嚴格按照司法機構出示的司法函件對用戶賬戶進行凍結。當凍結期滿,司法機構需出示續凍函方可繼續凍結。凍結期間,用戶向本平台申請解凍無效,請聯繫凍結機構協調。\",\n ],\n table_3_td_8: [\n \"8\",\n \"被司法調證:用戶被司法機構要求調取本平台賬戶資料,包括但不限於:司法調證、諮詢等形式。\",\n \"本平台將視情況限制此類用戶的賬戶及關聯賬戶的部分功能。\",\n ],\n\n // ========\n // Utils\n // ========\n // Form Label\n understand_agreement: \"我了解協議內容\",\n e_wallet: \"\",\n choose_e_wallet: \"\",\n\n // No Data\n no_data: \"目前還沒有資料\",\n no_data_2: \"沒有數據\",\n\n // No Order\n no_order: \"訂單不存在\",\n no_order_buy: \"買\",\n no_order_sell: \"賣\",\n\n // Alert text\n no_token: \"沒有Token\",\n cancel_fail: \"訂單取消失敗\",\n\n // Button Text\n btn_continue: \"繼續\",\n btn_confirm: \"確定\",\n btn_return: \"返回\",\n btn_pair_start: \"開始配對\",\n btn_pairing: \"配對中\",\n btn_loading: \"處理中\",\n btn_already_pay: \"已完成付款\",\n btn_cancel_order: \"取消訂單\",\n btn_over_time: \"已逾时\",\n btn_copy: \"複製成功\",\n btn_copy_fail: \"複製失败,請手動複製\",\n btn_back_home: \"返回主頁\",\n btn_transaction_detail: \"詳細交易紀錄\",\n btn_confirm_cancel: \"確定取消訂單\",\n btn_fetch_all: \"提取所有\",\n btn_next: \"下一步\",\n btn_buyer_already_pay: \"買家已付款,確認收款\",\n btn_preparing: \"對方準備中\",\n btn_close: \"關閉\",\n btn_detail: \"詳細\",\n btn_instant: \"即時交易\",\n btn_login: \"登入\",\n btn_forget_password: \"忘記密碼\",\n btn_send_valid_code: \"發送驗證碼\",\n btn_valid_code_already_send: \"驗證碼已經發送\",\n btn_back_to_login: \"回登入页面\",\n\n btn_bank: \"銀行資訊\",\n btn_aliPay: \"支付寶\",\n\n // WelCome Text\n welcome_text: \"歡迎登入\",\n\n // ExRate Text\n exRate: \"匯率\",\n payment_contact: \"付款窗口\",\n limit: \"限額\",\n payment_contact_time: \"15分鐘\",\n limit_usdt: 'USDT 30.00 - ',\n\n // Dialog\n please_wait: \"請稍等,現正整合交易者資料\",\n buy_order: \"購買訂單\",\n\n // ========\n // User\n // ========\n // Navigation\n nav_transaction: \"交易\",\n nav_history: \"紀錄\",\n nav_wallet: \"錢包\",\n nav_logout: \"登出\",\n nav_logout_alert: \"確定要登出嗎?\",\n\n // Balance\n balance_avb: \"可提\",\n balance_real: \"結餘\",\n\n // Over View\n overView_transaction: \"買賣\",\n overView_transfer: \"轉帳\",\n overView_wallet: \"我的錢包\",\n overView_history: \"交易紀錄\",\n\n // Slogan\n slogan_title: \"最值得信賴的加密貨幣交易平台\",\n slogan_sub_text_1: \"只要簡單幾個步驟即可創建您自己的加密錢包\",\n slogan_sub_text_2: \"您可以安全地購買,出售,和交易您的加密貨幣!!\",\n\n // Transaction Navigation\n transaction_nav_buy: \"購買\",\n transaction_nav_sell: \"出售\",\n transaction_nav_transfer: \"轉帳\",\n\n // =========\n // Balance\n // =========\n // Error Text\n avb_insufficient: \"可提不足,請確定金額扣除手續費後是否足夠\",\n avb_over_limit: \"超過最大可提\",\n\n // =======\n // Buy\n // =======\n buy_usdt: \"購買USDT\",\n\n // Buy Form\n // Error Text\n no_account_name: \"必須填寫戶名\",\n no_bank_account: \"必須填寫銀行帳號\",\n no_bank_code: \"必須填寫銀行代碼\",\n invalid_number: \"請輸入有效的購買數量\",\n\n // Form Text\n please_enter_quantity: \"請輸入購買數量\",\n account_name_placeholder: \"請輸入戶名\",\n account_placeholder: \"請輸入銀行帳號\",\n bank_code_placeholder: \"請輸入銀行代碼\",\n account_name_prompt: \"*ATM轉帳時請註記持有人的真實姓名,並顯示於雙方明細,資料不符時將不受理交易服務,並退還收款金額,相關手續費會於退款時一併扣除,若有疑問請洽客服,謝謝。\",\n buy_total: \"總價\",\n buy_quantity: \"數量\",\n\n // Buy Info Header\n transfer_data: \"轉帳資料\",\n limit_time: \"剩餘支付時間\",\n\n // Buy Detail\n amount: \"付款金額\",\n payee: \"戶名\",\n payee_account: \"銀行帳號\",\n bank: \"銀行代碼\",\n city: \"所在省市\",\n\n // =======\n // Sell\n // =======\n // Sell Pairing\n pair_title: \"請稍等,现正整合交易者资料\",\n pair_text: \"出售訂單\",\n\n // Sell ExRate\n sell_usdt: \"出售USDT\",\n\n // Sell Error Text\n sell_error_invalid_number: \"請輸入有效數量\",\n sell_error_enter_payee: \"請輸入戶名\",\n sell_error_enter_bank: \"請輸入銀行代碼\",\n sell_error_enter_payee_account: \"請輸入銀行帳號\",\n sell_error_enter_city: \"請輸入所在省市\",\n\n // Sell Form\n sell_enter_qua: \"請輸入出售數量\",\n\n // Sell Bank Form\n sell_payee: \"戶名\",\n sell_payee_account: \"銀行帳號\",\n sell_bank: \"銀行代碼\",\n sell_city: \"所在省市\",\n\n // Sell Header\n sell_info_transfer_data: \"轉帳資料\",\n sell_info_limit_time: \"剩餘支付時間\",\n\n // Sell Detail\n sell_over_time: \"交易已逾時\",\n sell_detail_amount: \"收款金額\",\n sell_detail_payee: \"戶名\",\n sell_detail_payee_account: \"銀行帳號\",\n sell_detail_payee_bank: \"銀行代碼\",\n sell_detail_payee_city: \"所在省市\",\n\n // ==========\n // Transfer\n // ==========\n // Error Text\n transfer_address_error: \"錢包地址錯誤\",\n transfer_error_invalid_number: \"請輸入有效數量\",\n\n // Transfer Header\n select_protocol: \"請選擇協議種類\",\n protocol_trc20: \"TRC20\",\n protocol_erc20: \"ERC20\",\n transfer_charge: \"手續費\",\n transfer_title: \"轉帳USDT\",\n transfer_address: \"轉帳地址\",\n open_camera: \"開啟相機掃描QR Code?\",\n\n // Transfer Info\n transfer_info_success: \"交易成功\",\n transfer_info_address: \"轉帳地址\",\n transfer_info_hash: \"交易回執\",\n transfer_info_loading: \"轉帳中\",\n transfer_info_fail: \"轉帳失敗\",\n\n // Transfer Loading\n transfer_onLoading: \"執行中,請稍等\",\n transfer_text: \"轉賬\",\n\n // Transfer Form\n transfer_enter_number: \"請輸入數量\",\n transfer_enter_address: \"請輸入收款地址\",\n\n // Complete State\n wait_confirm: \"已提交,等待確認中\",\n transaction_hash: \"交易回執\",\n complete_text: \"購買成功後,數字貨幣預計15~30分鐘內到達你的錢包地址\",\n transaction_done: \"交易完成\",\n transaction_cancel: \"交易取消\",\n transaction_over_time: \"交易超時\",\n\n // Cancel Order Component\n cancel_component_title: \"確定取消訂單嗎?\",\n order_number: \"訂單號\",\n\n // Form Footer\n form_footer_text_1: \"本平台目前只提供USDT交易,其他數字貨幣交易將不予受理\",\n form_footer_text_2: \"本平台錢包地址充值或轉出都是經由USDT(ERC/TRC區塊鏈系統確認),其它鏈例如:幣安智能鏈(BNB CHAIN或其他),本平台錢包將不會收到轉入金額,並不會上帳且無法退還。\",\n form_footer_text_3: \"本平台錢包地址可以重覆充值或轉出;如因系統更新,我們會通過網站或申訴窗口通知。\",\n form_footer_text_4: \"請勿向錢包地址充值任何非 USDT 資產,否則資產將不可找回。\",\n form_footer_text_5: \"最小充值金額:30USDT,小於最小金額的充值將不會上帳且無法退回。\",\n form_footer_text_6: \"請務必確認電腦及瀏覽器安全,防止資訊被篡改或洩露。\",\n form_footer_text_7: \"ATM轉帳請備註持有人的真實姓名,並顯示於雙方明細。\",\n form_footer_text_8: \"轉帳資料不符時,將不受理交易服務,並退還收款金額,如因跨行造成的手續費會於退款時一併扣除。\",\n form_footer_text_9: \"雙方交易時,若匯款金額有溢出,收款方有義務將溢出金額歸還給匯款方,否則將依法律途徑追討。\",\n form_footer_text_10: \"如有其他問題或要求提出申訴,可透過網頁上的客服對話窗聯絡我們。\",\n\n // ==========\n // History\n // ==========\n // History nav\n history_all: \"所有紀錄\",\n history_wait: \"待處理\",\n history_expires: \"超時訂單\",\n history_date: \"日期\",\n history_transaction_deal: \"交易額(USDT)\",\n history_transaction_real: \"結餘(USDT)\",\n history_transaction_status: \"狀態\",\n history_transaction_complete: \"完成\",\n history_previousLabel: \"上一頁\",\n history_nextLabel: \"下一頁\",\n\n // History All Detail\n history_buy: \"買入\",\n history_sell: \"賣出\",\n history_transfer_in: \"轉入\",\n history_transfer_out: \"轉出\",\n history_transaction_hash: \"交易回執\",\n history_transaction_charge: \"手續費\",\n history_transaction_price: \"兌換價\",\n history_RMB: \"RMB\",\n history_account: \"銀行帳號\",\n history_payee: \"戶名\",\n history_bank: \"銀行代碼\",\n history_branch: \"分行\",\n history_payer: \"付款人\",\n history_payer_account: \"付款銀行帳號\",\n history_payer_bank_code: \"付款銀行代碼\",\n history_currency: \"TWD\",\n\n // History Wait\n history_wait_pay: \"等待付款\",\n history_account_receivable: \"收款確認中\",\n history_onGoing: \"執行中\",\n\n // ==========\n // Wallet\n // ==========\n wallet_address: \"充值地址\",\n\n // ==========\n // Chat\n // ==========\n chat_help: \"幫助\",\n chat_sound_open: \"提示音已開啟\",\n chat_sound_close: \"提示音已關閉\",\n chat_order_number: \"訂單號\",\n chat_customer_server: \"客服\",\n chat_send_message: \"對話\",\n\n // ==========\n // Instant\n // ==========\n instant_transaction: \"即時買賣\",\n instant_sound_open: \"提示音已開啟\",\n instant_sound_close: \"提示音已關閉\",\n instant_over_time: \"交易已逾时\",\n instant_over_time_short: \"已逾时\",\n instant_auto_pick: \"自動接單\",\n instant_auto_pick_close: \"手動接單\",\n\n // Instant Nav\n instant_nav_all: \"即時買賣\",\n instant_nav_onGoing: \"進行中\",\n\n // Instant All Item && Instant Count\n instant_exRate: \"匯率\",\n instant_price: \"總價\",\n instant_qua: \"數量\",\n instant_acc_time: \"累計時間\",\n instant_limit_time: \"剩餘支付時間\",\n instant_buy: \"買\",\n instant_pay: \"付\",\n instant_sell: \"賣\",\n instant_get: \"收\",\n instant_no_transaction: \"目前没有交易\",\n\n // Instant Buy Detail\n instant_payee_data: \"收款方資料\",\n instant_pay_time: \"剩餘支付時間\",\n instant_payee_name: \"戶名\",\n instant_payee_account: \"銀行帳號\",\n instant_bank: \"銀行代碼\",\n instant_city: \"所在省市\",\n instant_payer_data: \"付款方資料\",\n instant_payer_name: \"付款方姓名\",\n instant_payer_account: \"付款帳號\",\n instant_payer_bankCode: \"付款銀行代碼\",\n\n // ==========\n // Auth\n // ==========\n // Index\n auth_login: \"登入帳號\",\n auth_register: \"註冊帳號\",\n auth_nav_login: \"登入\",\n auth_nav_register: \"註冊\",\n register_success: \"注册成功\",\n\n // Alert Text\n alert_text_1: \"*點擊按鈕後發送一次性驗證碼\",\n\n // Error Text\n no_countryCode: \"請選擇區碼\",\n invalid_phoneNumber: \"請輸入有效的電話號碼\",\n invalid_password: \"密碼只能是英文及數字,且至少六位数\",\n confirm_password_fail: \"兩次密碼不一致\",\n no_account: \"此帳號未註冊\",\n captcha_error: \"驗證碼錯誤\",\n\n // Form Input\n countryCode: \"區號\",\n china: \"中國+86\",\n taiwan: \"台灣+886\",\n singapore: \"新加玻+65\",\n malaysia: \"馬來西亞+60\",\n hk: \"香港+852\",\n\n // Placeholder\n phoneNumber: \"手機號碼前面不需要加0\",\n password: \"密碼\",\n enter_valid: \"輸入驗證碼\",\n enter_password: \"設置密碼\",\n enter_new_password: \"輸入新密碼\",\n enter_confirm_password: \"確認密碼\",\n captcha_check: \"驗證碼區分大小寫\",\n\n // Label\n read_and_agree: \"我已閱讀並同意\",\n user_agreement: \"《用戶協議》\",\n click_and_send_valid_code: \"點擊按鈕後發送驗證碼\",\n one_time_code: \"一次性驗證碼\",\n\n // 中國區提示\n china_area_alert_1: \"請注意!\",\n china_area_alert_2: \"因你身處地區受當地電訊條例限制,可能會較慢受到系統發出的簡訊,請耐心等候或重新申請一次。如仍未能成功或其他問題,請聯絡我們客戶服務微信號,即有專人協助。微信帳號: 238bien\",\n\n // ===========\n // Http Text\n // ============\n login_again: \"請重新登入\",\n set_password_success: \"密碼設定成功\",\n password_changed: \"密碼已經更換\",\n http_error_code_1: \"系統錯誤\",\n http_error_code_10: \"帳號或密碼錯誤\",\n http_error_code_11: \"此帳號已經註冊過\",\n http_error_code_12: \"此帳號無法註冊\",\n http_error_code_13: \"json格式錯誤\",\n http_error_code_14: \"json格式錯誤\",\n http_error_code_15: \"無效的token\",\n http_error_code_16: \"錯誤的操作\",\n http_error_code_17: \"帳號未註冊\",\n http_error_code_20: \"數據格式錯誤\",\n http_error_code_21: \"請勿連續發送請求\",\n http_error_code_22: \"驗證碼錯誤\",\n http_error_code_30: \"無效的錢包地址\",\n http_error_code_31: \"不能轉帳給自己\",\n http_error_code_32: \"可提不足,請確定金額扣除手續費後是否足夠\",\n http_error_code_41: '交易額度不足/每次',\n http_error_code_42: '交易額度不足/30天',\n http_error_code_91: \"session過期,請重新登入\",\n http_error_other: \"發生錯誤,請重新登入並重新嘗試\",\n\n //** Agent Acc */\n // EditBankInfoForm.js\n EditBankInfoForm_account_info: \"帳戶資訊\",\n EditBankInfoForm_edit_account_info: \"修改帳戶資訊\",\n EditBankInfoForm_account: \"銀行帳號\",\n EditBankInfoForm_name: \"戶名\",\n EditBankInfoForm_bank: \"銀行代碼\",\n EditBankInfoForm_city: \"所在省市\",\n EditBankInfoForm_confirm: \"確定\",\n EditBankInfoForm_error: \"*無效的輸入\",\n\n //** Web Push */\n web_push_button_allow: \"通知已開啟\",\n web_push_button_deny: \"通知已關閉\",\n\n web_push_open_notify_request: \"請先開啟瀏覽器通知\",\n web_push_not_support: \"你的瀏覽器不支援 Notification\",\n\n // ===========\n // Instant\n // ============\n instant_name: '姓名',\n instant_timer: '發起時間',\n instant_appeal: '申訴中'\n};\n","// eslint-disable-next-line\nexport default {\n // K100U Rule\n agreement_title: \"K100U法币区交易规则\",\n agreement_rule: \"法币区交易基本原则:\",\n agreement_rule_list: [\n \"本规则自发布之日起正式实施,并将不时予以修改或完善,修改或完善后的新规则自公布之日起即生效。\",\n \"如您不同意本规则及修改或完善后的规则内容,请立即停止使用平台服务\",\n \"如您继续使用平台服务的,视为您完全理解并接受本规则及不时修改或完善后的规则内容,并自愿受其约束\",\n ],\n\n // Buy Rule\n agreement_buy_rule: \"买方应遵循的原则:\",\n agreement_buy_rule_sub: \"创建订单后,买方应当:\",\n agreement_buy_rule_list: [\n \"在订单规定的付款时间内完成支付,再点击「我已付款」\",\n \"使用本人实名付款方式、按订单金额及订单指定的收款帐户以实时到帐方式完成订单支付\",\n \"選擇非實時到帳方式支付訂單的,必須事先獲得賣方同意\",\n \"支付订单不得备注「数字货币、USDT」等信息\",\n \"如买家下单后需要卖家必须完成平台之外的KYC,请在对方下单后30分钟内积极联系对方并完成KYC\",\n \"创建订单后,卖家收到的金额总数应和订单详情介面的金额一致。若在支付过程中产生了额外的费用,需由买家承担\",\n ],\n\n // Sell Rule\n agreement_sell_rule: \"卖方应遵循的原则:\",\n agreement_sell_rule_sub: \"生成订单后,卖方应当:\",\n agreement_sell_rule_list: [\n \"提供经平台认证的收款帐户\",\n \"收到买方全额付款后,在订单规定时间内完成放行\",\n \"收到买方全额付款后,在订单规定时间内完成放行\",\n \"非经买方同意,不得对已创建的订单价格提出异议\",\n ],\n\n // User Rule\n user_rule: \"用户应遵守反洗钱原则:\",\n user_rule_list: [\n \"用户应遵守平台的《k100u 条款和条件》并严格照此履行相关义务\",\n \"用户应严格遵循平台对用户身份及帐户的实名认证管理要求,确保在平台上显示的相关帐号均系本人合法注册、使用\",\n \"用户在触发平台的反洗钱风控预警时,应积极配合平台的进一步反洗钱核实工作,并积极协助提供相关的风控举证材料(具体措施以届时平台风控审核要求为准)\",\n ],\n\n // Table #1 Th\n table_1_th: [\"#\", \"异常处理\", \"处理措施\"],\n\n // Table #1 Td\n table_1_td_1: [\n \"1\",\n \"订单创建后,买方主动取消订单,或者因付款超时而系统自动取消订单。\",\n \"当日达到4次,系统将限制买方买入功能;连续2日触发,系统将进一步限制买方账户部分功能。\",\n ],\n table_1_td_2: [\n \"2\",\n \"未付款的情况下,点击“我已付款\",\n //\"卖方有权要求取消此笔订单,买方当日被投诉达到2次,系统将限制买方账户部分功能;此类投诉单笔金额超过8万人民币的,系统将直接限制买方账户48小时。\",\n \"卖方有权要求取消此笔订单,买方当日被投诉达到2次,系统将限制买方账户部分功能;此类投诉单笔金额超过8万人民币的,系统将直接限制买方账户48小时。\",\n ],\n table_1_td_3: [\n \"3\",\n \"卖方无违规,买方未付款的情况下,无故点击“申诉”。\",\n \"卖方有权要求取消此笔订单,买方当日被投诉达到2次,系统将限制买方账户部分功能;\",\n ],\n table_1_td_4: [\n \"4\",\n \"未按照卖方订单详情页面显示的收款账户进行付款。\",\n \"卖家有权要求取消订单,数字资产归还给卖方,买方自行承担转错款的风险。\",\n ],\n table_1_td_5: [\n \"5\",\n \"未付款的情况下,优先点击“我已付款”,再进行支付。\",\n \"卖方有权选择继续成交或者退款后取消订单。1)如卖方选择成交,卖方用户需要在收到全部付款的10分钟内完成放行;2)如卖方选择取消订单,卖方应在订单申诉后2小时内完成退款,数字资产归还给卖方。\",\n ],\n table_1_td_6: [\n \"6\",\n \"未使用与平台账户实名一致的支付账户付款。\",\n \"卖方有权直接拒绝成交,卖方可在收到付款后的48小时内完成退款处理,数字资产归还给卖方。使用企业账户付款(不论法人与认证本人实名是否一致),依然属于非实名支付。买方因此类情况被投诉达到2次,系统将限制买方账户的部分功能。\",\n ],\n table_1_td_7: [\n \"7\",\n \"在订单规定的付款时间内付款。(1)买方已完成所有付款,订单被买方主动取消或被系统超时取消;(2)买方完成部分付款,但订单被买方主动取消或被系统超时取消。\",\n \"订单被买方主动取消以及订单被系统超时取消的,卖方有权选择继续成交或者退款不成交。1、如卖方选择成交,—卖方是普通用户,订单由平台直接重开,卖方需在重开后,10分钟内完成资产放行。—卖方是广告方用户,订单金额≤8万,请使用“重开订单并放行”完成资产放行操作;订单金额>8万,请在订单重开10分钟内完成资产放行。2、如卖方选择取消订单,则卖方需在收到平台或者买方用户反馈后60分钟内完成退款,数字资产归还给卖方;\",\n ],\n table_1_td_8: [\n \"8\",\n \"如需要多笔付款,未完成所有转款的情况下,优先点击“我已付款”,再继续完成付款。\",\n \"1)提前与卖方沟通,卖方允许其行为的,卖方应继续完成订单;2)未征得卖方同意,卖方有权选择继续成交或者退款后取消订单。—如卖方选择继续成交,卖方应在收到所有付款的10分钟内完成放行。—如卖方选择取消订单,则卖方需在收到付款后30分钟内完成退款,数字资产归还给卖方。\",\n ],\n table_1_td_9: [\n \"9\",\n \"付款金额与订单金额不符。\",\n \"1)付款金额大于订单金额的,订单成交,卖家应于收到款项后30分钟内退还多余部分款项。2)付款金额小于订单金额的,卖方有权选择继续成交或者退款后要求取消订单。—如卖方选择继续成交,有权按实际订单金额进行成交,并完成此订单。—如卖方选择取消订单,则卖方需在收到付款后30分钟内完成退款,数字资产归还给卖方。\",\n ],\n table_1_td_10: [\n \"10\",\n \"买方点击“我已付款”后,卖方1小时内未收到付款。\",\n \"1)卖方有权选择继续成交或退款后取消订单。—如卖方选择成交,卖方需要在收到付款的10分钟内完成放行。—如卖方选择取消订单,则卖方需在收到付款后30分钟内完成退款,数字资产归还给卖方。2)卖方是广告发布方,申诉后10分钟内无法联系上买方,经核实卖方未收到款,在广告方保证资产范围内申诉专员会优先取消订单。\",\n ],\n table_1_td_11: [\n \"11\",\n \"付款到账后,卖方收款账户无法核实到账实名信息。\",\n \"1)经核实买方付款账户与平台实名账户一致,且在订单规定时间内完成了付款,此订单正常成交。2)经核实买方付款账户与平台实名账户不一致,按上述第6条措施处理。\",\n ],\n table_1_td_12: [\n \"12\",\n \"如买方付款后卖方收款账户异常。\",\n \"1)买方无法提供账户正常证明,卖方应在收款账户转至正常后,24小时内完成退款,平台取消订单。2)买方能提供账户正常证明,在核实买方账户无异常后,订单成交,数字资产应交付买方。如:卖方为加V用户,在保证资产范围内,数字资产归还给卖方,卖方应在收款账户转至正常后,24小时内完成退款。\",\n ],\n table_1_td_13: [\n \"13\",\n \"付款时备注:类似”数字货币、BTC、比特币、火币“等字样的。\",\n \"卖方有权选择继续成交或退款不成交。1)如卖方选择成交,卖方应在收到付款的10分钟内完成放行。2)如卖方选择退款不成交,此订单取消,数字资产归还给卖方,卖方在收到付款后60分钟内完成退款;如卖方收款账户因此被冻结,按上述第12条措施处理。\",\n ],\n table_1_td_14: [\n \"14\",\n \"买方用户被风控系统判断恶意抢拍低价单\",\n \" 1)买方未付款,平台将取消订单,资产归还给卖方。 2)买方已付款,请卖方在申诉处理的10分钟内完成退款处理,平台将协助取消订单,资产归还给卖方。买方此类行为达到两次,风控系统将会限制买方账户部分功能。\",\n ],\n table_1_ps: [\n \"注:本规则涉及卖方退款或放行,而卖家未按时完成操作的,系统将限制卖方账户部分功能。\",\n \"注:OTC交易使用三方电话系统过程中如您主动挑起语言冲突,有辱骂、嘲讽或其他语言过激行为等情况,系统将限制您账户部分功能。\",\n ],\n\n // Table #2 Th\n table_2_th: [\"#\", \"异常处理\", \"处理措施\"],\n\n // Table #2 Td\n table_2_td_1: [\n \"1\",\n \"卖方为订单详情页面展示的收款账户、以及订单聊天窗口发送的收款账户负全部责任;\",\n \"卖方提供的收款账户非本人所有,或受他人引导绑定他人收款账户,或发送他人账户到聊天窗。买方完成付款后,资产判定将属于买方。\",\n ],\n table_2_td_2: [\n \"2\",\n \"订单生成后,对订单价格有异议的。\",\n \"除经买方同意协商订单价格外,订单正常成交,卖方应在订单规定时间内放行。\",\n ],\n table_2_td_3: [\n \"3\",\n \"卖方所提供的收款账户出现异常。 \",\n \"买方有权选择继续成交或取消订单。—如买方选择成交,确认买方已在订单规定的时间内全额付款的,卖家应在收到付款后,在订单规定的时间完成放行。—如买方选择取消订单的,卖方完成退款后数字资产归还给卖方。\",\n ],\n table_2_td_4: [\n \"4\",\n \"因卖方未及时提供有效的收款方式,买方无法完成付款,导致订单取消。\",\n \"因卖方不提供收款方式,此订单无法成交,平台在处理申诉时,会直接取消订单,并对卖方用户做处罚,平台取消订单不计买方当天取消次数;\",\n ],\n table_2_td_5: [\n \"5\",\n \" 卖方(非广告方),未绑定与本人实名一致的有效收款信息或向买方提供与平台实名不一致的收款方式,如:通过支付宝或者微信收款时,账号以及二维码收款人姓名与订单详情页展示的收款人姓名不匹配。\",\n \"1)买方有权取消订单并向平台投诉。2)卖方因此被投诉达到3次,系统将会永久限制卖方账户。买方选择继续成交,因此被投诉达到2次,系统将限制买方账户部分功能。\",\n ],\n table_2_td_6: [\n \"6\",\n \"卖方收取买方非平台实名一致的账户付款,未拒绝成交的。\",\n \"1)由此引发的风险,由卖方自行承担。2)因此而被投诉的,系统将限制卖方账户部分功能。\",\n ],\n table_2_td_7: [\n \"7\",\n \"买方全额付款后标记“我已付款”,卖方收到买方全额付款后,未在20分钟内完成放行。\",\n \"买方有权选择继续成交或取消订单后要求退款。—如买方选择成交,申诉专员将判定资产属于买方。—如买方要求退款后取消订单,卖方应在30分钟内完成退款。如:买方在标记付款20分钟以内点击申诉,导致卖方无法放行,且卖方在聊天窗无法与买方取得联系,此订单将正常成交。\",\n ],\n table_2_ps:\n \"注:OTC交易使用三方电话系统过程中如您主动挑起语言冲突,有辱骂、嘲讽或其他语言过激行为等情况,系统将限制您账户部分功能。\",\n\n // Table #3 Th\n table_3_th: [\"#\", \"触发风控异常\", \"处理措施\"],\n\n // Table #2 Td\n table_3_td_1: [\n \"1\",\n \"当用户被风控系统检测到异常,用户明确拒绝或不积极配合完成平台风控要求的进一步反洗钱核查工作。\",\n \"本平台将有权选择直接认定为此账户异常,并对此采取包括但不限于上调用户风险等级、直接冻结此类用户的账户及关联账户直至用户配合提供的风控举证材料已通过平台的风控审核。\",\n ],\n table_3_td_2: [\n \"2\",\n \"当用户被核实从k100u OTC买币去其他平台场外群售出以获利等其他高危行为。\",\n \"本平台将视情况有权选择采取包括但不仅限于延迟提币、限制交易、冻结账户等处置措施; 注:此类行为一经发现,如有进行中的订单,广告方有权选择不成交。\",\n ],\n table_3_td_3: [\n \"3\",\n \"账户非本人使用或为他人代买卖币:当用户被平台风控核实出账户存在出售、出借、租赁自身账户为他人使用的情况,或存在为他人代买卖币的行为。风险提醒:请注意自身信息安全,避免被他人利用进行犯罪行为。\",\n \"本平台将有权选择包括但不限于暂时或永久限制OTC交易、延迟提币、限制提币或直接冻结此类用户的账户及关联账户等某项或多项措施。注:此类行为一经发现,如有进行中的订单,广告方有权选择不成交。\",\n ],\n table_3_td_4: [\n \"4\",\n \"利用平台其他用户测卡:用户在订单未发生的情况下向平台其他用户小额打款,且无法合理解释该行为时。\",\n \"本平台将有权选择暂时或永久限制OTC交易、限制提币或冻结账户等某项或多项措施。\",\n ],\n table_3_td_5: [\n \"5\",\n \"接收或引入来源不合法的数字资产或资金:当用户明知或据合理常识判断可推知在其他平台/微信群收到的币为黑币或资金为黑钱时,但仍无视风险并直接将该黑币/黑钱流入到本平台其它用户的账户。\",\n \"本平台将直接永久限制此类用户的账户及关联账户全部功能。\",\n ],\n table_3_td_6: [\n \"6\",\n \"被认定洗钱的用户:当用户被风控系统检测或风控工作人员核实,用户直接参与或协助洗黑钱等犯罪行为。\",\n \"本平台将直接永久限制此类用户的账户及关联账户全部功能。\",\n ],\n table_3_td_7: [\n \"7\",\n \"被司法冻结:当用户账户被司法机构要求冻结时。\",\n \"本平台将严格按照司法机构出示的司法函件对用户账户进行冻结。当冻结期满,司法机构需出示续冻函方可继续冻结。冻结期间,用户向本平台申请解冻无效,请联系冻结机构协调。\",\n ],\n table_3_td_8: [\n \"8\",\n \"被司法调证:用户被司法机构要求调取本平台账户资料,包括但不限于:司法调证、咨询等形式。\",\n \"本平台将视情况限制此类用户的账户及关联账户的部分功能。\",\n ],\n\n // ========\n // Utils\n // ========\n // Form Label\n understand_agreement: \"我了解协议内容\",\n e_wallet: \"电子钱包\",\n choose_e_wallet: \"*请选择电子钱包\",\n\n // No Data\n no_data: \"目前还没有资料\",\n no_data_2: \"没有数据\",\n\n // No Order\n no_order: \"订单不存在\",\n no_order_buy: \"买\",\n no_order_sell: \"卖\",\n\n // Alert text\n no_token: \"没有Token\",\n cancel_fail: \"订单取消失败\",\n\n // Button Text\n btn_continue: \"继续\",\n btn_confirm: \"确定\",\n btn_return: \"返回\",\n btn_pair_start: \"开始配对\",\n btn_pairing: \"配对中\",\n btn_loading: \"处理中\",\n btn_already_pay: \"已完成付款\",\n btn_cancel_order: \"取消订单\",\n btn_over_time: \"已逾时\",\n btn_copy: \"复制成功\",\n btn_copy_fail: \"复制失败,请手动复制\",\n btn_back_home: \"返回主页\",\n btn_transaction_detail: \"详细交易纪录\",\n btn_confirm_cancel: \"确定取消订单\",\n btn_fetch_all: \"提取所有\",\n btn_next: \"下一步\",\n btn_buyer_already_pay: \"买家已付款,确认收款\",\n btn_preparing: \"对方准备中\",\n btn_close: \"关闭\",\n btn_detail: \"详细\",\n btn_instant: \"即时交易\",\n btn_login: \"登入\",\n btn_forget_password: \"忘记密码\",\n btn_send_valid_code: \"发送验证码\",\n btn_valid_code_already_send: \"验证码已发送\",\n btn_back_to_login: \"回登入页面\",\n\n btn_bank: \"银行卡\",\n btn_aliPay: \"支付宝\",\n\n // WelCome Text\n welcome_text: \"欢迎登入\",\n\n // ExRate Text\n exRate: \"汇率\",\n payment_contact: \"付款窗口\",\n limit: \"限额\",\n payment_contact_time: \"15分钟\",\n limit_usdt: 'USDT 100.00 - ',\n\n // Dialog\n please_wait: \"请稍等,现正整合交易者资料\",\n buy_order: \"购买订单\",\n\n // ========\n // User\n // ========\n // Navigation\n nav_transaction: \"交易\",\n nav_history: \"纪录\",\n nav_wallet: \"钱包\",\n nav_logout: \"登出\",\n nav_logout_alert: \"确定要登出吗?\",\n\n // Balance\n balance_avb: \"可提\",\n balance_real: \"结余\",\n\n // Over View\n overView_transaction: \"买卖\",\n overView_transfer: \"转账\",\n overView_wallet: \"我的钱包\",\n overView_history: \"交易纪录\",\n\n // Slogan\n slogan_title: \"最值得信赖的加密货币交易平台\",\n slogan_sub_text_1: \"只要简单几个步骤即可创建您自己的加密钱包\",\n slogan_sub_text_2: \"您可以安全地购买,出售,和交易您的加密货币!!\",\n\n // Transaction Navigation\n transaction_nav_buy: \"购买\",\n transaction_nav_sell: \"出售\",\n transaction_nav_transfer: \"转帐\",\n\n // =========\n // Balance\n // =========\n // Error Text\n avb_insufficient: \"可提不足,请确定金额扣除手续费后是否足够\",\n avb_over_limit: \"超过最大可提\",\n\n // =======\n // Buy\n // =======\n buy_usdt: \"购买USDT\",\n\n // Buy Form\n // Error Text\n no_account_name: \"必须填写银行卡持有人的姓名\",\n no_bank_account: \"\",\n no_bank_code: \"\",\n invalid_number: \"请输入有效的购买数量\",\n\n // Form Text\n please_enter_quantity: \"请输入购买数量\",\n account_name_placeholder: \"请输入银行卡持有人姓名\",\n account_placeholder: \"\",\n bank_code_placeholder: \"\",\n account_name_prompt: \"*请输入转帐银行卡持有人的真实姓名\",\n buy_total: \"总价\",\n buy_quantity: \"数量\",\n\n // Buy Info Header\n transfer_data: \"转帐资料\",\n limit_time: \"剩余支付时间\",\n\n // Buy Detail\n amount: \"付款金额\",\n payee: \"收款姓名\",\n payee_account: \"付款帐号\",\n bank: \"开户银行\",\n city: \"所在省市\",\n\n // =======\n // Sell\n // =======\n // Sell Pairing\n pair_title: \"请稍等,现正整合交易者资料\",\n pair_text: \"出售订单\",\n\n // Sell ExRate\n sell_usdt: \"出售USDT\",\n\n // Sell Error Text\n sell_error_invalid_number: \"请输入有效数量\",\n sell_error_enter_payee: \"请输入收款人姓名\",\n sell_error_enter_bank: \"请输入开户银行\",\n sell_error_enter_payee_account: \"请输入收款帐号\",\n sell_error_enter_city: \"请输入所在省市\",\n\n // Sell Form\n sell_enter_qua: \"请输入出售数量\",\n\n // Sell Bank Form\n sell_payee: \"收款姓名\",\n sell_payee_account: \"收款帐号\",\n sell_bank: \"开户银行\",\n sell_city: \"所在省市\",\n\n // Sell Header\n sell_info_transfer_data: \"转帐资料\",\n sell_info_limit_time: \"剩余支付时间\",\n\n // Sell Detail\n sell_over_time: \"交易已逾时\",\n sell_detail_amount: \"收款金额\",\n sell_detail_payee: \"收款姓名\",\n sell_detail_payee_account: \"付款帐号\",\n sell_detail_payee_bank: \"开户银行\",\n sell_detail_payee_city: \"所在省市\",\n\n // ==========\n // Transfer\n // ==========\n // Error Text\n transfer_address_error: \"钱包地址错误\",\n transfer_error_invalid_number: \"请输入有效数量\",\n\n // Transfer Header\n select_protocol: \"请选择协议种类\",\n protocol_trc20: \"TRC20\",\n protocol_erc20: \"ERC20\",\n transfer_charge: \"手续费\",\n transfer_title: \"转帐USDT\",\n transfer_address: \"转帐地址\",\n open_camera: \"开启相机扫描QR Code?\",\n\n // Transfer Info\n transfer_info_success: \"交易成功\",\n transfer_info_address: \"转帐地址\",\n transfer_info_hash: \"交易回执\",\n transfer_info_loading: \"转帐中\",\n transfer_info_fail: \"转帐失败\",\n\n // Transfer Loading\n transfer_onLoading: \"执行中,请稍等\",\n transfer_text: \"转账\",\n\n // Transfer Form\n transfer_enter_number: \"请输入数量\",\n transfer_enter_address: \"请输入收款地址\",\n\n // Complete State\n wait_confirm: \"已提交,等待确认中\",\n transaction_hash: \"交易回执\",\n complete_text: \"购买成功后,数字货币预计15~30分钟内到达你的钱包地址\",\n transaction_done: \"交易完成\",\n transaction_cancel: \"交易取消\",\n transaction_over_time: \"交易超時\",\n\n // Cancel Order Component\n cancel_component_title: \"确定取消订单吗?\",\n order_number: \"订单号\",\n\n // Form Footer\n form_footer_text_1: \"本平台目前只提供USDT交易,其他数字货币交易将不予受理。\",\n form_footer_text_2: \"本平台钱包地址充值或转出,都是经由 USDT区块链系统网络确认。\",\n form_footer_text_3: \"本平台钱包地址可以重复充值或转出;如因系统更新,我们会通过网站或口讯通知。\",\n form_footer_text_4: \"请勿向钱包地址充值任何非USDT资产,否则资产将不可找回。\",\n form_footer_text_5: \"最小充值金额:100USDT,小于最小金额的充值将不会上账且无法退回。\",\n form_footer_text_6: \"请务必确认电脑及浏览器安全,防止信息被篡改或泄露。\",\n form_footer_text_7: \"如有其他问题或要求提出争议,可透过网页上的客服对话窗联络我们。\",\n form_footer_text_8: \"\",\n form_footer_text_9: \"\",\n form_footer_text_10: \"\",\n\n // ==========\n // History\n // ==========\n // History nav\n history_all: \"所有纪录\",\n history_wait: \"待处理\",\n history_expires: \"超时订单\",\n history_date: \"日期\",\n history_transaction_deal: \"交易额(USDT)\",\n history_transaction_real: \"结余(USDT)\",\n history_transaction_status: \"状态\",\n history_transaction_complete: \"完成\",\n history_previousLabel: \"上一页\",\n history_nextLabel: \"下一页\",\n\n // History All Detail\n history_buy: \"买入\",\n history_sell: \"卖出\",\n history_transfer_in: \"转入\",\n history_transfer_out: \"转出\",\n history_transaction_hash: \"交易回执\",\n history_transaction_charge: \"手续费\",\n history_transaction_price: \"兑换价\",\n history_RMB: \"RMB\",\n history_account: \"帐号\",\n history_payee: \"收款人\",\n history_bank: \"银行\",\n history_branch: \"分行\",\n history_payer: \"付款人\",\n history_payer_account: \"付款帐号\",\n history_payer_bank_code: \"\",\n history_currency: \"RMB\",\n\n // History Wait\n history_wait_pay: \"等待付款\",\n history_account_receivable: \"收款确认中\",\n history_onGoing: \"执行中\",\n\n // ==========\n // Wallet\n // ==========\n wallet_address: \"充值地址\",\n\n // ==========\n // Chat\n // ==========\n chat_help: \"帮助\",\n chat_sound_open: \"提示音已开启\",\n chat_sound_close: \"提示音已关闭\",\n chat_order_number: \"订单号\",\n chat_customer_server: \"客服\",\n chat_send_message: \"对话\",\n\n // ==========\n // Instant\n // ==========\n instant_transaction: \"即时买卖\",\n instant_sound_open: \"提示音已开启\",\n instant_sound_close: \"提示音已关闭\",\n instant_over_time: \"交易已逾时\",\n instant_over_time_short: \"已逾时\",\n instant_auto_pick: \"自动接单\",\n instant_auto_pick_close: \"手动接单\",\n\n // Instant Nav\n instant_nav_all: \"即时买卖\",\n instant_nav_onGoing: \"进行中\",\n\n // Instant All Item && Instant Count\n instant_exRate: \"汇率\",\n instant_price: \"总价\",\n instant_qua: \"数量\",\n instant_acc_time: \"累计时间\",\n instant_limit_time: \"限时时间\",\n instant_buy: \"买\",\n instant_pay: \"付\",\n instant_sell: \"卖\",\n instant_get: \"收\",\n instant_no_transaction: \"目前没有交易\",\n\n // Instant Buy Detail\n instant_payee_data: \"收款方资料\",\n instant_pay_time: \"剩余支付时间\",\n instant_payee_name: \"收款方姓名\",\n instant_payee_account: \"收款帐号\",\n instant_bank: \"开户银行\",\n instant_city: \"所在省市\",\n instant_payer_data: \"付款方资料\",\n instant_payer_name: \"付款方姓名\",\n instant_payer_account: \"\",\n instant_payer_bankCode: \"\",\n\n // ==========\n // Auth\n // ==========\n // Index\n auth_login: \"登入帐号\",\n auth_register: \"注册帐号\",\n auth_nav_login: \"登入\",\n auth_nav_register: \"注册\",\n register_success: \"注册成功\",\n\n // Alert Text\n alert_text_1: \"*点击按钮后发送一次性验证码\",\n\n // Error Text\n no_countryCode: \"请选择区码\",\n invalid_phoneNumber: \"请输入有效的电话号码\",\n invalid_password: \"密码只能是英文及数字,且至少六位数\",\n confirm_password_fail: \"两次密码不一致\",\n no_account: \"此帐号未注册\",\n captcha_error: \"验证码错误\",\n\n // Form Input\n countryCode: \"区号\",\n china: \"中国+86\",\n taiwan: \"台湾+886\",\n singapore: \"新加波+65\",\n malaysia: \"马来西亚+60\",\n hk: \"香港+852\",\n philippines: \"菲律宾+63\",\n \n\n // Placeholder\n phoneNumber: \"手机号码\",\n password: \"密码\",\n enter_valid: \"输入验证码\",\n enter_password: \"设置密码\",\n enter_new_password: \"输入新密码\",\n enter_confirm_password: \"确认密码\",\n captcha_check: \"验证码区分大小写\",\n\n // Label\n read_and_agree: \"我已阅读并同意\",\n user_agreement: \"《用户协议》\",\n click_and_send_valid_code: \"点击按钮后发送验证码\",\n one_time_code: \"一次性验证码\",\n\n // 中國區提示\n china_area_alert_1: \"请注意!\",\n china_area_alert_2: \"因你身处地区受当地电讯条例限制,可能会较慢受到系统发出的简讯,请耐心等候或重新申请一次。如仍未能成功或其他问题,请联络我们客户服务微信号,即有专人协助。微信帐号: 238bien\",\n\n // ===========\n // Http Text\n // ============\n login_again: \"请重新登入\",\n set_password_success: \"密码设定成功\",\n password_changed: \"密码已经更换\",\n http_error_code_1: \"系统错误\",\n http_error_code_10: \"帐号或密码错误\",\n http_error_code_11: \"此帐号已经注册过\",\n http_error_code_12: \"此帐号无法注册\",\n http_error_code_13: \"json格式错误\",\n http_error_code_14: \"json格式错误\",\n http_error_code_15: \"无效的token\",\n http_error_code_16: \"错误的操作\",\n http_error_code_17: \"帐号未注册\",\n http_error_code_20: \"数据格式错误\",\n http_error_code_21: \"请勿连续发送请求\",\n http_error_code_22: \"验证码错误\",\n http_error_code_30: \"无效的钱包地址\",\n http_error_code_31: \"不能转帐给自己\",\n http_error_code_32: \"可提不足,请确定金额扣除手续费后是否足够\",\n http_error_code_41: '交易額度不足/每次',\n http_error_code_42: '交易額度不足/30天',\n http_error_code_91: \"session过期,请重新登入\",\n http_error_other: \"发生错误,请重新登入并重新尝试\",\n\n //** Agent Acc */\n // EditBankInfoForm.js\n EditBankInfoForm_account_info: \"帐户资讯\",\n EditBankInfoForm_edit_account_info: \"修改帐户资讯\",\n EditBankInfoForm_name: \"收款姓名\",\n EditBankInfoForm_account: \"收款帐号\",\n EditBankInfoForm_bank: \"开户银行\",\n EditBankInfoForm_city: \"所在省市\",\n EditBankInfoForm_confirm: \"确定\",\n EditBankInfoForm_error: \"*无效的输入\",\n\n //** Web Push */\n web_push_button_allow: \"通知已开启\",\n web_push_button_deny: \"通知已关闭\",\n\n web_push_open_notify_request: \"请先开启浏览器通知\",\n web_push_not_support: \"你的浏览器不支援 Notification\",\n\n // ===========\n // Instant\n // ============\n instant_name: '姓名',\n instant_timer: '发起时间',\n instant_appeal: '申诉中'\n};\n\n\n","import React, { useState } from \"react\";\nimport I18nContext from \"./I18nContext\";\n\nconst host = process.env.REACT_APP_HOST_NAME;\n\nlet lan;\n\nif (host === \"88U\") {\n lan = \"zh-HK\";\n}\n\nif (host === \"K100U\") {\n lan = \"zh-CN\";\n}\n\nconst I18nProvider = (props) => {\n // zh-HK\n // zh-CN\n // en-US\n const [locale, setLocale] = useState(lan);\n // const [locale, setLocale] = useState(\"zh-CN\");\n\n const i18n = {\n t: (key) => props.translations[locale][key],\n getLocale: () => locale,\n setLocale: (locale) => setLocale(locale),\n };\n\n return (\n {props.children}\n );\n};\n\nexport default I18nProvider;\n","import { createContext } from 'react';\n\nconst I18nContext = createContext({\n t: () => '', // 將定義的鍵值翻譯成對應的語系內容\n getLocale: () => {}, // 取得當前語系\n setLocale: () => {}, // 設置/變更當前語系\n});\n\nexport default I18nContext;\n","import { useContext } from 'react';\nimport I18nContext from './I18nContext';\n\nconst useI18n = () => {\n const i18n = useContext(I18nContext);\n return i18n;\n};\n\nexport default useI18n;\n","import React, { Component } from 'react';\nimport './index.scss';\n\nexport default class BaseCard extends Component {\n render() {\n return
{this.props.children}
;\n }\n}\n","import React, { Component } from 'react';\n\nimport style from './Header.module.scss';\n\nexport default class Header extends Component {\n render() {\n return (\n
\n
{this.props.children}
\n
\n );\n }\n}\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAG4AAABRCAYAAAAzd5ODAAAAAXNSR0IArs4c6QAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAAbqADAAQAAAABAAAAUQAAAABXnhTUAAAPK0lEQVR4Ae1dbYgkRxmumtmdDTEkE1DzI+pNwA/0z80h+Hm7O4GcXyi3ASGRRLKJipg/t/dXuGxvoqg/ZCcqiojeHioxKNycIioEbnYvij+Ct/srCEJmg/gVCLto0J3ZmfJ5Zrpve3u6qvp75iANM91d71v1fjxdVW9Vd1dL8fo2FR5oOKo6kIfnpFINKFR3ldpWUrZLaubptiP3/IpK/8nrx5PxwLxzuFQSg4uQXtVosDcQpUevOTMtj17yDl7fT8YDC86BA9AuQ3pVCXWlL+S9UszeyR+PmUYaecjraXlT17iG0633ZemEFGrYtEg1wF56V23DNXIP+233uIOmp8NjJeR2WQ12207Fo7ksxe2ovxLiOiWiRt3vr1F+LdwaSXAFADtFnSMBN+8cPFyS4mBzde7n/gKLPmY/0Jf9xZIaLEE2f9UMdNhDGa2BLLXKqrwZ7EsyKF9bxKLT3QbxJGrV2pYz52gZQWBtk0Ku4nB706mcsgIHZ71Rid4ruDJe2XIqbzYVngcN8msD2Tsr1RCoRh4yjpepWqOAYPYKQOwcp2V3Rrvg15dQ93c3nblalJIXnYMO6hxamNl7ZqJkmAQPaxcMW8dvGaAVuMklXiSQ20SN2ICTzudRC/uiX2eAAdNY6yJt5EVNO+HljZSpKCYCtrDWWx1djWK5KLkaOcvUg/pQLw1PomQJ4NyMkYED/5CXeacqqlxY656jozCWcaBkpo5ynZRkV6U+IwC755IUEJZHibIHWD2Mrkkb8jLvVDSVo+hKXUa7UdMoPA3JAFCg+TxYQZBwf9potAznK8SSaPpORjUOvEPgmHfiNW7e6aI5Ykgsa1ENCPDtMCrjjyE1xz78IfKS/HnjIaYNhHjU40UZO4FyIp7KGvWl3hEzhLK5gQ90kDX/+CyUGYkjHnkChzvMCxDNG9r23KLKBae7DgVWzBqMUffhuBZ+7bKYbaUJHNhv9UVvCTo08FuCpDvGpBkSoEMTkfZ5A4uRlOs4Lg/g6DAluhdxtdFZkTY4aVOJUlM3SI1UiIWJA10pBmgKxaKF1UdWLSkqjya9gHzjM5SpWoNSqVkezAxbg37p8GRpMMCFPfKTf7wnF9e6xitGKfkGzEw8pZT4jyyJJ3wajx3Cua9urVYujRF8CQANTU3vMpLqvmTtIQFDT+A878y2tUwZE047vUZZqCaKjdr/bKNJRr+XbNznzoxsQJ6uxu+jG1j2X7QSYxX4xr6RCVeiccMV8SJmAN6jY3KbhqugV3U8R+lql4BdcyobR2nFHrEfKwlGuMO+xSZ8D/65N2nQwlZoILqsXWy2hxc1fL6NWtguiUozWKMllPumSSMpSreg+Xh8INR/Uej3jLxS/mtrdfYbYTxu83gdZdTC6P40f5PgT5/UMfriJpx5zi5fddBsngo62Z4vPoetEgk4PJPgBDUboFmbRzQJYmWStUznwlHtExd1dF/6cC7Rd57LYSHDAYBGg4fV32DFPq6ixjSCRp2pF/Q7hcN9gw0k1V17LWzpyLkDhysV7bZ16moHnXstaf+QzgXRc49up8zWkGMY9RlyLrt2G1jSkXIFbhQtiXWTiuiANwFao4h+waRHVBr1pL7U25QHjl2n/SaeNLTcgGPY796ON+m3UxKzSzcLaJ4h1Jd6I+Lb9dLC9rSffgijpU3LDbiB6DlQrmpQkH3a8s0GmmfPqOYNB8amPg8h/tAPXrbM9rkAxwEsQHnEpCXmDlHTKtsmnmmnUX8OjE160g8cv5p4ktByAQ6zDqsmZTjZW+RMiEkXE43NnK2p42wG7DlvKkehvzPRk9CswB3cLl4TUn5ZSPHVKAJY28DHX+iGwfWVaQ35/QqfdtTbMJ/a5o/HflrwGPY0aVcw3XfecP3iS0p3iJqc7WYbaCMiuwf9QydbqdmWRqDKort1NNWldvuisvC8I1/WSWLN5M1WHR3pmQ7MrTXOoMgYibMLSNS252gynr75QKOZ8gSBBKDv5FnYRrtg36UwmptWd/1jYIlOyhQ4FGaaz9tHCO1EV614TgJzvKb5dSB4PSN4sG8FObRRpsU/fmHW48yAcztxQ21TYzPcVu0KZBiB1ts6ah5Dhd9lAo9DBPR1zdCco8Q6/FQ10COTMgMOd5IbBqmobRWTQYas+ZOOQBN3RZBmBM+1U1vreMc9ggwrS2bA4WarViG0/S1ejVZtJsAQEzRPQy14o1onWh5jcG/yU5DXdJ4hcHJRJwiPHGgN0eUpIj0haK5qSqkyBkkhm8lePCGm9VNIUdqkTIBzJ1OrOin+W+46nqLTU4L2j8NypfH7C/LPYXrj8bl2WLqbVs1i8jkT4HCHvKFT1DIw1WXLNT1P0Ki4G6RoB+Qmf0U1PBPgIKyuE4jXmaaqmcwbNM8PsLvtHYfstf4K4Q1NygQ4NPQnQ0tHIp59bOtoRacXBRrt4jOfOvtM/tLlCaZnAhwKrQYL9s7RbHS846h7jHVu4S8qfxS+NKAhKn7V1KeFybfYrfVXWFlhaamBswwoteOZMGWY9vZvqTnM+f0Sk7uXswLv9JPdkxw4o/go47RjqhE0URL36QKRY8wFnqQG7lAcattrGL0dxxaCdvervV8hzxnMYHwsC/AIWmkgrqLMxKBtPVG5HscOjxf2b3rHwX3auwWpgQsqlPT8OGheKenA80BDn3KnV2LUvVfTkoIWVU5SvtTAYSagZhDeMdBukNAk3nZU024kuwfJwJsO0NRe0BrvHAPxVP1czsCpjqeobk/Q8FzG70BH86jb4oE3HaANbdF2Fb43UnVGG9NTA2cs3UL0QENT9iELK8jRwJsi0OwmpeBIDRwGmh29fFnT0eKB5pViBm8KQat7mgf3vleJg6RI5zkDJ2o6LRCNfgA17X06uj79BnjHXoOeQtBggr4fw1Sgtv/T235ESQ3cUVHxjvCU13N4tO0zyHUYLye5h+A9g1o7BG86QYtvVZwcqYGbETOGDlg/FUYlcdfgFynA+zTGec+cvtB9L8dp0xjyQ6dFHRhpH09MDRxnwnXKIb1qoA1JacErlcUfphE0m91p6amBsymA5qxm4/HAw6AXz5bG2wBaJV4OPPHvTmPlObi22B17KjBoYybAwRGbwYK986jPWBA85PlCEvA8WVH2RYBGPUx2Qwdt9xLFBvJkAhzK0SqCmZUGBUXZsPTEj8CXG3hFgUZbLXZr/RXFT+TJBDg8Y9HWCcTUzlkdLSw9L/CKBA3NZNVkt8lfYT4JS8sEODRzLRSubbfjPmMRBp5CZ5Z0I2j4ncmzT/PrhtXtGv7zwPG+669AcrzTTICjSAwo2zrReMZiSUfTpQfBwzpaiTaCxvtpeDHjT4kKSJDJZK/JT3FEZQic/tkSVJazbD7iKEZegofFuD4P58eONl1Z/yNoRdU0yhw1k0LbPWT1DE5mwJmesYA97uIrrjtj7DZXKxfBHjtgIdhA+0tFgkazRovM6MevFj9F9kyKnmNcBl6xYrSke3CIL73zFau98Zz2FCwS8xi4fgCFrRcbQUOT9NA1Z+5n9pKz42Btc1+10rUuO1jRr56FRKsT4gjBFd408Kd6HzrY5+nkTAo06oP7irRfBxrbe5N/dCaFpmda4yjBUuswvkn3YiNrHpT+YZg1kwQNta1mebExs9pG2zOtcSwQL+WvcK/bMDG8rqNFSWfNw5V7Psg7SdCoi80um1+C9tjOMweOs95w4qZesFxKu+oO37n2gwd5r0hZerDoPs2zcWSPfu1N+iPt3QBPlrfPHDgWzOUKPQFhewhdT/t4mg+8f/bLs/ObqzMT+ZgFJxdoT5idXhroxlbI44uzz7yP84SjL9pA4Y945yF7RJnJ13f0ymMklzRS9cpIuo+y/iZq2yU078tJZejy5VLjKMx931s7DQYWhM6CSyZpozCd0v70yYHG0B8rtxuiSNBye+89N+Dg0I5t1R0YVkckxkfNU4HnB7KIY+oLva/iHkDNJI/20w8mnqS03JpKTyF23LY+ALzbGCZgWdxkg3NPVhF7gMawnzWtbpLH4In9sIknjLawdvAQ5mUfwKT6T7dW554N42FabjXOE0jl2c5755o9a95Leax5pZGXKHnUp/WuI7MRNNqbBDQqBdDehf9PCVV6h0nJ3IGjcLdz3jEpAhqaH3E1y0VcLPJikakX9CNotmZ9J49gJKhsKHALTm/h41/rvvzJr/f++tnvHH4imCnJOZrChm19R5RbhUIX+RGiJDLyyoMIeZ162ctXuyM77ZxpOcaAW3hKvfvOW9Vvvvu5mbd++7Hy3fuvDZ5lWlpB7L9wV3gJ5ZgizaEYfoQI37DBV6S6j6SVmyY/5VMPBAIrEcrB+ptcyrGYfnoMONXr3ffwfOnW2puk4O/B0+UDMeh9JILiVhZ3TWP2D7ZmEyyyhvZ+g4u6pR2sWxULMFAe5VI+9RD2jWtK14tcf3MsqhzWuLneC83lmVup77mN/r/3Dmbev3VBvmjXPxoHw2nct8IAPdbzKG18DrN5bXXmSjQp8bnm1w7P4jOerF2NqLkxlruC1YRir3SL6PEBxIZvGZOj1EcBypmBkr/Fl1WeC9Lx5ZVdPhE3BhwZ55/sLd42q35cxgRg9Xb5xZ88PvPrYAFZnKPvaEKBczHL2gM/Pocp8H3s4ecweZ5oG15Aw894clUk2UAh1TgFIVh5GoHISpw8Hi9s34Lt8955cI+ycScldHsO9/TOaGihGXJJZLQWrePXiudHzlsjqrrx1WF+WIj9DcHhx4VIR99Z85o+HAMsc1jPPLoN4zR8lzv552PQFD+O2npPSPkfRkv0Qcz3Po9nV/44RpfyL/h+0fcnDhwVG42PFJwf6Rs2Y7YUm8DIMb/1pBEMPQk/XMCzKRe2nNmv6Gw79qqSjinvdLdTr7mzLA7k3ZG3zATlu5+PmdtIkDfzLGilpmfjbAOiM0wpqTVoZR02FKQ5PjSo1qhXmqYxa12nosb5jXLHQQ76Jtws7TF4mdhYDgHCJa76ulnQ2MzvB9vx1AHnKewCuAwAHb5AwWfxYw4fvKJi7Rneo39p8zE6ANaJlblA5qkFzvMBAKTzmvwNI0TRB4ADACkYFWbRF7rfXC21uFzhpGsXosm/of96ASHw32GfdpuKqFKrnYXAaLQvSrWjpSdkDVn4EzCsjh2BJTDbTMPWwXwpfny4p7xdFoNOkbMdlJvV9n+rAUCKatBk5QAAAABJRU5ErkJggg==\"","import React from 'react';\nimport { useHistory } from 'react-router-dom';\n\n// Lang Context\nimport { useI18n } from '../../../../lang';\n\n// Style\nimport CompleteImg from '../../../../Assets/i_complete.png';\nimport { Button } from 'react-bootstrap';\nimport './index.scss';\n\nconst SuccessRegister = props => {\n const history = useHistory();\n const { t } = useI18n();\n return (\n
\n \"complete\"\n

\n {/* {props.alreadyRegister ? '這個手機號碼已經註冊過了' : '註冊成功'} */}\n {t('register_success')}\n

\n \n
\n );\n};\n\nexport default SuccessRegister;\n","import React from 'react';\nimport Button from 'react-bootstrap/Button';\n\nconst index = ({ resendValidCode, getValidCode, minutes, seconds, completed, t }) => {\n if (resendValidCode) {\n // localStorage.removeItem('expiresIn');\n return (\n \n );\n } else {\n return (\n <>\n \n \n );\n }\n};\n\nexport default index;\n","import React from 'react'\nimport './index.scss'\n\n\nconst BaseSpinner = () => {\n return (\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n )\n}\n\nexport default BaseSpinner\n","import React, { useEffect, useState, useRef, Fragment } from 'react';\nimport Countdown from 'react-countdown';\n\n// Components\nimport SuccessRegister from '../successRegister';\nimport ButtonTimer from './ButtonTimer';\nimport Spinner from '../../../Ui/BaseSpinner';\n\n// Lang Context\nimport { useI18n } from '../../../../lang';\n\n// Style\nimport { Form, Button, Col, InputGroup } from 'react-bootstrap';\nimport './index.scss';\n\nconst ValidCode = props => {\n const { phoneNumber, countryCode, password } = props;\n\n const clockRef = useRef();\n\n // Lang Context\n const { t } = useI18n();\n\n const [validNum, setValidNum] = useState(''); // user 輸入驗證碼的值\n const [formIsValid, setFormIsValid] = useState(false);\n const [error, setError] = useState('');\n const [resendValidCode, setResendValidCode] = useState(true);\n const [isLoading, setIsLoading] = useState(false);\n const [isRegister, setIsRegister] = useState(false);\n // const [inputValid, setInputValid] = useState(false);\n const [timer] = useState(120000);\n const [token, setToken] = useState();\n\n // 驗證碼如果是六位數的話\n const handleValidCode = event => {\n setValidNum(event.target.value.trim());\n };\n\n useEffect(() => {\n if (validNum.length === 6) {\n setError('');\n handleSubmit(phoneNumber, countryCode);\n } else {\n setFormIsValid(false);\n setError('');\n }\n // eslint-disable-next-line\n }, [validNum]);\n\n useEffect(() => {\n return () => {\n localStorage.removeItem('expiresIn');\n };\n }, []);\n\n const handleHttpError = data => {\n if (data.code === '1') {\n setError(t('http_error_code_1'));\n return;\n }\n\n if (data.code === '10') {\n setError(t('http_error_code_10'));\n return;\n }\n\n if (data.code === '11') {\n setError(t('http_error_code_11'));\n return;\n }\n\n if (data.code === '12') {\n setError(t('http_error_code_12'));\n return;\n }\n\n if (data.code === '13') {\n setError(t('http_error_code_13'));\n return;\n }\n if (data.code === '14') {\n setError(t('http_error_code_14'));\n return;\n }\n\n if (data.code === '15') {\n setError(t('http_error_code_15'));\n return;\n }\n\n if (data.code === '16') {\n setError(t('http_error_code_16'));\n return;\n }\n\n if (data.code === '17') {\n setError(t('http_error_code_17'));\n return;\n }\n\n if (data.code === '20') {\n setError(t('http_error_code_20'));\n return;\n }\n\n if (data.code === '21') {\n setError(t('http_error_code_21'));\n return;\n }\n\n if (data.code === '30') {\n setError(t('http_error_code_30'));\n return;\n }\n\n if (data.code === '31') {\n setError(t('http_error_code_31'));\n return;\n }\n\n if (data.code === 'ˇ\b32') {\n setError(t('http_error_code_32'));\n return;\n }\n\n if (data.code === 'ˇ\b91') {\n setError(t('http_error_code_91'));\n return;\n }\n };\n\n // 請求發送驗證碼\n const getValidCode = async () => {\n setResendValidCode(false);\n handleStart(true);\n let { phoneNumber, countryCode } = props;\n\n const registerApi = `/j/Req_oneTimePwd.aspx`;\n if (countryCode === 886) {\n // 如果第一個字是0,就刪除掉\n if (phoneNumber.charAt(0) === '0') {\n phoneNumber = phoneNumber.substr(1);\n }\n }\n try {\n const res = await fetch(registerApi, {\n method: 'POST',\n body: JSON.stringify({\n reg_countrycode: countryCode,\n reg_tel: phoneNumber,\n }),\n });\n const resData = await res.json();\n\n setIsLoading(false);\n\n handleHttpError(resData);\n } catch (error) {\n setIsLoading(false);\n alert(error);\n }\n };\n\n // 驗證碼確認是否OK\n const handleSubmit = async (phoneNumber, countryCode) => {\n // event.preventDefault(); //防止表單提交\n setIsLoading(true);\n setResendValidCode(true);\n\n if (countryCode === 886) {\n // 如果第一個字是0,就刪除掉\n if (phoneNumber.charAt(0) === '0') {\n phoneNumber = phoneNumber.substr(1);\n }\n }\n\n const timePwdApi = `/j/ChkoneTimePwd.aspx`;\n\n try {\n const res = await fetch(timePwdApi, {\n method: 'POST',\n body: JSON.stringify({\n reg_countrycode: countryCode,\n reg_tel: phoneNumber,\n OneTimePwd: validNum,\n }),\n });\n\n const resData = await res.json();\n setIsLoading(false);\n\n if (resData.code === 200) {\n const token = resData.data;\n setError('');\n setFormIsValid(true);\n setToken(token);\n } else {\n setValidNum('');\n setError(`*${t('http_error_code_22')}`);\n handleHttpError(resData);\n }\n } catch (error) {\n alert(error);\n setIsLoading(false);\n }\n };\n\n // 註冊最後一步\n const registerClient = async (token, countryCode, phoneNumber, password) => {\n setIsLoading(true);\n\n if (countryCode === 886) {\n // 如果第一個字是0,就刪除掉\n if (phoneNumber.charAt(0) === '0') {\n phoneNumber = phoneNumber.substr(1);\n }\n }\n\n const registerClientApi = `/j/req_RegClient.aspx`;\n\n const res = await fetch(registerClientApi, {\n method: 'POST',\n body: JSON.stringify({\n reg_countrycode: countryCode,\n reg_tel: phoneNumber,\n reg_pwd: password,\n reg_token: token,\n }),\n });\n\n const resData = await res.json();\n\n if (resData.code !== 200) {\n handleHttpError(resData);\n setIsLoading(false);\n return;\n }\n\n if (resData.code === 200) {\n setIsRegister(true);\n setIsLoading(false);\n }\n };\n\n const handleCountDownComplete = () => {\n setResendValidCode(true);\n };\n\n const handleStart = () => clockRef.current.start();\n\n return (\n \n {isLoading ? (\n
\n \n
\n ) : isRegister && !isLoading ? (\n \n ) : (\n
\n \n \n {t('click_and_send_valid_code')}\n \n \n VEK -\n \n \n \n\n {error ? *{error} : null}\n \n\n \n }\n className=\"mt-4\"\n >\n \n \n\n \n \n registerClient(token, countryCode, phoneNumber, password)}\n // variant=\"primary\"\n variant={!formIsValid ? 'secondary' : 'primary'}\n type=\"submit\"\n size=\"lg\"\n block\n className=\"fs_20\"\n disabled={!formIsValid}\n >\n {t('btn_confirm')}\n \n \n \n
\n )}\n
\n );\n};\n\nexport default ValidCode;\n","import React, { useEffect, useState } from \"react\";\nimport { useHistory } from \"react-router-dom\";\nimport validator from \"validator\";\nimport {\n loadCaptchaEnginge,\n LoadCanvasTemplate,\n validateCaptcha,\n} from \"react-simple-captcha\";\n\n// Lang Context\nimport { useI18n } from \"../../../lang\";\n\n// Components\nimport ValidCode from \"./ValidCode\";\n\n\n// Style\nimport { Form, Button, Col, Fade, Spinner } from \"react-bootstrap\";\nimport \"./index.scss\";\n\nconst RegisterForm = () => {\n // Lang Context\n const { t } = useI18n();\n\n // Router Props\n const history = useHistory();\n\n const [phoneNumber, setPhoneNumber] = useState({\n val: \"\",\n isValid: true,\n error: \"\",\n });\n\n const [password, setPassword] = useState({\n val: \"\",\n isValid: true,\n error: \"\",\n });\n\n const [confirmPassword, setConfirmPassword] = useState({\n val: \"\",\n isValid: true,\n error: \"\",\n });\n\n const [countryCode, setCountryCode] = useState({\n val: process.env.REACT_APP_HOST_NAME === \"K100U\" ? \"\" : \"886\",\n isValid: true,\n error: \"\",\n });\n\n const [captcha, setCaptcha] = useState({\n val: \"\",\n isValid: true,\n error: \"\",\n });\n\n const [checkAccountErr, setCheckAccountErr] = useState(\"\");\n\n const [agree, setAgree] = useState(false);\n const [formIsValid, setFormIsValid] = useState(false);\n const [showValidCode, setShowValidCode] = useState(false);\n const [showAlert, setShowAlert] = useState(false);\n const [btnLoading, setBtnLoading] = useState(false);\n\n const handlePhoneNumber = (event) => {\n if (event.target.value.startsWith(\"0\")) {\n event.target.value = event.target.value.split(\"0\")[1];\n }\n\n setPhoneNumber({\n val: event.target.value.trim(),\n isValid: true,\n error: \"\",\n });\n };\n\n const handlePassword = (event) => {\n setPassword({\n val: event.target.value.trim(),\n isValid: true,\n error: \"\",\n });\n };\n\n const handleConfirmPassword = (event) => {\n setConfirmPassword({\n val: event.target.value.trim(),\n isValid: true,\n error: \"\",\n });\n };\n\n const handleCountryCode = (e) => {\n // 中國\n if (e.target.value.includes(\"86\")) {\n setCountryCode({\n val: '86',\n isValid: true,\n error: \"\",\n });\n setShowAlert(true);\n }\n\n // 台灣\n if (e.target.value.includes(\"886\")) {\n setCountryCode({\n val: '886',\n isValid: true,\n error: \"\",\n });\n\n setShowAlert(false);\n }\n\n // 香港\n if (e.target.value.includes(\"852\")) {\n setCountryCode({\n val: '852',\n isValid: true,\n error: \"\",\n });\n setShowAlert(false);\n }\n\n // 馬來西亞\n if (e.target.value.includes(\"60\")) {\n setCountryCode({\n val: '60',\n isValid: true,\n error: \"\",\n });\n setShowAlert(false);\n }\n\n // 新加波\n if (e.target.value.includes(\"65\")) {\n setCountryCode({\n val: '65',\n isValid: true,\n error: \"\",\n });\n setShowAlert(false);\n }\n\n // 菲律賓\n if (e.target.value === \"菲律宾+63\") {\n setCountryCode({\n val: '63',\n isValid: true,\n error: \"\",\n });\n }\n };\n\n const handleCaptcha = (e) => {\n setCaptcha({\n val: e.target.value,\n isValid: true,\n error: \"\",\n });\n };\n\n const handleAgree = (event) => {\n setAgree(event.target.checked);\n };\n\n const validRegister = async () => {\n setFormIsValid(true);\n\n\n // captcha\n if (!validateCaptcha(captcha.val)) {\n setCaptcha({\n val: \"\",\n isValid: false,\n error: t(\"captcha_error\"),\n });\n setFormIsValid(false);\n setBtnLoading(false);\n }\n\n //驗證區碼\n if (countryCode.val === \"\" || countryCode.val === null) {\n setCountryCode({\n val: null,\n isValid: false,\n error: t(\"no_countryCode\"),\n });\n setFormIsValid(false);\n setBtnLoading(false);\n }\n\n // 驗證中國手機是否為11碼\n if (countryCode.val === '86' && phoneNumber.val.length !== 11) {\n setPhoneNumber({\n val: \"\",\n isValid: false,\n error: t(\"invalid_phoneNumber\"),\n });\n\n setFormIsValid(false);\n setBtnLoading(false);\n }\n\n // 驗證香港手機是否為8碼\n if (countryCode.val === '852' && phoneNumber.val.length !== 8) {\n setPhoneNumber({\n val: \"\",\n isValid: false,\n error: t(\"invalid_phoneNumber\"),\n });\n\n setFormIsValid(false);\n setBtnLoading(false);\n }\n\n // 驗證台灣手機是否為9碼\n if (countryCode.val === '886' && phoneNumber.val.length !== 9) {\n setPhoneNumber({\n val: \"\",\n isValid: false,\n error: t(\"invalid_phoneNumber\"),\n });\n\n setFormIsValid(false);\n setBtnLoading(false);\n }\n\n // 驗證電話號碼\n if (phoneNumber.val === \"\" || !validator.isMobilePhone(phoneNumber.val)) {\n setPhoneNumber({\n val: \"\",\n isValid: false,\n error: t(\"invalid_phoneNumber\"),\n });\n\n setFormIsValid(false);\n setBtnLoading(false);\n }\n\n //驗證密碼\n if (\n password.val === \"\" ||\n !validator.isAlphanumeric(password.val) ||\n password.val.length < 6\n ) {\n setPassword({\n val: \"\",\n isValid: false,\n error: t(\"invalid_password\"),\n });\n\n setFormIsValid(false);\n setBtnLoading(false);\n }\n\n if (password.val !== confirmPassword.val) {\n setConfirmPassword({\n val: confirmPassword.val,\n isValid: false,\n error: t(\"confirm_password_fail\"),\n });\n\n setFormIsValid(false);\n setBtnLoading(false);\n }\n };\n\n const gotToAgreePage = () => {\n history.push(\"/agreement\");\n };\n\n const checkAccountExists = async (data) => {\n const checkAccount = `/j/ChkLoginExists.aspx`;\n\n const res = await fetch(checkAccount, {\n method: \"POST\",\n body: JSON.stringify({\n reg_countrycode: data.countryCode,\n reg_tel: data.phoneNumber,\n }),\n });\n\n const resData = await res.json();\n\n if (resData.code === 200) {\n setShowValidCode(true);\n }\n\n if (resData.code === \"11\") {\n setCheckAccountErr(t(\"http_error_code_11\"));\n setFormIsValid(false);\n setBtnLoading(false);\n }\n\n setBtnLoading(false);\n };\n\n const handleRegisterSubmit = async (event) => {\n event.preventDefault(); //防止表單提交\n\n setBtnLoading(true);\n\n await validRegister();\n };\n\n useEffect(() => {\n if (formIsValid) {\n const data = {\n countryCode: countryCode.val,\n phoneNumber: phoneNumber.val,\n };\n\n checkAccountExists(data);\n }\n return () => {\n setFormIsValid(false);\n };\n // eslint-disable-next-line\n }, [formIsValid]);\n\n useEffect(() => {\n loadCaptchaEnginge(6);\n }, []);\n\n return (\n <>\n
\n {!showValidCode ? (\n
\n \n \n {process.env.REACT_APP_HOST_NAME === \"88U\" && (\n \n )}\n\n {process.env.REACT_APP_HOST_NAME === \"K100U\" && (\n \n \n \n \n \n \n \n )}\n\n {countryCode.error && (\n {`*${countryCode.error}`}\n )}\n \n\n \n {\n event.currentTarget.blur();\n }}\n />\n {phoneNumber.error && (\n {`*${phoneNumber.error}`}\n )}\n \n \n\n \n \n \n {password.error && (\n {`*${password.error}`}\n )}\n \n \n\n \n \n \n {confirmPassword.error && (\n {`*${confirmPassword.error}`}\n )}\n \n \n\n \n \n \n {captcha.error && (\n {`*${captcha.error}`}\n )}\n\n {checkAccountErr && (\n {`*${checkAccountErr}`}\n )}\n \n \n \n\n \n \n \n {`${t(\"user_agreement\")}`}\n \n \n\n \n {btnLoading && (\n \n )}\n {btnLoading ? `${t(\"btn_loading\")}...` : t(\"btn_next\")}\n \n
\n {showAlert && (\n \n
\n
\n \n \n \n

\n {t(\"china_area_alert_1\")}\n

\n
\n

{t(\"china_area_alert_2\")}

\n
\n
\n )}\n \n ) : (\n \n )}\n
\n \n );\n};\n\nexport default RegisterForm;\n","import { createContext } from 'react';\nconst AuthContext = createContext();\nexport default AuthContext;\n","import { useState, useEffect, useContext } from \"react\";\nimport { Link, useHistory } from \"react-router-dom\";\nimport validator from \"validator\";\n\n// Context\nimport AuthContext from \"../../context/auth/AuthContext\";\n\n// Lang Context\nimport { useI18n } from \"../../lang\";\n\n// Style\nimport { Form, Col, Spinner, Button } from \"react-bootstrap\";\nimport \"./Login/index.scss\";\n\nconst LoginForm = () => {\n const history = useHistory();\n\n // Lang Context\n const { t } = useI18n();\n\n // Auth Context\n const authContext = useContext(AuthContext);\n const { login, loginLoading, errorText, setErrorText } = authContext;\n\n // Init State\n const [countryCode, setCountryCode] = useState({\n val: process.env.REACT_APP_HOST_NAME === \"K100U\" ? \"\" : \"886\",\n isValid: true,\n error: \"\",\n });\n\n const [phoneNumber, setPhoneNumber] = useState({\n val: \"\",\n isValid: true,\n error: \"\",\n });\n\n const [password, setPassword] = useState({\n val: \"\",\n isValid: true,\n error: \"\",\n });\n\n const [formIsValid, setFormIsValid] = useState(false);\n\n useEffect(() => {\n if (formIsValid) {\n const data = {\n countryCode: countryCode.val,\n phoneNumber: phoneNumber.val,\n password: password.val,\n };\n\n login(data);\n\n setFormIsValid(false);\n }\n // eslint-disable-next-line\n }, [formIsValid]);\n\n useEffect(() => {\n return () => {\n setErrorText(\"\");\n };\n // eslint-disable-next-line\n }, []);\n\n useEffect(() => {\n if (localStorage.getItem(\"agent\") && localStorage.getItem(\"token\")) {\n history.replace(\"/home\");\n }\n }, [history]);\n\n // 按下enter後登入\n const handleKeyUp = (e) => {\n if (e.keyCode === 13) validateForm();\n };\n\n const onChange = (e) => {\n setErrorText(\"\");\n if (e.target.name === \"countryCode\") {\n // 中國\n if (e.target.value.includes(\"86\")) {\n setCountryCode({\n val: \"86\",\n isValid: true,\n error: \"\",\n });\n }\n\n // 台灣\n if (e.target.value.includes(\"886\")) {\n setCountryCode({\n val: \"886\",\n isValid: true,\n error: \"\",\n });\n }\n\n // 香港\n if (e.target.value.includes(\"852\")) {\n setCountryCode({\n val: \"852\",\n isValid: true,\n error: \"\",\n });\n }\n\n // 馬來西亞\n if (e.target.value.includes(\"ˊ60\")) {\n setCountryCode({\n val: \"60\",\n isValid: true,\n error: \"\",\n });\n }\n\n // 新加波\n if (e.target.value.includes(\"65\")) {\n setCountryCode({\n val: \"65\",\n isValid: true,\n error: \"\",\n });\n }\n\n // 菲律賓\n if (e.target.value === \"菲律宾+63\") {\n setCountryCode({\n val: \"63\",\n isValid: true,\n error: \"\",\n });\n }\n }\n\n if (e.target.name === \"phoneNumber\") {\n if (e.target.value.startsWith(\"0\")) {\n e.target.value = e.target.value.split(\"0\")[1];\n }\n\n setPhoneNumber({\n val: e.target.value.trim(),\n isValid: true,\n error: \"\",\n });\n }\n\n if (e.target.name === \"password\") {\n setPassword({\n val: e.target.value.trim(),\n isValid: true,\n error: \"\",\n });\n }\n };\n\n // valid\n const validateForm = async () => {\n\n setFormIsValid(true);\n\n // 驗證區碼\n if (!countryCode.val) {\n setCountryCode({\n val: \"\",\n isValid: false,\n error: t(\"no_countryCode\"),\n });\n\n setFormIsValid(false);\n }\n\n // 驗證電話號碼\n if (phoneNumber.val === \"\" || !validator.isMobilePhone(phoneNumber.val)) {\n setPhoneNumber({\n val: \"\",\n isValid: false,\n error: t(\"invalid_phoneNumber\"),\n });\n\n setFormIsValid(false);\n }\n\n // 驗證台灣手機是否為9碼\n if (countryCode.val === '886' && phoneNumber.val.length !== 9) {\n setPhoneNumber({\n val: \"\",\n isValid: false,\n error: t(\"invalid_phoneNumber\"),\n });\n\n setFormIsValid(false);\n }\n\n\n //驗證密碼\n if (\n password.val === \"\" ||\n !validator.isAlphanumeric(password.val) ||\n password.val.length < 6\n ) {\n setPassword({\n val: \"\",\n isValid: false,\n error: t(\"invalid_password\"),\n });\n setFormIsValid(false);\n }\n };\n\n return (\n
\n \n \n {process.env.REACT_APP_HOST_NAME === \"88U\" && (\n \n )}\n\n {process.env.REACT_APP_HOST_NAME === \"K100U\" && (\n \n \n \n \n \n \n \n )}\n\n {countryCode.error && (\n {`*${countryCode.error}`}\n )}\n \n\n \n {\n event.currentTarget.blur();\n }}\n autoComplete=\"off\"\n />\n {phoneNumber.error && (\n {`*${phoneNumber.error}`}\n )}\n \n \n\n \n \n \n {password.error && (\n {`*${password.error}`}\n )}\n\n {errorText && (\n {`*${errorText}`}\n )}\n \n \n\n \n {loginLoading && (\n \n )}\n\n {loginLoading ? `${t(\"btn_loading\")}...` : t(\"btn_login\")}\n \n
\n \n \n {t(\"btn_forget_password\")}\n \n
\n \n );\n};\n\nexport default LoginForm;\n","import React, { useState, useEffect } from \"react\";\nimport { Link, useLocation } from \"react-router-dom\";\nimport {useDispatch} from 'react-redux'\n\n// Lang Context\nimport { useI18n } from \"../../lang\";\n\n// Components\nimport BaseCard from \"./../Ui/BaseCard\";\n// eslint-disable-next-line\nimport BaseDialog from \"./../Ui/BaseDialog\";\nimport Header from \"../Layout/Header\";\nimport RegisterForm from \"./Register\";\nimport LoginForm from \"./LoginForm\";\n// import MemberChat from \"../member-chat/MemberChat\";\n\n// actions\n// import { setShowMemberChat } from \"../../store/actions/memberChatActions\";\n\n\n// Style\nimport \"./index.scss\";\nimport style from \"../Layout/Header.module.scss\";\n\nconst Auth = () => {\n // Lang Context\n const { t } = useI18n();\n\n // const dispatch = useDispatch()\n\n // Init State\n const [formType, setFormType] = useState(t(\"auth_login\"));\n\n // Router Props\n const location = useLocation();\n\n useEffect(() => {\n if (location.pathname === \"/auth/login\") setFormType(t(\"auth_login\"));\n if (location.pathname === \"/auth/register\") setFormType(t(\"auth_register\"));\n // eslint-disable-next-line\n }, [location.pathname]);\n\n return (\n
\n
\n
\n \n \n \n {/* dispatch(setShowMemberChat())}\n style={{\n width: \"100%\",\n height: \"100%\",\n backgroundColor: \"rgb(69,69,216)\",\n borderRadius: 30,\n color: \"white\",\n fontSize: \"3rem\",\n border: \"none\",\n }}\n >\n 客服\n */}\n\n {/* */}\n \n \n {\n
\n

{formType}

\n\n \n\n {formType === t(\"auth_login\") ? (\n \n ) : formType === t(\"auth_register\") ? (\n \n ) : null}\n
\n }\n
\n \n \n );\n};\n\nexport default Auth;\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJUAAACVCAYAAABRorhPAAAAAXNSR0IArs4c6QAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAAlaADAAQAAAABAAAAlQAAAAAguUtOAAASM0lEQVR4Ae1dCZAcVRn+/zfTMwmJkgAaNAQRUkhBEDUqKnsJaoGiiApsdjcQPBDQsqRUpCgPyqsMghdIBZB7dxMNWmCwwKNkLw6PKMihQACRCAjJJsRcM73Tv/+b3dntnumZ6XOnjzdVSb/+3/X/X3/73t9/v36NkOIfdXcsKWVwGSEsI6BlQHAIIO7Dx7ksmwNEcxFgLsvmMkxz+N9elu0hgD0s24PE58hpot18/BcCPgxQeihL2YdxYGhzWqFlzNLxozPbDtdLmU4AWs4WLwPAZUyEfUOznuBlbv8hJtyD3NeDWqY0jDePPR5afxFqOLGkor7j3qBjthMM6iTETjZ0catx5xHuP0g0zCQbSjLJEkOqworjjkLBJEImEWAHG3Zgq0nUrH8m2QsINCJJRmQM5wdGH21WJw75sSeVnNaKpcwqJlMv+zQHxwF0Ox3Zp/s3T839OUE3xX2ajCWpaEXXAXrG6OW/8D6+QG+1u0gxl/2FbxZu1gxci2uHtsTNlliRilYcu0gX+Yv4zutTDPS8uIHtQd9dXOcarbR3Na7943891G9JlViQilZ2vF4n/BIjdDb/k7f2afvJUMb1moDL8JaRp6NufKRJVejtOJoVvIinuTP49jwTdTBD14+gxL7jOiJYnR8YeSj0/jx2EElSUW/XQTrQd9hx7eOpLpI6esQ7mGrEtALs14T+Rbzl3heDaTS4ViJ1weikpfmJ/RdfyHdCcnTaJzgzE9oS0Q6+gN/Ijj93Jd65qRAVKyNDqome9lNKQlzOCh0WFXDiogcPXE8JovO1wdHfREHnlpOqHPmGzNU8MnVGAZA468Bz4l05mPg89t/zWCvtaCmp5OhkIN7AftPCVoKQqL6JtvGodXZ2cPT2VtnVElLROcs1fff8H7HR57XK8MT3S/QTbd6uC/Cajfps2zrrpKKetkN1zPycQwRytYD6hYkAwUaNSqfj4NhTYXZT3baoFoR5Xujr6GVCPagIFSbKprb5D1fiLd0MkzT05KyRSu/t/Bo/8O1nQs0P3SrVwQwCjLchxG16T8dXZoThpkKf/ugSEPoTHdeyM/7xcE1RrTdFgODa3MDwOU3L+SwQKqnotKNyxdwBt3FM/CSfeqrqwSGwTitsOQvXP1IMrklrS6GRinqPfaWO+V+p+JMV8EicEdyt7dh5Mm7YuDsMfUIhVXm9k6Ah9p+OCkNp1WYACBD9SSvSybh+9KUAWrM0ETip6LSu+XqO7leEsuAczZMyscQJuH5oZ5AKBnr3Jx8I63naoAgV5CUKsS3Et+t543Y6LdhlRYGRSq7FKO63+FaGoCtEGFTTgSOAx+u5zhvl9Quq6cBIpfd2XMV3eScHpZhqZxYRQOjj63dFUD0GQiqOlF/Ccahzg1JKtdMCBBA/U76OAXTte8ib6G072cDMhgB0UU1EAAEBxqnZ/tHb/Kjii1T8zt3BusHP8gAW+FFC1Y0UAts1Q38TDt77jFetPE9/1NWV5b0JfskdK0J5RT+a9RbwdgE/l8uTvKrnmVT6QcZlfL+glq94RT7K9WSoYfe873lV0dP0p/wor3DHq55X/8o1qZQfFS9i+NTWk3/levpjP+pGVlT5UT6vVkyqS//qOre6uiJVoae9m/2od7vtRJWPMQKIJ5SvuwsTHE9/8kFxMWc8yi8ML3HRfiyKapfeDPAa/7sQldatAePX62Jhsxsl+b3CZ3NFcaTTB8+ORyp+8PitJBJKgkvjAa3+2Bq5N9DdcKduWXndi3nD8XJkR6SSG4sB4Wfr9hrzDNq2JRALaGtsdvtxbS+/X/B5+eKvk4qOSMXO+Rr2pZK760pAIxVtSeZINUWkvE6ZnwRCKr2v7cSkO+dBTH9UKgFsC2gadXLlWlGGnfYyH5r03XSkIhC8A0uyf0GQCgMa7aKOtBM+NCRVsbfrHbx2K/kbZwQwwiTZn7ISHTsneWGVms8akorASPwoJcGgcf+OenpIxXg14UVdUlFf11IOYn3IzMDEpndsg7JP5MfAhIYT7CCRvChHBOwyWVaXVDpxXCJFWyOizymQtiQ3nFDDHeaFXhIX18inBLak4uj5gexL8T7l6fn5ddYpRSPVJCuwl7qPe60dQ2xJxdHTczmMkLWrkFSZ3wAobXkhqdDY28X8KGYztvsy2JKKPbGV9i0lWOo3JPDS8wkGp55p9rNZDak4uNXFU+ah9ZpJqpz8+FS7/gegh7bfRWQhZ4d9qV14oYZURKI7slaEqZiPkSpN4YSaS4BGDV8spJIvM7AvdWpNxRQIfMWqUuekmwhB2F3mjUlkIVXpoBK/YYyvNuWnJunn7i91TrqZFQiLJnkzI7SSinDVTFbKUrz8pfx1Dg9mJ3x1QlNEDB6tzIWmSSU3aGDHq92cmaq0wd8S4si6p1+C11E5wgPxPeYNPqZJpfd0HcO02s9RIwkt5HUKTLWjPsmF/cv8meLFNKkAS10J5YpzszyuAE1fNN0GUhN/pknFH7NOPam8jFSTi/P8r3KwuUyxEpn5UyZV6v2pqcvnJQCK44leQuyY2Bwwb6v4VWVSKX9qCjsPAVDlT03zbtqvmpz+TPPhdJEUJrwEQNMeTrDQZIpHUz4VvsOSmdITLz4VpD2cYOEKvkmeTo1UeIQlL60nHvwjNf2ZyIJQ5tEkqQgOMWWlN1ksAOx2t6V4qlZ8NmMGTQ5OorzKE2HfZuXTku92ClQjlYkZzCNa1bVATOQn1NRnwgXcBkBfStmKTzNWNmldhyMEGXiITV5qRa5Gqp07Urk4ryE5qMSkEspJt4DkYqRSj2csyJVPJJ8EKifdggy5uQNM28sOFqTsTySfBIfW59hnp1Pq5q0aNVLVckTySYYUFKnM2Lh4VKPu/MzATafnCF6ZpzaFncbD5b4KKppuQm4yKfkkiFCRygzNzpcd76ugnvuZgZtMSz4JXkKsSFWFDTp0wGmrilFVQccvY/FIxf8rUlUh48RZLy/O2z5eVVOdSj5JRz2voLAi4CQAisqfsoI2c5aXpOKnqOpnQcBBAFTd+VkQM58UBG/Gsd0sUWl5B9h8ibCKUdVhCvNJBj8VqarwceJTQZo2OavCp9Gp5JOMU+1tVCiVeQ4CoGr6s2cGIm1nn4oUqarwcbJWXS3OqwJt6pTK05/yqWrR4b2qmu2roHyqWtimJHtl8FP5VDb44PatNlKTyGGA1FQjFUnm014Z/FRhYZvL3TBWxY9y0rhzng1MtSLmE4cU6J+1OUoCDZx15U814Afzie/+FKnsIGoYVlDRdDvIyjLJJ5EtZNVIZQNRowCoWp1gA9iUSPJJ8CdMX+CoOjsJ6mdBoMGjGhWjsiA1c8I8knySz/54Dz34V/mo/ptGoJGjrsIJ0zBZE1Ou1ORXHaSzjniMtUS6z+ifD4K+sivdILi1nqDsSk2OVED3u62vyisEahGgB6RsklSUGaotoCQKAZcITPGIA6Dyo4CAel+n/ADw/i6bUcUVAhUEtuf6hxfKk/JIxcziR100VslVR4WAWwSYP8OVOlM+lbwBpKGKUB0VAm4RMPNnmlSg/Cq3OKryZgRM/Cn7VDJP+VVmhKbSc+YCLjkUcNFiwAMOBBL8N/ji80B//xOQ169D2HSTANG0PyVtmf76qPSrikR3cLzqrAQY6csEPPgwEB/7JIg3v7NuO8Y9vwNj3RqgZktk6raQoAyi283WzEx/LEU01pkz05jOfPhMyH77uoaEkriI494L2dU3gVi2PI0wWWyu5o2FVNnN2d/zPJiiz5ZbsIHMpy8G8dGPW4WNzvaZD5kvXw7i6Lc3KpXwPHqxzBuTlRZS4dDQBCClcrQSH+oD0fY+EzTOk+LciwFekdptU9eWeWOCy0KqspxE6kiFCw+AzCnev0WOr1wA4tRVJlhTlDTEjdXW1pAqNzB0P98JbqoumORz8YFugJy/t/9Fx0kA816RZJhqbOM3Zx7LDQ6Vn/eZM2tINZlJA+ZCSU+XCeHTSMzPgcy73uOzlZhVr+Mq2ZIqB3Q1O+wTMTPRm7oL+HHn3Hne6lbXOvzoaklyz5kfuYJYY2egLamwf/R5DlulYrTChcE9Q8fFr7PDOKEyGiivGraxzpZUspxG8O2mb1TaNBg7UakUnMq8M30qfjxKaSi+Vc/WuqTCwZEn2GH/Vb2KiZHv2RWYKfRyWjZBo19g/1Ddm7m6pJJIIxnfTPpoRfwZEAqIWLTpkcAIGtmG5H4AJVjdSL+GpMoNjm3k0eq3jRpIQh49+rdAzKC/3htIO1FuRPIht26kIWANSSWNE2h8N8pGBqGbsWHQdzP05xGgzU/7bifqDTjhQ1NSaf1jQzzi/SbqxvrRj558FIyRO703oRehdOt13uvHpKbkgeRDM3Wbkko2kBNwAR8SvTdo6Ybvg/GEe59IuhgTP/460HPPNMM67vmFXMb4nBMjHJEKbxn5BwH90EmDsS0zoUPp8ovA4AV4jn/FvWD89FKgB+5zXCWuBeX1x5vHHnei//TKz2aF+Qum84t54xEEPLhZ2bjnixNOgUz3ufzVnrn2pvB0Z9z/BzB+dg2kIYzAo/GzuaI4koOdjr4F7JhUEt1CT3s3CrHWHulkSeXKBTzqLQCLDgJ8Lf8dGQbQ8/8GeGYTGBvT9eIRGcaK/OCo49UrrkglaVPs65Qhhvcmi0LKmroIENydGxg+vm6+TYYjn8pcTzP0T/G52tLRDEpy09s10s92a55rUuHgvc8IMFx35FYxVb71CPA2i2fJ6+1WE9ekkh1k+0dv48c3V7vtTJWPEwL0o2z/iKdnv55IJaHRivoFvObKfWAnTrimVVeiP2ubxRe9mu+ZVLj+vj0Exum87mq3185VvSgiQLs1mjit+mUGN5p6JpXsJD8wys836DNuOlRlI44AX08vfpTZKl+kkg3lBkdv5Ghrw6UQ5g5VOroIyOsor6dfDV3Hqep1WOztvIW3jumrl6/kEUeAaE1uYOS8ILT0PVJVlNCKw6s4nO/pbqHShjq2BgF+Jn6HNjByflC9B0YqXA+l3Phz0nH/Q1DKqXZmBYGh3Ph/PsZTFq+/C+YXGKmkOnjnpoJWEKdw8uFg1FOthIqADB0U8IPyugXZT2A+lVkp6mt/TRHEKDd+mFmu0tFBgF2Vp3JF/W0cGgr8bY1AR6oKZPK9wVxh53IeUO+uyNQxSgjQcA4Kbw6DUNLKUEglG8b1G1/WiltO5KTjJROynvqFiwA7Tuu1wtb34cAfd4TVUyjTX7WyHG64hsMNcnWD+rUSAaLrOWzwibBVCG2kMivO63HOQYO+apap9OwigARfnw1CSatmZaSqwDfR1/5RA/AG7jZde+5UAGjFkWibIDo7Ozhq2ZczTFVmlVTSEOrrWqqTMcAbjKZ5T8Mwr+lM2wQbNcAP48DQ5hlh+KlZmf7MZsh38LXi1nam15VmuUoHiADHCzhK/j1t3s53zjahpBWzPlKZoStPh4TsxON+ZrlK+0CApztEPEPrH/6dj1Z8VW0pqaTm1N2xRM/ArWo69HUdK5XHNMIVrRidKgrIY8tJVVFmoqfjIyUBP0jDe4UVm4M68lz3LBB+IT84vD6oNv20ExlSSSPog8v3Ke47/yJW6kI+9bezqx9U4lO3wIS6LLdj13dww8bIrMCNFKkq15J62g7VhbiWB9LjKzJ1tCLAkfG7ckjn85YET1tzWn8WSVJVYNFXtncahBfylPj+iiztR76ru1Ng6VInu6+0CqtIk6oCSqG3/UhE8RV+QH06e4GZijw9R9LZ9kFe7ntp+b2AiBseC1JVMKSed71OF1ne1gg/ybKA9qmutB7J4y5+v/I6rVRajevueS6SGtooFStSVfRnn2vhhMicx1PB53jkWlSRJ+bIH53iL31ekSXjKhwc2xY3u2JJKjPIdGbb4UUjI1+46GFjYrsokP9AHhMIA1mk/ig632bMm6VjTyqzgcWVbcfy50Mlwc7gKfJV5rxopukl1utnrPOA/CZQNHV0r1WiSFUxny4BoT/e9UaOfHUQQjsb2R6JaZKnNUIaY31GWbdRbenoA3gJGBW9k3JMJKnsLg6t6DpCz1IHv1H9RkKU0+RSNn6pXdkgZBxH2sRO9pPch9zE/q/8BY1R+cGDINqOehupIVW9C0ErO14/QbiUyDiMR7UlSPxwG4EfcONCvo3fj2/jF/IDWvnAewH/284R7HGOm23jMvzCAG3jMuM8+ozzIrhnOezxJPtEm+LuE9XDyqn8/2BX6rbX+wyXAAAAAElFTkSuQmCC\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABsAAAAbCAYAAACN1PRVAAAAAXNSR0IArs4c6QAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAAG6ADAAQAAAABAAAAGwAAAADVx3bDAAAC0UlEQVRIDb2Wz2sTURDHZ5K8tKIgVTDeelTwIJ6UtqYhUPWmF/+A3lUED/6MpNGCh1702nv/AQ9F8ZAGE39AoQdBBUUKFcxBQ9Fizcvm+Z1NX9jsZjfZHPpo8/btzHw/b2bnLUu0j4OFlSua44aaz4j4giFTbiXTt2oF/jrqPrKl5hlq0xLET0NjhUndKxf5T0IEAVoG6CouDzPxZeXoKjZwUmxxx/mSnuY2VQDKI/Yo/q+3SS+KDouoIf1RFr5RbyXVbLXAn333Q5fZop5iMi/gcMjntP39iMokkN4nGNZ9Rllmko6uDJthrqhnAHqJOD8IlTOvvtzgf24ZUdMrKOaWH4hSHEPW5elH5oTf5l1LRhBcxb2D3vt71x+cA+l5uXZhyG5Lp9IzAG72cc6kHL0WBowonUhtOGMqW73Nv2XhwuSi9oA3AZyNA4wCGUgClH99lxuiL6MLk0Uc4CBQgtRFL0j08ViCY+qxmVSt5hrMk0Er1TUlbipq47j0awaqCUjOlT+2L0ycooAoEf6I/cFSujCQaPaUUW7Y4Slp4JwB4nKEaMcgkPj5N2dju/PZRZMZ125JA+3vgUVmZMVCM7MO7+5z3eFkAefIo92x7u1U64S61u8ZWQ07D8xsdkHPgfMcpDEJCgkY6tUWEtvZiwVh5YJsaiFBA4GhZfSDvFkB+reznZ7fyDeNePaF9QN5ZGu7SXUK3R/oUvhEAgOwKBAycrvufYG/7Sr31RYL2FP+YUDeros6FsiyDvFL5WJ6w1alC4sLsgJRQFSigdLlLdCFjQqKC0zgDLEx7acIdNvbCsiMnVWj3nXWVw5+2DNENhNtMk/EF98gzXMQfWMD7WybwfuMrC1sDisptMzOuJrAN0j6LRYrXoFRQBIvGTKlc4Fjwbywfoe33db/SWoevsuANAS8Q2ouTkYCsgNxPwCUT4xVaP0yxIXKw1TJ2vdt/g8/x3EFb90lKgAAAABJRU5ErkJggg==\"","import React from 'react';\nimport Modal from 'react-bootstrap/Modal';\nimport errorIcon from '../../Assets/icon-error-new.png';\nimport successIcon from '../../Assets/i_complete.png';\nimport closeBtn from '../../Assets/blue_close_btn.png';\n\nconst Paring = props => {\n return (\n \n \n \n
\n \"icon\"\n \n {props.title}\n \n
\n
\n
\n );\n};\n\nexport default Paring;\n","import React, { useEffect } from 'react';\nimport Button from 'react-bootstrap/Button';\n\nimport { useI18n } from '../../lang';\n\nconst Timer = ({ minutes, seconds, phoneValid, setExpirTime }) => {\n const { t } = useI18n();\n useEffect(() => {\n let time = Number(localStorage.getItem('expiresIn'));\n setExpirTime(time);\n\n // eslint-disable-next-line\n });\n return (\n \n {t('btn_valid_code_already_send')}\n \n {('0' + minutes).slice(-2)}:{('0' + seconds).slice(-2)}\n \n \n );\n};\n\nexport default Timer;\n","import { useContext, useState, useEffect } from \"react\";\nimport { useHistory } from \"react-router-dom\";\nimport validator from \"validator\";\nimport Countdown from \"react-countdown\";\n\n// Context\nimport AuthContext from \"../../context/auth/AuthContext\";\n\n// Lang Context\nimport { useI18n } from \"../../lang\";\n\n// Components\nimport BaseSpinner from \"../Ui/BaseSpinner\";\nimport ErrorModal from \"../Ui/ErrorModal\";\nimport Timer from \"./Timer\";\n\n// Style\nimport Col from \"react-bootstrap/Col\";\nimport Form from \"react-bootstrap/Form\";\nimport Card from \"react-bootstrap/Card\";\nimport Button from \"react-bootstrap/Button\";\nimport Collapse from \"react-bootstrap/Collapse\";\nimport Spinner from \"react-bootstrap/Spinner\";\nimport InputGroup from \"react-bootstrap/InputGroup\";\n\nconst ForgetPassword = () => {\n // Lang Context\n const { t } = useI18n();\n // Router Props\n const history = useHistory();\n\n // Auth Context\n const authContext = useContext(AuthContext);\n const {\n getValidCode,\n isSendValidCode,\n checkValidCode,\n authLoading,\n validToken,\n forgetPassword,\n showErrorModal,\n cleanErr,\n setCountDown,\n expiredTime,\n checkAccountExists,\n accountIsExists,\n setAccountExists,\n setErrorText,\n removeValidToken,\n } = authContext;\n\n // Init State\n const [errText, setErrText] = useState(\"\");\n const [showNewPw, setShowNewPw] = useState(false);\n\n // phone Data\n const [countryCode, setCountryCode] = useState({\n val: process.env.REACT_APP_HOST_NAME === \"K100U\" ? \"\" : \"886\",\n isValid: true,\n error: \"\",\n });\n\n const [phoneNumber, setPhoneNumber] = useState({\n val: \"\",\n isValid: true,\n error: \"\",\n });\n\n const [phoneValid, setPhoneValid] = useState(false);\n\n // 驗證碼\n const [validCode, setValidCode] = useState({\n val: \"\",\n isValid: true,\n error: \"\",\n });\n\n // 密碼\n const [newPassword, setNewPassword] = useState({\n val: \"\",\n isValid: true,\n error: \"\",\n });\n\n const [confirmPassword, setConfirmPassword] = useState({\n val: \"\",\n isValid: true,\n error: \"\",\n });\n\n const [passwordValid, setPasswordValid] = useState(false);\n\n // loading\n const [isLoading, setLoading] = useState(false);\n\n // eslint-disable-next-line\n const [expirTime, setExpirTime] = useState(null);\n\n const handleChange = (e) => {\n if (e.target.name === \"countryCode\") {\n setAccountExists(\"notYetConfirm\");\n\n if (e.target.value === \"86\") {\n setCountryCode({\n val: 86,\n isValid: true,\n error: \"\",\n });\n }\n\n if (e.target.value === \"886\") {\n setCountryCode({\n val: 886,\n isValid: true,\n error: \"\",\n });\n }\n if (e.target.value === \"852\") {\n setCountryCode({\n val: 852,\n isValid: true,\n error: \"\",\n });\n }\n }\n\n if (e.target.name === \"phoneNumber\") {\n if (e.target.value.startsWith(\"0\")) {\n e.target.value = e.target.value.split(\"0\")[1];\n }\n setAccountExists(\"notYetConfirm\");\n setPhoneNumber({\n val: e.target.value,\n isValid: true,\n error: \"\",\n });\n }\n\n if (e.target.name === \"validCode\") {\n setValidCode({\n val: e.target.value,\n isValid: true,\n error: \"\",\n });\n }\n\n if (e.target.name === \"newPassword\") {\n setNewPassword({\n val: e.target.value,\n isValid: true,\n error: \"\",\n });\n }\n\n if (e.target.name === \"confirmPassword\") {\n setConfirmPassword({\n val: e.target.value,\n isValid: true,\n error: \"\",\n });\n }\n };\n\n const validPhoneNumber = () => {\n setPhoneValid(true);\n\n \n\n // 驗證電話號碼\n if (phoneNumber.val === \"\" || !validator.isMobilePhone(phoneNumber.val)) {\n setPhoneNumber({\n val: \"\",\n isValid: false,\n error: t(\"invalid_phoneNumber\"),\n });\n\n setPhoneValid(false);\n }\n\n //驗證區碼\n if (\n countryCode.val === \"\" ||\n countryCode.val === null ||\n countryCode.val === t(\"countryCode\")\n ) {\n setCountryCode({\n val: t(\"countryCode\"),\n isValid: false,\n error: t(\"no_countryCode\"),\n });\n\n setPhoneValid(false);\n }\n\n // 驗證中國手機是否為11碼\n if (countryCode.val === '86' && phoneNumber.val.length !== 11) {\n setPhoneNumber({\n val: \"\",\n isValid: false,\n error: t(\"invalid_phoneNumber\"),\n });\n\n setPhoneValid(false);\n }\n\n // 驗證香港手機是否為8碼\n if (countryCode.val === '852' && phoneNumber.val.length !== 8) {\n setPhoneNumber({\n val: \"\",\n isValid: false,\n error: t(\"invalid_phoneNumber\"),\n });\n\n setPhoneValid(false);\n }\n\n \n\n // 驗證台灣手機是否為或9碼\n if (countryCode.val === '886' && phoneNumber.val.length !== 9) {\n setPhoneNumber({\n val: \"\",\n isValid: false,\n error: t(\"invalid_phoneNumber\"),\n });\n\n setPhoneValid(false);\n }\n };\n\n // send valid code\n const sendValidCode = async () => {\n setLoading(true);\n\n const data = {\n countryCode: countryCode.val,\n phoneNumber: phoneNumber.val,\n };\n\n await getValidCode(data);\n setLoading(false);\n };\n\n const validPassword = () => {\n setPasswordValid(true);\n //驗證密碼\n if (\n newPassword.val === \"\" ||\n !validator.isAlphanumeric(newPassword.val) ||\n newPassword.val.length < 6\n ) {\n setNewPassword({\n val: \"\",\n isValid: false,\n error: t(\"invalid_password\"),\n });\n\n setPasswordValid(false);\n }\n\n if (newPassword.val !== confirmPassword.val) {\n setConfirmPassword({\n val: confirmPassword.val,\n isValid: false,\n error: t(\"confirm_password_fail\"),\n });\n\n setPasswordValid(false);\n }\n };\n\n const goToLogin = () => {\n cleanErr();\n // setAccountExists('notYetConfirm');\n // setErrorText('');\n // setShowNewPw(false);\n history.replace(\"/auth/login\");\n };\n\n // ===========\n // UseEffect\n // ===========\n useEffect(() => {\n return () => {\n setAccountExists(\"notYetConfirm\");\n setErrorText(\"\");\n setShowNewPw(false);\n removeValidToken();\n };\n // eslint-disable-next-line\n }, []);\n\n useEffect(() => {\n if (accountIsExists === \"notExists\") setErrText(t(\"no_account\"));\n if (accountIsExists === \"exists\" || accountIsExists === \"notYetConfirm\")\n setErrText(\"\");\n // eslint-disable-next-line\n }, [accountIsExists]);\n\n useEffect(() => {\n if (errText) setPhoneValid(false);\n }, [errText]);\n\n useEffect(() => {\n if (phoneValid) {\n // 驗證帳號是否已經註冊\n const data = {\n countryCode: countryCode.val,\n phoneNumber: phoneNumber.val,\n };\n checkAccountExists(data);\n }\n // eslint-disable-next-line\n }, [phoneValid]);\n\n useEffect(() => {\n if (validCode.val.length === 6) {\n const data = {\n countryCode: countryCode.val,\n phoneNumber: phoneNumber.val,\n validCode: validCode.val,\n };\n\n checkValidCode(data);\n }\n\n // eslint-disable-next-line\n }, [validCode]);\n\n useEffect(() => {\n if (validToken) {\n setShowNewPw(true);\n }\n }, [validToken]);\n\n useEffect(() => {\n if (passwordValid) {\n if (countryCode.val === 886) {\n // phoneNumber.val = phoneNumber.val.substr(1);\n }\n const data = {\n countryCode: countryCode.val,\n phoneNumber: phoneNumber.val,\n password: newPassword.val,\n token: validToken,\n };\n forgetPassword(data);\n }\n\n // eslint-disable-next-line\n }, [passwordValid]);\n\n return (\n
\n
\n \n {showErrorModal.show && (\n \n )}\n
\n

{t(\"btn_forget_password\")}

\n\n
\n {authLoading ? (\n \n ) : (\n <>\n \n \n {process.env.REACT_APP_HOST_NAME === \"88U\" && (\n \n )}\n\n {process.env.REACT_APP_HOST_NAME === \"K100U\" && (\n \n \n \n \n \n \n )}\n\n {countryCode.error && (\n \n *{countryCode.error}\n \n )}\n \n\n \n {\n event.currentTarget.blur();\n }}\n />\n {phoneNumber.error && (\n \n *{phoneNumber.error}\n \n )}\n \n \n\n \n \n \n {t(\"btn_continue\")}\n \n {errText && (\n \n *{errText}\n \n )}\n \n \n\n \n
\n
\n \n \n \n \n {t(\"china_area_alert_1\")}\n

\n
\n

\n {t(\"china_area_alert_2\")}\n

\n
\n
\n\n \n \n \n \n \n \n VEK -\n \n \n \n \n \n \n {isSendValidCode && expiredTime ? (\n setCountDown(false)}\n renderer={(props) => (\n \n )}\n >\n ) : (\n <>\n \n {isLoading && (\n \n )}\n\n {!isLoading ? (\n {t(\"btn_send_valid_code\")}\n ) : (\n {t(\"btn_loading\")}...\n )}\n \n \n )}\n \n \n {t(\"alert_text_1\")}\n \n \n \n\n \n \n \n \n {newPassword.error && (\n \n *{newPassword.error}\n \n )}\n \n\n \n \n {confirmPassword.error && (\n \n *{confirmPassword.error}\n \n )}\n \n\n \n \n {t(\"btn_confirm\")}\n \n \n \n \n\n \n \n \n {t(\"btn_back_to_login\")}\n \n \n \n \n )}\n \n \n
\n
\n );\n};\n\nexport default ForgetPassword;\n","import { createContext } from 'react';\nconst HttpErrorContext = createContext();\nexport default HttpErrorContext;\n","import { createContext } from 'react';\nconst BuyContext = createContext();\nexport default BuyContext;\n","import { useContext } from 'react';\nimport { Link, useLocation } from 'react-router-dom';\n\n// Context\nimport BuyContext from '../../context/buy/BuyContext';\nimport { useI18n } from '../../lang';\n\n// eslint-disable-next-line\nimport index from './index.scss';\n\nconst TransactionNav = () => {\n // Router Props\n const location = useLocation();\n\n // Lang Context\n const { t } = useI18n();\n\n // Buy Context\n const buyContext = useContext(BuyContext);\n const { buyWsClient } = buyContext;\n\n const handleClick = () => {\n if (buyWsClient) buyWsClient.close();\n };\n\n return (\n
\n \n {t('transaction_nav_buy')}\n \n \n {t('transaction_nav_sell')}\n \n\n \n {t('transaction_nav_transfer')}\n \n
\n );\n};\n\nconst linkBox = {\n borderBottom: '1px solid #D7E2F3',\n marginBottom: 30,\n paddingTop: 30,\n\n paddingLeft: 0,\n};\n\nconst linkStyle = {\n backgroundColor: 'inherit',\n borderBottom: 'none',\n outline: 'none',\n cursor: 'pointer',\n padding: '14px 16px',\n fontSize: '17px',\n color: '#707070',\n\n marginRight: '1rem',\n\n display: 'inline-block',\n width: '10rem',\n textAlign: 'center',\n};\n\nconst linkActive = {\n backgroundColor: 'inherit',\n border: 'none',\n outline: 'none',\n cursor: 'pointer',\n padding: '14px 16px',\n fontSize: '17px',\n\n color: '#3f80fa',\n borderBottom: '2px solid #3f80fa',\n\n marginRight: '1rem',\n display: 'inline-block',\n width: '10rem',\n textAlign: 'center',\n};\n\nexport default TransactionNav;\n","import { createContext } from 'react';\nconst SellContext = createContext();\nexport default SellContext;\n","// Get Header\nexport const getHeader = () => {\n const token = localStorage.getItem(\"token\");\n\n if (!token) return;\n let headers = new Headers();\n headers.append(\"Content-Type\", \"application/json\");\n headers.append(\"login_session\", token);\n\n return headers;\n};\n\nexport const locationMoneyPrefix = () => {\n // const host = window.location.host;s\n\n const host = process.env.REACT_APP_HOST_NAME;\n\n if (host === \"88U\") {\n return \"TWD\";\n }\n\n if (host === \"JP88\") {\n return \"JPY\";\n }\n\n return \"CNY\";\n};\n\nexport const locationMoneyCalc = (value) => {\n const host = process.env.REACT_APP_HOST_NAME;\n\n if (host === \"88U\") {\n return value.toFixed(0);\n }\n\n if (host === \"JP88\") {\n return value.toFixed(0);\n }\n\n return value.toFixed(2);\n};\n\n// 換算千分位\nexport const thousandBitSeparator = (value) => {\n const host = process.env.REACT_APP_HOST_NAME;\n\n if (host === \"88U\") {\n return Number(parseFloat(value)).toLocaleString(\"en\", {\n minimumFractionDigits: 0,\n });\n }\n\n if (host === \"JP88\") {\n return Number(parseFloat(value)).toLocaleString(\"en\");\n }\n\n return Number(parseFloat(value)).toLocaleString(\"en\", {\n minimumFractionDigits: 2,\n });\n};\n\nexport const locationMoneyCalcWithThousand = (value) => {\n return thousandBitSeparator(locationMoneyCalc(value * 1));\n};\n\nexport const usdtThousandBitSeparator = (value) => {\n return Number(Math.abs(parseFloat(value))).toLocaleString(\"en\", {\n minimumFractionDigits: 2,\n });\n};\n\nexport const usdtThousandBitSeparatorNonAbs = (value) => {\n return Number(parseFloat(value)).toLocaleString(\"en\", {\n minimumFractionDigits: 2,\n });\n};\n\n// var money = \"123456.789\";\n// console.log(\n// Number(\n// parseFloat(money).toFixed(3)\n// ).toLocaleString(\"en\", {\n// minimumFractionDigits: 3\n// })\n// );\n","import { createContext } from 'react';\nconst BalanceContext = createContext();\nexport default BalanceContext;\n","import { Fragment, useContext, useEffect } from \"react\";\n\n// Context\nimport SellContext from \"../../context/sell/SellContext\";\nimport BalanceContext from \"../../context/balance/BalanceContext\";\n\nimport {usdtThousandBitSeparatorNonAbs} from '../../lib/utils'\n\n// Lang Context\nimport { useI18n } from \"../../lang\";\n\nconst SellHeader = () => {\n // Lang Context\n const { t } = useI18n();\n\n // Sell Context\n const sellContext = useContext(SellContext);\n const { exRate, getExRate } = sellContext;\n\n const balanceContext = useContext(BalanceContext);\n const { level } = balanceContext;\n\n useEffect(() => {\n getExRate();\n\n // eslint-disable-next-line\n }, [exRate]);\n\n\n return (\n \n \n {t(\"sell_usdt\")}\n

\n
\n

\n {t(\"exRate\")} :{Number(exRate).toFixed(2)}\n

\n

\n {t(\"payment_contact\")}:{t(\"payment_contact_time\")}\n

\n\n

\n {t(\"limit\")} :\n {level?.day === 0 && (\n 帳號已鎖定,無法交易\n )}\n\n {level?.day !== 0 && (\n \n {t(\"limit_usdt\")} {usdtThousandBitSeparatorNonAbs(level?.day)}\n \n )}\n

\n\n {/* {process.env.REACT_APP_HOST_NAME === \"88U\" && (\n

\n {t(\"limit\")} :\n {level === 0 && (\n 帳號已鎖定,無法交易\n )}\n {level !== 0 && (\n \n {t(\"limit_usdt\")} {level?.toFixed(2)}\n \n )}\n

\n )} */}\n\n {/* {process.env.REACT_APP_HOST_NAME !== \"88U\" && (\n

\n {t(\"limit\")} :{t(\"limit_usdt\")} 10000.00\n

\n )} */}\n
\n
\n );\n};\n\nexport default SellHeader;\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEoAAAA6CAYAAAAX8s+wAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAA4ZVhJZk1NACoAAAAIAAGHaQAEAAAAAQAAABoAAAAAAAKgAgAEAAAAAQAAAEqgAwAEAAAAAQAAADoAAAAA5NdHvQAAA7lJREFUeF7tm+tV2zAUgK8S7P5MNygbwAAFzARlg9IN6AJFnQA6QWGCphPUQAeADWAD+Nk8rN7rKDkxsWy9Ekc23zlgyclRog/pWtcyDFrGAR+d0rEP0TDl7Dk/6YHWiEq4eC9gnGJxb3YGXrBzScrje1l3oiePwTOF8Qke5pKIgQBIEz7al3UnWiOKgdiVxWW8yWqNqAq8yOqCKMJZVldEEU6yuiSKsJbVNVGElay2i1ItOI1ltVoUynjIAL7I6muMZDW2Mv/Ix0kPBMcvcCRPeQdF3NzyOKG0BkfET3n6NVor+EZGFKYbu30Qw3VKWuaOx1euI6sRUROY0Cp6MKttBldZjYjaAeEtq68COz+UxRwXWY2IoniAX+pSVtdF2ofoSpYX2MryHswP+OSEwfQUm37uQcRTzh7lSyvQrZFpb7Kc8Xuhn4mXuuBsGuC9ijrkoyts8LOsEviB0a7PG2g+MZHlbeqVSCIGU5gmsrx1mExDL6IUknJwGlZedptGV5azqCpJoVAnK8OFsZOoNkiaQ7Jw9NzIagEG7JO1qDZJImR/SjMFAeK3laiWSlL1B5c5MV0dzeiaJHztmJY3RqLqGsVBqlxcbiN6kmbrKCzrodMoXjku8ViY5xggrzNgK6nEuvnLI9oMVWIiicB6PbqN4vtSLG/k1kk94olBvF+WFZhKImqnnk2j2wH7kMHoTFYW2PanUlS4kuawQvrk0h+lKJtGMR5tPBbp4vpHLxVl22i+umWMY7EykG4aHzMD31PER6NNcMj/cUw1zmU1R6Ykjz76UxhRoUpSgd/3yFd/FqLaJqkG4/7kog746OxNUjW5KPxFAbiMN0mS+dRT7bE9AURB5W8VOP3Rc1F4dfiR11bZowdIabdE1kPFeWbIqRfR1FM1ErosL+EjF0WJI4PoGIvByhJQun/oRRIxj1HBy6KsAHUtb6Hf+5JEYFtFSAQK+YNF1TbTAwpNVJua8nEeeubb8zaVeMZRk2+Tqz6boK2laY8N7r5FpRsFtqyIImxl0XZ6D7JfsrouHm54vPG9wsXUW8Z2GjLIVu7/rIE91RMn66RUFBF6zPKNUhSxnbLE0FeANqE0Rr1GN2ZlMC573DAVjHm6PyUeb8/ja1nZKFqiCB1Z8lh43kmA+H7L36lyyWConHrL6ExD+dNKtEURGrJai5EooquyjEURXZRlJYromixrUUSXZDmJIupkKW5/BIezKKJKFmb7W7UZaov2glOXQz66wEZP6bZIBv2vd3yn8G8WYQLwHyX+HwvL5EjWAAAAAElFTkSuQmCC\"","import { Fragment, useState, useContext, useEffect } from \"react\";\nimport { useMediaQuery } from \"react-responsive\";\n\n// Context\nimport SellContext from \"../../context/sell/SellContext\";\nimport BalanceContext from \"../../context/balance/BalanceContext\";\nimport HttpErrorContext from \"../../context/httpError/HttpErrorContext\";\n\n// Lang Context\nimport { useI18n } from \"../../lang\";\n\n// Components\nimport BaseSpinner from \"../Ui/BaseSpinner\";\n\n// Utils\nimport { locationMoneyPrefix, locationMoneyCalc } from \"../../lib/utils\";\n\n// Style\nimport Col from \"react-bootstrap/Col\";\nimport Form from \"react-bootstrap/Form\";\nimport Button from \"react-bootstrap/Button\";\nimport Spinner from \"react-bootstrap/Spinner\";\n\nimport changeMoney from \"../../Assets/i_twoways.png\";\n\nconst SellForm = () => {\n const mobileApp = useMediaQuery({ query: \"(max-width: 1199px)\" });\n\n // Lang Context\n const { t } = useI18n();\n\n // Balance Context\n const balanceContext = useContext(BalanceContext);\n const { getBalance, avb, level } = balanceContext;\n\n // Sell Context\n const sellContext = useContext(SellContext);\n const { getExRate, exRate, setSellCount, setShowBank } = sellContext;\n\n // Http Error Context\n const httpErrorContext = useContext(HttpErrorContext);\n const { errorText, setHttpError } = httpErrorContext;\n\n const [usdt, setUsdt] = useState({\n val: \"\",\n isValid: true,\n error: \"\",\n });\n\n const [cny, setCny] = useState({\n val: \"\",\n isValid: true,\n error: \"\",\n });\n\n const [formValid, setFormValid] = useState(false);\n const [fetchLoading, setFetchLoading] = useState(false);\n const [showBankWallet, setShowBankWallet] = useState(false);\n\n useEffect(() => {\n getExRate();\n getBalance();\n // eslint-disable-next-line\n }, []);\n\n useEffect(() => {\n const data = {\n usdt: usdt.val,\n cny: cny.val,\n };\n setSellCount(data);\n // eslint-disable-next-line\n }, [usdt, cny]);\n\n useEffect(() => {\n if (formValid) {\n setShowBank(true);\n }\n return setFormValid(false);\n // eslint-disable-next-line\n }, [formValid]);\n\n useEffect(() => {\n if (errorText === \"交易額度不足/每次\" || errorText === \"交易額度不足/30天\") return;\n if (errorText) alert(errorText);\n return () => {\n setHttpError(\"\");\n };\n // eslint-disable-next-line\n }, [errorText]);\n\n const onChange = (e) => {\n if (!e.target.val) setShowBank(false);\n\n if (e.target.name === \"usdt\") {\n if (e.target.value < 0 || e.target.value === \"e\") {\n setUsdt({\n val: \"\",\n isValid: true,\n error: \"\",\n });\n return;\n }\n\n let counter = locationMoneyCalc(e.target.value * exRate);\n\n setCny({\n val: counter,\n isValid: true,\n error: \"\",\n });\n setUsdt({\n val: e.target.value.trim(),\n isValid: true,\n error: \"\",\n });\n\n if (!e.target.val) setShowBankWallet(false);\n }\n\n if (e.target.name === \"cny\") {\n if (e.target.value < 0 || e.target.value === \"e\") {\n setCny({\n val: \"\",\n isValid: true,\n error: \"\",\n });\n return;\n }\n let counter = (e.target.value / exRate).toFixed(2);\n\n setUsdt({\n val: counter,\n isValid: true,\n error: \"\",\n });\n setCny({\n val: e.target.value.trim(),\n isValid: true,\n error: \"\",\n });\n\n if (!e.target.val) setShowBankWallet(false);\n }\n };\n\n // 提取所有\n const fetchAll = async () => {\n setFetchLoading(true);\n await getBalance();\n\n let usdtCount = Number(avb).toFixed(2);\n let cnyCount = (usdtCount * Number(exRate)).toFixed(2);\n\n if (usdtCount <= 0) {\n usdtCount = 0;\n cnyCount = 0;\n }\n\n setUsdt({\n val: usdtCount,\n isValid: true,\n error: \"\",\n });\n\n setCny({\n val: cnyCount,\n isValid: true,\n error: \"\",\n });\n\n if (avb <= 0)\n setUsdt({ val: \"\", isValid: false, error: t(\"avb_insufficient\") });\n\n setFetchLoading(false);\n };\n\n // 表單驗證\n const validForm = () => {\n setFormValid(true);\n\n if (Number(usdt.val) > Number(avb)) {\n setUsdt({\n val: usdt.val,\n isValid: false,\n error: t(\"avb_over_limit\"),\n });\n\n setFormValid(false);\n }\n\n if (usdt.val === \"\" || usdt.val <= 0) {\n setUsdt({\n val: \"\",\n isValid: false,\n error: t(\"sell_error_invalid_number\"),\n });\n\n setFormValid(false);\n }\n\n if (cny.val === \"\" || cny.val <= 0) {\n setCny({\n val: \"\",\n isValid: false,\n error: t(\"sell_error_invalid_number\"),\n });\n\n setFormValid(false);\n }\n\n // 有1~2位小数的正數,且不能為0或0開頭\n let rule = /^([1-9][0-9]*)+(\\.[0-9]{1,2})?$/;\n let lowerLimit = process.env.REACT_APP_HOST_NAME === \"88U\" ? 30 : 100;\n let upperLimit = process.env.REACT_APP_HOST_NAME === \"88U\" ? level?.day : 10000;\n\n\n if (\n !rule.test(usdt.val) ||\n !rule.test(cny.val) ||\n usdt.val < lowerLimit ||\n usdt.val > upperLimit\n ) {\n setUsdt({\n val: \"\",\n isValid: false,\n error: t(\"sell_error_invalid_number\"),\n });\n\n setCny({\n val: \"\",\n isValid: true,\n error: \"\",\n });\n\n setFormValid(false);\n }\n };\n\n // const onSubmit = e => {\n // e.preventDefault();\n // validForm();\n // };\n\n return (\n \n {exRate ? (\n
\n {/* sell count */}\n \n \n {fetchLoading ? (\n \n ) : (\n \n {t(\"btn_fetch_all\")}\n \n )}\n \n \n\n \n \n event.currentTarget.blur()}\n className=\"easy-border\"\n placeholder={t(\"sell_enter_qua\")}\n autoComplete=\"off\"\n type=\"number\"\n step=\"number\"\n // step=\"any\"\n isInvalid={!usdt.isValid}\n value={usdt.val}\n name=\"usdt\"\n onChange={onChange}\n disabled={level?.day === 0}\n style={{\n padding: 30,\n fontSize: 20,\n }}\n />\n\n {/* 錯誤提示 */}\n {usdt.error && (\n \n *{usdt.error}\n \n )}\n\n USDT\n \n\n {/* img */}\n \n \n \n\n \n event.currentTarget.blur()}\n className=\"easy-border\"\n autoComplete=\"off\"\n type=\"number\"\n step=\"any\"\n name=\"cny\"\n isInvalid={!cny.isValid}\n value={cny.val}\n onChange={onChange}\n disabled={level?.day === 0}\n style={{\n padding: 30,\n fontSize: 20,\n }}\n />\n\n {locationMoneyPrefix()}\n \n \n\n {usdt.val && (\n \n \n

{t(\"e_wallet\")}

\n \n {t(\"btn_bank\")}\n \n\n {process.env.React_APP_HOST_NAME === \"K100U\" && (\n \n {t(\"btn_aliPay\")}\n \n )}\n\n \n {t(\"choose_e_wallet\")}\n \n
\n
\n )}\n \n ) : (\n \n )}\n
\n );\n};\n\nconst changeMoneyIcon = {\n width: 45,\n};\n\nconst changeMoneyIconMobile = {\n transform: \"rotate(90deg)\",\n width: 45,\n};\n\nconst inputText = {\n color: \"#D7E2F3\",\n position: \"absolute\",\n top: 0,\n transform: \"translateY(75%)\",\n right: 30,\n fontSize: 17,\n};\n\nexport default SellForm;\n","export const OPEN_WEB_PUSH_NOTIFY = \"OPEN_WEB_PUSH_NOTIFY\";\nexport const SET_DEVICE_ID = \"SET_DEVICE_ID\";\n\n// Instant\nexport const instantActionsTypes = {\n SET_INSTANT_ORDER: \"SET_INSTANT_ORDER\",\n CURRENT_INSTANT_ORDER: \"CURRENT_INSTANT_ORDER\",\n};\n\n// Order\nexport const orderActionsTypes = {\n SET_ORDER_DATA: \"SET_ORDER_DATA\",\n};\n\n// Account\nexport const accountActionsTypes = {\n // Set\n SET_CURRENT_ACC_BEGIN: \"SET_CURRENT_ACC_BEGIN\",\n SET_CURRENT_ACC_SUCCESS: \"SET_CURRENT_ACC_SUCCESS\",\n SET_CURRENT_ACC_ERROR: \"SET_CURRENT_ACC_ERROR\",\n SET_CURRENT_ACC_CLEAR: \"SET_CURRENT_ACC_CLEAR\",\n\n // Get\n GET_CURRENT_ACC_BEGIN: \"GET_CURRENT_ACC_BEGIN\",\n GET_CURRENT_ACC_SUCCESS: \"GET_CURRENT_ACC_SUCCESS\",\n GET_CURRENT_ACC_ERROR: \"GET_CURRENT_ACC_ERROR\",\n GET_CURRENT_ACC_CLEAR: \"GET_CURRENT_ACC_CLEAR\",\n\n // History\n SET_HISTORY_ACC_BEGIN: \"SET_HISTORY_ACC_BEGIN\",\n SET_HISTORY_ACC_SUCCESS: \"SET_HISTORY_ACC_SUCCESS\",\n SET_HISTORY_ACC_ERROR: \"SET_HISTORY_ACC_ERROR\",\n SET_HISTORY_ACC_CLEAR: \"SET_HISTORY_ACC_CLEAR\",\n};\n\n// Expired Order\nexport const expiredActionTypes = {\n SET_EXPIRED_BEGIN: \"SET_EXPIRED_BEGIN\",\n SET_EXPIRED_SUCCESS: \"SET_EXPIRED_SUCCESS\",\n SET_EXPIRED_ERROR: \"SET_EXPIRED_ERROR\",\n SET_EXPIRED_CLEAR: \"SET_EXPIRED_CLEAR\",\n};\n\n// Auto Pickup\nexport const autoPickActionTypes = {\n SET_AUTO_PICK_BEGIN: \"SET_AUTO_PICK_BEGIN\",\n SET_AUTO_PICK_SUCCESS: \"SET_AUTO_PICK_SUCCESS\",\n SET_AUTO_PICK_ERROR: \"SET_AUTO_PICK_ERROR\",\n SET_AUTO_PICK_CLEAR: \"SET_AUTO_PICK_CLEAR\",\n};\n\n// Bank Form\nexport const bankFormActionsTypes = {\n SET_BUY_FORM: \"SET_BUY_FORM\",\n SET_SELL_FORM: \"SET_SELL_FORM\",\n};\n\n// Member Chat\nexport const memberChatActionsTypes = {\n SHOW_CHAT: \"[member-chat]: SET_SHOW_CHAT\",\n SET_MESSAGE_LIST: \"[member-chat]: SET_MESSAGE_LIST\",\n SET_MESSAGE: \"[member-chat]: SET_MESSAGE\",\n};\n\n// Kyc\nexport const kycActionsTypes = {\n SET_KYC_BEGIN: \"SET_KYC_BEGIN\",\n SET_KYC_SUCCESS: \"SET_KYC_SUCCESS\",\n SET_KYC_ERROR: \"SET_KYC_ERROR\",\n SET_KYC_CLEAR: \"SET_KYC_CLEAR\",\n\n GET_KYC_BEGIN: \"GET_KYC_BEGIN\",\n GET_KYC_SUCCESS: \"GET_KYC_SUCCESS\",\n GET_KYC_ERROR: \"GET_KYC_ERROR\",\n GET_KYC_CLEAR: \"GET_KYC_CLEAR\",\n\n REMOVE_KYC_BEGIN: \"REMOVE_KYC_BEGIN\",\n REMOVE_KYC_SUCCESS: \"REMOVE_KYC_SUCCESS\",\n REMOVE_KYC_ERROR: \"REMOVE_KYC_ERROR\",\n REMOVE_KYC_CLEAR: \"REMOVE_KYC_CLEAR\",\n};\n\n// User\nexport const userActionsTypes = {\n SET_USER_BEGIN: \"SET_USER_BEGIN\",\n SET_USER_SUCCESS: \"SET_USER_SUCCESS\",\n SET_USER_ERROR: \"SET_USER_ERROR\",\n SET_USER_CLEAR: \"SET_USER_CLEAR\",\n\n GET_USER_BEGIN: \"GET_USER_BEGIN\",\n GET_USER_SUCCESS: \"GET_USER_SUCCESS\",\n GET_USER_ERROR: \"GET_USER_ERROR\",\n GET_USER_CLEAR: \"GET_USER_CLEAR\",\n};\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADoAAAAzCAYAAADGtBvgAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAASKSURBVHja1JpdaFRHFMd/7qpFqBqrtvqiGBA/olb0qaVUUOMX2D5U1CeRVAxKtFRNLVg1mipiNCKtH9EqtC+tn6hRbKzxwVLpg4pordXAin1oaVO7IRRqa6x9uOeyZ8fdzd6PuXf9Q8gZsnfm/HYmc+acuT2enuyLD/UAvgNeI1pdAd4Annp9MOFzwAUxQAK8Dsz3NTM+ZrQP8BMwjHj0ABgNPLI9o6sV5O9Af1nKNn/6y1gAw8UHq0t3KLBWtT8COiOYxU5gvWp/CAyxCboVeFHsm8DhCJfsIRkT8WGLLdDJwCLVXgU8iRD0iYzpajEwyQZoo/r8aaA1ho2oFTijfG8MG3Qe8KbYj4Fa4tMa8QFgCvBOWKAvANtV+1OgLUbQNvHB1XbxMTDoe8AIsf8ANhO/NgMPxS4HVgYFfQVYp9p1QEcJgHYAG40w93IQ0Hqgn9g/Ak0+HSuX82munz999tkkPiE+1vsFnQBUGeGky6dTaZ9/K6Qu44T0LjDeD+guICn2eaAlwFKzAQrwtfiG+LrLK+jbwNQ831ypabVaadOAt4oF7QU0qPY+4I5FR9MBn78D7FftHcLQLegKYKRyYpNloHQIfdepfkYCNd2BDjKyBB2vShn0oRHfNwADC4HWAWVi3wX2RLBE0yH1vwe4J3aZuRI1aAVQrdq16kwZhlKWQR/LOdhVNTA2F+hOoKfYF4HmiDadVIhjNIvvCMtOE3Q2MFPlfe9b2F1tz2iuPHmWsJEQcp3XfQb8EGEYSYU8zi1hyFqpCWAZTlUtV20mihlNWRhrPZla1hhgWcKIOV8C7REeDNKWxmoXFlc1CSOELAQGWxr8WkSziTAs1MWCBLAXpyANTv00ysTa1ozWCwvCts+t1M8Bzqldd6KlDWm65KZ6lq+FPMY44IbKvOYA5/WVRAswQ+xvlP286QJQqZhmQfbdS4V8E+6hYS5wNmQnBgBL5XcKOBby8p1LphzaJSvztgnqnheXq7Pu+BCPgZNlpQwwNqPKkDalXhJDRymWmkKH+g6xRynoMHTUgHRrSU0h9b9cQXYIS97spd0oMj2T7vhUubEJmRtUUA0kuypYj1OaLZh46wL1S0YHpaqNarW0AZ8UU2H4F/hAtfURMcjxL9//4bGAfY8WHwuml/mKY6eAS7nSnQCan2OHTRk5sB81qkjRinMB9owKXe2/KsE8qVKeloBOmeHlQMD+ZuKUPN2DziQyd6hFgwIcBJaIfVviUleJ/F/2lLhfoXxdmu/D3V1J6Kv7ikIdxaBqBdkpvuIX9Dec63xXm8gUz+JUmREnt5B5mcMXKMBu4L7Ygywm5l60QXxBfNvd3QPFgD4ywk0NmQJ3HDIL1LXAP2GAAhwHvhW7N9lXFlGrgcyVw2XgRDEPeXlZYxXwn9j6EipKTZOxEV+KrlZ6Ab0KfGEE6mSEkEmyq5WfA9dtgIJzzf+XOlBURQhahXM5jfiwzsvDXkF/IfsNFX31b1P9gI9Vexvwq5cOnse3O3+WvNP6251/47x0GJfWeoX0CwrwFfB9DJBXgCN+Hvx/ANhwBaghy1b3AAAAAElFTkSuQmCC\"","import axios from \"axios\";\n\nexport const authFetch = axios.create({\n baseURL: \"/j\",\n});\n\nauthFetch.interceptors.request.use(\n (config) => {\n config.headers.common[\"login_session\"] = `${localStorage.getItem(\"token\")}`;\n return config;\n },\n (error) => {\n return Promise.reject(error);\n }\n);\n\nauthFetch.interceptors.response.use(\n (response) => {\n return response;\n },\n (error) => {\n // console.log(error.response);\n if (error.response.status === 401) {\n alert(\"401 error\");\n }\n return Promise.reject(error);\n }\n);\n","import { kycActionsTypes } from \"../type\";\nimport { authFetch } from \"../../config/axiosConfig\";\n\nexport const setKyc = (kycData) => async (dispatch) => {\n dispatch({ type: kycActionsTypes.SET_KYC_BEGIN });\n\n try {\n const { data } = await authFetch.post(\"/Req_UserBankSet.aspx\", {\n ...kycData,\n });\n dispatch({ type: kycActionsTypes.SET_KYC_SUCCESS, payload: data });\n } catch (error) {\n dispatch({ type: kycActionsTypes.SET_KYC_ERROR, payload: error.message });\n }\n};\n\nexport const getKyc = () => async (dispatch) => {\n dispatch({ type: kycActionsTypes.GET_KYC_BEGIN });\n\n try {\n const { data } = await authFetch.get(\"/Get_UserBankSet.aspx\");\n dispatch({ type: kycActionsTypes.GET_KYC_SUCCESS, payload: data.data });\n } catch (error) {\n dispatch({ type: kycActionsTypes.GET_KYC_ERROR, payload: error.message });\n }\n};\n\nexport const removeKyc = (kycToken) => async (dispatch) => {\n dispatch({ type: kycActionsTypes.REMOVE_KYC_BEGIN });\n\n try {\n const { data } = await authFetch.post(\"/Req_UserBankSet_Remove.aspx\", {\n token: kycToken,\n });\n dispatch({ type: kycActionsTypes.REMOVE_KYC_SUCCESS, payload: data.data });\n } catch (error) {\n dispatch({\n type: kycActionsTypes.REMOVE_KYC_ERROR,\n payload: error.message,\n });\n }\n};\n\nexport const cleanSetKycStatus = () => ({\n type: kycActionsTypes.SET_KYC_CLEAR,\n});\n\nexport const cleanGetKycStatus = () => ({\n type: kycActionsTypes.GET_KYC_CLEAR,\n});\n\nexport const cleanRemoveKycStatus = () => ({\n type: kycActionsTypes.REMOVE_KYC_CLEAR,\n});\n","import { useState, useEffect, useContext } from \"react\";\n\n// Redux\nimport { useSelector, useDispatch } from \"react-redux\";\nimport Spinner from \"react-bootstrap/Spinner\";\n\n\n// Context\nimport SellContext from \"../../context/sell/SellContext\";\n\n// Antd\nimport { Modal } from \"antd-mobile\";\n\n// Actions\nimport { setSellBankForm } from \"../../store/actions/bankFormActions\";\n\n// Lang Context\nimport { useI18n } from \"../../lang\";\n\n// Images\nimport cautionImag from \"../../Assets/88u/icon_注意.png\";\n\n// Style\nimport Col from \"react-bootstrap/Col\";\nimport Form from \"react-bootstrap/Form\";\nimport Button from \"react-bootstrap/Button\";\n\nimport AuthContext from \"../../context/auth/AuthContext\";\nimport { getKyc } from \"../../store/actions/kycAction\";\n\nconst SellBankForm = () => {\n // Lang Context\n const { t } = useI18n();\n const dispatch = useDispatch();\n\n const authContext = useContext(AuthContext);\n const { isAgent } = authContext;\n\n const [allowTrans, setAllowTrans] = useState(false);\n\n const { data: getKycData } = useSelector((state) => state.getKyc);\n\n // Init State\n const [name, setName] = useState({\n val: \"\",\n isValid: true,\n error: \"\",\n });\n\n const [bank, setBank] = useState({\n val: \"\",\n isValid: true,\n error: \"\",\n });\n\n const [account, setAccount] = useState({\n val: \"\",\n isValid: true,\n error: \"\",\n });\n\n const [city, setCity] = useState({\n val: \"\",\n isValid: true,\n error: \"\",\n });\n\n const [formValid, setFormValid] = useState(false);\n\n // Sell Context\n const sellContext = useContext(SellContext);\n const { getOrderToken, setWsPairing, sellCount, wsPairing } = sellContext;\n\n // ===========\n // Function\n // ===========\n const onChange = (e) => {\n if (e.target.name === \"name\") {\n setName({\n val: e.target.value.trim(),\n isValid: true,\n error: \"\",\n });\n }\n\n if (e.target.name === \"bank\") {\n setBank({\n val: e.target.value.trim(),\n isValid: true,\n error: \"\",\n });\n }\n\n if (e.target.name === \"account\") {\n setAccount({\n val: e.target.value.trim(),\n isValid: true,\n error: \"\",\n });\n }\n\n if (e.target.name === \"city\") {\n setCity({\n val: e.target.value.trim(),\n isValid: true,\n error: \"\",\n });\n }\n };\n\n // 表單驗證\n const validForm = () => {\n setFormValid(true);\n\n if (name.val === \"\") {\n setName({\n val: \"\",\n isValid: false,\n error: t(\"sell_error_enter_payee\"),\n });\n\n setFormValid(false);\n }\n\n if (bank.val === \"\") {\n setBank({\n val: \"\",\n isValid: false,\n error: t(\"sell_error_enter_bank\"),\n });\n\n setFormValid(false);\n }\n\n if (account.val === \"\") {\n setAccount({\n val: \"\",\n isValid: false,\n error: t(\"sell_error_enter_payee_account\"),\n });\n\n setFormValid(false);\n }\n\n if (city.val === \"\" && process.env.REACT_APP_HOST_NAME === \"K100U\") {\n setCity({\n val: \"\",\n isValid: false,\n error: t(\"sell_error_enter_city\"),\n });\n\n setFormValid(false);\n }\n };\n\n // ===========\n // UseEffect\n // ===========\n\n useEffect(() => {\n if (process.env.REACT_APP_HOST_NAME === \"K100U\") return;\n if (!getKycData) return;\n const lastItem = getKycData?.[getKycData.length - 1];\n if (lastItem?.User_BankStatus !== 101) {\n setAllowTrans(false)\n } else {\n setAllowTrans(true)\n }\n }, [getKycData]);\n\n // 表單驗證後發送請求\n useEffect(() => {\n if (!formValid) {\n return;\n }\n\n const data = {\n usdt: sellCount.usdt,\n name: name.val,\n bank: bank.val,\n account: account.val,\n city: city.val,\n };\n\n if (process.env.REACT_APP_HOST_NAME === \"88U\" && formValid) {\n setFormValid(false);\n\n Modal.alert({\n header: \"注意\",\n title:

請注意

,\n showCloseButton: true,\n content: (\n \n ATM轉帳時請註記持有人的\n 真實姓名\n ,並顯示於雙方明細,資料不符時將不受理交易服務,並退還收款金額,相關手續費會於退款時一併扣除,謝謝。\n \n ),\n confirmText: \"確定\",\n onConfirm: () => {\n dispatch(setSellBankForm(data));\n setWsPairing(true);\n getOrderToken(data);\n },\n });\n return;\n }\n\n setWsPairing(true);\n getOrderToken(data);\n setFormValid(false);\n\n //eslint-disable-next-line\n }, [formValid]);\n\n useEffect(() => {\n if (isAgent) return;\n dispatch(getKyc());\n }, [dispatch, isAgent]);\n\n return (\n
\n {process.env.REACT_APP_HOST_NAME === \"88U\" && !isAgent && (\n <>\n 選擇銀行帳號\n {\n const currentBank = getKycData.find(\n (el) => el.token === value.target.value\n );\n console.log(currentBank);\n setName({\n val: currentBank.P2,\n isValid: true,\n error: \"\",\n });\n\n setAccount({\n val: currentBank.P1,\n isValid: true,\n error: \"\",\n });\n\n setBank({\n val: currentBank.P3,\n isValid: true,\n error: \"\",\n });\n }}\n >\n \n {getKycData\n ?.filter(\n (el, index) =>\n index === getKycData.length - 1 && el.User_BankStatus === 101\n )\n ?.map((el) => (\n <>\n {`銀行代號:${el.P3} 帳號: ${el.P1} 戶名: ${el.P2}`}\n \n ))}\n \n\n {(account.error || bank.error || name.error) && (\n \n *{account.error}\n \n )}\n \n )}\n\n {(process.env.REACT_APP_HOST_NAME === \"K100U\" || isAgent) && (\n <>\n \n \n \n {t(\"sell_payee\")}\n\n {name.error && (\n \n *{name.error}\n \n )}\n \n \n \n \n {t(\"sell_payee_account\")}\n \n\n {account.error && (\n \n *{account.error}\n \n )}\n \n \n\n \n \n \n {t(\"sell_bank\")}\n\n {bank.error && (\n \n *{bank.error}\n \n )}\n \n\n {process.env.REACT_APP_HOST_NAME === \"K100U\" && (\n \n \n \n {t(\"sell_city\")}\n \n\n {city.error && (\n \n *{city.error}\n \n )}\n \n )}\n \n \n )}\n\n \n \n \n {wsPairing && }\n\n {allowTrans ? t(\"btn_next\") : '銀行帳號尚未驗證'}\n \n \n \n \n );\n};\n\nexport default SellBankForm;\n","import { bankFormActionsTypes } from \"../type\";\n\nexport const setBuyBankForm = (data) => ({\n type: bankFormActionsTypes.SET_BUY_FORM,\n payload: data\n})\n\nexport const setSellBankForm = (data) => ({\n type: bankFormActionsTypes.SET_SELL_FORM,\n payload: data\n})","export default __webpack_public_path__ + \"static/media/icon_search.44d71e54.gif\";","import Modal from 'react-bootstrap/Modal';\nimport searchIcon from '../../Assets/icon_search.gif';\n\nimport closeBtn from '../../Assets/blue_close_btn.png';\n\nconst Pairing = props => {\n const { title, text } = props;\n return (\n \n \n \n\n
\n \"search\n \n {title}\n \n

\n {text}\n

\n
\n
\n
\n );\n};\n\nexport default Pairing;\n","import { useI18n } from \"../../lang\";\n\nconst FormFooter = () => {\n // Lang Context\n const { t } = useI18n();\n return (\n
\n
\n
    \n
  • {t(\"form_footer_text_1\")}
  • \n
    \n
  • {t(\"form_footer_text_2\")}
  • \n
    \n
  • {t(\"form_footer_text_3\")}
  • \n
    \n
  • {t(\"form_footer_text_4\")}
  • \n
    \n
  • {t(\"form_footer_text_5\")}
  • \n
    \n
  • {t(\"form_footer_text_6\")}
  • \n
    \n
  • {t(\"form_footer_text_7\")}
  • \n\n {process.env.REACT_APP_HOST_NAME === \"88U\" && (\n <>\n
    \n
  • {t(\"form_footer_text_8\")}
  • \n
    \n
  • {t(\"form_footer_text_9\")}
  • \n
    \n
  • {t(\"form_footer_text_10\")}
  • \n \n )}\n
\n
\n );\n};\n\nexport default FormFooter;\n","import { Fragment, useContext, useEffect } from \"react\";\nimport { useHistory } from \"react-router-dom\";\n\n// context\nimport SellContext from \"../../context/sell/SellContext\";\n\n// Lang Context\nimport { useI18n } from \"../../lang\";\n\n// Utils\nimport { locationMoneyPrefix, locationMoneyCalcWithThousand, usdtThousandBitSeparator } from \"../../lib/utils\";\n\n// Components\nimport SellExRate from \"./SellExRate\";\nimport SellForm from \"./SellForm\";\nimport SellBankForm from \"./SellBankForm\";\nimport Pairing from \"./Pairing\";\nimport FormFooter from \"../Layout/FormFooter\";\n\nconst Sell = () => {\n\n // Lang context\n const { t } = useI18n();\n\n // Router Props\n const history = useHistory();\n\n // Sell Context\n const sellContext = useContext(SellContext);\n const {\n wsPairing,\n wsData,\n cleanAll,\n wsClient,\n sellStatus,\n orderToken,\n showBank,\n cancelOrder,\n } = sellContext;\n\n\n // ===========\n // UseEffect\n // ===========\n useEffect(() => {\n if (wsClient) wsClient.close();\n return () => {\n if (wsClient) wsClient.close();\n cleanAll();\n };\n\n // eslint-disable-next-line\n }, []);\n\n useEffect(() => {\n if (sellStatus === 33)\n history.replace(`/home/transaction/sell/${orderToken}`);\n // eslint-disable-next-line\n }, [sellStatus]);\n\n const onHide = () => {\n if (orderToken) cancelOrder(orderToken);\n if (wsClient) wsClient.close();\n // setWsPairing(false);\n history.replace(\"/home/overview\");\n cleanAll();\n };\n\n return (\n \n \n \n {showBank && }\n \n \n \n );\n};\n\nexport default Sell;\n","import { useReducer, useCallback } from 'react';\n\nconst httpReducer = (state, action) => {\n switch (action.type) {\n case 'SEND':\n return {\n data: null,\n error: null,\n status: 'pending',\n };\n\n case 'SUCCESS':\n return {\n data: action.responseData,\n error: null,\n status: 'completed',\n };\n\n case 'ERROR':\n return {\n data: null,\n error: action.errorMessage,\n status: 'completed',\n };\n\n default:\n return state;\n }\n};\n\nconst useHttp = (reqFun, startWithPending = false) => {\n const [httpState, dispatch] = useReducer(httpReducer, {\n status: startWithPending ? 'pending' : null,\n data: null,\n error: null,\n });\n\n const sendRequest = useCallback(\n async reqData => {\n dispatch({ type: 'SEND' });\n\n try {\n const responseData = await reqFun(reqData);\n dispatch({ type: 'SUCCESS', responseData });\n } catch (error) {\n dispatch({ type: 'ERROR', errorMessage: error.message || 'Something went wrong!' });\n }\n },\n [reqFun]\n );\n\n return {\n ...httpState,\n sendRequest,\n };\n};\n\nexport default useHttp;\n","// Get Header\nconst getHeaders = () => {\n const token = localStorage.getItem(\"token\");\n\n if (!token) return;\n let headers = new Headers();\n headers.append(\"Content-Type\", \"application/json\");\n headers.append(\"login_session\", token);\n\n return headers;\n};\n\nexport const getAgentAcc = async () => {\n const headers = getHeaders();\n const getAccApi = `/j/GetAgentAcc.aspx`;\n\n const response = await fetch(getAccApi, {\n headers,\n });\n\n const data = await response.json();\n\n if (!response.ok) throw new Error(data.msg || \"Could not get agent acc\");\n if (data.code !== 200) throw new Error(data.mag || \"Fetch acc data error\");\n\n return data.data;\n};\n\n//Req_AgentAccHistory.aspx\n\nexport const delAgentAcc = async (id) => {\n const headers = getHeaders();\n const delAccApi = `/j/Req_AgentAccHistory.aspx`;\n\n const response = await fetch(delAccApi, {\n method: \"POST\",\n body: JSON.stringify({ H_id: id }),\n headers,\n });\n\n const data = await response.json();\n\n if (!response.ok) throw new Error(data.msg || \"Could not get agent acc\");\n if (data.code !== 200) throw new Error(data.mag || \"Fetch acc data error\");\n\n return data.msg;\n};\n\nexport const getExpiredOrder = async () => {\n const headers = getHeaders();\n const url = `/j/GetTxExpired.aspx`;\n\n const response = await fetch(url, {\n headers,\n });\n\n const data = await response.json();\n\n if (!response.ok) throw new Error(data.msg || \"Could not get expired order \");\n if (data.code !== 200)\n throw new Error(data.mag || \"Fetch expired order error\");\n\n return data.data;\n};\n\nexport const setAgentAcc = async (accData) => {\n const headers = getHeaders();\n const setAccAPi = `/j/SetAgentAcc.aspx`;\n\n try {\n const response = await fetch(setAccAPi, {\n method: \"POST\",\n headers,\n body: JSON.stringify(accData),\n });\n\n const data = await response.json();\n\n if (!response.ok) throw new Error(data.msg || \"Could not edit acc\");\n\n if (data.code !== 200) throw new Error(data.msg || \"Edit acc data fail.\");\n\n return data.data;\n } catch (error) {\n // console.log(error);\n throw new Error(error);\n }\n};\n\nexport const getOrderDetail = async (accData) => {\n const headers = getHeaders();\n const setAccAPi = `/j/GetTxDetail.aspx`;\n\n try {\n const response = await fetch(setAccAPi, {\n method: \"POST\",\n headers,\n body: JSON.stringify(accData),\n });\n\n const data = await response.json();\n\n if (!response.ok) throw new Error(data.msg);\n\n if (data.code !== 200) throw new Error(data.msg);\n\n return data.data;\n } catch (error) {\n // console.log(error);\n throw new Error(error);\n }\n};\n\n\nexport const getAgentAccHistory = async (accData) => {\n const headers = getHeaders();\n const setAccAPi = `/j/GetAgentAccHistory.aspx`;\n\n try {\n const response = await fetch(setAccAPi, {\n method: \"get\",\n headers,\n body: JSON.stringify(accData),\n });\n\n const data = await response.json();\n\n if (!response.ok) throw new Error(data.msg || \"Could not edit acc\");\n\n if (data.code !== 200) throw new Error(data.msg || \"Edit acc data fail.\");\n\n return data.data;\n } catch (error) {\n // console.log(error);\n throw new Error(error);\n }\n};\n\nexport const sendWebPushToken = async (deviceId) => {\n // console.log(deviceId);\n const token = localStorage.getItem(\"token\");\n const headers = getHeaders(token);\n const sendDeviceIdUrl = `/j/SetDevice_Session.aspx`;\n\n try {\n const response = await fetch(sendDeviceIdUrl, {\n method: \"POST\",\n headers,\n body: JSON.stringify({ DeviceID: deviceId }),\n });\n\n const data = await response.json();\n\n if (!response.ok) throw new Error(data.msg || \"Could not send deviceId\");\n\n if (data.code !== 200) throw new Error(data.msg || \"Send deviceId fail\");\n\n return data;\n } catch (error) {\n // console.log(error);\n throw new Error(error);\n }\n};\n\nexport const confirmReceived = async ({ orderToken, type }) => {\n // console.log(orderToken, type === 'sell');\n const headers = getHeaders();\n\n let url;\n\n if (type === \"sell\") {\n url = `/j/Req_Sell2.aspx`;\n } else {\n url = `/j/Req_BuyMatch2.aspx`;\n }\n\n // console.log(url)\n\n const response = await fetch(url, {\n method: \"POST\",\n headers,\n body: JSON.stringify({\n Token: orderToken,\n }),\n });\n\n const data = await response.json();\n\n if (!response.ok) throw new Error(data.msg || \"Could not fetch buy2\");\n if (data.code !== 200) throw new Error(data.msg || \"Fetch Fail\");\n\n return data.data;\n};\n\nexport const orderAppeal = async (orderToken) => {\n // console.log(orderToken);\n const headers = getHeaders();\n const appealUrl = `/j/Req_Appeal.aspx`;\n\n const response = await fetch(appealUrl, {\n method: \"POST\",\n headers,\n body: JSON.stringify({\n Token: orderToken,\n }),\n });\n\n const data = await response.json();\n\n if (!response.ok) throw new Error(\"Fetch Fail\");\n if (data.code !== 200) throw new Error(\"appeal fail\");\n\n // console.log(data);\n return data.data;\n};\n\nexport const cancelOrder = async (orderToken) => {\n const headers = getHeaders();\n const cancelApi = `/j/Req_CancelOrder.aspx`;\n const response = await fetch(cancelApi, {\n method: \"POST\",\n headers,\n body: JSON.stringify({\n Token: orderToken,\n }),\n });\n\n const data = await response.json();\n\n if (!response.ok) throw new Error(\"Fetch Fail\");\n if (data.code !== 200) throw new Error(\"Cancel fail\");\n\n return data.data;\n};\n","import React from \"react\";\n\n// Style\nimport Row from \"react-bootstrap/Row\";\nimport Col from \"react-bootstrap/Col\";\n\n// Lang Context\nimport { useI18n } from \"../../lang\";\n\n// Utils\nimport { locationMoneyPrefix,usdtThousandBitSeparator, locationMoneyCalcWithThousand } from \"../../lib/utils\";\n\nconst SetAccount = (props) => {\n // Lang Context\n const { t } = useI18n();\n\n // // 千分位加逗號\n // const thousandBitSeparator = (num) => {\n // return (\n // num &&\n // // eslint-disable-next-line\n // (num.toString().indexOf(\".\") != -1\n // ? num.toString().replace(/(\\d)(?=(\\d{3})+\\.)/g, function ($0, $1) {\n // return $1 + \",\";\n // })\n // : num.toString().replace(/(\\d)(?=(\\d{3}))/g, function ($0, $1) {\n // return $1 + \",\";\n // }))\n // );\n // };\n\n console.log(props)\n\n return (\n \n \n

{t(\"buy_total\")}

\n

\n {locationMoneyCalcWithThousand(props.rmbAmt).toString()}\n   {locationMoneyPrefix()}\n

\n \n\n \n

{t(\"buy_quantity\")}

\n

\n {/* 小數第二位,千分逗號 */}\n {usdtThousandBitSeparator(props.usdtAmt).toString()}\n   USDT\n

\n \n \n );\n};\n\nconst confirmBuyTextBox = {\n padding: 20,\n borderRadius: \"5px\",\n border: \"2px solid #3f80fa\",\n // display: 'flex',\n // justifyContent: 'space-between',\n fontSize: \"20px\",\n fontWeight: \"bold\",\n height: \"100%\",\n};\n\nexport default SetAccount;\n","const CountDownTimer = ({ minutes, seconds }) => {\n return (\n \n {('0' + minutes).slice(-2)}:{('0' + seconds).slice(-2)}\n \n );\n};\n\nexport default CountDownTimer;\n","export default \"data:image/png;base64,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\"","import { useState, useContext, useEffect } from \"react\";\nimport Countdown from \"react-countdown\";\n\nimport { useSelector } from \"react-redux\";\n\n// Context\nimport BuyContext from \"../../context/buy/BuyContext\";\n\n// Lang Context\nimport { useI18n } from \"../../lang\";\n\n// Components\nimport CountDownTimer from \"../universal/countDownTimer\";\n\n// Style\nimport clockIcon from \"../../Assets/i_clock.png\";\n\nconst SellHeader = ({ setOverTime }) => {\n const { orderStatus } = useSelector((state) => state.order);\n const { Order_StatusID: statusID } = orderStatus || {};\n\n // Lang Context\n const { t } = useI18n();\n // Buy Context\n const buyContext = useContext(BuyContext);\n const { deltaTime } = buyContext;\n\n // Init State\n const [timeLeft, setTimeLeft] = useState(\n Date.now() + (1000 * 60 * 30 - deltaTime * 1000)\n );\n\n // ===========\n // UseEffect\n // ===========\n useEffect(() => {\n setTimeLeft(Date.now() + (1000 * 60 * 30 - deltaTime * 1000));\n // eslint-disable-next-line\n }, [deltaTime]);\n\n // ==========\n // Function\n // ==========\n const handleComplete = () => {\n setOverTime(true);\n };\n\n return (\n
\n \n {t(\"sell_info_transfer_data\")}\n

\n\n {statusID !== 35 && (\n \n \"clock\n \n {t(\"sell_info_limit_time\")}:\n

\n \n \n \n
\n )}\n \n );\n};\n\nconst pairTitleBox = {\n width: \"50%\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n marginBottom: \"-17px\",\n marginTop: 30,\n};\n\nconst clockStyle = {\n height: 17,\n marginRight: 3,\n};\n\nexport default SellHeader;\n","export default __webpack_public_path__ + \"static/media/warning.dc44250c.png\";","import { useContext, useState, useEffect } from \"react\";\nimport { useRouteMatch, useHistory } from \"react-router-dom\";\n\nimport { useSelector } from \"react-redux\";\n\n// Context\nimport SellContext from \"../../context/sell/SellContext\";\nimport HttpErrorContext from \"../../context/httpError/HttpErrorContext\";\nimport BuyContext from \"../../context/buy/BuyContext\";\n\n// lang Context\nimport { useI18n } from \"../../lang\";\n\n// Utils\nimport { locationMoneyPrefix } from \"../../lib/utils\";\n\n// Hooks\nimport useHttp from \"../../hooks/useHttp\";\n\n// Apis\nimport { orderAppeal } from \"../../lib/api\";\n\n// Components\nimport SetAccount from \"../Buy/SetAccount\";\nimport FormFooter from \"../Layout/FormFooter\";\nimport SellHeader from \"./SellHeader\";\nimport BaseSpinner from \"../Ui/BaseSpinner\";\n\n// Style\nimport btnWait from \"../../Assets/btn_wait.png\";\nimport Button from \"react-bootstrap/Button\";\nimport Container from \"react-bootstrap/Container\";\nimport Row from \"react-bootstrap/Row\";\nimport Col from \"react-bootstrap/Col\";\nimport Spinner from \"react-bootstrap/Spinner\";\n\nimport warningImg from \"../../Assets/warning.png\";\n\nconst SellDetail = () => {\n const { orderStatus } = useSelector((state) => state.order);\n const { Order_StatusID: statusID } = orderStatus || {};\n\n\n // Appeal http\n const {\n sendRequest: appealReq,\n // data: appealData,\n status: appealStatus,\n // error: appealError,\n } = useHttp(orderAppeal);\n\n // Lang Context\n const { t } = useI18n();\n // Router Props\n const match = useRouteMatch();\n const history = useHistory();\n\n const token = match.params.id;\n\n // Sell Context\n const sellContext = useContext(SellContext);\n const { wsData, setConfirmSell, confirmSellAction } = sellContext;\n\n // Http Error Context\n const httpErrorContext = useContext(HttpErrorContext);\n const { httpLoading } = httpErrorContext;\n\n // Buy Context\n const buyContext = useContext(BuyContext);\n const { GetDeltaTime, setDeltaTime, deltaTime } = buyContext;\n\n // Init State\n const [isClick, setIsClick] = useState(false);\n const [overTime, setOverTime] = useState(false);\n\n // ===========\n // UseEffect\n // ===========\n useEffect(() => {\n if (!match.params.id) history.replace(\"/home/overview\");\n GetDeltaTime(match.params.id);\n\n return () => {\n setDeltaTime(null);\n };\n // eslint-disable-next-line\n }, []);\n\n useEffect(() => {\n if (deltaTime > 1800) {\n setOverTime(true);\n } else {\n setOverTime(false);\n }\n }, [deltaTime]);\n\n // ===========\n // Function\n // ===========\n // 確認收款\n const handleSubmit = () => {\n if (!isClick) {\n setConfirmSell(true);\n confirmSellAction(match.params.id);\n }\n\n setIsClick(true);\n };\n\n // const backToHome = () => {\n // history.replace(\"/home/overview\");\n // cleanAll();\n // };\n\n return (\n \n {wsData ? (\n <>\n \n \n \n \n \n\n \n \n

\n {t(\"sell_detail_amount\")}:  \n \n {wsData &&\n wsData.D2.toFixed(2) + ` ${locationMoneyPrefix()}`}\n \n

\n

\n {t(\"sell_detail_payee\")}:{wsData && wsData.P2}\n

\n

\n {t(\"sell_detail_payee_account\")}:{wsData && wsData.P1}\n

\n

\n {t(\"sell_detail_payee_bank\")}:{wsData && wsData.P3}\n

\n\n {process.env.REACT_APP_HOST_NAME === \"K100U\" && (\n

\n {t(\"sell_detail_payee_city\")}:{wsData && wsData.P4}\n

\n )}\n \n\n {wsData && (\n \n \n \n )}\n
\n\n \n \n {!httpLoading ? (\n <>\n {statusID === 33 && (\n \n \n\n {t(\"btn_preparing\")}\n \n )}\n\n {statusID === 34 && (\n <>\n \n {t(\"btn_buyer_already_pay\")}\n \n appealReq(token)}\n className=\"easy-btn mw400 mobile-width\"\n style={{ backgroundColor: \"#bfbfbf\", width: \"100%\" }}\n disabled={appealStatus === \"pending\"}\n >\n {appealStatus === \"pending\" ? \"loading...\" : \"申诉\"}\n \n \n )}\n\n {statusID === 35 && (\n
\n
\n \n
\n 申訴中\n
\n
\n \n
\n )}\n \n ) : (\n \n )}\n \n
\n \n ) : (\n \n )}\n\n \n
\n );\n};\n\nconst infoBtn = {\n backgroundColor: \"#3E80F9\",\n borderRadius: \"5px\",\n color: \"#fff\",\n width: \"100%\",\n padding: \"15px\",\n margin: \"10px auto 15px\",\n border: \"none\",\n transition: \"0.3s\",\n cursor: \"pointer\",\n fontSize: \"17px\",\n};\n\nconst infoBtnDisabled = {\n backgroundColor: \"grey\",\n borderRadius: \"5px\",\n color: \"#fff\",\n width: \"100%\",\n padding: \"15px\",\n margin: \"10px auto 15px\",\n border: \"none\",\n transition: \"0.3s\",\n fontSize: \"17px\",\n opacity: \"0.65\",\n cursor: \"not-allowed\",\n};\n\nexport default SellDetail;\n","export default \"data:image/png;base64,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\"","import { createContext } from 'react';\nconst BalanceContext = createContext();\nexport default BalanceContext;\n","export default __webpack_public_path__ + \"static/media/newMessage.f55815d1.mp3\";","import { useContext, useEffect, useState, useRef } from \"react\";\n\nimport { useSelector } from \"react-redux\";\n\nimport { useRouteMatch } from \"react-router-dom\";\nimport Resizer from \"react-image-file-resizer\"; // 圖片壓縮\nimport { PhotoProvider, PhotoConsumer } from \"react-photo-view\"; // 圖片檢視\nimport \"react-photo-view/dist/index.css\";\n\n// Context\nimport ChatContext from \"../../context/chat/ChatContext\";\n\n// Lang Context\nimport { useI18n } from \"../../lang\";\n\n// Play Sound\nimport useSound from \"use-sound\";\nimport newMessageSound from \"../../Assets/mp3/newMessage.mp3\";\n\n// Style\nimport Spinner from \"react-bootstrap/Spinner\";\nimport Badge from \"react-bootstrap/Badge\";\nimport Button from \"react-bootstrap/Button\";\nimport classes from \"./TheChat.module.scss\";\n\nconst TheChat = (props) => {\n const { orderStatus } = useSelector((state) => state.order);\n const { Order_StatusID: statusID, Tx_HASH: statusHash } = orderStatus || {};\n\n // Lang Context\n const { t } = useI18n();\n // Router Props\n const match = useRouteMatch();\n\n const messagesEndRef = useRef();\n\n // Init State\n const [userInput, setUserInput] = useState(\"\");\n // const [messagesEnd, setMessagesEnd] = useState(null);\n const [isAgent, setIsAgent] = useState(false);\n\n // Play Sound State\n const [play, { stop }] = useSound(newMessageSound, {\n interrupt: false,\n loop: true,\n });\n // const [loop, setLoop] = useState();\n const [soundState, setSoundState] = useState(true);\n\n // Chat Context\n const chatContext = useContext(ChatContext);\n const {\n instantClient,\n client,\n instantMessages,\n messages,\n chatConnect,\n instantChat,\n setInstantMessages,\n setMessages,\n chatLoading,\n setChatLoading,\n newMessage,\n setNewMessage,\n } = chatContext;\n\n // ===========\n // function\n // ===========\n const handleChange = (e) => {\n setUserInput(e.target.value);\n };\n\n //點擊後發送訊息到server\n const sendMessage = (value, e) => {\n if (value === \"\") return;\n\n if (\n e.keyCode === 13 ||\n e.target.id === \"sendIcon\" ||\n e.target.id === \"sendIcon1\"\n ) {\n if (instantClient) {\n instantClient.send(\n JSON.stringify({\n Message_Type: 1,\n Message: value.toString(),\n })\n );\n }\n\n if (client) {\n client.send(\n JSON.stringify({\n Message_Type: 1,\n Message: value.toString(),\n })\n );\n }\n\n setUserInput(\"\");\n }\n\n return;\n };\n\n const resizeFile = (file) =>\n new Promise((resolve) => {\n Resizer.imageFileResizer(\n file,\n 1024,\n 1024,\n \"JPEG\",\n 100,\n 0,\n (uri) => {\n resolve(uri);\n },\n \"base64\"\n );\n });\n\n const sendImg = async (e) => {\n setChatLoading(true);\n try {\n const file = e.target.files[0]; // get image\n\n if (!file) {\n return;\n }\n\n const image = await resizeFile(file);\n\n if (instantClient) {\n instantClient.send(\n JSON.stringify({\n Message_Type: 2,\n Message: image,\n })\n );\n }\n\n if (client) {\n client.send(\n JSON.stringify({\n Message_Type: 2,\n Message: image,\n })\n );\n }\n } catch (error) {\n alert(error);\n setChatLoading(false);\n }\n };\n\n const scrollToBottom = () => {\n // if (messagesEnd) {\n // messagesEnd.scrollIntoView({ behavior: \"smooth\" });\n // }\n\n messagesEndRef.current?.scroll({\n top: 10000,\n behavior: \"smooth\",\n });\n };\n\n const handleStopSound = () => {\n stop();\n // clearInterval(loop);\n setSoundState(!soundState);\n setNewMessage(false);\n };\n\n // ===========\n // UseEffect\n // ===========\n useEffect(() => {\n if (client) client.close();\n if (instantClient) instantClient.close();\n\n if (match.path.includes(\"instant\")) instantChat(match.params.id);\n if (match.path.includes(\"transaction\")) chatConnect(match.params.id);\n\n if (localStorage.getItem(\"agent\")) setIsAgent(true);\n\n return () => {\n setMessages([]);\n setInstantMessages([]);\n if (client) client.close();\n };\n // eslint-disable-next-line\n }, []);\n\n useEffect(() => {\n if (soundState && newMessage) {\n // 新訊息聲音提示\n play();\n // const soundLoop = setInterval(() => {\n // play();\n // }, 7000);\n // setLoop(soundLoop);\n }\n\n return () => {\n stop();\n\n // if (loop) {\n // stop();\n // clearInterval(loop);\n // }\n };\n\n // eslint-disable-next-line\n }, [newMessage, soundState]);\n\n useEffect(() => {\n scrollToBottom();\n }, [instantMessages, messages]);\n\n return (\n <>\n \n {isAgent && (\n
\n \n {!soundState ? t(\"chat_sound_close\") : t(\"chat_sound_open\")}\n \n
\n )}\n\n {/* Chat Header */}\n
\n

\n {t(\"chat_order_number\")}:\n

\n

{props.hash || statusHash}

\n
\n\n {instantClient ? (\n <>\n {/* Chat Body */}\n \n {instantMessages.map((el, index) => {\n return (\n
\n {/* CS === 2 , instant === 3, */}\n
\n {/* messages */}\n {el.Message_Type === 1 ? (\n <>\n {el.Message_Role === 2 && (\n \n {t(\"chat_customer_server\")}\n \n )}\n \n {el.Message}\n

\n \n ) : (\n <>\n {el.Message_Role === 2 && (\n
\n \n {t(\"chat_customer_server\")}\n \n
\n )}\n\n \n \n \n \n \n \n )}\n\n {/* 日期 */}\n \n {el.Sysdate.split(\" \")\n .splice(1, 1)\n .join()\n .split(\":\")\n .splice(0, 2)\n .join(\":\")}\n
\n
\n {/* {\n setMessagesEnd(el);\n }}\n > */}\n \n );\n })}\n {chatLoading && (\n
\n \n
\n )}\n\n {(statusID === 1 || statusID === 99) && (\n
\n

對話結束

\n
\n )}\n\n {/* */}\n \n\n {/* Chat Bottom */}\n
\n {/* attach-iconBox */}\n \n
\n sendMessage(userInput, e)}\n disabled={statusID === 1 || statusID === 99}\n />\n
\n sendMessage(userInput, e)}\n />\n
\n \n ) : client ? (\n <>\n {/* Chat Body */}\n
\n {messages.map((el, index) => {\n return (\n
\n {/* CS === 2 , instant === 3, */}\n\n
\n {/* messages */}\n {el.Message_Type === 1 ? (\n <>\n {el.Message_Role === 2 && (\n \n {t(\"chat_customer_server\")}\n \n )}\n \n {el.Message}\n

\n \n ) : (\n <>\n {el.Message_Role === 2 && (\n
\n \n {t(\"chat_customer_server\")}\n \n
\n )}\n\n \n \n \n \n \n \n )}\n\n {/* 日期 */}\n \n {el.Sysdate.split(\" \")\n .splice(1, 1)\n .join()\n .split(\":\")\n .splice(0, 2)\n .join(\":\")}\n
\n
\n {/* {\n setMessagesEnd(el);\n }}\n >
*/}\n \n );\n })}\n\n {chatLoading && (\n
\n \n
\n )}\n {(statusID === 1 || statusID === 99) && (\n
\n

對話結束

\n
\n )}\n \n\n {/* Chat Bottom */}\n
\n {/* attach-iconBox label className */}\n \n
\n sendMessage(userInput, e)}\n disabled={statusID === 1 || statusID === 99}\n />\n
\n sendMessage(userInput, e)}\n />\n
\n \n ) : (\n \n \n \n )}\n \n \n );\n};\n\nexport default TheChat;\n","import { createContext } from 'react';\nconst HistoryContext = createContext();\nexport default HistoryContext;\n","import { createContext } from 'react';\nconst InstantContext = createContext();\nexport default InstantContext;\n","import { orderActionsTypes } from \"../type\";\n\nexport const setOrderStatus = (orderData) => ({\n type: orderActionsTypes.SET_ORDER_DATA,\n payload: orderData,\n});\n","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,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\"","import { useContext, useEffect } from \"react\";\nimport copy from \"copy-to-clipboard\";\n\n// Context\nimport HistoryContext from \"../../context/history/HistoryContext\";\n\n// Lang Context\nimport { useI18n } from \"../../lang\";\n\n// Style\nimport Modal from \"react-bootstrap/Modal\";\nimport Button from \"react-bootstrap/Button\";\nimport redIcon from \"../../Assets/i_usdt_red.png\";\nimport blueIcon from \"../../Assets/i_usdt_blue.png\";\nimport purpleIcon from \"../../Assets/i_usdt_purple.png\";\nimport copyIcon from \"../../Assets/i_copy.png\";\n\n// Utils\nimport { locationMoneyPrefix, usdtThousandBitSeparator, usdtThousandBitSeparatorNonAbs , locationMoneyCalcWithThousand} from \"../../lib/utils\";\n\nconst HistoryAllDetail = (props) => {\n // Lang Context\n const { t } = useI18n();\n\n // History Context\n const historyContext = useContext(HistoryContext);\n const { singleDetail, setSingleDetail } = historyContext;\n\n useEffect(() => {\n // console.log(singleDetail);\n return () => {\n setSingleDetail(null);\n };\n // eslint-disable-next-line\n }, []);\n\n const handleCopy = (value) => {\n copy(value);\n\n if (copy(value)) {\n alert(t(\"btn_copy\"));\n } else {\n alert(t(\"btn_copy_fail\"));\n }\n };\n\n return (\n \n \n
\n \n \n {singleDetail.type === 0\n ? t(\"history_buy\")\n : singleDetail.type === 1\n ? t(\"history_sell\")\n : singleDetail.type === 2\n ? t(\"history_transfer_out\")\n : t(\"history_transfer_in\")}\n

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

{t(\"history_date\")}

\n

{singleDetail.date}

\n
\n\n
\n

\n {t(\"history_transaction_status\")}\n

\n

{t(\"history_transaction_complete\")}

\n
\n\n
\n

{t(\"history_transaction_deal\")}

\n \n {singleDetail.type === 0 || singleDetail.type === 3\n ? usdtThousandBitSeparator(singleDetail.usdtAmt)\n : usdtThousandBitSeparatorNonAbs(singleDetail.usdtAmt)}\n

\n
\n\n
\n

{t(\"history_transaction_real\")}

\n {/*

{singleDetail.balance}

*/}\n

{props.balance}

\n
\n\n
\n
\n

\n {t(\"history_transaction_hash\")}\n

\n handleCopy(singleDetail.txHASH)}\n />\n
\n \n {singleDetail.txHASH}\n

\n
\n\n
\n

\n {t(\"history_transaction_charge\")}\n {singleDetail.type === 2 || singleDetail.type === 3\n ? \"(USDT)\"\n : \"%\"}\n

\n {singleDetail.type === 3 ? (\n

0

\n ) : (\n

{singleDetail.charge}

\n )}\n
\n\n {singleDetail.type === 0 || singleDetail.type === 1 ? (\n <>\n
\n

\n {t(\"history_transaction_price\")}\n

\n

\n {singleDetail.exchangePrice &&\n singleDetail.exchangePrice.toFixed(2)}\n

\n
\n\n
\n

{locationMoneyPrefix()}

\n

\n {singleDetail.rmb && locationMoneyCalcWithThousand(singleDetail.rmb)}\n

\n
\n\n
\n

{t(\"history_account\")}

\n

{singleDetail.account}

\n
\n\n
\n

{t(\"history_payee\")}

\n

{singleDetail.payee}

\n
\n\n
\n

{t(\"history_bank\")}

\n

{singleDetail.bank}

\n
\n\n
\n

{t(\"history_branch\")}

\n

{singleDetail.branch}

\n
\n\n {process.env.REACT_APP_HOST_NAME === \"88U\" && (\n <>\n
\n

{t(\"history_payer\")}

\n

{singleDetail.payer}

\n
\n\n
\n

\n {t(\"history_payer_account\")}\n

\n

{singleDetail.payerAccount}

\n
\n\n
\n

\n {t(\"history_payer_bank_code\")}\n

\n

{singleDetail.payerBankCode}

\n
\n \n )}\n \n ) : null}\n
\n\n
\n \n {t(\"btn_close\")}\n \n
\n
\n \n );\n};\n\nconst gridBox = {\n display: \"grid\",\n gridTemplateRows: \"repeat(6, min-content)\",\n gridTemplateColumns: \"repeat(12, 1fr)\",\n gridGap: 1,\n};\n\n// Category\nconst headerTitle = {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n};\n\n// Date\nconst gridContent1 = {\n gridColumn: \"1 / 7\",\n border: \"1px solid #D9E2F1\",\n margin: \"0 -1px -1px 0\",\n borderBottom: \"none\",\n borderRight: \"none\",\n\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"center\",\n padding: 10,\n};\n\n// Status\nconst gridContent2 = {\n gridColumn: \"7 / -1\",\n border: \"1px solid #D9E2F1\",\n margin: \"0 0 -1px 0\",\n borderBottom: \"none\",\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"center\",\n padding: 10,\n};\n\n// 交易額\nconst gridContent4 = {\n gridColumn: \"1 / 7\",\n border: \"1px solid #D9E2F1\",\n margin: \"0 -2px -1px 0\",\n borderBottom: \"none\",\n borderRight: \"none\",\n\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"center\",\n padding: 10,\n};\n\n// 結餘\nconst gridContent5 = {\n gridColumn: \"7 / -1\",\n border: \"1px solid #D9E2F1\",\n margin: \"0 0 -1px 0\",\n borderBottom: \"none\",\n\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"center\",\n padding: 10,\n};\n\n// 交易回執\nconst gridContent6 = {\n gridColumn: \"1 / 7\",\n border: \"1px solid #D9E2F1\",\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"center\",\n margin: \"0 -1px -1px 0\",\n borderRight: \"none\",\n padding: 10,\n};\n\n// 手續費\nconst gridContent7 = {\n gridColumn: \"7 / -1\",\n border: \"1px solid #D9E2F1\",\n margin: \"0 0-1px 0\",\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"center\",\n padding: 10,\n};\n\n// 兌換價\nconst gridContent8 = {\n gridColumn: \"1 / 7\",\n border: \"1px solid #D9E2F1\",\n margin: \"0 -1px -1px 0\",\n borderBottom: \"none\",\n borderRight: \"none\",\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"center\",\n padding: 10,\n borderTop: \"none\",\n};\n\n// RMB\nconst gridContent9 = {\n gridColumn: \"7 / -1\",\n border: \"1px solid #D9E2F1\",\n margin: \"0 0 -1px 0\",\n borderBottom: \"none\",\n borderTop: \"none\",\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"center\",\n padding: 10,\n};\n\n// 帳號\nconst gridContent10 = {\n gridColumn: \"1 / 7\",\n border: \"1px solid #D9E2F1\",\n margin: \"0 -1px -1px 0\",\n borderBottom: \"none\",\n borderRight: \"none\",\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"center\",\n padding: 10,\n};\n\n// 收款人\nconst gridContent11 = {\n gridColumn: \"7 / -1\",\n border: \"1px solid #D9E2F1\",\n margin: \"0 0 -1px 0\",\n borderBottom: \"none\",\n\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"center\",\n padding: 10,\n};\n\n// 銀行\nconst gridContent12 = {\n gridColumn: \"1 / 7\",\n border: \"1px solid #D9E2F1\",\n margin: \"0 -1px -1px 0\",\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"center\",\n padding: 10,\n borderRight: \"none\",\n};\n\n// 分行\nconst gridContent13 = {\n gridColumn: \"7 / -1\",\n border: \"1px solid #D9E2F1\",\n margin: \"0 0 -1px 0\",\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"center\",\n padding: 10,\n};\n\nconst gridContent14 = {\n gridColumn: \"1 / 7\",\n border: \"1px solid #D9E2F1\",\n margin: \"0 -1px -1px 0\",\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"center\",\n padding: 10,\n borderTop: \"none\",\n};\n\nconst gridContent15 = {\n gridColumn: \"7 / -1\",\n border: \"1px solid #D9E2F1\",\n margin: \"-1px -1px -1px -1px\",\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"center\",\n padding: 10,\n borderTop: \"none\",\n};\n\nconst gridContent16 = {\n gridColumn: \"1 / 7\",\n border: \"1px solid #D9E2F1\",\n margin: \"0 -1px -1px 0\",\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"center\",\n padding: 10,\n borderTop: \"none\",\n};\n\nconst iconStyle = {\n height: 15,\n width: 15,\n marginRight: 4,\n};\n\nconst textStyle = {\n alignItems: \"center\",\n marginBottom: 0,\n};\n\nconst closeBtn = {\n padding: \"15px 60px\",\n width: \"100%\",\n fontSize: 16,\n lineHeight: \"1.8\",\n backgroundColor: \"#fff\",\n border: \"1px solid #D7E2F3\",\n borderRadius: \"5px\",\n color: \"#646464\",\n overflow: \"hidden\",\n};\n\nexport default HistoryAllDetail;\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAZCAYAAAA14t7uAAAAAXNSR0IArs4c6QAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAAFqADAAQAAAABAAAAGQAAAAC9uYaxAAADi0lEQVRIDbVVTWhcVRQ+574780Y7MaSii9ootF1I6EZFEDIzNQZasYoLUaS2xXYlFbG1ICnq5KWRKupKRKEoYsHW34pY6aYUO5OhVEoK1gTSoq60rUQxRpLM+znH702Y5Jl5Q1OKF4Z75/x89zt/7zK1WQUvGGDSp0m1g3jRSIUDYv5yZCizd1Haekq4LCqLg/57ROYhIh1lpgklcWJtJIxFmyzTeiX9vOK5Tyx6/ffUAlwYmFtDLh8npa9G9rsDSfP7PbWhhmdYVclQDyI61g58HthTU6BwI4l0RWRWW5LnlM3HpPxDpM6Pp4f5fHzBAjDreUM0qkSvI6pUcAPjXEH9Glh8CpZvWiO7wSYkCrcry7vWCb7pfSUoJpnH51Ne9m2wQkT8cMmrf7ZUb0IKD0F4U8D86KzqBuSuD78HUaA+XHQRxco5jhzZAPDvxlBKUZhR1ARHlPtUefNScC6U/Qtq5FjNy72w9NZiORjBJTkUbBr5XMditoijz5JQz6+XM8WfD/JU7FMq+88jyteSaTEo8wqj3GCwFLj5vzqU7UMEF0HgMIk5AoBbblsVVkuD/gdFz/+Q2PTA9hzS8jiIvh/7GZUINUhfwvMhx9qKl30gBmfWd5ScF5GCcVHtQW7uForuE5V8JDSGyPrv2qt3WBi3tNzCNRH/ghDXgiFsWGPwkuefREccAMunql6msmCLQ8Hz30K6nuzIzQp6HWZtljF8Bnj9veVgNwf6Lbl1pFeeMWQ+ItHDvS9rf+1Vnkhzb48K6+p+BxNIXxjWA5ypnzDkgK1zElF2i+EuNv7Xd+77++Y0YJsmTMqqQ5k96OOj6OlbrUgu1qlBIsSsQ8fsXOnmuiH6I+kTn68KHBvVhjPVeE+uYrn+GKreNmILpSKP7QuYRLuGc9sbrwEj1fR/A15WjlMppQmF59COUocOjDFfyScizWGZMkzlWiaezAY3/HVdjDHa8JddpaHgTxHtwvRsIkd31d7g6esCxsegg4UfwVc0xAT/jvC9U577SRxgDBxJ1EjLMgOeN8NLkHWUJkXmdkQ2f8HO0FQVTJsgFi/HuGFTvPcl7b40Q5MrnfZNHztl8uh7f6YTZtuY5MqUzX8/5vE/TcDmbmccf+uNkqu4Nji7ppN+whvhNpVpe+P5z9guvBp5UbsxDTT2a0zcPd7s7SvE7sAErkoDa5Gp/gbeRyvDbuORbdFD8C/tYXr389PSSQAAAABJRU5ErkJggg==\"","import { useState, useContext, useEffect } from \"react\";\nimport { useRouteMatch } from \"react-router-dom\";\n\nimport { useDispatch, useSelector } from \"react-redux\";\n\nimport { Button } from \"react-bootstrap\";\n\n// Context\nimport HistoryContext from \"../../context/history/HistoryContext\";\nimport InstantContext from \"../../context/instant/InstantContext\";\n\n// Hooks\nimport useHttp from \"../../hooks/useHttp\";\n\n// Actions\nimport { setOrderStatus } from \"../../store/actions/orderActions\";\n\n// Apis\nimport { orderAppeal } from \"../../lib/api\";\n\n// Lang Context\nimport { useI18n } from \"../../lang\";\n\n// Components\nimport HistoryDetail from \"../History/HistoryAllDetail\";\n\n// Style\nimport Card from \"react-bootstrap/Card\";\n\nconst CompleteStatus = (props) => {\n const dispatch = useDispatch();\n const { hash, instantData, statusID, backToHome, setShowComplete } = props;\n\n // Lang Context\n const { t } = useI18n();\n\n const { orderStatus } = useSelector((state) => state.order);\n const { MasterType } = orderStatus || {};\n\n // Router Props\n const match = useRouteMatch();\n\n const orderToken = match.params.id;\n\n // Init State\n const [show, setShow] = useState(false);\n\n // History Context\n const historyContext = useContext(HistoryContext);\n const { singleDetail, detailReq, setSingleDetail } = historyContext;\n\n // Instant Context\n const instantContext = useContext(InstantContext);\n const { sell1Data, buy1Data } = instantContext;\n\n // Appeal http\n const {\n sendRequest: appealReq,\n data: appealData,\n status: appealStatus,\n error: appealError,\n } = useHttp(orderAppeal);\n\n useEffect(() => {\n if (appealData && appealStatus === \"completed\" && !appealError) {\n // console.log(\"set true\", appealData, appealStatus, appealError);\n dispatch(setOrderStatus(appealData));\n if (setShowComplete) {\n setShowComplete(false);\n }\n }\n // eslint-disable-next-line\n }, [appealData, appealStatus, appealError, dispatch]);\n\n const handleClick = () => {\n if (sell1Data || buy1Data) {\n handleInstantData();\n } else {\n detailReq(match.params.id);\n }\n setShow(true);\n };\n\n const handleHide = () => {\n setShow(false);\n };\n\n const handleInstantData = () => {\n let orderDetail;\n\n if (sell1Data) {\n orderDetail = {\n date: sell1Data.CreateDate,\n txHASH: sell1Data.Tx_HASH,\n usdtAmt: sell1Data.UsdtAmt,\n account: sell1Data.P1,\n payee: sell1Data.P2,\n bank: sell1Data.P3,\n branch: sell1Data.P4,\n exchangePrice: sell1Data.D1,\n rmb: sell1Data.D2,\n charge: sell1Data.D3,\n orderState: sell1Data.Order_StatusID,\n type: 0,\n };\n }\n\n if (buy1Data) {\n orderDetail = {\n date: buy1Data.CreateDate,\n txHASH: buy1Data.Tx_HASH,\n usdtAmt: buy1Data.UsdtAmt,\n account: buy1Data.P1,\n payee: buy1Data.P2,\n bank: buy1Data.P3,\n branch: buy1Data.P4,\n exchangePrice: buy1Data.D1,\n rmb: buy1Data.D2,\n charge: buy1Data.D3,\n orderState: buy1Data.Order_StatusID,\n type: 1,\n };\n }\n\n setSingleDetail(orderDetail);\n };\n\n if (props.wsStatus === 34 || statusID === 34) {\n return (\n \n
\n

{t(\"wait_confirm\")}

\n
\n

\n {t(\"transaction_hash\")}: {props.hash}\n

\n {props.type === \"buy\" && (\n

{t(\"complete_text\")}

\n )}\n\n
\n \n \n );\n }\n\n if (props.wsStatus === 1 || statusID === 1) {\n return (\n <>\n {singleDetail && }\n\n \n
\n

{t(\"transaction_done\")}

\n
\n

\n {t(\"transaction_hash\")}: {props.hash || instantData.Tx_HASH}\n

\n {props.type === \"buy\" && (\n

{t(\"transaction_text\")}

\n )}\n
\n \n \n {t(\"btn_transaction_detail\")}\n \n \n \n );\n }\n\n // 取消\n if (props.wsStatus === 99 || statusID === 99) {\n return (\n \n
\n

{t(\"transaction_cancel\")}

\n
\n

\n {t(\"transaction_hash\")}: {props.hash}\n

\n
\n \n \n );\n }\n\n // 超時\n if (props.wsStatus === 98 || statusID === 98) {\n return (\n \n
\n

{t(\"transaction_over_time\")}

\n
\n

\n {t(\"transaction_hash\")}: {hash}\n

\n
\n {(MasterType === 0 && props.type === \"buy\") ||\n (MasterType === 1 && props.type === \"buy\") ? (\n appealReq(orderToken)}\n className=\"easy-btn mw400\"\n disabled={appealStatus === \"pending\"}\n >\n {appealStatus === \"pending\" ? \"Loading...\" : \"申訴\"}\n \n ) : null}\n\n \n {t(\"btn_back_home\")}\n \n \n );\n }\n};\n\nexport default CompleteStatus;\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAxCAYAAADNyhlBAAAAAXNSR0IArs4c6QAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAAHqADAAQAAAABAAAAMQAAAACqGK3qAAACOklEQVRYCe2VPUsdQRSGvWpUVCIoahASMRC0U7SxEBstDGnyB/IH7NKE/AbtAiEQCClSBRsJNhbaiJ2oKAiKHwEF8yGIMWBA9PqMzi57x5k9M3sDFu7Ay8z5et+Zc+fuVFTct1HwPXCxWGwitw90anQwH4E9sKvng0KhcMG6/IFgD3gP/gJpnJIwCR5lVqa4BnwClyB0nFGgNqu64z8oaAYLoNyhOjDirUzyt3IVE/X/WA+L4iS9ShT9r+UWRHVJ8ZJbTVDZ38GTZJKxXsSeAcva38P8HIxp2zWNc+M/WIMIDwlH/Ei8ylaM/7VQO2eru/ZR+C6leMlZqAPUzqfUnxOLN11pkPUadtKcSBqOtb2VN8nVTG1RnSncFQUs86zFZ7o2TIdht0S22sX10G04w9jWruR0zMU4SToc65LLasn5GfliYf2N7Y4CGeeBlLpTNH6nxLOFVMfABnCNhWzMKVUoVYIvLkXtf5lCER6CtB58FURXiUu/v784ZE/BuiD6i/gzf1YhE7J+8EMQPVR5ApV/GLJB8EcQVe197M8qZELWAHYEUfWbNwpUYWEIpcfgTRijZzbC0ymnfetJE56G6L5DeBN//PpIzOYjIeWreLsjaUp/dh3hUneQMCd6SPmDUorYsj0ucdBcxI+EGXDYDfhXHLF9hz93320Hgl4MLtcLtvvZseU1bvWoI3bLHXq5amFovcVy42h2+K3uoL+TlSGjMxfO2LjwsjtrdfhW84q8A3kH8g7c2w5cAa+PpE2T2gfIAAAAAElFTkSuQmCC\"","import { useContext, useEffect, useState } from \"react\";\nimport { useParams, useHistory } from \"react-router-dom\";\nimport { useMediaQuery } from \"react-responsive\";\n\nimport { useSelector } from \"react-redux\";\n\nimport {\n locationMoneyPrefix,\n locationMoneyCalcWithThousand,\n usdtThousandBitSeparator,\n} from \"../../lib/utils\";\n\nimport Pairing from \"./Pairing\";\n\n// ConText\nimport SellContext from \"../../context/sell/SellContext\";\nimport HttpErrorContext from \"../../context/httpError/HttpErrorContext\";\n\n// Lang Context\nimport { useI18n } from \"../../lang\";\n\n// Components\nimport SellExRate from \"./SellExRate\";\nimport SellDetail from \"./SellDetail\";\n// import Pairing from './Pairing';\nimport TheChat from \"../Chat/TheChat.js\";\nimport CompleteStatus from \"../universal/CompleteStatus\";\nimport BaseSpinner from \"../Ui/BaseSpinner\";\n\n// Style\nimport helpIcon from \"../../Assets/i_ask2.png\";\nimport Button from \"react-bootstrap/Button\";\n\nconst SellInfo = () => {\n // Lang Context\n const { t } = useI18n();\n // Break Points\n const isMobile = useMediaQuery({ query: \"(max-width: 1200px)\" }); // 小於等於 1200 true\n\n const { orderStatus } = useSelector((state) => state.order);\n const { Order_StatusID: statusID, Tx_HASH: hash } = orderStatus || {};\n\n // Router Props\n const history = useHistory();\n let { id } = useParams();\n\n /// Http Error Context\n const httpErrorContext = useContext(HttpErrorContext);\n const { errorText, setHttpError } = httpErrorContext;\n\n // Sell Context\n const sellContext = useContext(SellContext);\n const {\n wsData,\n sellWebSocket,\n cleanAll,\n wsClient,\n sellStatus,\n orderToken,\n cancelOrder,\n wsPairing,\n } = sellContext;\n\n const [showChat, setShowChat] = useState(false);\n\n useEffect(() => {\n if (id) sellWebSocket(id);\n\n return () => {\n if (wsClient) wsClient.close();\n cleanAll();\n };\n // eslint-disable-next-line\n }, []);\n\n useEffect(() => {\n if (errorText) alert(errorText);\n return () => {\n setHttpError(\"\");\n };\n // eslint-disable-next-line\n }, [errorText]);\n\n const backToHome = () => {\n history.replace(\"/home/overview\");\n if (wsClient) wsClient.close();\n cleanAll();\n };\n\n // const onHide = () => {\n // if (wsClient) wsClient.close();\n // history.replace('/home/overview');\n // cleanAll();\n // };\n\n const onHide = () => {\n if (orderToken) cancelOrder(orderToken);\n if (wsClient) wsClient.close();\n // setWsPairing(false);\n history.replace(\"/home/overview\");\n cleanAll();\n };\n\n console.log(\"sell info\", statusID);\n\n return (\n
\n \n \n \n {(statusID === 33 || statusID === 34 || statusID === 35) && wsData ? (\n \n ) : statusID === 1 || statusID === 99 || statusID === 98 ? (\n \n ) : (\n \n )}\n\n {/* 聊天室 --電腦版 大於1200px */}\n {wsData && !isMobile ? (\n
\n \n
\n ) : null}\n\n {/* 聊天室 --手機版 小於1200px */}\n {isMobile && wsData ? (\n
\n setShowChat(!showChat)}\n >\n \n {t(\"chat_help\")}\n \n\n \n
\n ) : null}\n
\n );\n};\n\nconst helpBtn = {\n paddingLeft: 15,\n paddingRight: 15,\n paddingTop: 5,\n paddingBottom: 5,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n padding: \"1rem 2rem\",\n fontSize: \"1.5rem\",\n fontWeight: 300,\n borderRadius: \"10rem\",\n position: \"absolute\",\n bottom: \"5%\",\n right: 0,\n backgroundColor: \"#F80FA\",\n};\n\nconst MobileChatContainer = {\n height: 600,\n width: 100,\n position: \"fixed\",\n bottom: -15,\n right: 10,\n};\n\nconst chatContainer = {\n backgroundColor: \"red\",\n position: \"absolute\",\n top: -95,\n right: \"-50%\",\n};\n\nexport default SellInfo;\n","export default __webpack_public_path__ + \"static/media/icon_trans.84ec68c4.gif\";","import React from 'react';\n\n// Lang Context\nimport { useI18n } from '../../../lang';\n\n// Style\nimport trans from '../../../Assets/icon_trans.gif';\nimport Modal from 'react-bootstrap/Modal';\nimport closeBtn from '../../../Assets/blue_close_btn.png';\n\nconst OnLoading = props => {\n const { t } = useI18n();\n return (\n \n \n \n\n
\n \"transfer\"\n

{t('transfer_onLoading')}

\n

\n {t('transfer_text')} {Math.abs(Number(props.usdtCount)).toFixed(2)} USDT\n

\n
\n
\n
\n );\n};\n\nexport default OnLoading;\n","import { createContext } from 'react';\nconst TransferContext = createContext();\nexport default TransferContext;\n","import { useState, useEffect, useContext } from 'react';\nimport { useHistory } from 'react-router-dom';\n// import { useMediaQuery } from 'react-responsive';\nimport QrReader from 'modern-react-qr-reader';\n\n// Components\nimport OnLoading from './OnLoading';\nimport FormFooter from '../Layout/FormFooter';\nimport BaseSpinner from '../Ui/BaseSpinner';\n\n// Lang Context\nimport { useI18n } from '../../lang';\n\n// Context\nimport TransferContext from '../../context/transfer/TransferContext';\nimport BalanceContext from '../../context/balance/BalanceContext';\nimport SellContext from '../../context/sell/SellContext';\nimport HttpErrorContext from '../../context/httpError/HttpErrorContext';\n\n// Style\nimport { Form, Col } from 'react-bootstrap';\nimport Button from 'react-bootstrap/Button';\nimport Spinner from 'react-bootstrap/Spinner';\n\nconst Transfer = () => {\n // Media Query\n // const isMobile = useMediaQuery({ query: '(max-width: 900px)' }); // 小於等於 900 true\n // Router Props\n const history = useHistory();\n\n // Lang Context\n const { t } = useI18n();\n\n // Transfer Context\n const transferContext = useContext(TransferContext);\n const { transferOrderToken, transferWebSocket, transferStatus, detailReq, usdtCount, closeWebSocket, setUsdtCount, transferErrText, checkErcAddress, checkTrcAddress } = transferContext;\n\n // Balance Context\n const balanceContext = useContext(BalanceContext);\n const { getBalance, avb } = balanceContext;\n\n // Sell Context\n const sellContext = useContext(SellContext);\n const { getExRate, transferHandle, rateAllData, setTransferHandle } = sellContext;\n\n // Http Error Context\n const httpErrorContext = useContext(HttpErrorContext);\n const { httpLoading, setHttpLoading, errorText, setHttpError } = httpErrorContext;\n\n // Init State\n const [scanResultWebCam, setScanResultWebCam] = useState('');\n const [transferCount, setTransferCount] = useState({\n val: '',\n isValid: true,\n error: '',\n });\n\n const [transferAddress, setTransferAddress] = useState({\n val: '',\n isValid: true,\n error: '',\n });\n\n const [formIsValid, setFormIsValid] = useState(false);\n\n const [transferLoading, setTransferLoading] = useState(false);\n\n const [isPairing, setIsPairing] = useState(false);\n\n const [protocolType, setProtocolType] = useState('');\n\n const [showCamera, setShowCamera] = useState(false);\n\n //=========\n // Effect\n //=========\n useEffect(() => {\n getExRate();\n getBalance();\n closeWebSocket();\n setHttpError('');\n // eslint-disable-next-line\n }, []);\n\n useEffect(() => {\n if (scanResultWebCam) {\n setTransferAddress({\n val: scanResultWebCam,\n error: '',\n isValid: true,\n });\n }\n return () => {\n setScanResultWebCam('');\n };\n }, [scanResultWebCam]);\n\n // Type --手續費,清空input及error\n useEffect(() => {\n if (protocolType === 'erc') setTransferHandle(rateAllData.TransferHandle);\n if (protocolType === 'trc') setTransferHandle(rateAllData.TransferHandle2);\n setTransferCount({\n val: '',\n isValid: true,\n error: '',\n });\n\n setTransferAddress({\n val: '',\n isValid: true,\n error: '',\n });\n\n setHttpError('');\n // eslint-disable-next-line\n }, [protocolType]);\n\n // 表單驗證後發送轉帳請求,將會拿到order token,驗證錢包地址,確認ok後直接發送transfer請求\n useEffect(() => {\n if (!formIsValid || !protocolType) return;\n\n if (protocolType === 'erc') {\n checkErcAddress(transferAddress, transferCount);\n }\n\n if (protocolType === 'trc') {\n checkTrcAddress(transferAddress, transferCount);\n }\n setFormIsValid(false);\n // eslint-disable-next-line\n }, [formIsValid]);\n\n // Get Detail\n useEffect(() => {\n if (transferOrderToken) {\n setIsPairing(true);\n detailReq(transferOrderToken);\n }\n // eslint-disable-next-line\n }, [transferOrderToken]);\n\n useEffect(() => {\n if (usdtCount) {\n transferWebSocket(transferOrderToken);\n }\n // eslint-disable-next-line\n }, [usdtCount]);\n\n useEffect(() => {\n if (transferStatus === 0) {\n }\n\n if (transferStatus === 1) {\n getBalance();\n setIsPairing(false);\n history.replace(`/home/transaction/transfer/${transferOrderToken}`);\n closeWebSocket();\n setUsdtCount(null);\n }\n\n if (transferStatus === 2) {\n setIsPairing(false);\n history.replace(`/home/transaction/transfer/${transferOrderToken}`);\n }\n if (transferStatus === 97) {\n setIsPairing(false);\n history.replace(`/home/transaction/transfer/${transferOrderToken}`);\n closeWebSocket();\n setUsdtCount(null);\n }\n\n // eslint-disable-next-line\n }, [transferStatus]);\n\n const onChange = e => {\n setHttpError('');\n if (e.target.name === 'transferCount')\n setTransferCount({\n val: e.target.value.trim(),\n isValid: true,\n error: '',\n });\n\n if (e.target.name === 'transferAddress') {\n setTransferAddress({\n val: e.target.value.trim(),\n isValid: true,\n error: '',\n });\n }\n };\n\n const valid = () => {\n setFormIsValid(true);\n setHttpLoading(true);\n\n // 錢包地址驗證 --ERC\n if (protocolType === 'erc') {\n // --小於40位\n if (transferAddress.val.length < 40) {\n setTransferAddress({\n val: '',\n isValid: false,\n error: t('transfer_address_error'),\n });\n setFormIsValid(false);\n setHttpLoading(false);\n }\n }\n\n // 錢包地址驗證 --TRC\n if (protocolType === 'trc') {\n if (transferAddress.val.length <= 0) {\n setTransferAddress({\n val: '',\n isValid: false,\n error: t('transfer_address_error'),\n });\n setFormIsValid(false);\n setHttpLoading(false);\n }\n }\n\n // 輸入的數量小數點超過兩位數\n // let rule = /^([1-9][0-9]*)+(\\.[0-9]{1,2})?$/;\n // if (!rule.test(transferCount.val)) {\n // setTransferCount({\n // val: '',\n // isValid: false,\n // error: '請輸入有效數量, (不能為0或是負數,最多小數第二位)',\n // });\n // setFormIsValid(false);\n // setHttpLoading(false);\n // }\n // 不能是負數\n let negative = /^((-\\d+(\\.\\d+)?)|((\\.0+)?))$/;\n if (negative.test(transferCount.val)) {\n setTransferCount({\n val: '',\n isValid: false,\n error: t('transfer_error_invalid_number'),\n });\n setFormIsValid(false);\n setHttpLoading(false);\n }\n\n // 輸入數量大於可提加上手續費\n // if (Number(transferCount.val) > Number(avb) - Number(transferHandle)) {\n // setTransferCount({\n // val: '',\n // isValid: false,\n // error: t('avb_over_limit'),\n // });\n // setFormIsValid(false);\n // setHttpLoading(false);\n // }\n };\n\n const getAll = async () => {\n setTransferLoading(true);\n await getBalance();\n await getExRate();\n setTransferLoading(false);\n\n // const all = avb - Number(transferHandle);\n const all = avb\n if (all <= 0) {\n setTransferCount({\n val: '0',\n isValid: true,\n error: t('avb_insufficient'),\n });\n setFormIsValid(false);\n\n return;\n }\n\n setTransferCount({\n val: String(all),\n isValid: true,\n error: '',\n });\n };\n\n const backToHome = () => {\n setUsdtCount(null);\n history.replace('/home/overview');\n };\n\n const handleClick = type => {\n setProtocolType(type);\n };\n\n const inputText = {\n color: '#D7E2F3',\n position: 'absolute',\n top: 34,\n transform: 'translateY(56%)',\n right: 45,\n fontSize: 17,\n };\n\n const handleErrorWebCam = error => {\n console.log(error);\n };\n const handleScanWebCam = result => {\n if (result) {\n setScanResultWebCam(result);\n setShowCamera(false);\n }\n };\n\n return (\n
\n \n\n
\n \n {rateAllData ? (\n \n
\n \n {t('select_protocol')}\n \n
\n
\n \n \n
\n\n {protocolType && (\n \n {t('transfer_charge')}: {transferHandle && Number(transferHandle).toFixed(2)} USDT\n

\n )}\n
\n ) : (\n \n )}\n\n {protocolType && (\n <>\n \n
\n {t('transfer_title')}\n\n {transferLoading ? (\n \n ) : (\n \n )}\n
\n\n event.currentTarget.blur()}\n type=\"number\"\n placeholder={t('transfer_enter_number')}\n className=\"p_sm-2 easy-border\"\n onChange={onChange}\n value={transferCount.val}\n autoComplete=\"off\"\n name=\"transferCount\"\n />\n USDT\n\n {/* 前端驗證錯誤提示 */}\n {transferCount.error ? (\n \n *{transferCount.error}\n \n ) : null}\n
\n\n {transferCount.val && !transferCount.error ? (\n \n \n {t('transfer_address')}\n \n\n \n \n
\n\n {/*

Qr Code Scan by Web Cam

*/}\n\n {/*

Scanned By WebCam Code: {scanResultWebCam}

*/}\n {/* 前端驗證錯誤提示 */}\n {transferAddress.error ? (\n \n *{transferAddress.error}\n \n ) : null}\n\n {/* Http Error 提示 */}\n {errorText && (\n \n *{errorText}\n \n )}\n\n {transferErrText && (\n \n *{transferErrText}\n \n )}\n \n ) : null}\n \n )}\n \n\n {protocolType && transferCount.val && !transferCount.error ? (\n <>\n
\n setShowCamera(!showCamera)}>\n {t('open_camera')}\n \n
\n {showCamera && }\n\n \n {httpLoading && }\n {httpLoading ? `${t('btn_loading')}...` : t('btn_next')}\n \n \n ) : null}\n \n\n \n
\n );\n};\n\nconst showCameraText = {\n color: '#3e80f9',\n cursor: 'pointer',\n borderBottom: '1px solid #3e80f9',\n fontSize: 12,\n};\n\nexport default Transfer;\n","export default __webpack_public_path__ + \"static/media/icon_load02.3359a61c.gif\";","import { useContext, useEffect } from 'react';\nimport { useHistory, useRouteMatch } from 'react-router-dom';\n\n// Context\nimport TransferContext from '../../../context/transfer/TransferContext';\n\n// Lang Context\nimport { useI18n } from '../../../lang';\n\n// Style\nimport Card from 'react-bootstrap/Card';\nimport Spinner from 'react-bootstrap/Spinner';\nimport errorIcon from '../../../Assets/icon-error-new.png';\nimport transIcon from '../../../Assets/icon_load02.gif';\nimport completeIcon from '../../../Assets/i_complete.png';\n\nconst TransferInfo = () => {\n // Lang Context\n const { t } = useI18n();\n\n const history = useHistory();\n const match = useRouteMatch();\n const transferContext = useContext(TransferContext);\n const { orderDetail, closeWebSocket, transferStatus, detailReq, transferWebSocket, cleanStatus, setOrderToken, setUsdtCount, transferOrderToken } = transferContext;\n\n const backToHome = () => {\n history.replace('/home/overview');\n closeWebSocket();\n setOrderToken(null);\n };\n\n useEffect(() => {\n if (transferOrderToken === null) {\n history.replace('/home/transaction/transfer');\n closeWebSocket();\n cleanStatus();\n setUsdtCount(null);\n }\n\n // eslint-disable-next-line\n }, [transferOrderToken]);\n\n useEffect(() => {\n if (match.params.id) {\n detailReq(match.params.id);\n transferWebSocket(match.params.id);\n }\n\n return () => {\n closeWebSocket();\n cleanStatus();\n setUsdtCount(null);\n setOrderToken(null);\n };\n // eslint-disable-next-line\n }, []);\n\n if (transferStatus === 1) {\n return (\n \n
\n \"complete\n

{t('transfer_info_success')}

\n

\n {t('transfer_info_address')}:{orderDetail && orderDetail.data.P1}\n

\n

\n {t('transfer_info_hash')}:{orderDetail && orderDetail.data.Tx_HASH}\n

\n \n
\n {/*

詳細購買紀錄

*/}\n
\n
\n );\n } else if (transferStatus === 2) {\n return (\n \n
\n \"transfer\n

{t('transfer_info_loading')}

\n

\n {t('transfer_info_address')}:{orderDetail && orderDetail.data.P1}\n

\n

\n {t('transfer_info_hash')}:{orderDetail && orderDetail.data.Tx_HASH}\n

\n \n
\n {/*

詳細購買紀錄

*/}\n
\n
\n );\n } else if (transferStatus === 97) {\n return (\n \n
\n \n

{t('transfer_info_fail')}

\n

\n {t('transfer_info_address')}:{orderDetail && orderDetail.data.P1}\n
\n

\n \n
\n {/*

詳細購買紀錄

*/}\n
\n
\n );\n } else {\n return (\n \n
\n {/* \"error */}\n
\n \n\n \n
\n {/*

詳細購買紀錄

*/}\n
\n
\n );\n }\n};\n\nexport default TransferInfo;\n","// Style\nimport Modal from 'react-bootstrap/Modal';\nimport './index.scss';\nimport searchIcon from '../../../Assets/icon_search.gif';\nimport closeBtn from '../../../Assets/blue_close_btn.png';\n\n// Context\nimport { useI18n } from '../../../lang';\n\n// Utils\nimport { locationMoneyPrefix, locationMoneyCalcWithThousand, usdtThousandBitSeparator } from \"../../../lib/utils\";\n\nconst Paring = props => {\n const { t } = useI18n();\n return (\n \n \n \n
\n \"icon\"\n

{t('please_wait')}

\n

\n {t('buy_order')}:{usdtThousandBitSeparator(props.usdt)} USDT = ${locationMoneyCalcWithThousand(props.rmb)} {locationMoneyPrefix()}\n

\n
\n
\n
\n );\n};\n\nexport default Paring;\n","import { useContext, useEffect } from \"react\";\n\n// Context\nimport { useI18n } from \"../../lang\";\nimport SellContext from \"../../context/sell/SellContext\";\nimport BalanceContext from \"../../context/balance/BalanceContext\";\n\nimport {usdtThousandBitSeparatorNonAbs} from '../../lib/utils'\n\nconst ExRate = (props) => {\n // Lang Context\n const { t } = useI18n();\n\n // Sell Context\n const sellContext = useContext(SellContext);\n const { getExRate, buyRate } = sellContext;\n\n const balanceContext = useContext(BalanceContext);\n const { level } = balanceContext;\n\n // console.log(level)\n\n\n\n const { title } = props;\n useEffect(() => {\n getExRate();\n // eslint-disable-next-line\n }, []);\n\n return (\n <>\n \n {title}\n

\n
\n

\n {t(\"exRate\")} :{buyRate && Number(buyRate).toFixed(2)}\n

\n

\n {t(\"payment_contact\")} :{t(\"payment_contact_time\")}\n

\n\n

\n {t(\"limit\")} :\n {level?.day === 0 && (\n 帳號已鎖定,無法交易\n )}\n \n {level?.day !== 0 && (\n \n {t(\"limit_usdt\")} {usdtThousandBitSeparatorNonAbs(level?.day)}\n \n )}\n

\n\n \n
\n \n );\n};\n\nexport default ExRate;\n","import { useState, useEffect, useContext } from \"react\";\n\n// Context\nimport SellContext from \"../../context/sell/SellContext\";\nimport BuyContext from \"../../context/buy/BuyContext\";\nimport BalanceContext from \"../../context/balance/BalanceContext\";\nimport HttpErrorContext from \"../../context/httpError/HttpErrorContext\";\nimport { useI18n } from \"../../lang\";\n\n// Utils\nimport { locationMoneyPrefix, locationMoneyCalc } from \"../../lib/utils\";\n\n// Style\nimport Button from \"react-bootstrap/Button\";\nimport Form from \"react-bootstrap/Form\";\nimport Col from \"react-bootstrap/Col\";\nimport changeMoney from \"../../Assets/i_twoways.png\";\nimport \"./index.scss\";\n\nconst BuyForm = () => {\n // Lang Context\n const { t } = useI18n();\n\n // sell context\n const sellContext = useContext(SellContext);\n const { buyRate } = sellContext;\n\n // Balance\n const balanceContext = useContext(BalanceContext);\n const { level } = balanceContext;\n\n // but context\n const buyContext = useContext(BuyContext);\n const {\n setBuyCount,\n buyCount,\n buyErrorText,\n setErrorText,\n setShowBank,\n showBank,\n } = buyContext;\n\n // http error context\n const httpErrorContext = useContext(HttpErrorContext);\n const { setHttpError } = httpErrorContext;\n\n // Init State\n const [usdtAmt, setUsdtAmt] = useState({\n val: \"\",\n isValid: true,\n error: \"\",\n });\n\n const [rmbAmt, setRmbAmt] = useState({\n val: \"\",\n isValid: true,\n error: \"\",\n });\n\n const [formIsValid, setFormIsValid] = useState(false);\n\n //===========\n // UseEffect\n //===========\n\n // unMount後清除錯誤提示\n useEffect(() => {\n return () => {\n setHttpError(\"\"); // http錯誤提示\n setErrorText(\"\"); // 前端表單驗證錯誤提示\n };\n // eslint-disable-next-line\n }, []);\n\n // Set Buy Count\n useEffect(() => {\n setBuyCount({\n usdt: usdtAmt.val,\n rmb: rmbAmt.val,\n });\n\n // eslint-disable-next-line\n }, [usdtAmt, rmbAmt]);\n\n // Render Bank Form\n useEffect(() => {\n if (formIsValid) {\n setShowBank(true);\n }\n\n return () => {\n setFormIsValid(false);\n };\n //eslint-disable-next-line\n }, [formIsValid]);\n\n useEffect(() => {\n return () => {\n setShowBank(false);\n };\n // eslint-disable-next-line\n }, []);\n\n const onChange = (e) => {\n setHttpError(\"\"); // http錯誤提示\n setErrorText(\"\"); // 前端表單驗證錯誤提示\n if (e.target.name === \"usdtAmt\") {\n if (e.target.value < 0 || e.target.value === \"e\") {\n setUsdtAmt({\n val: \"\",\n isValid: true,\n error: \"\",\n });\n return;\n }\n\n let rmb = locationMoneyCalc(Number(e.target.value * buyRate));\n\n setUsdtAmt({\n val: e.target.value.trim(),\n isValid: true,\n error: \"\",\n });\n\n setRmbAmt({\n val: rmb,\n isValid: true,\n error: \"\",\n });\n\n if (!e.target.val) setShowBank(false);\n }\n\n if (e.target.name === \"rmbAmt\") {\n if (e.target.value < 0 || e.target.value === \"e\") {\n setRmbAmt({\n val: \"\",\n isValid: true,\n error: \"\",\n });\n return;\n }\n\n let usdt = locationMoneyCalc(Number(e.target.value / buyRate));\n\n setRmbAmt({\n val: e.target.value.trim(),\n isValid: true,\n error: \"\",\n });\n\n setUsdtAmt({\n val: usdt,\n isValid: true,\n error: \"\",\n });\n\n if (!e.target.val) setShowBank(false);\n }\n };\n\n // Valid Form\n const validCount = () => {\n setFormIsValid(true);\n\n // 有1~2位小数的正數,且不能為0或0開頭\n let rule = /^([1-9][0-9]*)+(\\.[0-9]{1,2})?$/;\n let lowerLimit = process.env.REACT_APP_HOST_NAME === \"88U\" ? 30 : 100;\n let upperLimit = process.env.REACT_APP_HOST_NAME === \"88U\" ? level?.day : 10000;\n\n // console.log(level?.day)\n if (\n !rule.test(usdtAmt.val) ||\n !rule.test(rmbAmt.val) ||\n usdtAmt.val < lowerLimit ||\n usdtAmt.val > upperLimit\n ) {\n setUsdtAmt({\n val: \"\",\n isValid: false,\n error: t(\"invalid_number\"),\n });\n\n setFormIsValid(false);\n }\n };\n\n return (\n
\n {/* \n */}\n \n \n event.currentTarget.blur()}\n disabled={level?.day === 0}\n />\n\n USDT\n {usdtAmt.error && (\n \n *{usdtAmt.error}\n \n )}\n\n {buyErrorText && (\n \n *{buyErrorText}\n \n )}\n \n\n \n \"change\n \n\n \n event.currentTarget.blur()}\n disabled={level?.day === 0}\n />\n {locationMoneyPrefix()}\n \n \n\n {usdtAmt.val && (\n \n \n

{t(\"e_wallet\")}

\n \n {t(\"btn_bank\")}\n \n\n {process.env.REACT_APP_HOST_NAME === \"K100U\" && (\n \n {t(\"btn_aliPay\")}\n \n )}\n\n \n {t(\"choose_e_wallet\")}\n \n
\n
\n )}\n
\n );\n};\n\nconst formStyle = {\n marginTop: 20,\n};\n\nconst formInput = {\n padding: 30,\n};\n\nconst inputText = {\n color: \"#D7E2F3\",\n position: \"absolute\",\n top: \"50%\",\n transform: \"translateY(-45%)\",\n right: 35,\n fontSize: 17,\n};\n\nexport default BuyForm;\n","import { useContext, useState, useEffect } from \"react\";\n\n// Redux\nimport { useDispatch, useSelector } from \"react-redux\";\n\n// Antd\nimport { Modal } from \"antd-mobile\";\n\nimport {\n locationMoneyCalcWithThousand,\n usdtThousandBitSeparator,\n} from \"../../lib/utils\";\n\nimport { getKyc } from \"../../store/actions/kycAction\";\n// Context\nimport BuyContext from \"../../context/buy/BuyContext\";\nimport HttpErrorContext from \"../../context/httpError/HttpErrorContext\";\nimport { useI18n } from \"../../lang\";\n\n// Style\nimport ButtonB from \"react-bootstrap/Button\";\nimport Form from \"react-bootstrap/Form\";\nimport Col from \"react-bootstrap/Col\";\nimport Spinner from \"react-bootstrap/Spinner\";\n\n// Actions\nimport { setBuyBankForm } from \"../../store/actions/bankFormActions\";\n\n// Images\nimport cautionImag from \"../../Assets/88u/icon_注意.png\";\n\n// Utils\nimport { locationMoneyPrefix } from \"../../lib/utils\";\nimport AuthContext from \"../../context/auth/AuthContext\";\n\nconst BankFrom = () => {\n // Lang Context\n const { t } = useI18n();\n\n const dispatch = useDispatch();\n const { buy } = useSelector((state) => state.bankForm);\n\n // Buy Context\n const buyContext = useContext(BuyContext);\n const {\n buyBtnLoading,\n buyCount,\n setErrorText,\n confirmBuy,\n handleBuyBtnLoading,\n } = buyContext;\n\n const [allowTrans, setAllowTrans] = useState(false);\n\n // Http Error context\n const httpErrorContext = useContext(HttpErrorContext);\n const { errorText, setHttpError } = httpErrorContext;\n\n const authContext = useContext(AuthContext);\n const { isAgent } = authContext;\n\n const {\n // loading: getUserKycLoading,\n // error: getUserKycError,\n data: getKycData,\n } = useSelector((state) => state.getKyc);\n\n const [accountName, setAccountName] = useState({\n val: \"\",\n isValid: true,\n error: \"\",\n });\n\n const [account, setAccount] = useState({\n val: \"\",\n isValid: true,\n error: \"\",\n });\n\n const [bankCode, setBankCode] = useState({\n val: \"\",\n isValid: true,\n error: \"\",\n });\n\n const [formIsValid, setFormIsValid] = useState(false);\n\n // unMount後清除錯誤提示\n useEffect(() => {\n if (errorText) {\n handleBuyBtnLoading(false);\n }\n\n return () => {\n setHttpError(\"\"); // http錯誤提示\n setErrorText(\"\"); // 前端表單驗證錯誤提示\n };\n // eslint-disable-next-line\n }, [errorText]);\n\n useEffect(() => {\n if (process.env.REACT_APP_HOST_NAME === \"K100U\") return;\n if (!getKycData) return;\n const lastItem = getKycData?.[getKycData.length - 1];\n if (lastItem?.User_BankStatus !== 101) {\n setAllowTrans(false);\n } else {\n setAllowTrans(true);\n }\n }, [getKycData]);\n\n // Get Order Token for Connect Web Socket\n useEffect(() => {\n if (!formIsValid) return;\n\n const data = {\n accountName: accountName.val,\n bankCode: bankCode.val,\n account: account.val,\n };\n\n if (process.env.REACT_APP_HOST_NAME === \"88U\") {\n setFormIsValid(false);\n\n Modal.alert({\n header: \"注意\",\n title:

請注意

,\n showCloseButton: true,\n content: (\n \n ATM轉帳時請註記持有人的\n 真實姓名\n ,並顯示於雙方明細,資料不符時將不受理交易服務,並退還收款金額,相關手續費會於退款時一併扣除,謝謝。\n \n ),\n confirmText: \"確定\",\n onConfirm: () => {\n dispatch(setBuyBankForm(data));\n confirmBuy(data);\n },\n });\n return;\n }\n\n confirmBuy(data);\n\n return setFormIsValid(false);\n\n // eslint-disable-next-line\n }, [formIsValid]);\n\n // Handle Form Input Change\n const onChange = ({ target }) => {\n setHttpError(\"\");\n\n const { id, value } = target || {};\n\n if (id === \"bank-form-name\") {\n setAccountName({\n val: value.trim(),\n isValid: true,\n error: \"\",\n });\n }\n\n if (id === \"bank-form-account\") {\n setAccount({\n val: value.trim(),\n isValid: true,\n error: \"\",\n });\n }\n\n if (id === \"bank-form-code\") {\n setBankCode({\n val: value.trim(),\n isValid: true,\n error: \"\",\n });\n }\n };\n\n // Handle Key Up\n const handleKeyUp = (e) => {\n if (e.keyCode === 13) {\n validForm();\n }\n };\n\n // Valid Form\n const validForm = () => {\n const { usdt, rmb } = buyCount;\n setFormIsValid(true);\n\n if (accountName.val === \"\") {\n setAccountName({\n val: \"\",\n isValid: false,\n error: t(\"no_account_name\"),\n });\n\n setFormIsValid(false);\n }\n\n if (process.env.REACT_APP_HOST_NAME === \"88U\") {\n if (account.val === \"\") {\n setAccount({\n val: \"\",\n isValid: false,\n error: t(\"no_bank_account\"),\n });\n\n setFormIsValid(false);\n }\n\n if (bankCode.val === \"\") {\n setBankCode({\n val: \"\",\n isValid: false,\n error: t(\"no_bank_code\"),\n });\n\n setFormIsValid(false);\n }\n }\n\n if (usdt <= 0 || usdt === \"\" || rmb <= 0 || rmb === \"\") {\n setErrorText(t(\"invalid_number\"));\n setFormIsValid(false);\n }\n };\n\n useEffect(() => {\n if (isAgent) return;\n dispatch(getKyc());\n }, [dispatch, isAgent]);\n return (\n <>\n
\n \n \n {(process.env.REACT_APP_HOST_NAME === \"K100U\" || isAgent) && (\n <>\n \n {process.env.REACT_APP_HOST_NAME === \"88U\" && (\n <>\n \n {account.error && (\n \n *{account.error}\n \n )}\n\n \n {bankCode.error && (\n \n *{bankCode.error}\n \n )}\n \n )}\n \n )}\n\n {/* 前端驗證錯誤訊息 */}\n {accountName.error && (\n \n *{accountName.error}\n \n )}\n\n {process.env.REACT_APP_HOST_NAME === \"88U\" && !isAgent && (\n <>\n 選擇銀行帳號\n {\n const currentBank = getKycData.find(\n (el) => el.token === value.target.value\n );\n console.log(currentBank);\n setAccountName({\n val: currentBank.P2,\n isValid: true,\n error: \"\",\n });\n\n setAccount({\n val: currentBank.P1,\n isValid: true,\n error: \"\",\n });\n\n setBankCode({\n val: currentBank.P3,\n isValid: true,\n error: \"\",\n });\n }}\n >\n \n {getKycData\n ?.filter(\n (el, index) =>\n index === getKycData?.length - 1 &&\n el.User_BankStatus === 101\n )\n ?.map((el) => (\n <>\n {`銀行代號:${el.P3} 帳號: ${el.P1} 戶名: ${el.P2}`}\n \n ))}\n \n \n )}\n\n {/* http 請求錯誤訊息 */}\n {errorText && (\n \n *{errorText}\n \n )}\n\n {/* 輸入提示 */}\n \n {t(\"account_name_prompt\")}\n

\n \n\n {/* 購買資訊 */}\n \n \n \n
\n

{t(\"buy_total\")}

\n

\n {locationMoneyCalcWithThousand(\n Number(buyCount.rmb)\n ).toString()}\n   {locationMoneyPrefix()}\n

\n
\n
\n \n

{t(\"buy_quantity\")}

\n

\n {usdtThousandBitSeparator(Number(buyCount.usdt)).toString()}\n   USDT\n

\n
\n
\n
\n
\n\n \n \n \n {buyBtnLoading && }\n\n {allowTrans ? t(\"btn_pair_start\") : \"銀行帳號尚未驗證\"}\n \n \n \n
\n \n );\n};\n\nexport default BankFrom;\n","import { useEffect, useContext } from 'react';\nimport { useHistory } from 'react-router-dom';\n\n// Context\nimport BuyContext from '../../context/buy/BuyContext';\nimport SellContext from '../../context/sell/SellContext';\nimport { useI18n } from '../../lang';\n\n// component\nimport Pairing from './Pairing';\nimport ExRate from './ExRate';\nimport BaseSpinner from '../Ui/BaseSpinner';\nimport BuyForm from './BuyForm';\nimport BankForm from './BankForm';\nimport FormFooter from '../Layout/FormFooter';\n\nconst TheBuy = () => {\n // Get Router Props\n const history = useHistory();\n\n // Lang Context\n const { t } = useI18n();\n\n // Sell Context\n const sellContext = useContext(SellContext);\n const { buyRate } = sellContext;\n\n // Buy Context\n const buyContext = useContext(BuyContext);\n const {\n buyCount,\n handlePairing,\n showBank,\n buyPairing,\n buyOrderToken,\n buyConnectWs,\n cleanAll,\n wsStatus,\n cancelOrder,\n // setWsStatus,\n } = buyContext;\n\n // Listen Web Socket Status\n useEffect(() => {\n if (wsStatus === 33) history.replace(`/home/transaction/buy/${buyOrderToken}`);\n\n // eslint-disable-next-line\n }, [wsStatus]);\n\n // 連接web socket\n useEffect(() => {\n if (buyOrderToken) {\n buyConnectWs(buyOrderToken);\n }\n\n // eslint-disable-next-line\n }, [buyOrderToken]);\n\n const onHide = () => {\n if (buyOrderToken) cancelOrder(buyOrderToken);\n handlePairing(false);\n cleanAll();\n history.replace('/home/overview');\n };\n return (\n <>\n \n {buyRate ? : }\n {showBank && }\n \n \n \n );\n};\n\nexport default TheBuy;\n","const Timer = ({ minutes, seconds }) => {\n return (\n \n {('0' + minutes).slice(-2)}:{('0' + seconds).slice(-2)}\n \n );\n};\n\nexport default Timer;\n","import { useState, useContext, useEffect } from \"react\";\nimport Countdown from \"react-countdown\";\n\nimport { useSelector } from \"react-redux\";\n\n// Context\nimport BuyContext from \"../../context/buy/BuyContext\";\n\n// Lang Context\nimport { useI18n } from \"../../lang\";\n\n// Components\nimport Timer from \"./Timer\";\n\n// Style\nimport clockIcon from \"../../Assets/i_clock.png\";\n\nconst BuyInfoHeader = () => {\n const { orderStatus } = useSelector((state) => state.order);\n const { Order_StatusID: statusID } = orderStatus || {};\n // Lang Context\n const { t } = useI18n();\n\n // Buy Context\n const buyContext = useContext(BuyContext);\n const { deltaTime, setHideBuyInfo } = buyContext;\n\n // Init State\n const [timeLeft, setTimeLeft] = useState(\n Date.now() + (1000 * 60 * 15 - deltaTime * 1000)\n );\n\n useEffect(() => {\n setTimeLeft(Date.now() + (1000 * 60 * 15 - deltaTime * 1000));\n // eslint-disable-next-line\n }, [deltaTime]);\n\n // ==========\n // Function\n // ==========\n const handleComplete = () => {\n setHideBuyInfo(true);\n };\n\n return (\n
\n \n {t(\"transfer_data\")}\n

\n\n {statusID !== 35 && (\n \n \"clock\n \n {t(\"limit_time\")}:\n

\n \n \n \n
\n )}\n
\n );\n};\n\nconst pairTitleBox = {\n width: \"50%\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n marginBottom: \"-17px\",\n marginTop: 30,\n};\n\nconst clockStyle = {\n height: 17,\n marginRight: 3,\n};\n\nexport default BuyInfoHeader;\n","import { useContext } from \"react\";\n\n// Context\nimport BuyContext from \"../../context/buy/BuyContext\";\nimport HttpErrorContext from \"../../context/httpError/HttpErrorContext\";\n\n// Lang Context\nimport { useI18n } from \"../../lang\";\n\n// Components\nimport Modal from \"react-bootstrap/Modal\";\nimport Button from \"react-bootstrap/Button\";\nimport Spinner from \"react-bootstrap/Spinner\";\n\n// Style\nimport errorIcon from \"../../Assets/icon-error-new.png\";\n\nconst Cancel = (props) => {\n // Lang Context\n const { t } = useI18n();\n // Http Error Context\n const httpErrorContext = useContext(HttpErrorContext);\n const { httpLoading, setHttpLoading } = httpErrorContext;\n\n // Buy Context\n const buyContext = useContext(BuyContext);\n const { buyWsData, cancelOrder, buyOrderToken } = buyContext;\n\n const handleCancel = () => {\n setHttpLoading(true);\n\n if (props.type === \"instant\") {\n cancelOrder(props.token);\n return;\n }\n\n cancelOrder(buyOrderToken);\n };\n\n return (\n \n \n \"icon\"\n \n {t(\"cancel_component_title\")}\n \n\n \n

{t(\"order_number\")}:

\n \n {buyWsData && buyWsData.hash}\n {props.hash && props.hash}\n

\n
\n \n \n \n {httpLoading ? (\n \n ) : (\n \n )}\n \n \n );\n};\n\nexport default Cancel;\n","import { useState, useContext, useEffect } from \"react\";\nimport { useRouteMatch } from \"react-router-dom\";\n// import Countdown from \"react-countdown\";\nimport copy from \"copy-to-clipboard\";\n\nimport { useSelector } from \"react-redux\";\n\n// Context\nimport BuyContext from \"../../context/buy/BuyContext\";\nimport HttpErrorContext from \"../../context/httpError/HttpErrorContext\";\n\n// Lang Context\nimport { useI18n } from \"../../lang\";\n\n// Utils\nimport {\n locationMoneyPrefix,\n locationMoneyCalcWithThousand,\n} from \"../../lib/utils\";\n\n// Components\nimport SetAccount from \"./SetAccount\";\nimport BuyInfoHeader from \"./BuyInfoHeader\";\n// import Timer from \"./Timer\";\nimport Cancel from \"../universal/Cancel\";\n\n// import CancelSell from '../Sell/CancelSell';\n\nimport Row from \"react-bootstrap/Row\";\nimport Col from \"react-bootstrap/Col\";\nimport Button from \"react-bootstrap/Button\";\nimport Spinner from \"react-bootstrap/Spinner\";\n\nimport warningImg from \"../../Assets/warning.png\";\n\nconst InfoDetail = (props) => {\n // Lang Context\n const { t } = useI18n();\n\n // Redux\n\n const { orderStatus } = useSelector((state) => state.order);\n const { Order_StatusID: statusID, Tx_HASH: statusHash } = orderStatus || {};\n\n // Router Props\n const match = useRouteMatch();\n\n // Buy Context\n const buyContext = useContext(BuyContext);\n const {\n buyWsData,\n buyBtnLoading,\n BuyerAlreadyPay,\n buyOrderToken,\n // isHideBuyInfo,\n deltaTime,\n setHideBuyInfo,\n setDeltaTime,\n GetDeltaTime,\n } = buyContext;\n\n\n // Http Error Context\n const httpErrorContext = useContext(HttpErrorContext);\n const { errorText } = httpErrorContext;\n\n // Init State\n // eslint-disable-next-line\n const [timeLeft, setTimeLeft] = useState(\n Date.now() + (1000 * 60 * 30 - deltaTime * 1000)\n );\n\n // eslint-disable-next-line\n const [overTime, setOverTime] = useState(false);\n const [showCancel, setShowCancel] = useState(false);\n\n const handleCopy = (value) => {\n copy(value);\n\n if (copy(value)) {\n alert(t(\"btn_copy\"));\n } else {\n alert(t(\"btn_copy_fail\"));\n }\n };\n\n useEffect(() => {\n GetDeltaTime(match.params.id);\n return () => {\n setDeltaTime(null);\n setOverTime(false);\n setHideBuyInfo(false);\n };\n // eslint-disable-next-line\n }, []);\n\n useEffect(() => {\n if (deltaTime <= 900) setHideBuyInfo(false);\n if (deltaTime > 900) setHideBuyInfo(true);\n if (deltaTime > 1800) setOverTime(true);\n setTimeLeft(Date.now() + (1000 * 60 * 30 - deltaTime * 1000));\n // eslint-disable-next-line\n }, [deltaTime]);\n\n return (\n <>\n setShowCancel(false)}\n onShow={() => GetDeltaTime(buyOrderToken)}\n onExited={() => GetDeltaTime(buyOrderToken)}\n hash={statusHash}\n />\n {/* 第一階段倒數 */}\n <>\n \n \n \n {/* Cny */}\n
\n

\n {t(\"amount\")}:  \n \n {locationMoneyCalcWithThousand(\n Number(buyWsData.cny || buyWsData.D2)\n )}\n  \n {locationMoneyPrefix()}\n \n

\n {\n const copyValue = buyWsData?.cny ?? buyWsData.P2;\n handleCopy(copyValue);\n }}\n className=\"i_copy2\"\n style={{ width: 15, height: 15 }}\n >
\n
\n\n {/* Name */}\n
\n

\n {t(\"payee\")}:{buyWsData.name || buyWsData.P2}\n

\n handleCopy(buyWsData.name || buyWsData.P2)}\n className=\"i_copy2\"\n style={{ width: 15, height: 15 }}\n >
\n \n\n {/* Account */}\n
\n

\n {t(\"payee_account\")}: {buyWsData.account || buyWsData.P1}\n

\n handleCopy(buyWsData.account || buyWsData.P1)}\n className=\"i_copy2\"\n style={{ width: 15, height: 15 }}\n >
\n \n\n {/* Bank */}\n
\n

\n {t(\"bank\")}: {buyWsData.bank || buyWsData.P3}\n

\n handleCopy(buyWsData.bank || buyWsData.P3)}\n className=\"i_copy2\"\n style={{ width: 15, height: 15 }}\n >
\n \n\n {/* City */}\n {process.env.REACT_REACT_APP_HOST_NAME === \"K100U\" && (\n
\n

\n {t(\"city\")}: {buyWsData.city}\n

\n handleCopy(buyWsData.city)}\n className=\"i_copy2\"\n style={{ width: 15, height: 15 }}\n >
\n \n )}\n \n \n \n \n \n\n {errorText && (\n \n \n *{errorText}\n \n \n )}\n\n \n \n {statusID === 33 && (\n <>\n BuyerAlreadyPay(buyOrderToken)}\n >\n {buyBtnLoading && (\n \n )}\n {buyBtnLoading\n ? `${t(\"btn_loading\")}...`\n : t(\"btn_already_pay\")}\n \n\n setShowCancel(true)}\n >\n {t(\"btn_cancel_order\")}\n \n \n )}\n\n {statusID === 35 && (\n
\n
\n \n
\n 申訴中\n
\n
\n
\n setShowCancel(true)}\n >\n {t(\"btn_cancel_order\")}\n \n
\n
\n )}\n \n
\n \n \n );\n};\n\nexport default InfoDetail;\n","import { useContext, useEffect, useState } from \"react\";\nimport { useRouteMatch, useHistory } from \"react-router-dom\";\nimport { useMediaQuery } from \"react-responsive\";\n\nimport { useSelector } from \"react-redux\";\n\n// Context\nimport BuyContext from \"../../context/buy/BuyContext\";\n\nimport { locationMoneyCalcWithThousand } from \"../../lib/utils\";\n\n// Hooks\nimport useHttp from \"../../hooks/useHttp\";\n\n// Apis\nimport { confirmReceived } from \"../../lib/api\";\n\n// Lang Context\nimport { useI18n } from \"../../lang\";\n\n// Components\nimport BaseSpinner from \"../Ui/BaseSpinner\";\nimport ExRate from \"./ExRate\";\nimport BuyDetail from \"./BuyDetail\";\nimport FormFooter from \"../Layout/FormFooter\";\nimport CompleteStatus from \"../universal/CompleteStatus\";\nimport Pairing from \"./Pairing\";\nimport TheChat from \"../Chat/TheChat.js\";\n\n// Style\nimport helpIcon from \"../../Assets/i_ask2.png\";\nimport Button from \"react-bootstrap/Button\";\n\nconst BuyInfo = () => {\n const { orderStatus } = useSelector((state) => state.order);\n const { Order_StatusID: statusID, Tx_HASH: hash } = orderStatus || {};\n\n // Lang Context\n const { t } = useI18n();\n // Init State\n const [showChat, setShowChat] = useState(false);\n\n // Media Query\n const isMobile = useMediaQuery({ query: \"(max-width: 1200px)\" }); // 小於等於 1200 true\n\n // Router Props\n const match = useRouteMatch();\n const history = useHistory();\n\n // Buy2 http\n const {\n sendRequest: confirmReceivedReq,\n // data: confirmReceivedData,\n status: confirmReceivedStatus,\n // error: confirmReceivedError,\n } = useHttp(confirmReceived);\n\n // Buy Context\n const buyContext = useContext(BuyContext);\n const {\n buyWsData,\n buyConnectWs,\n setOrderToken,\n wsStatus,\n cleanAll,\n GetDeltaTime,\n buyWsClient,\n buyPairing,\n handlePairing,\n buyCount,\n // closeWebSocket,\n } = buyContext;\n\n // ===========\n // useEffect\n // ===========\n useEffect(() => {\n const orderToken = match.params.id;\n if (orderToken) {\n buyConnectWs(orderToken);\n setOrderToken(orderToken);\n }\n\n return () => {\n if (buyWsClient) buyWsClient.close();\n cleanAll();\n };\n\n // eslint-disable-next-line\n }, []);\n\n useEffect(() => {\n if (wsStatus === 31 || wsStatus === 32) {\n handlePairing(true);\n } else {\n handlePairing(false);\n }\n // eslint-disable-next-line\n }, [wsStatus]);\n\n useEffect(() => {\n GetDeltaTime(match.params.id);\n // eslint-disable-next-line\n }, [showChat]);\n\n // ===========\n // function\n // ===========\n const backToHome = () => {\n history.replace(\"/home/overview\");\n if (buyWsClient) buyWsClient.close();\n cleanAll();\n };\n\n const onHide = () => {\n handlePairing(false);\n cleanAll();\n history.replace(\"/home/overview\");\n };\n\n return (\n
\n \n \n\n {}\n\n {(statusID === 35 || statusID === 33) && buyWsData ? (\n \n ) : ((statusID === 34 || statusID === 1) && buyWsData) ||\n statusID === 99 ||\n statusID === 98 ? (\n // \n \n ) : (\n \n )}\n\n \n\n {/* 桌機版聊天室 */}\n {buyWsData && !isMobile ? (\n
\n \n
\n ) : null}\n\n {/* 手機版聊天室*/}\n {isMobile && buyWsData ? (\n
\n setShowChat(!showChat)}\n >\n \n {t(\"chat_help\")}\n \n\n \n
\n ) : null}\n
\n );\n};\n\nconst helpBtn = {\n paddingLeft: 15,\n paddingRight: 15,\n paddingTop: 5,\n paddingBottom: 5,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n padding: \"1rem 2rem\",\n fontSize: \"1.5rem\",\n fontWeight: 300,\n borderRadius: \"10rem\",\n position: \"absolute\",\n bottom: \"5%\",\n right: 0,\n backgroundColor: \"#F80FA\",\n};\n\nconst MobileChatContainer = {\n height: \"600px\",\n width: 100,\n position: \"fixed\",\n bottom: -15,\n right: 10,\n};\n\nconst chatContainer = {\n backgroundColor: \"red\",\n position: \"absolute\",\n top: -95,\n right: \"-50%\",\n};\n\nexport default BuyInfo;\n","import { Switch, Route, Redirect, useLocation } from 'react-router-dom';\n\n// Context\nimport { useI18n } from '../../lang';\n\n// Components\nimport TransactionNav from '../../Components/TransactionNav';\nimport Sell from '../../Components/Sell/Sell';\nimport SellInfo from '../../Components/Sell/SellInfo';\nimport Transfer from '../../Components/Transfer';\nimport TransferInfo from '../../Components/Transfer/TransferInfo';\nimport TheBuy from '../../Components/Buy/TheBuy';\nimport BuyInfo from '../../Components/Buy/BuyInfo';\n\n// Style\nimport './index.scss';\n\nconst Transaction = () => {\n // Router Props\n const location = useLocation();\n\n // lang Context\n const { t } = useI18n();\n\n return (\n
\n \n \n {t('welcome_text')}\n

\n \n {/* Nav */}\n \n\n \n {/* BUY */}\n \n \n\n {/* SELL */}\n \n \n\n {/* Transfer */}\n \n \n\n \n \n \n \n
\n );\n};\n\nexport default Transaction;\n","import { useContext } from \"react\";\nimport { Link } from \"react-router-dom\";\n\n// Context\nimport BuyContext from \"../../context/buy/BuyContext\";\nimport SellContext from \"../../context/sell/SellContext\";\nimport InstantContext from \"../../context/instant/InstantContext\";\nimport { useI18n } from \"../../lang/index\";\n\nimport AuthContext from \"../../context/auth/AuthContext\";\n// Style\nimport { Nav } from \"react-bootstrap\";\nimport style from \"./Header.module.scss\";\n// import InstantCount from '../Instant/InstantCount';\n\nconst TheNav = (props) => {\n // Lang Context\n const { t } = useI18n();\n\n const authContext = useContext(AuthContext);\n const { isAgent } = authContext;\n\n // Buy Context\n const buyContext = useContext(BuyContext);\n const { buyWsClient } = buyContext;\n\n // Sell Context\n const sellContext = useContext(SellContext);\n const { wsClient } = sellContext;\n\n // Instant Context\n const instantContext = useContext(InstantContext);\n const { wsStatusClient } = instantContext;\n\n // Auth Context\n // const authContext = useContext(AuthContext);\n // // const { setIsLogout } = authContext;\n\n const handleClick = () => {\n if (buyWsClient) buyWsClient.close();\n if (wsClient) wsClient.close();\n if (wsStatusClient) wsStatusClient.close();\n };\n\n const handleLogout = () => {\n if (window.confirm(t(\"nav_logout_alert\"))) props.logout();\n };\n\n return (\n \n );\n};\n\nexport default TheNav;\n","import { useContext, useEffect } from \"react\";\n\n// Context\nimport BalanceContext from \"../../context/balance/BalanceContext\";\nimport { useI18n } from \"../../lang\";\n\nimport \"./index.scss\";\n\nconst MoneyRecord = () => {\n // Balance Context\n const balanceContext = useContext(BalanceContext);\n const { getBalance, avb, real, getTick, tick } = balanceContext;\n\n // Lang Context\n const { t } = useI18n();\n\n // Auth Context\n // const authContext = useContext(AuthContext);\n // const { isLogout } = authContext;\n\n // HttpError Context\n // const httpErrorContext = useContext(HttpErrorContext);\n // const { errorText, setHttpError } = httpErrorContext;\n\n useEffect(() => {\n const token = localStorage.getItem(\"token\");\n if (!token) return;\n getBalance(token);\n getTick(token);\n\n let timer = 1000 * 60; // 一分鐘\n const checkTick = setInterval(() => {\n getTick(token);\n }, timer);\n return () => {\n clearInterval(checkTick);\n };\n // eslint-disable-next-line\n }, []);\n\n useEffect(() => {\n const token = localStorage.getItem(\"token\");\n if (!token || !tick) return;\n getBalance(token);\n // eslint-disable-next-line\n }, [tick]);\n\n return (\n
\n
\n
\n {t(\"balance_real\")}:\n \n USDT\n {Number(real).toFixed(2)}\n
\n\n
\n {t(\"balance_avb\")}:\n \n USDT\n {Number(avb).toFixed(2)}\n
\n
\n
\n );\n};\n\nexport default MoneyRecord;\n","import { memberChatActionsTypes } from \"../type\";\n\nexport const setShowMemberChat = () => ({\n type: memberChatActionsTypes.SHOW_CHAT,\n});\n\nexport const setMessageList = (messageList) => ({\n type: memberChatActionsTypes.SET_MESSAGE_LIST,\n payload: messageList,\n});\n\nexport const setMessage = (message) => ({\n type: memberChatActionsTypes.SET_MESSAGE,\n payload: message,\n});\n","import { userActionsTypes } from \"../type\";\nimport { authFetch } from \"../../config/axiosConfig\";\n\nexport const setKycUserData = (userData) => async (dispatch) => {\n dispatch({ type: userActionsTypes.SET_USER_BEGIN });\n\n try {\n const { data } = await authFetch.post(\"/Req_UserData_Update.aspx\", {\n ...userData,\n });\n dispatch({ type: userActionsTypes.SET_USER_SUCCESS, payload: data });\n } catch (error) {\n dispatch({ type: userActionsTypes.SET_USER_ERROR, payload: error.message });\n }\n};\n\nexport const getKycUserData = () => async (dispatch) => {\n dispatch({ type: userActionsTypes.GET_USER_BEGIN });\n\n try {\n const { data } = await authFetch.get(\"/Get_UserData.aspx\");\n dispatch({ type: userActionsTypes.GET_USER_SUCCESS, payload: data.data });\n } catch (error) {\n dispatch({ type: userActionsTypes.GET_USER_ERROR, payload: error.message });\n }\n};\n\nexport const cleanKycSetUserStatus = () => ({\n type: userActionsTypes.SET_USER_CLEAR,\n});\n\nexport const cleanKycGetUserStatus = () => ({\n type: userActionsTypes.GET_USER_CLEAR,\n});\n","import { OPEN_WEB_PUSH_NOTIFY, SET_DEVICE_ID } from '../type';\n\nexport const setOpenWebPushNotify = value => {\n return {\n type: OPEN_WEB_PUSH_NOTIFY,\n openWebPushNotify: value,\n };\n};\n\nexport const setDeviceIdAction = value => {\n return {\n type: SET_DEVICE_ID,\n payload: value,\n };\n};\n","import { autoPickActionTypes } from \"../type\";\nimport { authFetch } from \"../../config/axiosConfig\";\n\nexport const autoPickReq =\n ({ mode }) =>\n async (dispatch) => {\n dispatch({ type: autoPickActionTypes.SET_AUTO_PICK_BEGIN });\n\n try {\n const { data } = await authFetch.post(\"/Req_AutoPick.aspx\", { mode });\n // console.log(data);\n\n // mode: 0 手動\n // mode: 1 自動\n // mode: -1 查詢\n dispatch({\n type: autoPickActionTypes.SET_AUTO_PICK_SUCCESS,\n payload: { data: data.data },\n });\n } catch (error) {\n if (error.response.status !== 401) {\n dispatch({\n type: autoPickActionTypes.SET_AUTO_PICK_ERROR,\n payload: { error: error.response.data.msg || \"Fetch Fail.\" },\n });\n }\n }\n };\n","export default __webpack_public_path__ + \"static/media/newOrder.1318e751.mp3\";","import { useContext } from 'react';\nimport { useHistory } from 'react-router-dom';\n\n// Context\nimport InstantContext from '../../context/instant/InstantContext';\nimport BuyContext from '../../context/buy/BuyContext';\nimport SellContext from '../../context/sell/SellContext';\n\n// Lang Context\nimport { useI18n } from '../../lang';\n\nconst InstantNva = props => {\n // Lang Context\n const { t } = useI18n();\n // Router Props\n const history = useHistory();\n\n // Instant Context\n const instantContext = useContext(InstantContext);\n const { wsOnGoingData, wsStatusClient, instantData } = instantContext;\n\n // Buy Context\n const buyContext = useContext(BuyContext);\n const { buyWsClient } = buyContext;\n\n // Sell Context\n const sellContext = useContext(SellContext);\n const { wsClient } = sellContext;\n\n const handleClick = e => {\n if (buyWsClient) buyWsClient.close();\n if (wsStatusClient) wsStatusClient.close();\n if (wsClient) wsClient.close();\n\n if (e.target.id === 'all') props.setTab('all');\n if (e.target.id === 'onGoing') props.setTab('onGoing');\n\n if (props.jumpTo) history.replace('home/overview');\n };\n return (\n \n );\n};\n\nexport default InstantNva;\n","import './index.scss';\nimport { useI18n } from '../../lang';\n\nconst NoData = () => {\n const { t } = useI18n();\n return (\n
\n

{t('no_data')}

\n
\n );\n};\n\nexport default NoData;\n","import React from 'react';\n\nexport default function Timer({ second, minute }) {\n return (\n
\n {('0' + Math.floor(second / 60)).slice(-2)}:\n {('0' + Math.floor(second % 60)).slice(-2)}\n
\n );\n}\n","import { useState, useEffect } from 'react';\nimport Timer from './Timer';\n\nconst StopWatch = ({ deltaTime }) => {\n const [second, setSecond] = useState(deltaTime);\n\n useEffect(() => {\n let secondInterval = setInterval(() => {\n setSecond(second => second + 1);\n }, 1000);\n return () => {\n clearInterval(secondInterval);\n };\n // eslint-disable-next-line\n }, []);\n\n return ;\n};\n\nexport default StopWatch;\n","import firebase from 'firebase/app';\nimport 'firebase/messaging';\n\n// For Firebase JS SDK v7.20.0 and later, measurementId is optional\n\n// 本地\n// const {\n// REACT_APP_API_KEY_LOCAL,\n// REACT_APP_FIREBASE_AUTH_DOMAIN_LOCAL,\n// REACT_APP_FIREBASE_PROJECT_ID_LOCAL,\n// REACT_APP_FIREBASE_STORAGE_BUCKET_LOCAL,\n// REACT_APP_FIREBASE_MESSAGING_SENDER_ID_LOCAL,\n// REACT_APP_FIREBASE_APP_ID_LOCAL,\n// } = process.env;\n\n// const firebaseConfig = {\n// apiKey: REACT_APP_API_KEY_LOCAL,\n// authDomain: REACT_APP_FIREBASE_AUTH_DOMAIN_LOCAL,\n// projectId: REACT_APP_FIREBASE_PROJECT_ID_LOCAL,\n// storageBucket: REACT_APP_FIREBASE_STORAGE_BUCKET_LOCAL,\n// messagingSenderId: REACT_APP_FIREBASE_MESSAGING_SENDER_ID_LOCAL,\n// appId: REACT_APP_FIREBASE_APP_ID_LOCAL,\n// };\n\n//** 香港 */\nconst {\n REACT_APP_API_KEY,\n REACT_APP_FIREBASE_AUTH_DOMAIN,\n REACT_APP_FIREBASE_PROJECT_ID,\n REACT_APP_FIREBASE_STORAGE_BUCKET,\n REACT_APP_FIREBASE_MESSAGING_SENDER_ID,\n REACT_APP_FIREBASE_APP_ID,\n} = process.env;\n\nconst firebaseConfig = {\n apiKey: REACT_APP_API_KEY,\n authDomain: REACT_APP_FIREBASE_AUTH_DOMAIN,\n projectId: REACT_APP_FIREBASE_PROJECT_ID,\n storageBucket: REACT_APP_FIREBASE_STORAGE_BUCKET,\n messagingSenderId: REACT_APP_FIREBASE_MESSAGING_SENDER_ID,\n appId: REACT_APP_FIREBASE_APP_ID,\n};\n\nfirebase.initializeApp(firebaseConfig);\n\nlet messaging;\n\ntry {\n messaging = firebase.messaging();\n} catch (error) {\n console.log(error);\n}\n\n// eslint-disable-next-line\nconst { REACT_APP_VAPID_KEY, REACT_APP_VAPID_KEY_LOCAL } = process.env;\n\nlet currentToken = '';\n\nexport const getToken = async setTokenFound => {\n try {\n currentToken = await messaging.getToken({ vapidKey: REACT_APP_VAPID_KEY });\n if (currentToken) {\n setTokenFound(true);\n } else {\n setTokenFound(false);\n }\n } catch (error) {\n console.log('An error occurred while retrieving token. ', error);\n }\n\n return currentToken;\n};\n\nexport const deleteToken = async () => {\n try {\n if (currentToken) {\n // console.log('delete token');\n const data = await messaging.deleteToken(currentToken);\n\n if (data) {\n // console.log(data, 'delete');\n currentToken = '';\n }\n }\n } catch (error) {\n console.log(error);\n }\n};\n\nexport const onMessageListener = callback => {\n messaging.onMessage(payload => {\n callback(payload);\n });\n};\n","export const unitDate = (dateString) => {\n if(!dateString) return\n return dateString.split('.').join('/');\n};\n","import { useMediaQuery } from \"react-responsive\";\n\nconst useRwd = () => {\n // Media query\n const isMobile = useMediaQuery({ query: \"(max-width: 767px)\" });\n return {\n isMobile,\n };\n};\n\nexport default useRwd;\n","// Lang Context\nimport { useI18n } from \"../../lang\";\n\nimport moment from \"moment\";\n\n// Components\nimport StopWatch from \"../universal/StopWatch\";\n\nimport { unitDate } from \"../../lib/unitDate\";\n\nimport useRwd from \"../../hooks/useRwd\";\n\n// Utils\nimport {\n locationMoneyPrefix,\n locationMoneyCalcWithThousand,\n usdtThousandBitSeparator,\n} from \"../../lib/utils\";\n\nconst InstantAllItem = ({ el, handleClick }) => {\n const { isMobile } = useRwd();\n const { t } = useI18n();\n if (el.MType === 2) {\n return (\n
\n {/* header */}\n \n \n {t(\"instant_exRate\")}:\n {el.D1.toFixed(2)}\n \n\n \n \n {t(\"instant_acc_time\")}:\n \n
\n\n \n \n {t(\"instant_name\")}:{el?.P5?.split(\"|\")[0]}\n \n \n\n \n \n {t(\"instant_timer\")}:\n {moment(unitDate(el?.CreateDate)).format(\"MM-DD HH:mm\")}\n \n \n\n {process.env.REACT_APP_HOST_NAME === \"88U\" && (\n \n \n 備註:\n {el?.extraInfo}\n \n \n )}\n \n\n {/* Body */}\n
\n
\n {/* Usdt */}\n \n \n \n {t(\"instant_buy\")} \n \n \n {usdtThousandBitSeparator(el.UsdtAmt)} \n \n \n USDT\n \n
\n\n {/* Cny */}\n
\n \n \n {t(\"instant_pay\")} {locationMoneyCalcWithThousand(el.D2)}{\" \"}\n {locationMoneyPrefix()}\n \n
\n
\n\n
\n\n {/* Button */}\n
\n \n handleClick(\n el.D1.toFixed(2),\n el.D2.toFixed(2),\n el.UsdtAmt,\n \"買\",\n el.token\n )\n }\n className=\"easy-btn margin0 w-100\"\n >\n {t(\"btn_detail\")}\n \n
\n
\n \n );\n } else {\n return (\n
\n {/* header */}\n \n \n {t(\"instant_exRate\")}:{el.D1.toFixed(2)}\n \n\n \n \n {t(\"instant_acc_time\")}:\n \n
\n\n \n \n {t(\"instant_name\")}:{el?.P5?.split(\"|\")[0]}\n \n \n\n \n \n {t(\"instant_timer\")}:\n {moment(unitDate(el?.CreateDate)).format(\"MM-DD HH:mm\")}\n \n \n\n {process.env.REACT_APP_HOST_NAME === \"88U\" && (\n \n \n 備註:\n {el?.extraInfo}\n \n \n )}\n \n\n {/* Body */}\n
\n
\n {/* Usdt */}\n \n \n \n {t(\"instant_sell\")} \n \n \n {usdtThousandBitSeparator(el.UsdtAmt)} \n \n \n USDT\n \n
\n {/* Cny */}\n
\n \n \n {t(\"instant_get\")} {locationMoneyCalcWithThousand(el.D2)}{\" \"}\n {locationMoneyPrefix()}\n \n
\n
\n\n
\n\n {/* Button */}\n
\n \n handleClick(\n el.D1.toFixed(2),\n el.D2.toFixed(2),\n el.UsdtAmt,\n \"賣\",\n el.token\n )\n }\n className=\"easy-btn margin0 w-100\"\n >\n {t(\"btn_detail\")}\n \n
\n
\n \n );\n }\n};\n\nexport default InstantAllItem;\n","import { useContext } from \"react\";\n\n// Redux\nimport { useDispatch } from \"react-redux\";\n\nimport { useHistory } from \"react-router-dom\";\n\n// Context\nimport InstantContext from \"../../context/instant/InstantContext\";\n\n// Components\nimport NoData from \"../NoData\";\nimport InstantAllItem from \"./InstantAllItem\";\n\n// Actions\nimport { setCurrentInstantData } from \"../../store/actions/instantActions\";\n\n// Style\n\nconst InstantAll = ({ stop }) => {\n const dispatch = useDispatch();\n\n // Route Props\n const history = useHistory();\n\n // Instant Context\n const instantContext = useContext(InstantContext);\n const { instantData, setCountData } = instantContext;\n\n\n const handleClick = (exRate, cny, usdt, type, token) => {\n stop();\n const data = {\n exRate,\n cny,\n usdt,\n type,\n token,\n };\n setCountData(data);\n dispatch(setCurrentInstantData(data));\n history.replace(\"/home/instant\");\n };\n\n if (!instantData.length) {\n return ;\n } else {\n return (\n
\n {instantData.map((el) => {\n return (\n \n );\n })}\n
\n );\n }\n};\n\nexport default InstantAll;\n","import { instantActionsTypes } from \"../type\";\n\nexport const setInstantOrderData = (data) => ({\n type: instantActionsTypes.SET_INSTANT_ORDER,\n payload: data,\n});\n\nexport const setCurrentInstantData = (data) => ({\n type: instantActionsTypes.CURRENT_INSTANT_ORDER,\n payload: data,\n});\n","export const orderStatusCode = {\n 1: \"交易成功\",\n 33: \"等待付款\",\n 34: \"等待收款\",\n 35: \"申訴中\",\n 98: \"交易取消\",\n 99: \"交易超時\",\n};\n\nexport const sellOrderStatusCode = {\n 1: \"交易成功\",\n 33: \"對方準備中\",\n 34: \"需確認收款\",\n 35: \"申訴中\",\n 98: \"交易取消\",\n 99: \"交易超時\",\n};\n\nexport const buyOrderStatusCode = {\n 1: \"交易成功\",\n 33: \"等待付款\",\n 34: \"對方確認中\",\n 35: \"申訴中\",\n 98: \"交易取消\",\n 99: \"交易超時\",\n};\n","import { useState, useEffect } from \"react\";\nimport Countdown from \"react-countdown\";\n\nimport moment from \"moment\";\n\n// Lang Context\nimport { useI18n } from \"../../lang\";\n\n// Components\nimport CountDownTimer from \"../universal/countDownTimer\";\n\nimport useRwd from \"../../hooks/useRwd\";\n\nimport { unitDate } from \"../../lib/unitDate\";\n\n// Style\nimport Spinner from \"react-bootstrap/Spinner\";\nimport Button from \"react-bootstrap/Button\";\n\n// Utils\nimport {\n locationMoneyPrefix,\n usdtThousandBitSeparator,\n locationMoneyCalcWithThousand,\n} from \"../../lib/utils\";\n\nimport {\n // orderStatusCode,\n sellOrderStatusCode,\n buyOrderStatusCode,\n} from \"../../lib/orderStatus\";\n\nconst InstantOnGoingItem = ({ el, handleClick, btnLoading }) => {\n // Lang Context\n const { t } = useI18n();\n\n const { isMobile } = useRwd();\n\n // Init State\n const [timeLeft] = useState(\n Date.now() + 1000 * 60 * 30 - el.DeltaTime * 1000\n );\n const [overTime, setOverTime] = useState(false);\n\n // ===========\n // Function\n // ===========\n const handleCountDownComplete = () => {\n setOverTime(true);\n };\n\n useEffect(() => {\n if (el.DeltaTime > 1800) setOverTime(true);\n }, [el.DeltaTime]);\n\n if (el.MType === 2) {\n return (\n
\n {/* header */}\n \n \n {t(\"instant_exRate\")}:{el.D1.toFixed(2)}\n \n\n \n \n {t(\"instant_limit_time\")}:\n {el.Order_StatusID !== 35 ? (\n \n {overTime ? (\n \n {t(\"instant_over_time_short\")}\n \n ) : (\n \n )}\n \n ) : (\n {t(\"instant_appeal\")}\n )}\n
\n\n \n \n {t(\"instant_name\")}:{el?.P5?.split(\"|\")[0]}\n \n \n\n \n \n {t(\"instant_timer\")}:{\" \"}\n {moment(unitDate(el?.CreateDate)).format(\"MM-DD HH:mm\")}\n \n \n\n {process.env.REACT_APP_HOST_NAME === \"88U\" && (\n \n \n 備註:\n {el?.extraInfo}\n \n \n )}\n \n\n {/* Body */}\n
\n
\n {/* Usdt */}\n
\n \n \n {t(\"instant_buy\")}  \n \n \n {usdtThousandBitSeparator(el.UsdtAmt)} \n \n \n USDT\n \n
\n\n {/* Cny */}\n
\n \n \n {t(\"instant_pay\")} {locationMoneyCalcWithThousand(el.D2)}{\" \"}\n {locationMoneyPrefix()}\n \n
\n\n {/* Status */}\n
\n \n {buyOrderStatusCode[el.Order_StatusID]}\n \n
\n
\n\n
\n\n
\n {\n handleClick(el.token, \"sell\");\n }}\n className=\"easy-btn margin0 w-100\"\n >\n {t(\"btn_detail\")}\n \n
\n
\n
\n );\n } else {\n return (\n
\n {/* header */}\n \n \n {t(\"instant_exRate\")}:{el.D1.toFixed(2)}\n \n\n \n \n {t(\"instant_limit_time\")}:\n\n {el.Order_StatusID !== 35 ? (\n \n {overTime ? (\n \n {t(\"instant_over_time_short\")}\n \n ) : (\n \n )}\n \n ) : (\n {t(\"instant_appeal\")}\n )}\n
\n\n \n \n {t(\"instant_name\")}:{el?.P5?.split(\"|\")[0]}\n \n \n\n \n \n {t(\"instant_timer\")}:{\" \"}\n {moment(unitDate(el?.CreateDate)).format(\"MM-DD HH:mm\")}\n \n \n\n {process.env.REACT_APP_HOST_NAME === \"88U\" && (\n \n \n 備註:\n {el?.extraInfo}\n \n \n )}\n \n\n {/* Body */}\n
\n
\n {/* Usdt */}\n
\n \n \n {t(\"instant_sell\")}  \n \n \n {/* {el.UsdtAmt.toFixed(2)}  */}\n {usdtThousandBitSeparator(el.UsdtAmt)} \n \n \n USDT\n \n
\n {/* Cny */}\n
\n \n \n {t(\"instant_get\")} {locationMoneyCalcWithThousand(el.D2)}{\" \"}\n {locationMoneyPrefix()}\n \n
\n\n {/* Status */}\n
\n \n {sellOrderStatusCode[el.Order_StatusID]}{\" \"}\n \n
\n
\n\n
\n\n {/* Button */}\n
\n {btnLoading ? (\n \n ) : (\n {\n handleClick(el.token, \"buy\");\n }}\n className=\"easy-btn margin0 w-100\"\n >\n {t(\"btn_detail\")}\n \n )}\n
\n
\n
\n );\n }\n};\n\nexport default InstantOnGoingItem;\n","import { useEffect, useContext, useState } from \"react\";\nimport { useHistory } from \"react-router-dom\";\n\n// Context\nimport InstantContext from \"../../context/instant/InstantContext\";\nimport HttpErrorContext from \"../../context/httpError/HttpErrorContext\";\nimport BuyContext from \"../../context/buy/BuyContext\";\n\n// Components\nimport NoData from \"../NoData\";\nimport InstantOnGoingItem from \"./InstantOnGoingItem\";\n\nconst TheInstant = () => {\n // Route Props\n const history = useHistory();\n\n // Init State\n const [token, setToken] = useState(\"\");\n const [type, setType] = useState(\"\");\n\n // Instant Context\n const instantContext = useContext(InstantContext);\n const {\n wsOnGoingData,\n sellMatch1,\n buyMatch1,\n sell1Data,\n buy1Data,\n setSell1Data,\n setBuy1Data,\n setCountData,\n setActionType,\n } = instantContext;\n\n const { GetDeltaTime } = useContext(BuyContext);\n\n // HttpError Context\n const httpError = useContext(HttpErrorContext);\n const { btnLoading, errorText, setHttpError } = httpError;\n\n const handleClick = (token, type) => {\n setToken(token);\n setType(type);\n setCountData({ token });\n setActionType(\"onGoing\");\n };\n\n // ==========\n // UseEffect\n // ==========\n\n useEffect(() => {\n if (!token) return;\n\n // GetDeltaTime(token)\n\n if (type === \"sell\") {\n history.replace(`/home/instant/buy/${token}`);\n\n // sellMatch1(token);\n // setBuy1Data(null);\n }\n if (type === \"buy\") {\n // buyMatch1(token);\n history.replace(`/home/instant/sell/${token}`);\n\n // GetDeltaTime(token)\n // setSell1Data(null);\n }\n // eslint-disable-next-line\n }, [token]);\n\n // useEffect(() => {\n // if (sell1Data || buy1Data) history.replace(`/home/instant/`);\n // // eslint-disable-next-line\n // }, [buy1Data, sell1Data]);\n\n useEffect(() => {\n if (errorText) alert(errorText);\n return () => {\n setHttpError(\"\");\n };\n // eslint-disable-next-line\n }, [errorText]);\n\n if (!wsOnGoingData.length) {\n return ;\n } else {\n return (\n
\n {wsOnGoingData.map((el) => {\n return (\n \n );\n })}\n
\n );\n }\n};\n\nexport default TheInstant;\n","import { useEffect, useContext, useState } from \"react\";\n\n// Redux\nimport { useDispatch, useSelector } from \"react-redux\";\n\n// Actions\nimport { setOpenWebPushNotify } from \"../../store/actions/agentAction\";\nimport { autoPickReq } from \"../../store/actions/autoPickAction\";\n\n// Play Sound\nimport useSound from \"use-sound\";\nimport newOrderSound from \"../../Assets/mp3/newOrder.mp3\";\n\n// Context\nimport InstantContext from \"../../context/instant/InstantContext\";\nimport HttpErrorContext from \"../../context/httpError/HttpErrorContext\";\n\n// Lang Context\nimport { useI18n } from \"../../lang\";\n\n// Components\nimport InstantNav from \"./InstantNav\";\nimport InstantAll from \"./InstantAll\";\nimport InstantOnGoing from \"./InstantOnGoing\";\n\n// Firebase Web Push\nimport { deleteToken } from \"../../firebaseInit\";\n\nimport Button from \"react-bootstrap/Button\";\n\nconst TheInstant = () => {\n const [playbackRate] = useState(0.6);\n // Redux\n const dispatch = useDispatch();\n const { openWebPushNotify, setDeviceId } = useSelector(\n (state) => state.agent\n );\n\n const {\n data: autoPickData,\n loading: autoPickLoading,\n error: autoPickError,\n } = useSelector((state) => state.autoPick);\n const { AutoMode } = autoPickData || {};\n\n const { status: setDeviceIdStatus, error: setDeviceIdError } = setDeviceId;\n\n // Lang Context\n const { t } = useI18n();\n\n // Init State\n const [tab, setTab] = useState(\"all\");\n const [play, { stop, sound }] = useSound(newOrderSound, {\n playbackRate,\n loop: true,\n interrupt: true,\n });\n\n // const [loop, setLoop] = useState();\n const [soundState, setSoundState] = useState(\n localStorage.getItem(\"openSound\")\n );\n\n // const [autoPick, setAutoPick] = useState(\"\");\n // const [notifyPermission, setNotifyPermission] = useState('');\n\n // Instant Context\n const instantContext = useContext(InstantContext);\n const {\n connectInstantWs,\n instantOngoingWsConnect,\n cleanAll,\n instantAllClient,\n instantOnGoingClient,\n instantData,\n wsOnGoingData,\n } = instantContext;\n\n // HttpError Context\n const httpError = useContext(HttpErrorContext);\n const { httpLoading } = httpError;\n\n // ===========\n // useEffect\n // ===========\n useEffect(() => {\n if (instantOnGoingClient) instantOnGoingClient.close();\n if (instantAllClient) instantAllClient.close();\n connectInstantWs();\n instantOngoingWsConnect();\n\n return () => {\n if (instantOnGoingClient) instantOnGoingClient.close();\n if (instantAllClient) instantAllClient.close();\n cleanAll();\n };\n\n // eslint-disable-next-line\n }, []);\n\n useEffect(() => {\n if (soundState) localStorage.setItem(\"openSound\", true);\n if (!soundState) localStorage.removeItem(\"openSound\");\n\n if (JSON.parse(soundState) && instantData.length > 0) {\n console.log(sound);\n\n // console.log(soundState, instantData.length);\n // 即時買賣新訂單聲音提示\n play();\n }\n\n if (soundState && instantData.length === 0) {\n stop();\n // clearInterval(soundLoop);\n }\n\n return () => {\n stop();\n // clearInterval(soundLoop);\n };\n }, [instantData, soundState, stop, play, sound]);\n\n useEffect(() => {\n if (openWebPushNotify) {\n localStorage.setItem(\"openNotify\", \"yes\");\n }\n\n if (!openWebPushNotify) {\n deleteToken();\n localStorage.removeItem(\"openNotify\");\n }\n }, [openWebPushNotify, dispatch]);\n\n const handleStopSound = () => {\n stop();\n // clearInterval(loop);\n };\n\n const webPushClickHandler = () => {\n if (!window.Notification) {\n alert(t(\"web_push_not_support\"));\n return;\n }\n\n if (setDeviceIdError) {\n alert(setDeviceIdError);\n return;\n }\n // console.log(Notification.permission);\n\n if (\n Notification.permission === \"granted\" ||\n Notification.permission === \"default\"\n ) {\n dispatch(setOpenWebPushNotify(!openWebPushNotify));\n // setNotifyPermission('granted');\n }\n\n if (Notification.permission === \"denied\") {\n // setNotifyPermission('denied');\n dispatch(setOpenWebPushNotify(false));\n alert(t(\"web_push_open_notify_request\"));\n }\n };\n\n useEffect(() => {\n // mode: 0 手動\n // mode: 1 自動\n // mode: -1 查詢\n if (process.env.REACT_APP_HOST_NAME === \"K100U\") {\n dispatch(autoPickReq({ mode: -1 }));\n }\n }, [dispatch]);\n\n const autoPickHandler = () => {\n // 自動轉手動\n if (AutoMode === 1) {\n dispatch(autoPickReq({ mode: 0 }));\n }\n\n // 手動轉自動\n if (AutoMode === 0) {\n dispatch(autoPickReq({ mode: 1 }));\n }\n };\n\n useEffect(() => {\n if (autoPickError) {\n alert(`自動接單錯誤:${autoPickError}`);\n }\n }, [autoPickError]);\n\n return (\n
\n
\n

\n {t(\"instant_transaction\")}\n

\n\n {setDeviceIdStatus === \"pending\" ? (\n \n ) : (\n \n {openWebPushNotify && !setDeviceIdError\n ? t(\"web_push_button_allow\")\n : t(\"web_push_button_deny\")}\n \n )}\n\n setSoundState((pre) => !pre)}\n >\n {!soundState ? t(\"instant_sound_close\") : t(\"instant_sound_open\")}\n \n\n {/* Auto Pick */}\n {autoPickLoading && (\n \n )}\n {autoPickData && !autoPickLoading && (\n \n {AutoMode === 0 && t(\"instant_auto_pick_close\")}\n {AutoMode === 1 && t(\"instant_auto_pick\")}\n \n )}\n
\n
\n {/* Tab Link */}\n \n {/* Content */}\n {tab === \"all\" && instantData ? (\n \n ) : null}\n {tab === \"onGoing\" && wsOnGoingData ? : null}\n {/* Loading */}\n {/* {httpLoading && (\n
\n \n
\n )} */}\n
\n
\n );\n};\n\nexport default TheInstant;\n","import { animateScroll } from 'react-scroll';\n\nexport const scrollToBottom = (id) => {\n animateScroll.scrollToBottom({\n containerId: id,\n duration: 0,\n });\n};\n\nexport const scrollToBottomAnimated = (id) => {\n animateScroll.scrollToBottom({\n containerId: id,\n duration: 250,\n });\n};\n\n","import Resizer from \"react-image-file-resizer\"; // 圖片壓縮\n\n\nexport const resizeFile = (file, type = 'base64') =>\n new Promise((resolve) => {\n Resizer.imageFileResizer(\n file,\n 1024,\n 1024,\n \"JPEG\",\n 90,\n 0,\n (uri) => {\n resolve(uri);\n },\n type\n );\n });\n","export default __webpack_public_path__ + \"static/media/cs.0911f779.png\";","import dayjs from 'dayjs'\nimport { v4 as uuidv4 } from 'uuid';\n\nexport const customText = {\n Message: `親愛的會員您好,我是 88u.asia 客服,請問有什麼需要為您服務的嗎? 關於會員升等請輸入\"1\" 關於操作說明請輸入\"2\" 關於其他問題請輸\"3\"`,\n Message_Role: 2,\n Message_Type: 1,\n SysDate: dayjs().format('YYYY.MM.DD HH:mm:ss') ,\n SysID: uuidv4(),\n};\n\n","import React, { useEffect, useState, useRef } from \"react\";\nimport { MessageBox, Input } from \"react-chat-elements\";\nimport dayjs from \"dayjs\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { PhotoProvider, PhotoConsumer } from \"react-photo-view\"; // 圖片檢視\n\n// Actions\nimport {\n setMessage,\n setMessageList,\n} from \"../../store/actions/memberChatActions\";\n\n// Utils\nimport { scrollToBottomAnimated } from \"../../lib/scrollToBottom\";\nimport { resizeFile } from \"../../lib/imageResize\";\n\nimport { unitDate } from \"../../lib/unitDate\";\n\n// Hooks\nimport { useWebSocket } from \"../../hooks/useWebSocket\";\n\nimport csImage from \"../../Assets/cs.png\";\nimport uploadImageIcon from \"../../Assets/attach_icon.png\";\nimport sendImageIcon from \"../../Assets/send_icon.png\";\n\nimport styles from \"./MemberChat.module.scss\";\nimport \"react-chat-elements/dist/main.css\";\nimport \"react-photo-view/dist/index.css\";\n\nimport { customText } from \"../../config/customText\";\n\nconst connectWs = \"ws_chatuser.ashx\";\n\nconst MemberChat = () => {\n const loginSession = localStorage.getItem(\"token\");\n const url = `${process.env.REACT_APP_K100U_CHAT_WEBSOCKET}${connectWs}?login_session=${loginSession}`;\n\n const { socket, connectMemberLevelWs, sendMessage, sendImage, online } =\n useWebSocket(url);\n\n const inputRef = useRef();\n const imageInputRef = useRef();\n\n const [inputValue, setInputValue] = useState(\"\");\n\n const dispatch = useDispatch();\n const { messages, showChat } = useSelector((state) => state.memberChat);\n\n const onSubmit = (e) => {\n e.preventDefault();\n if (!inputValue) return;\n sendMessage(inputValue);\n setInputValue(\"\");\n inputRef.current.value = \"\";\n };\n\n const onImageChange = async (e) => {\n try {\n const file = e.target.files[0];\n const image = await resizeFile(file);\n console.log(image)\n sendImage(image);\n } catch (error) {\n alert(error);\n }\n };\n\n useEffect(() => {\n if (socket) return;\n connectMemberLevelWs();\n }, [connectMemberLevelWs, socket]);\n\n useEffect(() => {\n if (!showChat) {\n const filterArr = messages.filter(\n (el) => el.Message !== customText.Message\n );\n dispatch(setMessageList(filterArr));\n\n return;\n }\n\n scrollToBottomAnimated(\"member-message\");\n\n }, [showChat]);\n\n // Message Listen\n useEffect(() => {\n const messageListen = (message) => {\n if (!message?.data) return;\n const dataFromServer = JSON.parse(message.data);\n if (Array.isArray(dataFromServer)) {\n dispatch(setMessageList(dataFromServer));\n scrollToBottomAnimated(\"member-message\");\n\n return;\n }\n\n dispatch(setMessage(dataFromServer));\n scrollToBottomAnimated(\"member-message\");\n };\n\n socket?.addEventListener(\"message\", messageListen);\n\n return () => {\n socket?.removeEventListener(\"message\", messageListen);\n };\n }, [socket, dispatch]);\n\n return (\n \n
\n \"cs\"\n {online ? 連線成功 : 連線中...}\n {/* \"close\" */}\n
\n
\n {messages.map(\n ({ Message, SysID, Message_Role, SysDate, Message_Type }) => {\n return (\n
\n {Message_Type === 1 && (\n \n )}\n\n {Message_Type === 2 && (\n \n \n {Message_Role === 2 && (\n *客服\n )}\n \n {dayjs(unitDate(SysDate)).format(\"HH:mm\")}\n \n \n \n \n
\n \n )}\n
\n );\n }\n )}\n \n
\n setInputValue(target.value)}\n inputStyle={{ backgroundColor: \"#f2f2f2\" }}\n className={styles.input}\n placeholder=\"輸入訊息\"\n leftButtons={\n <>\n imageInputRef.current.click()}\n className={styles.upload}\n src={uploadImageIcon}\n alt=\"upload\"\n />\n \n \n }\n rightButtons={\n \n }\n />\n \n \n );\n};\n\nexport default MemberChat;\n","import { useState, useCallback, useEffect } from \"react\";\nimport ReconnectingWebSocket from \"reconnecting-websocket\";\n\nexport const useWebSocket = (path) => {\n const [socket, setSocket] = useState(null);\n const [online, setOnline] = useState(false);\n\n const connectMemberLevelWs = useCallback(() => {\n const ws = new ReconnectingWebSocket(path);\n setSocket(ws);\n }, [path]);\n\n const sendMessage = (value) => {\n if (!value) return;\n socket.send(\n JSON.stringify({\n Message_Type: 1,\n Message: value.toString(),\n })\n );\n };\n\n const sendImage = (image) => {\n if (!image) return;\n socket.send(\n JSON.stringify({\n Message_Type: 2,\n Message: image,\n })\n );\n };\n\n // Open Listen\n useEffect(() => {\n const openListen = () => {\n setOnline(true);\n };\n socket?.addEventListener(\"open\", openListen);\n\n return () => {\n socket?.removeEventListener(\"open\", openListen);\n };\n }, [socket]);\n\n // Close Listen\n useEffect(() => {\n const closeListen = (close) => {\n setOnline(false);\n };\n socket?.addEventListener(\"close\", closeListen);\n\n return () => {\n socket?.removeEventListener(\"close\", closeListen);\n };\n }, [socket]);\n\n return {\n socket,\n connectMemberLevelWs,\n sendMessage,\n sendImage,\n online,\n };\n};\n","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,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\"","export default __webpack_public_path__ + \"static/media/k100u-phone.5ae8e289.png\";","export default __webpack_public_path__ + \"static/media/會員等級.39738d03.png\";","import { useContext, useEffect, useRef } from \"react\";\nimport { Link } from \"react-router-dom\";\nimport { Button } from \"antd-mobile\";\n\nimport { useDispatch, useSelector } from \"react-redux\";\n\nimport { setShowMemberChat } from \"../../store/actions/memberChatActions\";\n\nimport { getKycUserData } from \"../../store/actions/userAction\";\nimport { setKycUserData } from \"../../store/actions/userAction\";\n\n// Context\nimport AuthContext from \"../../context/auth/AuthContext\";\nimport { useI18n } from \"../../lang/\";\n\n// Components\nimport TheInstant from \"../Instant/TheInstant\";\nimport MemberChat from \"../member-chat/MemberChat\";\n\nimport { getKyc } from \"../../store/actions/kycAction\";\n\n// Style\nimport \"./index.scss\";\nimport Container from \"react-bootstrap/Container\";\nimport Row from \"react-bootstrap/Row\";\nimport Col from \"react-bootstrap/Col\";\nimport classes from \"./overView.module.scss\";\nimport phoneImg from \"../../Assets/k100u-phone.png\";\nimport memberLevelImg from \"../../Assets/88u/會員等級.png\";\n\nimport { Image } from \"antd-mobile\";\nimport BalanceContext from \"../../context/balance/BalanceContext\";\nimport useHttp from \"../../hooks/useHttp\";\nimport { getOrderDetail } from \"../../lib/api\";\n\n/**\n * 0 => 一般會員\n * 1 => 白銀\n * 2 => 白金\n * 3 => 鑽石\n * 4 => 黑鑽\n * 5 => 禁止買賣\n */\n\nconst memberMap = {\n 0: \"一般會員\",\n 1: \"白銀\",\n 2: \"白金\",\n 3: \"鑽石\",\n 4: \"黑鑽\",\n 5: \"禁止買賣\",\n};\n\nconst HOST =\n process.env.NODE_ENV === \"development\"\n ? \"http://localhost:3000\"\n : \"https://www.88u.asia\";\n\nconst OverView = () => {\n // Auth Context\n const authContext = useContext(AuthContext);\n const { isAgent } = authContext;\n\n const linkRef = useRef();\n\n const diSessionID = window.sessionStorage.getItem(\"88u_di_session\");\n const diOrderID = window.sessionStorage.getItem(\"88u_di_order\");\n\n const { lvl } = useContext(BalanceContext);\n\n const { sendRequest, data: diOrderData } = useHttp(getOrderDetail);\n\n const dispatch = useDispatch();\n\n const { data: getUserKycData, loading: getUserLoading } = useSelector(\n (state) => state.getUer\n );\n const { loading: userKycLoading, data } = useSelector(\n (state) => state.setUser\n );\n\n const { data: getKycData } = useSelector((state) => state.getKyc);\n\n if (diOrderData?.Order_StatusID > 35) {\n sessionStorage.removeItem(\"88u_di_session\");\n sessionStorage.removeItem(\"88u_di_order\");\n }\n\n const onClick = () => {\n const { Data } = getUserKycData || {};\n dispatch(setKycUserData({ ...Data, reqStatus: 3 }));\n };\n\n // Lang Context\n const { t } = useI18n();\n\n useEffect(() => {\n if (!diOrderID) return;\n sendRequest({ Token: diOrderID });\n }, [diOrderID, sendRequest]);\n\n useEffect(() => {\n dispatch(getKycUserData());\n dispatch(getKyc());\n\n const looper = setInterval(() => {\n dispatch(getKycUserData());\n dispatch(getKyc());\n }, 15000);\n\n return () => {\n clearInterval(looper);\n };\n }, [dispatch]);\n\n const hasOrderUrl = `buy_token=${diOrderID}`;\n\n const URL = `${HOST}/di/#/home?session_id=${diSessionID}&${hasOrderUrl}`;\n\n const isKyc = sessionStorage.getItem(\"isKyc\");\n\n const disableLevel =\n getUserKycData?.Status !== 101 ||\n getKycData?.[getKycData?.length - 1]?.User_BankStatus !== 101 ||\n !getUserKycData?.Status ||\n data?.msg === \"success\";\n\n const autoRedirectToDi =\n !disableLevel &&\n linkRef?.current?.click &&\n isKyc &&\n process.env.REACT_APP_HOST_NAME === \"88U\";\n\n if (autoRedirectToDi) {\n window.location.push(URL);\n return null;\n }\n\n return (\n <>\n \n {process.env.REACT_APP_HOST_NAME === \"88U\" && !isAgent && (\n
\n

\n 目前等級 :{\" \"}\n {memberMap[lvl]}\n

\n\n \n {disableLevel ? \"驗證中\" : \"升級\"}\n \n\n \n
\n )}\n\n \n\n
\n \n
\n\n

{t(\"welcome_text\")}

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

{t(\"overView_transaction\")}

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

{t(\"overView_transfer\")}

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

{t(\"overView_wallet\")}

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

{t(\"overView_history\")}

\n \n \n
\n\n {!isAgent && (\n
\n
\n

{t(\"slogan_title\")}

\n

{t(\"slogan_sub_text_1\")}

\n

{t(\"slogan_sub_text_2\")}

\n
\n
\n \"phone\"\n
\n
\n )}\n\n {isAgent && (\n \n \n \n \n \n )}\n
\n \n );\n};\n\nconst backImg1 = {\n // backgroundImage: 'url(../../Assets/1.jpg)',\n // backgroundSize: 'contain',\n};\n\nexport default OverView;\n","import { createContext } from 'react';\nconst WalletContext = createContext();\nexport default WalletContext;\n","import { accountActionsTypes } from \"../type\";\nimport { authFetch } from \"../../config/axiosConfig\";\n\nexport const getAcc = () => async (dispatch) => {\n dispatch({ type: accountActionsTypes.GET_CURRENT_ACC_BEGIN });\n\n try {\n const { data } = await authFetch.get(\"/GetAgentAcc.aspx\");\n\n dispatch({\n type: accountActionsTypes.GET_CURRENT_ACC_SUCCESS,\n payload: { data: data.data },\n });\n } catch (error) {\n if (error.response?.status !== 401) {\n dispatch({\n type: accountActionsTypes.GET_CURRENT_ACC_ERROR,\n payload: { error: error?.response?.data?.msg || \"Fetch Fail.\" },\n });\n }\n }\n};\n\nexport const getAccHistory = () => async (dispatch) => {\n dispatch({ type: accountActionsTypes.SET_HISTORY_ACC_BEGIN });\n\n try {\n const { data } = await authFetch.get(\"/GetAgentAccHistory.aspx\");\n\n dispatch({\n type: accountActionsTypes.SET_HISTORY_ACC_SUCCESS,\n payload: { data: data.data },\n });\n } catch (error) {\n if (error.response?.status !== 401) {\n dispatch({\n type: accountActionsTypes.SET_HISTORY_ACC_ERROR,\n payload: { error: error?.response?.data?.msg || \"Fetch Fail.\" },\n });\n }\n }\n};\n\nexport const setAcc = (accData) => async (dispatch) => {\n dispatch({ type: accountActionsTypes.SET_CURRENT_ACC_BEGIN });\n\n try {\n const { data } = await authFetch.post(\"/SetAgentAcc.aspx\", accData);\n\n dispatch({\n type: accountActionsTypes.SET_CURRENT_ACC_SUCCESS,\n payload: { data },\n });\n } catch (error) {\n if (error.response?.status !== 401) {\n dispatch({\n type: accountActionsTypes.SET_CURRENT_ACC_ERROR,\n payload: { error: error?.response?.data?.msg || \"Fetch Fail.\" },\n });\n }\n }\n};\n","import React, { useState, useEffect } from \"react\";\nimport Form from \"react-bootstrap/Form\";\nimport Button from \"react-bootstrap/Button\";\n\nimport { useDispatch, useSelector } from \"react-redux\";\n\n// Hooks\nimport { useI18n } from \"../../../lang\";\n\n// Actions\nimport { setAcc } from \"../../../store/actions/accountAction\";\n\nimport { Toast } from \"antd-mobile\";\n\n// // Helpers\nimport { _setAgentAccDataFormat } from \"../../../lib/helper\";\n\nimport styles from \"./AccForm.module.scss\";\n\nconst AccForm = ({ onHideHandler, setShowForm, editData }) => {\n const [canSubmit, setCanSubmit] = useState(false);\n const [formData, setFormData] = useState({\n name: \"\",\n account: \"\",\n bank: \"\",\n city: \"\",\n });\n\n const {t} = useI18n()\n\n const dispatch = useDispatch();\n\n const {\n loading: setAccLoading,\n data: setAccData,\n error: setAccError,\n } = useSelector((state) => state.setAccount);\n\n const onChange = ({ target }) => {\n const { id } = target || {};\n if (!id) return;\n\n setFormData((prev) => ({\n ...prev,\n [id]: target.value,\n }));\n };\n\n useEffect(() => {\n const { name, account, bank } = formData || {};\n\n if (name && account && bank) {\n setCanSubmit(true);\n } else {\n setCanSubmit(false);\n }\n }, [formData]);\n\n const onSubmitHandler = (e) => {\n e.preventDefault();\n dispatch(setAcc(_setAgentAccDataFormat(formData)));\n };\n\n useEffect(() => {\n if (editData) {\n setFormData({\n account: editData.P1,\n name: editData.P2,\n bank: editData.P3,\n city: editData.P4,\n });\n }\n\n return () => {\n setFormData({\n name: \"\",\n account: \"\",\n bank: \"\",\n city: \"\",\n });\n };\n }, [editData]);\n\n useEffect(() => {\n if (setAccData) {\n Toast.config({ duration: 1000, position: \"center\" });\n Toast.show({\n icon: \"success\",\n content: \"新增成功\",\n });\n\n setShowForm(false);\n\n return;\n }\n\n if (setAccError) {\n Toast.show({\n icon: \"fail\",\n content: setAccError,\n });\n }\n }, [setAccData, setAccError, setShowForm]);\n\n return (\n
\n \n {t('EditBankInfoForm_name')}\n {/* (必填) */}\n \n \n\n \n {t('EditBankInfoForm_account')}\n (必填)\n \n \n\n \n {t('EditBankInfoForm_bank')}\n (必填)\n \n \n\n {process.env.REACT_APP_HOST_NAME === \"K100U\" && (\n \n {t('EditBankInfoForm_city')}\n \n \n )}\n\n
*需與匯款帳戶資訊一致
\n\n
\n setShowForm(false)}\n className=\"easy-btn-ghost\"\n style={{ padding: 10 }}\n >\n 取消\n \n \n 新增\n \n
\n
\n );\n};\n\nexport default AccForm;\n","export const _setAgentAccDataFormat = (data) => {\n data = {\n P1: data.account,\n P2: data.name,\n P3: data.bank,\n P4: data.city,\n };\n\n return data;\n};\n","import React, { useState, useEffect } from \"react\";\nimport ReactPaginate from \"react-paginate\";\n\nconst PaginatedItems = ({ itemsPerPage, items, setCurrentItems }) => {\n const [pageCount, setPageCount] = useState(0);\n const [itemOffset, setItemOffset] = useState(0);\n\n const handlePageClick = (event) => {\n const newOffset = (event.selected * itemsPerPage) % items.length;\n setItemOffset(newOffset);\n };\n\n useEffect(() => {\n const endOffset = itemOffset + itemsPerPage;\n setCurrentItems(items.slice(itemOffset, endOffset));\n setPageCount(Math.ceil(items.length / itemsPerPage));\n // eslint-disable-next-line\n }, [itemOffset, itemsPerPage, items]);\n\n return (\n \"\n previousLabel=\"<\"\n onPageChange={handlePageClick}\n pageRangeDisplayed={1}\n marginPagesDisplayed={2}\n pageCount={pageCount}\n containerClassName=\"pagination\"\n pageClassName=\"page-item\"\n breakClassName=\"page-item\"\n previousClassName=\"page-item\"\n nextClassName=\"page-item\"\n pageLinkClassName=\"page-link\"\n previousLinkClassName=\"page-link\"\n nextLinkClassName=\"page-link\"\n breakLinkClassName=\"page-link\"\n breakLabel=\"...\"\n activeClassName=\"active\"\n renderOnZeroPageCount={null}\n />\n );\n};\n\nexport default PaginatedItems;\n","import React, { useState, useEffect } from \"react\";\nimport PaginatedItems from \"./PaginatedItems\";\nimport { BsFillPersonCheckFill, BsFillTrashFill } from \"react-icons/bs\";\nimport { useSelector, useDispatch } from \"react-redux\";\n\nimport styles from \"./AccListMobile.module.scss\";\n\nimport Button from \"react-bootstrap/Button\";\nimport useHttp from \"../../../hooks/useHttp\";\n\nimport { delAgentAcc } from \"../../../lib/api\";\n\nconst AccListMobile = ({ accHistoryData, onClickHandler, getAccHistory }) => {\n const [currentItems, setCurrentItems] = useState(null);\n\n const { data: currentAccData } = useSelector((state) => state.currentAcc);\n\n const {\n sendRequest: delAcc,\n data: delAccData,\n status: delAccStatus,\n error: delAccError,\n } = useHttp(delAgentAcc);\n\n // console.log(accHistoryData);\n const dispatch = useDispatch();\n\n const deleteHandler = (id) => {\n delAcc(id);\n };\n\n useEffect(() => {\n console.log(delAccData);\n if (delAccStatus === \"pending\") return;\n\n if (delAccError) {\n alert(delAccError);\n return;\n }\n\n if (delAccData) {\n dispatch(getAccHistory());\n }\n }, [delAccStatus, delAccError, delAccData, dispatch]);\n\n return (\n <>\n
\n {currentItems?.map((d) => (\n onClickHandler(d.H_id)}\n className={styles.item}\n >\n
\n \n {d.P2}\n
\n
{d.P1}
\n
{d.P3}
\n\n {process.env.REACT_APP_HOST_NAME === \"K100U\" && (\n
{d.P4}
\n )}\n\n {currentAccData.P1 !== d.P1 && (\n {\n e.stopPropagation();\n deleteHandler(d.H_id);\n }}\n >\n {delAccStatus === \"pending\" ? (\n \n loading...\n \n ) : (\n \n )}\n \n )}\n {/* {process.env.REACT_APP_HOST_NAME === \"88U\" &&\n currentAccData.P1 !== d.P1 &&\n currentAccData.P2 !== d.P2 &&\n currentAccData.P3 !== d.P3 && (\n {\n e.stopPropagation();\n deleteHandler(d.H_id);\n }}\n >\n {delAccStatus === \"pending\" ? (\n \n loading...\n \n ) : (\n \n )}\n \n )}\n\n {process.env.REACT_APP_HOST_NAME === \"K100U\" &&\n currentAccData.P1 !== d.P1 &&\n currentAccData.P2 !== d.P2 &&\n currentAccData.P3 !== d.P3 &&\n currentAccData.P4 !== d.P4 && (\n {\n e.stopPropagation();\n deleteHandler(d.H_id);\n }}\n >\n {delAccStatus === \"pending\" ? (\n \n loading...\n \n ) : (\n \n )}\n \n )} */}\n \n ))}\n
\n\n \n \n );\n};\n\nexport default AccListMobile;\n","import React, { useState, useEffect } from \"react\";\nimport { useSelector, useDispatch } from \"react-redux\";\n\nimport { BsFillPersonCheckFill, BsFillTrashFill } from \"react-icons/bs\";\n\n// Hooks\nimport useRwd from \"../../../hooks/useRwd\";\nimport useHttp from \"../../../hooks/useHttp\";\n\n// Apis\nimport { delAgentAcc } from \"../../../lib/api\";\n\n// Lang Context\nimport { useI18n } from \"../../../lang\";\n\n// Components\nimport AccForm from \"./AccForm\";\nimport AccListMobile from \"./AccListMobile\";\n\nimport styles from \"./AccList.module.scss\";\nimport Button from \"react-bootstrap/Button\";\n\nconst AccList = ({\n accHistoryData,\n showForm,\n selectAccHandler,\n setShowForm,\n onHideHandler,\n clearItem,\n setClearItem,\n getAccHistory,\n}) => {\n // const { data: currentAccData } = useSelector((state) => state.currentAcc);\n const { data: historyAccData } = useSelector((state) => state.historyAcc);\n const { data: currentAccData } = useSelector((state) => state.currentAcc);\n\n const [currentItem, setCurrentItem] = useState(null);\n\n const dispatch = useDispatch();\n\n const { isMobile } = useRwd();\n\n const { t } = useI18n();\n\n const {\n sendRequest: delAcc,\n data: delAccData,\n status: delAccStatus,\n error: delAccError,\n } = useHttp(delAgentAcc);\n\n const onClickHandler = (id, type) => {\n const current = historyAccData.find((acc) => acc.H_id === id);\n setCurrentItem(current);\n selectAccHandler(current);\n };\n\n // const editClick = (e, id) => {\n // e.stopPropagation();\n // const current = historyAccData.find((acc) => acc.H_id === id);\n // setCurrentItem(current);\n // setShowForm(true);\n // };\n\n useEffect(() => {\n // console.log(delAccData);\n if (delAccStatus === \"pending\") return;\n\n if (delAccError) {\n alert(delAccError);\n return;\n }\n\n if (delAccData) {\n dispatch(getAccHistory());\n }\n }, [delAccStatus, delAccError, delAccData, dispatch]);\n\n useEffect(() => {\n if (clearItem) {\n setCurrentItem(null);\n setClearItem(false);\n }\n // eslint-disable-next-line\n }, [clearItem]);\n\n const deleteHandler = (id) => {\n delAcc(id);\n };\n\n if (showForm) {\n return (\n \n );\n }\n\n if (isMobile) {\n return (\n \n );\n }\n\n return (\n <>\n
\n
\n
{t(\"EditBankInfoForm_name\")}
\n
{t(\"EditBankInfoForm_account\")}
\n
{t(\"EditBankInfoForm_bank\")}
\n {process.env.REACT_APP_HOST_NAME === \"K100U\" && (\n
{t(\"EditBankInfoForm_city\")}
\n )}\n
\n
\n \n {accHistoryData?.map((d) => (\n onClickHandler(d.H_id)}\n key={d.H_id}\n className={styles[\"content-item\"]}\n >\n
\n \n
\n
{d.P2}
\n
{d.P1}
\n
{d.P3}
\n {process.env.REACT_APP_HOST_NAME === \"K100U\" &&
{d.P4}
}\n\n {currentAccData.P1 !== d.P1 && (\n {\n e.stopPropagation();\n deleteHandler(d.H_id);\n }}\n >\n {delAccStatus === \"pending\" ? (\n \n loading...\n \n ) : (\n \n )}\n \n )}\n\n {/* {process.env.REACT_APP_HOST_NAME === \"88U\" &&\n currentAccData.P1 !== d.P1 && (\n {\n e.stopPropagation();\n deleteHandler(d.H_id);\n }}\n >\n {delAccStatus === \"pending\" ? (\n \n loading...\n \n ) : (\n \n )}\n \n )} */}\n\n {/* {process.env.REACT_APP_HOST_NAME === \"K100U\" &&\n currentAccData.P1 !== d.P1 && (\n {\n e.stopPropagation();\n deleteHandler(d.H_id);\n }}\n >\n {delAccStatus === \"pending\" ? (\n \n loading...\n \n ) : (\n \n )}\n \n )} */}\n
\n ))}\n
\n \n );\n};\n\nexport default AccList;\n","import React, { useState, useEffect } from \"react\";\nimport Modal from \"react-bootstrap/Modal\";\nimport Button from \"react-bootstrap/Button\";\n\nimport { BsFillPlusCircleFill } from \"react-icons/bs\";\n\nimport { useDispatch, useSelector } from \"react-redux\";\n\nimport { Toast } from \"antd-mobile\";\n\nimport closeImg from \"../../../Assets/blue_close_btn.png\";\n\n// Actions\nimport {\n setAcc,\n getAcc,\n getAccHistory,\n} from \"../../../store/actions/accountAction\";\n\n// Types\nimport { accountActionsTypes } from \"../../../store/type\";\n\n// Components\nimport AccList from \"./AccList\";\n\nimport styles from \"./EditBankInfoForm.module.scss\";\n\nconst EditBankInfoForm = ({ accHistoryData, show, onHide }) => {\n const [showForm, setShowForm] = useState(false);\n const [clearItem, setClearItem] = useState(false);\n\n const dispatch = useDispatch();\n const {\n loading: setAccLoading,\n data: setAccData,\n error: setAccError,\n } = useSelector((state) => state.setAccount);\n\n const selectAccHandler = (acc) => {\n const newData = {\n P1: acc.P1,\n P2: acc.P2,\n P3: acc.P3,\n P4: acc.P4,\n };\n\n dispatch(setAcc(newData));\n };\n\n useEffect(() => {\n if (setAccLoading) {\n Toast.show({\n icon: \"loading\",\n content: \"加载中…\",\n });\n }\n }, [setAccLoading]);\n\n useEffect(() => {\n if (!setAccError && !setAccData) return;\n\n Toast.config({ duration: 1000 });\n\n if (setAccError) {\n Toast.show({\n icon: \"fail\",\n content: setAccError,\n });\n }\n\n if (setAccData) {\n Toast.show({\n icon: \"success\",\n content: \"保存成功\",\n afterClose: () => {\n dispatch(getAcc());\n dispatch(getAccHistory());\n },\n });\n }\n\n dispatch({ type: accountActionsTypes.SET_CURRENT_ACC_CLEAR });\n\n onHide();\n // eslint-disable-next-line\n }, [setAccData, setAccError, dispatch]);\n\n const onHideHandler = () => {\n setShowForm(false);\n onHide();\n };\n\n const addNewHandler = ({ target }) => {\n // console.log(target.id);\n setShowForm(true);\n setClearItem(true);\n };\n\n return (\n \n \n

\n 修改帳戶資料\n

\n
\n \n
\n
\n\n \n {accHistoryData && (\n \n )}\n \n\n {!showForm && (\n \n \n \n \n 新增收款人\n \n \n \n )}\n
\n );\n};\n\nexport default EditBankInfoForm;\n","import { useContext, useEffect, useState } from \"react\";\nimport { useHistory } from \"react-router-dom\";\nimport Form from \"react-bootstrap/Form\";\n\nimport { useDispatch, useSelector } from \"react-redux\";\n\nimport { Toast } from \"antd-mobile\";\n\n// Context\nimport WalletContext from \"../../context/wallet/WalletContext\";\nimport BalanceContext from \"../../context/balance/BalanceContext\";\nimport HttpErrorContext from \"../../context/httpError/HttpErrorContext\";\nimport AuthContext from \"../../context/auth/AuthContext\";\n\n// Lang Context\nimport { useI18n } from \"../../lang\";\n\n// Components\nimport FromFooter from \"../Layout/FormFooter\";\nimport BaseSpinner from \"../Ui/BaseSpinner\";\nimport EditBankInfoForm from \"./acc-edit/EditBankInfoForm\";\n\n// Actions\nimport { getAcc, getAccHistory } from \"../../store/actions/accountAction\";\n\nimport { getKyc } from \"../../store/actions/kycAction\";\n\n// Apis\n\n// BootStrap\nimport ListGroup from \"react-bootstrap/ListGroup\";\nimport Spinner from \"react-bootstrap/Spinner\";\n\n// Icons\nimport { AiFillEdit } from \"react-icons/ai\";\n\n// Style\nimport \"./index.scss\";\n\nconst TheWallet = () => {\n // Init State\n const [showForm, setShowForm] = useState(false);\n\n // Auth Context\n const authContext = useContext(AuthContext);\n const { isAgent } = authContext;\n\n // Redux\n const dispatch = useDispatch();\n const {\n loading: accLoading,\n data: accData,\n error: accError,\n } = useSelector((state) => state.currentAcc);\n\n const {\n // loading: historyAccLoading,\n data: historyAccData,\n error: historyAccError,\n } = useSelector((state) => state.historyAcc);\n\n const {\n // loading: getUserKycLoading,\n // error: getUserKycError,\n data: getKycData,\n } = useSelector((state) => state.getKyc);\n\n console.log(getKycData);\n\n // Lang Context\n const { t } = useI18n();\n\n // Router Props\n const history = useHistory();\n\n // Http Error Context\n const httpErrorContext = useContext(HttpErrorContext);\n const { httpLoading, errorText, setHttpError } = httpErrorContext;\n\n // Wallet Context\n const walletContext = useContext(WalletContext);\n const { getQrCode, setWalletType, walletData } = walletContext;\n\n // Balance Context\n const balanceContext = useContext(BalanceContext);\n const { avb, real, getBalance } = balanceContext;\n\n useEffect(() => {\n if (!avb || !real) getBalance();\n if (!walletData) getQrCode();\n\n // eslint-disable-next-line\n }, [avb, real, walletData]);\n\n useEffect(() => {\n dispatch(getKyc());\n }, [dispatch]);\n\n useEffect(() => {\n if (errorText) alert(errorText);\n return () => {\n setHttpError(\"\");\n };\n // eslint-disable-next-line\n }, [errorText]);\n\n useEffect(() => {\n if (isAgent) {\n dispatch(getAcc());\n dispatch(getAccHistory());\n }\n\n // eslint-disable-next-line\n }, [isAgent]);\n\n const handleClick = (type) => {\n setWalletType(type);\n history.push(`/home/wallet/${type}`);\n };\n\n useEffect(() => {\n if (historyAccError) {\n Toast.show({\n icon: \"fail\",\n content: historyAccError,\n });\n }\n\n if (accError) {\n const message = accError + `: 無法獲取帳戶資訊`;\n Toast.show({\n icon: \"fail\",\n content: message,\n });\n }\n }, [accError, historyAccError]);\n\n return (\n
\n
\n
\n
\n

{t(\"welcome_text\")}

\n
\n {/* Balance */}\n\n {httpLoading ? (\n
\n \n
\n ) : (\n <>\n
\n
\n

{t(\"overView_wallet\")}

\n
\n {t(\"balance_real\")}:\n \n USDT\n {real}\n
\n\n
\n {t(\"balance_avb\")}:\n USDT\n {avb}\n
\n
\n
\n
\n
\n\n {/* Wallet chose button */}\n
\n
\n

{t(\"wallet_address\")}

\n
\n
\n handleClick(\"trc20\")}\n className=\"easy-btn w-75\"\n >\n TRC20\n \n
\n\n
\n handleClick(\"erc20\")}\n className=\"easy-btn w-75\"\n >\n ERC20\n \n
\n
\n\n
\n
\n\n {!isAgent && process.env.REACT_APP_HOST_NAME === \"88U\" && (\n
\n 選擇銀行帳號\n \n {\n getKycData?.map((el) => (\n \n ))\n }\n \n \n )}\n\n {/* Acc data */}\n\n {isAgent && (\n
\n
\n
\n

\n {t(\"EditBankInfoForm_account_info\")}\n

\n setShowForm((preState) => !preState)}\n />\n
\n\n {accData && (\n <>\n \n \n {t(\"EditBankInfoForm_name\")}:{accData?.P2}\n \n\n \n {t(\"EditBankInfoForm_account\")}:{accData?.P1}\n \n\n \n {t(\"EditBankInfoForm_bank\")}:{accData?.P3}\n \n\n {process.env.REACT_APP_HOST_NAME === \"K100U\" && (\n \n {t(\"EditBankInfoForm_city\")}:{accData?.P4}\n \n )}\n \n \n )}\n\n {showForm && (\n setShowForm(false)}\n />\n )}\n\n {accLoading && (\n \n \n
\n )}\n
\n
\n )}\n \n )}\n\n \n
\n
\n
\n \n
\n );\n};\n\nexport default TheWallet;\n","import { useContext, useEffect } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport copy from 'copy-to-clipboard';\n\n// Context\nimport WalletContext from '../../context/wallet/WalletContext';\nimport HttpErrorContext from '../../context/httpError/HttpErrorContext';\nimport BalanceContext from '../../context/balance/BalanceContext';\n\n// Lang Context\nimport { useI18n } from '../../lang';\n\n// Components\nimport FromFooter from '../Layout/FormFooter';\nimport BaseSpinner from '../Ui/BaseSpinner';\n\nconst WalletDetail = () => {\n // Lang Context\n const { t } = useI18n();\n // Router Props\n const history = useHistory();\n\n // Wallet Context\n const walletContext = useContext(WalletContext);\n const { walletData, setWalletType, walletType } = walletContext;\n\n // Balance Context\n const balanceContext = useContext(BalanceContext);\n const { avb, real, getBalance } = balanceContext;\n\n // Http Error Context\n const httpErrorContext = useContext(HttpErrorContext);\n const { httpLoading, errorText, setHttpError } = httpErrorContext;\n\n useEffect(() => {\n if (!walletData) history.replace('/home');\n return () => {\n setWalletType('');\n };\n // eslint-disable-next-line\n }, []);\n\n useEffect(() => {\n if (errorText) alert(errorText);\n return () => {\n setHttpError('');\n };\n // eslint-disable-next-line\n }, [errorText]);\n\n useEffect(() => {\n if (!avb || !real) getBalance();\n // eslint-disable-next-line\n }, [avb, real]);\n\n const handleClick = () => {\n history.replace('/home/wallet');\n };\n\n const handleCopy = value => {\n copy(value);\n\n if (copy(value)) {\n alert(t('btn_copy'));\n } else {\n alert(t('btn_copy_fail'));\n }\n };\n return (\n
\n
\n
\n
\n

{t('welcome_text')}

\n
\n {httpLoading ? (\n
\n \n
\n ) : !httpLoading && walletData ? (\n
\n {/* text */}\n\n {/* image */}\n
\n {/* COl */}\n
{walletType === 'trc20' ? 'TRC20' : 'ERC20'}
\n\n {/* Col */}\n
\n {walletType === 'trc20' ? (\n \n ) : (\n \"qr\n )}\n
\n\n {/* Col */}\n
\n
\n {walletType === 'trc20' ? walletData.WalletAddress2 : walletData.WalletAddress}\n {walletType === 'trc20' ? (\n
handleCopy(walletData.WalletAddress2)}>
\n ) : (\n
handleCopy(walletData.WalletAddress)}>
\n )}\n
\n
\n
\n {t('balance_real')}:\n USDT\n {real}\n
\n
\n
\n
\n {t('balance_avb')}:\n USDT\n {avb}\n
\n
\n
\n
\n\n {/* Button */}\n
\n
\n \n
\n
\n
\n ) : (\n
\n

{t('no_data_2')}

\n
\n
\n \n
\n
\n
\n )}\n\n \n
\n
\n
\n
\n
\n );\n};\n\nexport default WalletDetail;\n","import { useContext } from \"react\";\nimport { v4 as uuidv4 } from \"uuid\";\n\n// Context\nimport HistoryContext from \"../../context/history/HistoryContext\";\n\n// Lang Context\nimport { useI18n } from \"../../lang\";\n\n// Style\nimport redIcon from \"../../Assets/i_usdt_red.png\";\nimport blueIcon from \"../../Assets/i_usdt_blue.png\";\nimport purpleIcon from \"../../Assets/i_usdt_purple.png\";\n\nconst HistoryPaginate = ({ pageNumber, handleClick }) => {\n const dataPerPage = 15;\n const pagesVisited = pageNumber * dataPerPage;\n\n // Lang Context\n const { t } = useI18n();\n\n // History Context\n const historyContext = useContext(HistoryContext);\n const { allHistory } = historyContext;\n\n return allHistory\n .slice(pagesVisited, pagesVisited + dataPerPage)\n .map((item) => {\n return (\n handleClick(item.token, item.Balance.toFixed(2))}\n style={{ cursor: \"pointer\" }}\n >\n {/* 交易類別 */}\n \n \n \n {item.MasterType === 0\n ? t(\"history_buy\")\n : item.MasterType === 1\n ? t(\"history_sell\")\n : item.MasterType === 2\n ? t(\"history_transfer_out\")\n : t(\"history_transfer_in\")}\n \n \n\n {/* 日期 */}\n {item.Date}\n\n {/* 交易額 */}\n \n {item.UsdtAmt.toFixed(2)}\n \n\n {/* 餘額 */}\n \n {item.Balance.toFixed(2)}\n \n\n {/* 交易額度 */}\n \n {item.D2}\n \n\n {/* 付款人 */}\n \n {item?.P5?.split('||')[0]}\n \n\n {/* 狀態 */}\n \n {t(\"history_transaction_complete\")}\n
\n \n\n \n \n );\n });\n};\n\nconst iconStyle = {\n height: 15,\n width: 15,\n marginRight: 4,\n};\n\nconst textStyle = {\n fontSize: \"14px\",\n lineHeight: \"1.7\",\n};\n\nconst dateText = {\n fontSize: 11,\n lineHeight: 1.4,\n color: \"#000\",\n verticalAlign: \"middle\",\n};\n\nconst transactionAmount = {\n fontSize: 12,\n lineHeight: 1.4,\n verticalAlign: \"middle\",\n};\n\nconst avbStyle = {\n fontSize: 12,\n lineHeight: 1.4,\n verticalAlign: \"middle\",\n};\n\nconst statusStyle = {\n fontSize: 12,\n lineHeight: 1.4,\n verticalAlign: \"middle\",\n};\n\nexport default HistoryPaginate;\n","import { useContext, useEffect, useState } from \"react\";\nimport { useHistory } from \"react-router-dom\";\nimport ReactPaginate from \"react-paginate\";\n\n// Context\nimport HistoryContext from \"../../context/history/HistoryContext\";\n\n// Lang Context\nimport { useI18n } from \"../../lang\";\n\n// Components\nimport HistoryAllDetail from \"./HistoryAllDetail\";\nimport BaseSpinner from \"../Ui/BaseSpinner\";\nimport NoData from \"../NoData/\";\nimport HistoryPaginate from \"./HistoryPaginate\";\n\n// Style\nimport Table from \"react-bootstrap/Table\";\n\nconst HistoryAll = () => {\n // Lang Context\n const { t } = useI18n();\n\n // Router Props\n const history = useHistory();\n // History Context\n const historyContext = useContext(HistoryContext);\n const { getHistoryAll, allHistory, detailReq, singleDetail, historyLoading } =\n historyContext;\n\n // Init State\n const [show, setShow] = useState(false);\n const [balance, setBalance] = useState(null);\n const [pageCount, setPageCount] = useState(0); //總共多少頁\n const [pageNumber, setPageNumber] = useState(0); //當前選擇的頁數\n\n useEffect(() => {\n getHistoryAll();\n // eslint-disable-next-line\n }, []);\n\n useEffect(() => {\n if (allHistory.length > 0) {\n let num = Math.ceil(allHistory.length / 15);\n setPageCount(num);\n }\n }, [allHistory]);\n\n const handleClick = (token, balance) => {\n if (token) {\n setBalance(balance);\n detailReq(token);\n setShow(true);\n } else {\n alert(t(\"no_token\"));\n }\n };\n\n const changePage = ({ selected }) => {\n history.push(pageNumber);\n setPageNumber(selected);\n };\n\n if (allHistory.length && !historyLoading) {\n return (\n <>\n {singleDetail && (\n setShow(false)}\n balance={balance && balance}\n />\n )}\n\n \n \n \n \n \n \n \n\n \n\n \n\n \n \n \n \n \n \n
\n {t(\"history_date\")}\n \n {t(\"history_transaction_deal\")}\n \n {t(\"history_transaction_real\")}\n \n {t(\"history_currency\")}\n \n {t(\"history_payer\")}\n \n {t(\"history_transaction_status\")}\n
\n\n
\n \n
\n \n );\n } else if (!allHistory.length && !historyLoading) {\n return ;\n } else {\n return (\n
\n \n
\n );\n }\n};\n\nconst titleStyle = {\n fontSize: 12,\n lineHeight: 1.4,\n color: \"#646464\",\n fontWeight: \"normal\",\n verticalAlign: \"middle\",\n};\n\nexport default HistoryAll;\n","import { useContext, useEffect } from \"react\";\nimport { useHistory } from \"react-router-dom\";\nimport { v4 as uuidv4 } from \"uuid\";\n\n// Context\nimport HistoryContext from \"../../context/history/HistoryContext\";\n\n// Lang Context\nimport { useI18n } from \"../../lang\";\n\n// Components\nimport NoData from \"../NoData\";\nimport BaseSpinner from \"../Ui/BaseSpinner\";\n\n// Style\nimport Table from \"react-bootstrap/Table\";\nimport redIcon from \"../../Assets/i_usdt_red.png\";\nimport blueIcon from \"../../Assets/i_usdt_blue.png\";\nimport purpleIcon from \"../../Assets/i_usdt_purple.png\";\n\nimport { sellOrderStatusCode, buyOrderStatusCode } from \"../../lib/orderStatus\";\n\nconst HistoryWait = () => {\n // Lang Context\n const { t } = useI18n();\n // Router props\n const history = useHistory();\n\n // History Context\n const historyContext = useContext(HistoryContext);\n const { waitList, setWaitList, historyLoading } = historyContext;\n\n useEffect(() => {\n setWaitList();\n\n // eslint-disable-next-line\n }, []);\n\n const handleClick = (orderToken) => {\n console.log(orderToken);\n const item = waitList.find((el) => el.token === orderToken);\n\n if (item.MasterType === \"買入\") {\n history.push(`/home/transaction/buy/${orderToken}`);\n }\n\n if (item.MasterType === \"轉出\") {\n history.push(`/home/transaction/transfer/${orderToken}`);\n }\n\n if (item.MasterType === \"賣出\") {\n history.push(`/home/transaction/sell/${orderToken}`);\n }\n };\n\n if (!historyLoading && waitList.length) {\n return (\n \n \n \n \n \n \n \n \n \n\n \n {waitList.map((h) => (\n handleClick(h.token)}\n style={{ cursor: \"pointer\" }}\n >\n {/* 交易類別 */}\n \n \n \n {h.MasterType === \"買入\"\n ? t(\"history_buy\")\n : h.MasterType === \"賣出\"\n ? t(\"history_sell\")\n : h.MasterType === \"轉入\"\n ? t(\"history_transfer_in\")\n : t(\"history_transfer_out\")}\n \n \n\n {/* 日期 */}\n \n\n {/* 交易額 */}\n \n {h.UsdtAmt.toFixed(2)}\n \n\n {/* 狀態 */}\n \n \n ))}\n \n
\n {t(\"history_date\")}\n \n {t(\"history_transaction_deal\")}\n \n {t(\"history_transaction_status\")}\n
\n {h.Date}\n \n {h.MasterType === \"買入\" &&\n buyOrderStatusCode[h.Order_StatusID]}\n {h.MasterType === \"賣出\" &&\n sellOrderStatusCode[h.Order_StatusID]}\n\n {/* {h.Order_StatusID === 34\n ? t('history_account_receivable')\n : h.Order_StatusID === 33\n ? t('history_wait_pay')\n : h.Order_StatusID === 0 || h.Order_StatusID === 31\n ? t('history_onGoing')\n : null} */}\n
\n );\n } else if (!historyLoading && !waitList.length) {\n return ;\n } else {\n return (\n
\n \n
\n );\n }\n};\n\nconst iconStyle = {\n height: 15,\n width: 15,\n marginRight: 4,\n};\n\nconst titleStyle = {\n fontSize: 12,\n lineHeight: 1.4,\n color: \"#646464\",\n fontWeight: \"normal\",\n verticalAlign: \"middle\",\n};\n\nconst textStyle = {\n fontSize: \"14px\",\n lineHeight: \"1.7\",\n};\n\nconst dateText = {\n fontSize: 12,\n lineHeight: 1.4,\n color: \"#000\",\n verticalAlign: \"middle\",\n};\n\nconst transactionAmount = {\n fontSize: 12,\n lineHeight: 1.4,\n verticalAlign: \"middle\",\n};\n\nconst statusStyle = {\n fontSize: 12,\n lineHeight: 1.4,\n verticalAlign: \"middle\",\n};\n\nexport default HistoryWait;\n","import React, { useState, useEffect } from \"react\";\nimport ReactPaginate from \"react-paginate\";\n\n// items = [\n// { token: \"1234\", Date: \"test\", UsdtAmt: 1234, D1: \"1.22\", D2: \"1\" },\n// { token: \"1234\", Date: \"test\", UsdtAmt: 1234, D1: \"1.22\", D2: \"2\" },\n// { token: \"1234\", Date: \"test\", UsdtAmt: 1234, D1: \"1.22\", D2: \"3\" },\n// { token: \"1234\", Date: \"test\", UsdtAmt: 1234, D1: \"1.22\", D2: \"4\" },\n// { token: \"1234\", Date: \"test\", UsdtAmt: 1234, D1: \"1.22\", D2: \"5\" },\n// { token: \"1234\", Date: \"test\", UsdtAmt: 1234, D1: \"1.22\", D2: \"6\" },\n// { token: \"1234\", Date: \"test\", UsdtAmt: 1234, D1: \"1.22\", D2: \"7\" },\n// { token: \"1234\", Date: \"test\", UsdtAmt: 1234, D1: \"1.22\", D2: \"8\" },\n// { token: \"1234\", Date: \"test\", UsdtAmt: 1234, D1: \"1.22\", D2: \"9\" },\n// { token: \"1234\", Date: \"test\", UsdtAmt: 1234, D1: \"1.22\", D2: \"10\" },\n// { token: \"1234\", Date: \"test\", UsdtAmt: 1234, D1: \"1.22\", D2: \"11\" },\n// { token: \"1234\", Date: \"test\", UsdtAmt: 1234, D1: \"1.22\", D2: \"12\" },\n// { token: \"1234\", Date: \"test\", UsdtAmt: 1234, D1: \"1.22\", D2: \"13\" },\n// { token: \"1234\", Date: \"test\", UsdtAmt: 1234, D1: \"1.22\", D2: \"14\" },\n// { token: \"1234\", Date: \"test\", UsdtAmt: 1234, D1: \"1.22\", D2: \"15\" },\n// { token: \"1234\", Date: \"test\", UsdtAmt: 1234, D1: \"1.22\", D2: \"16\" },\n// { token: \"1234\", Date: \"test\", UsdtAmt: 1234, D1: \"1.22\", D2: \"17\" },\n// { token: \"1234\", Date: \"test\", UsdtAmt: 1234, D1: \"1.22\", D2: \"18\" },\n// { token: \"1234\", Date: \"test\", UsdtAmt: 1234, D1: \"1.22\", D2: \"19\" },\n// ];\n\nconst ExpiredItem = ({ itemsPerPage, items, setCurrentItems }) => {\n const [pageCount, setPageCount] = useState(0);\n const [itemOffset, setItemOffset] = useState(0);\n\n const handlePageClick = (event) => {\n const newOffset = (event?.selected * itemsPerPage) % items.length;\n setItemOffset(newOffset);\n };\n\n useEffect(() => {\n const endOffset = itemOffset + itemsPerPage;\n setCurrentItems(items?.slice(itemOffset, endOffset));\n setPageCount(Math.ceil(items?.length / itemsPerPage));\n // eslint-disable-next-line\n }, [itemOffset, itemsPerPage, items]);\n return (\n \"\n previousLabel=\"<\"\n onPageChange={handlePageClick}\n pageRangeDisplayed={1}\n marginPagesDisplayed={2}\n pageCount={pageCount}\n containerClassName=\"pagination\"\n pageClassName=\"page-item\"\n breakClassName=\"page-item\"\n previousClassName=\"page-item\"\n nextClassName=\"page-item\"\n pageLinkClassName=\"page-link\"\n previousLinkClassName=\"page-link\"\n nextLinkClassName=\"page-link\"\n breakLinkClassName=\"page-link\"\n breakLabel=\"...\"\n activeClassName=\"active\"\n renderOnZeroPageCount={null}\n />\n );\n};\n\nexport default ExpiredItem;\n","import React, { useEffect, useState } from \"react\";\n\nimport { useHistory } from \"react-router-dom\";\n\nimport { useDispatch, useSelector } from \"react-redux\";\n\n// Hooks\nimport { useI18n } from \"../../lang\";\n\n// Components\nimport NoData from \"../NoData\";\nimport ExpiredItem from \"./ExpiredItem\";\nimport BaseSpinner from \"../Ui/BaseSpinner\";\n\n// Actions\nimport { getExpiredOrder } from \"../../store/actions/expiredAction\";\n\n// Style\nimport Table from \"react-bootstrap/Table\";\n\nconst HistoryExpired = () => {\n const history = useHistory();\n\n const [currentItems, setCurrentItems] = useState(null);\n\n const dispatch = useDispatch();\n const { data, loading } = useSelector((state) => state.expired);\n\n const { t } = useI18n();\n\n useEffect(() => {\n dispatch(getExpiredOrder());\n }, [dispatch]);\n\n const onClickHandler = (item) => {\n\n const agent = localStorage.getItem(\"agent\");\n\n if (agent) {\n if (item.MasterType === 0) {\n history.push(`/home/instant/sell/${item.token}`);\n }\n\n if (item.MasterType === 1) {\n history.push(`/home/instant/buy/${item.token}`);\n }\n } else {\n if (item.MasterType === 0) {\n history.push(`/home/transaction/buy/${item.token}`);\n }\n\n if (item.MasterType === 1) {\n history.push(`/home/transaction/sell/${item.token}`);\n }\n }\n };\n\n if (loading) {\n return (\n \n \n
\n );\n }\n\n if (!data?.length) {\n return ;\n }\n\n return (\n <>\n \n \n \n \n \n \n \n \n \n\n \n {currentItems?.map((h) => (\n onClickHandler(h)}\n >\n {/* 日期 */}\n \n\n {/* 交易額 */}\n \n\n {/* 兌換架 */}\n \n\n {/* RMB*/}\n \n \n ))}\n \n
\n {/* 日期 */}\n {t(\"history_date\")}\n \n {/* {`交易额(USDT)`} */}\n {t(\"history_transaction_deal\")}\n \n {t(\"history_transaction_price\")}\n \n {t(\"history_currency\")}\n
\n {h.Date}\n \n {h.UsdtAmt.toFixed(2)}\n \n {h.D1}\n \n {h.D2}\n
\n\n \n \n );\n};\n\nconst titleStyle = {\n fontSize: 12,\n lineHeight: 1.4,\n color: \"#646464\",\n fontWeight: \"normal\",\n verticalAlign: \"middle\",\n};\n\nconst dateText = {\n fontSize: 12,\n lineHeight: 1.4,\n color: \"#000\",\n verticalAlign: \"middle\",\n};\n\nconst transactionAmount = {\n fontSize: 12,\n lineHeight: 1.4,\n verticalAlign: \"middle\",\n};\n\nconst statusStyle = {\n fontSize: 12,\n lineHeight: 1.4,\n verticalAlign: \"middle\",\n};\n\nexport default HistoryExpired;\n","import { expiredActionTypes } from \"../type\";\nimport { authFetch } from \"../../config/axiosConfig\";\n\nexport const getExpiredOrder = () => async (dispatch) => {\n dispatch({ type: expiredActionTypes.SET_EXPIRED_BEGIN });\n\n try {\n const { data } = await authFetch.get(\"/GetTxExpired.aspx\");\n\n dispatch({\n type: expiredActionTypes.SET_EXPIRED_SUCCESS,\n payload: { data: data.data },\n });\n } catch (error) {\n if (error.response.status !== 401) {\n dispatch({\n type: expiredActionTypes.SET_EXPIRED_ERROR,\n payload: { error: error.response.data.msg || \"Fetch Fail.\" },\n });\n }\n }\n};\n","import { useState, useContext, useEffect } from \"react\";\nimport {\n Switch,\n Route,\n Link,\n Redirect,\n useHistory,\n useLocation,\n} from \"react-router-dom\";\n\n// Context\nimport HistoryContext from \"../../context/history/HistoryContext\";\nimport HttpErrorContext from \"../../context/httpError/HttpErrorContext\";\n\n// Lang Context\nimport { useI18n } from \"../../lang\";\n\nimport HistoryAll from \"./HistoryAll\";\nimport HistoryWait from \"./HistoryWait\";\nimport HistoryExpired from \"./HistoryExpired\";\n// import HistoryAll from '../HistoryV2/HistoryAll';\n// import HistoryWait from '../HistoryV2/HistoryWait';\n\n// Style\nimport style from \"./History.module.scss\";\nimport \"./index.scss\";\n\nconst History = () => {\n // Lang Context\n const { t } = useI18n();\n // History Context\n const historyContext = useContext(HistoryContext);\n const { setWaitList, waitList } = historyContext;\n\n // Http Error Context\n const httpErrorContext = useContext(HttpErrorContext);\n const { errorText, setHttpError } = httpErrorContext;\n\n // Router Props\n const history = useHistory();\n const location = useLocation();\n\n // Init State\n const [historyState, setHistoryState] = useState(\"all\");\n\n // ===========\n // useEffect\n // ===========\n useEffect(() => {\n history.push(`/home/history/${historyState}`);\n setWaitList();\n\n // eslint-disable-next-line\n }, [historyState]);\n\n useEffect(() => {\n if (errorText) alert(errorText);\n return () => {\n setHttpError(\"\");\n };\n // eslint-disable-next-line\n }, [errorText]);\n\n return (\n
\n
\n
\n
\n
\n setHistoryState(\"all\")}\n >\n {t(\"history_all\")}\n \n\n
\n setHistoryState(\"wait\")}\n >\n {t(\"history_wait\")}\n \n {waitList.length > 0 && (\n {waitList.length}\n )}\n
\n\n setHistoryState(\"expired\")}\n >\n {t(\"history_expires\")}\n \n
\n\n \n \n \n \n \n \n
\n
\n
\n
\n );\n};\n\nconst waitBox = {\n position: \"relative\",\n};\n\nconst waitCount = {\n position: \"absolute\",\n top: -5,\n right: 13,\n borderRadius: \"50%\",\n height: \"20px\",\n width: \"20px\",\n backgroundColor: \"red\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n color: \"#fff\",\n};\n\nexport default History;\n","import { useContext, useEffect, useState } from \"react\";\nimport { useRouteMatch, useHistory } from \"react-router-dom\";\nimport Countdown from \"react-countdown\";\n\nimport { useSelector } from \"react-redux\";\n\n// Context\nimport InstantContext from \"../../context/instant/InstantContext\";\nimport HttpErrorContext from \"../../context/httpError/HttpErrorContext\";\nimport BuyContext from \"../../context/buy/BuyContext\";\n\n// Lang Context\nimport { useI18n } from \"../../lang\";\n\n// Utils\nimport {\n locationMoneyPrefix,\n locationMoneyCalcWithThousand,\n} from \"../../lib/utils\";\n\n// Components\nimport FromFooter from \"../Layout/FormFooter\";\nimport BaseSpinner from \"../Ui/BaseSpinner\";\nimport CompleteStatus from \"../universal/CompleteStatus\";\nimport Cancel from \"../universal/Cancel\";\nimport InstantNav from \"../Instant/InstantNav\";\nimport CountDownTimer from \"../universal/countDownTimer\";\n// import Timer from \"../Buy/Timer\";\n\n// Style\n// import Spinner from \"react-bootstrap/Spinner\";\nimport Button from \"react-bootstrap/Button\";\n\nimport warningImg from \"../../Assets/warning.png\";\n\nconst SellDetail = () => {\n // Lang Context\n const { t } = useI18n();\n // Router Props\n const match = useRouteMatch();\n const history = useHistory();\n\n const { orderStatus } = useSelector((state) => state.order);\n\n const { Order_StatusID: statusID } = orderStatus || {};\n\n // Http Error Context\n const httpErrorContext = useContext(HttpErrorContext);\n const { errorText, setHttpError, httpLoading } = httpErrorContext;\n\n // Buy Context\n const buyContext = useContext(BuyContext);\n const { deltaTime, GetDeltaTime, setDeltaTime } = buyContext;\n\n // Instant Context\n const instantContext = useContext(InstantContext);\n const {\n // orderStatus,\n sellMatch1,\n sellMatch2,\n statusWs,\n wsStatusData,\n wsStatusClient,\n cleanAll,\n paymentName,\n } = instantContext;\n\n // Init State\n const [overTime1, setOvertime1] = useState(false);\n // eslint-disable-next-line\n const [overTime2, setOvertime2] = useState(false);\n const [showComplete, setShowComplete] = useState(false);\n const [showCancel, setShowCancel] = useState(false);\n const [tab, setTab] = useState(\"all\");\n const [timeLeft, setTimeLeft] = useState(\n Date.now() + 1000 * 60 * 15 - deltaTime * 1000\n );\n // eslint-disable-next-line\n const [timeLeft2, setTimeLeft2] = useState(\n Date.now() + 1000 * 60 * 30 - deltaTime * 1000\n );\n\n useEffect(() => {\n statusWs(match.params.id);\n GetDeltaTime(match.params.id);\n\n // if (!sell1Data) sellMatch1(match.params.id);\n return () => {\n if (wsStatusClient) wsStatusClient.close();\n setDeltaTime(null);\n cleanAll();\n };\n //eslint-disable-next-line\n }, []);\n\n useEffect(() => {\n setTimeLeft(Date.now() + 1000 * 60 * 15 - deltaTime * 1000);\n setTimeLeft2(Date.now() + 1000 * 60 * 30 - deltaTime * 1000);\n\n if (deltaTime > 1800) setOvertime2(true);\n if (deltaTime > 900 && deltaTime <= 1800) setOvertime1(true);\n //eslint-disable-next-line\n }, [deltaTime]);\n\n useEffect(() => {\n if (errorText) alert(errorText);\n return () => {\n setHttpError(\"\");\n };\n //eslint-disable-next-line\n }, [errorText]);\n\n useEffect(() => {\n if (wsStatusData === 35) {\n setShowComplete(false);\n }\n\n if (wsStatusData === 99 || wsStatusData === 98) {\n setShowComplete(true);\n setShowCancel(false);\n }\n\n if (wsStatusData === 34 || wsStatusData === 1) setShowComplete(true);\n\n // eslint-disable-next-line\n }, [wsStatusData]);\n\n const handleClick = () => {\n sellMatch2(match.params.id);\n };\n\n const handleCancel = () => {\n setShowCancel(true);\n };\n\n const handleCountDownComplete = () => {\n setOvertime1(true);\n };\n\n // const handleCountDownComplete2 = () => {\n // setOvertime2(true);\n // };\n\n const backToHome = () => {\n if (wsStatusClient) wsStatusClient.close();\n history.replace(\"/home/overview\");\n setOvertime1(false);\n setOvertime2(false);\n setDeltaTime(null);\n cleanAll();\n };\n\n\n return (\n <>\n setShowCancel(false)}\n hash={orderStatus?.Tx_HASH}\n token={match.params.id}\n type=\"instant\"\n />\n
\n
\n

\n {t(\"welcome_text\")}\n

\n
\n \n
{t(\"instant_nav_all\")}
\n
\n {orderStatus && !showComplete ? (\n <>\n {/* 第一階段倒數結束前 */}\n
\n {/* Block-1 --pay info */}\n
\n
\n \n {t(\"instant_payee_data\")}\n \n \n\n {(wsStatusData !== 35 || statusID !== 35) && (\n <>\n \n {t(\"instant_pay_time\")}:\n \n \n \n )}\n
\n {/* 收款方資料 */}\n
\n \n {t(\"instant_payee_name\")}:{orderStatus.P2}\n \n \n {t(\"instant_payee_account\")}:{orderStatus.P1}\n \n \n {t(\"instant_bank\")}:{orderStatus.P3}\n \n\n {process.env.REACT_APP_HOST_NAME === \"K100U\" && (\n \n {t(\"instant_city\")}:{orderStatus.P4}\n \n )}\n
\n\n {/* 付款方資料 */}\n
\n

\n {t(\"instant_payer_data\")}\n

\n

\n {t(\"instant_payer_name\")}:{paymentName?.name}\n

\n
\n
\n\n {/* Block-2 --交易資料 */}\n
\n
\n
\n {t(\"instant_exRate\")}:\n
\n {orderStatus?.D1?.toFixed(2)}\n
\n\n
\n \n {t(\"instant_buy\")}\n
\n\n
\n\n
\n
\n

\n {t(\"instant_price\")}\n

\n

\n {locationMoneyCalcWithThousand(orderStatus.D2)}{\" \"}\n {locationMoneyPrefix()}\n

\n
\n
\n

\n {t(\"instant_qua\")}\n

\n

\n {Math.abs(orderStatus.UsdtAmt)?.toFixed(2)} USDT\n

\n
\n
\n
\n
\n\n {(wsStatusData === 33 || statusID === 33) && (\n
\n \n {httpLoading ? \"loading...\" : t(\"btn_already_pay\")}\n \n
\n \n {t(\"btn_cancel_order\")}\n \n
\n
\n )}\n\n {(wsStatusData === 35 || statusID === 35) && (\n
\n
\n \n
\n 申訴中\n
\n
\n
\n \n {t(\"btn_cancel_order\")}\n \n
\n
\n )}\n\n \n \n ) : orderStatus && showComplete ? (\n // 交易結果\n \n ) : (\n \n )}\n
\n
\n
\n
\n \n );\n};\n\nexport default SellDetail;\n","import { useContext, useEffect, useState } from \"react\";\n\nimport { useRouteMatch, useHistory } from \"react-router-dom\";\nimport Countdown from \"react-countdown\";\n\nimport { useDispatch, useSelector } from \"react-redux\";\n\n// Context\nimport InstantContext from \"../../context/instant/InstantContext\";\nimport HttpErrorContext from \"../../context/httpError/HttpErrorContext\";\nimport BuyContext from \"../../context/buy/BuyContext\";\n\n// Utils\nimport {\n locationMoneyPrefix,\n locationMoneyCalcWithThousand,\n} from \"../../lib/utils\";\n\n// Lang Context\nimport { useI18n } from \"../../lang\";\n\n// Actions\nimport { setOrderStatus } from \"../../store/actions/orderActions\";\n\n// Components\nimport FromFooter from \"../Layout/FormFooter\";\nimport BaseSpinner from \"../Ui/BaseSpinner\";\nimport CompleteStatus from \"../universal/CompleteStatus\";\nimport InstantNav from \"./InstantNav\";\nimport CountDownTimer from \"../universal/countDownTimer\";\n\n// Hooks\nimport useHttp from \"../../hooks/useHttp\";\n\n// Apis\nimport { orderAppeal, confirmReceived } from \"../../lib/api\";\n\n// Actions\n// import { setInstantOrderData } from \"../../store/actions/instantActions\";\n\n// Style\nimport Spinner from \"react-bootstrap/Spinner\";\nimport Button from \"react-bootstrap/Button\";\n\nimport warningImg from \"../../Assets/warning.png\";\n\nconst BuyDetail = () => {\n // Lang Context\n const { t } = useI18n();\n\n const { orderStatus } = useSelector((state) => state.order);\n const { Order_StatusID: statusID } = orderStatus || {};\n\n const dispatch = useDispatch();\n\n // Appeal http\n const {\n sendRequest: appealReq,\n data: appealData,\n status: appealStatus,\n error: appealError,\n } = useHttp(orderAppeal);\n\n // Buy2 http\n const {\n sendRequest: confirmReceivedReq,\n data: confirmReceivedData,\n status: confirmReceivedStatus,\n error: confirmReceivedError,\n } = useHttp(confirmReceived);\n\n // Router Props\n const match = useRouteMatch();\n const history = useHistory();\n\n const orderToken = match.params.id;\n\n // Http Error Context\n const httpErrorContext = useContext(HttpErrorContext);\n const { errorText, setHttpError, httpLoading } = httpErrorContext;\n\n // Buy Context\n const buyContext = useContext(BuyContext);\n const { deltaTime, GetDeltaTime } = buyContext;\n\n // Instant Context\n const instantContext = useContext(InstantContext);\n const {\n // orderStatus,\n buyMatch2,\n statusWs,\n wsStatusData,\n wsStatusClient,\n cleanAll,\n paymentName,\n // sell1Data,\n } = instantContext;\n\n // Init State\n const [showComplete, setShowComplete] = useState(false);\n const [tab, setTab] = useState(\"all\");\n const [timeLeft, setTimeLeft] = useState(\n Date.now() + 1000 * 60 * 30 - deltaTime * 1000\n );\n const [overTime, setOverTime] = useState(false);\n\n // useEffect(() => {\n // if (orderStatus) {\n // dispatch(setOrderStatus(buy1Data));\n // }\n // }, [buy1Data, dispatch]);\n\n useEffect(() => {\n statusWs(match.params.id);\n GetDeltaTime(match.params.id);\n return () => {\n if (wsStatusClient) wsStatusClient.close();\n setOverTime(false);\n setTimeLeft(null);\n cleanAll();\n };\n //eslint-disable-next-line\n }, []);\n\n // useEffect(() => {\n // dispatch(getExpiredOrder());\n // }, [dispatch]);\n\n useEffect(() => {\n setTimeLeft(Date.now() + 1000 * 60 * 30 - deltaTime * 1000);\n if (deltaTime > 1800) setOverTime(true);\n // eslint-disable-next-line\n }, [deltaTime]);\n\n useEffect(() => {\n if (errorText) alert(errorText);\n return () => {\n setHttpError(\"\");\n };\n // eslint-disable-next-line\n }, [errorText]);\n\n useEffect(() => {\n if (tab === \"onGoing\") history.replace(\"/home/overview\");\n // eslint-disable-next-line\n }, [tab]);\n\n useEffect(() => {\n // console.log(\"instant buy\", wsStatusData, statusID, showComplete);\n if (wsStatusData === 35) setShowComplete(false);\n\n if (wsStatusData === 99 || wsStatusData === 98 || wsStatusData === 1) {\n // console.log(\"set true\");\n setShowComplete(true);\n }\n\n // eslint-disable-next-line\n }, [wsStatusData]);\n\n useEffect(() => {\n if (appealData && appealStatus === \"completed\" && !appealError) {\n // console.log(\"set true\", appealData, appealStatus, appealError);\n dispatch(setOrderStatus(appealData));\n }\n }, [appealData, appealStatus, appealError, dispatch]);\n\n useEffect(() => {\n if (\n confirmReceivedData &&\n confirmReceivedStatus === \"completed\" &&\n !confirmReceivedError\n ) {\n dispatch(setOrderStatus(confirmReceivedData));\n // console.log(\"set true\");\n setShowComplete(true);\n }\n }, [\n confirmReceivedData,\n confirmReceivedStatus,\n confirmReceivedError,\n dispatch,\n ]);\n\n // useEffect(() => {\n // if (buy1Data) {\n // // dispatch(setInstantOrderData(buy1Data));\n // }\n // }, [buy1Data, dispatch]);\n\n useEffect(() => {\n if (statusID === 35) {\n setShowComplete(false);\n }\n }, [statusID]);\n\n // ===========\n // function\n // ===========\n const handleClick = () => {\n buyMatch2(match.params.id);\n };\n\n const backToHome = () => {\n history.replace(\"/home/overview\");\n cleanAll();\n };\n\n return (\n
\n
\n

\n {t(\"welcome_text\")}\n

\n
\n \n
{t(\"instant_transaction\")}
\n
\n {orderStatus && !showComplete ? (\n <>\n
\n {/* Block-1 --pay info */}\n
\n {/* Pay Timer */}\n
\n \n {t(\"instant_payee_data\")}\n \n \n\n {wsStatusData !== 35 && (\n <>\n \n {t(\"instant_pay_time\")}:\n \n setOverTime(true)}\n renderer={CountDownTimer}\n date={timeLeft}\n />\n \n )}\n
\n {/* 收款方資料 */}\n
\n \n {t(\"instant_payee_name\")}:{orderStatus.P2}\n \n \n {t(\"instant_payee_account\")}:{orderStatus.P1}\n \n \n {t(\"instant_bank\")}:{orderStatus.P3}\n \n\n {process.env.REACT_APP_HOST_NAME === \"K100U\" && (\n \n {t(\"instant_city\")}:{orderStatus.P4}\n \n )}\n
\n {/* 付款方資料 */}\n
\n

\n {t(\"instant_payer_data\")}\n

\n
\n

\n {t(\"instant_payer_name\")}:{paymentName.name}\n

\n {process.env.REACT_APP_HOST_NAME === \"88U\" && (\n <>\n

\n {t(\"instant_payer_account\")}:\n {paymentName.account}\n

\n

\n {t(\"instant_payer_bankCode\")}:\n {paymentName.bankCode}\n

\n \n )}\n
\n
\n
\n\n {/* Block-2 --交易資料 */}\n
\n
\n
{t(\"instant_exRate\")}:
\n {orderStatus.D1?.toFixed(2)}\n
\n\n
\n \n {t(\"instant_sell\")}\n
\n\n
\n\n
\n
\n

\n {t(\"instant_price\")}\n

\n

\n {locationMoneyCalcWithThousand(orderStatus.D2)}{\" \"}\n {locationMoneyPrefix()}\n

\n
\n\n
\n

\n {t(\"instant_qua\")}\n

\n

\n {Math.abs(orderStatus.UsdtAmt).toFixed(2)} USDT\n

\n
\n
\n
\n
\n\n {/* Button */}\n {wsStatusData === 33 ? (\n \n ) : null}\n\n {wsStatusData === 34 && !httpLoading ? (\n <>\n \n {t(\"btn_buyer_already_pay\")}\n \n\n appealReq(match.params.id)}\n className=\"easy-btn mw400 mobile-width\"\n style={{ backgroundColor: \"#bfbfbf\" }}\n disabled={appealStatus === \"pending\"}\n >\n {appealStatus === \"pending\" ? \"loading...\" : \"申诉\"}\n \n \n ) : null}\n\n {wsStatusData === 34 && httpLoading ? (\n \n \n {t(\"btn_loading\")}...\n \n ) : null}\n\n {wsStatusData === 35 && (\n
\n
\n \n
\n 申訴中\n
\n
\n \n {httpLoading ? \"Loading...\" : \"確認已收款\"}\n \n
\n )}\n\n \n \n ) : showComplete && statusID && orderStatus ? (\n \n ) : (\n \n )}\n
\n
\n
\n
\n );\n};\n\nexport default BuyDetail;\n","import { useContext, useEffect, useState } from \"react\";\nimport { useRouteMatch } from \"react-router-dom\";\nimport { useMediaQuery } from \"react-responsive\";\n\n// Context\nimport InstantContext from \"../../context/instant/InstantContext\";\nimport BuyContext from \"../../context/buy/BuyContext\";\n\n// Lang Context\nimport { useI18n } from \"../../lang\";\n\n// Components\nimport SellDetail from \"./SellDetail\";\nimport BuyDetail from \"./BuyDetail\";\nimport TheChat from \"../Chat/TheChat.js\";\nimport BaseSpinner from \"../Ui/BaseSpinner\";\n\n// Style\nimport helpIcon from \"../../Assets/i_ask2.png\";\nimport Button from \"react-bootstrap/Button\";\nimport Card from \"react-bootstrap/Card\";\n\nconst InstantDetail = () => {\n // Lang Context\n const { t } = useI18n();\n // Router Props\n const match = useRouteMatch();\n\n // Media Query\n const isMobile = useMediaQuery({ query: \"(max-width: 1200px)\" }); // 小於等於 1200 true\n\n // Instant Context\n const instantContext = useContext(InstantContext);\n const { instantOngoingWsConnect } = instantContext;\n\n const { buyWsData } = useContext(BuyContext);\n\n console.log(buyWsData);\n\n // Init State\n // const [showMobileChat, setShowMobileChat] = useState(false);\n const [showChat, setShowChat] = useState(false);\n\n useEffect(() => {\n instantOngoingWsConnect();\n const orderToken = match.params.id;\n if (orderToken) {\n // GetDeltaTime(orderToken)\n // if (match.params.type === 'buy') sellMatch1(orderToken);\n // if (match.params.type === 'sell') buyMatch1(orderToken);\n }\n\n return () => {};\n // eslint-disable-next-line\n }, []);\n\n const isSell = match.params.type === \"sell\";\n\n const isBuy = match.params.type === \"buy\";\n\n return (\n
\n {isBuy && }\n {isSell && }\n\n {/* Chat --桌機版 */}\n {!isMobile && buyWsData ? (\n
\n \n
\n ) : null}\n\n {/* Chat --手機版 */}\n {isMobile && buyWsData ? (\n
\n setShowChat(!showChat)}\n >\n \n {t(\"chat_help\")}\n \n\n \n
\n ) : null}\n
\n );\n\n // if (sell1Data) {\n // return (\n //
\n // \n\n // {/* Chat --桌機版 */}\n // {!isMobile && sell1Data ? (\n //
\n // \n //
\n // ) : null}\n\n // {/* Chat --手機版 */}\n // {isMobile && sell1Data ? (\n //
\n // \n\n // \n //
\n // ) : null}\n //
\n // );\n // } else if (buy1Data) {\n // return (\n //
\n // \n\n // {/* Chat --桌機版 */}\n // {!isMobile && buy1Data ? (\n //
\n // \n //
\n // ) : null}\n\n // {/* Chat --手機版 */}\n // {isMobile && buy1Data ? (\n //
\n // \n // \n //
\n // ) : null}\n //
\n // );\n // } else {\n // return (\n // \n // \n // \n // );\n // }\n};\n\nconst helpBtn = {\n paddingLeft: 15,\n paddingRight: 15,\n paddingTop: 5,\n paddingBottom: 5,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n padding: \"1rem 2rem\",\n fontSize: \"1.5rem\",\n fontWeight: 300,\n borderRadius: \"10rem\",\n position: \"absolute\",\n bottom: \"5%\",\n right: 0,\n backgroundColor: \"#F80FA\",\n};\n\nconst MobileChatContainer = {\n height: 600,\n width: 100,\n position: \"fixed\",\n bottom: 25,\n right: 10,\n};\n\nconst chatContainer = {\n position: \"absolute\",\n top: 62,\n right: 0,\n};\n\nexport default InstantDetail;\n","// Lang Context\nimport { useI18n } from '../../lang';\n\n// Style\nimport Modal from 'react-bootstrap/Modal';\nimport errorIcon from '../../Assets/icon-error-new.png';\nimport closeBtn from '../../Assets/blue_close_btn.png';\n\nconst NoOrder = props => {\n const { t } = useI18n();\n return (\n \n \n \n
\n \"icon\"\n

\n {t('no_order')}\n

\n
\n \n {t('exRate')}:{props.exRate}\n \n   I  \n {props.type === '買' ? t('no_order_buy') : t('no_order_sell')}\n  {props.usdt} USDT\n
\n
\n
\n
\n );\n};\n\nconst iconStyle = {\n maxWidth: '100px',\n};\n\nconst titleStyle = {\n fontSize: 30,\n fontWeight: '300',\n color: '#3f80fa',\n marginTop: 35,\n marginBottom: 8,\n};\n\nconst textStyle = {\n fontSize: 16,\n lineHeight: 1.9,\n color: '#383737',\n fontWeight: 'bold',\n};\nexport default NoOrder;\n","import { useContext, useEffect } from 'react';\nimport { useHistory } from 'react-router-dom';\n\n// Context\nimport InstantContext from '../../context/instant/InstantContext';\nimport HttpErrorContext from '../../context/httpError/HttpErrorContext';\n\n// Lang Context\nimport { useI18n } from '../../lang';\n\n// Components\nimport NoOrder from '../universal/NoOrder';\n\n// Utils\nimport { locationMoneyPrefix, locationMoneyCalcWithThousand, usdtThousandBitSeparator} from \"../../lib/utils\";\n\n// Style\nimport Button from 'react-bootstrap/Button';\n\nconst InstantCount = props => {\n // Lang Context\n const { t } = useI18n();\n // Router Props\n const history = useHistory();\n\n // Http Error Context\n const httpErrorContext = useContext(HttpErrorContext);\n const { errorText, setHttpError } = httpErrorContext;\n\n // Instant Context\n const instantContext = useContext(InstantContext);\n const { countData, sellMatch1, buyMatch1, orderExists, setOrderExists } = instantContext;\n\n // ============\n // UseEffect\n // ============\n useEffect(() => {\n if (errorText !== '') alert(errorText);\n return setHttpError('');\n // eslint-disable-next-line\n }, [errorText]);\n\n useEffect(() => {\n if (!orderExists) props.setShowPop(false);\n //eslint-disable-next-line\n }, [orderExists]);\n\n // ===========\n // Function\n // ===========\n const handleClick = type => {\n if (!orderExists) return;\n props.setShowPop(true);\n\n if (type === '買') {\n sellMatch1(countData.token);\n } else {\n buyMatch1(countData.token);\n }\n };\n\n const onHide = () => {\n setOrderExists(true);\n history.replace('/home/overview');\n };\n\n return (\n
\n {countData && }\n {countData ? (\n <>\n
{t('instant_transaction')}
\n\n
\n
\n
{t('instant_exRate')}:
\n {countData.exRate}\n
\n\n
\n \n {countData.type === '買' ? t('instant_buy') : t('instant_sell')}\n
\n\n
\n\n
\n
{t('instant_price')}
\n {locationMoneyCalcWithThousand(countData.cny)} {locationMoneyPrefix()}\n
\n\n
\n
\n {t('instant_qua')}\n
\n {usdtThousandBitSeparator(countData.usdt)} USDT\n
\n
\n\n \n \n ) : (\n <>\n

{t('instant_no_transaction')}

\n \n \n )}\n
\n );\n};\n\nexport default InstantCount;\n","import React from 'react';\n\n// Lang Context\nimport { useI18n } from '../../../lang';\n\n// Style\nimport './index.scss';\nimport Modal from 'react-bootstrap/Modal';\nimport searchIcon from '../../../Assets/icon_search.gif';\nimport closeBtn from '../../../Assets/blue_close_btn.png';\n\nconst Paring = props => {\n const { t } = useI18n();\n return (\n \n \n \n
\n \"icon\"\n

{t('please_wait')}

\n {props.usdt ? (\n

\n {t('buy_order')}:{Math.abs(Number(props.usdt).toFixed(2))} USDT = ${Number(props.rmb).toFixed(2)} CNY\n

\n ) : (\n

{t('btn_loading')}...

\n )}\n
\n
\n
\n );\n};\n\nexport default Paring;\n","import { useContext, useEffect, useState } from \"react\";\nimport { useHistory } from \"react-router-dom\";\n\n// Context\nimport InstantContext from \"../context/instant/InstantContext\";\n\n// Components\nimport InstantCount from \"../Components/Instant/InstantCount\";\nimport FormFooter from \"../Components/Layout/FormFooter\";\nimport Pairing from \"../Components/universal/Pairing\";\nimport InstantNav from \"../Components/Instant/InstantNav\";\n\nconst InstantScreen = () => {\n // Router Props\n const history = useHistory();\n\n // Init State\n const [showPop, setShowPop] = useState(false);\n const [tab, setTab] = useState(\"all\");\n\n // Instant Context\n const instantContext = useContext(InstantContext);\n const {\n countData,\n setSell1Data,\n setCountData,\n setBuy1Data,\n sell1Data,\n buy1Data,\n actionType,\n setActionType,\n } = instantContext;\n\n useEffect(() => {\n return () => {\n // setActionType(\"\");\n };\n // eslint-disable-next-line\n }, []);\n\n useEffect(() => {\n if (buy1Data) history.replace(`/home/instant/sell/${countData.token}`); // 對方是buy,即時交易這方是sell\n if (sell1Data) history.replace(`/home/instant/buy/${countData.token}`);\n // if (!buy1Data && !sell1Data) history.replace('/home');\n // eslint-disable-next-line\n }, [sell1Data, buy1Data]);\n\n const handleClosePop = () => {\n history.replace(\"/home/overview\");\n setSell1Data(null);\n setCountData(null);\n setBuy1Data(null);\n };\n\n return (\n <>\n \n
\n
\n
\n

歡迎登入

\n
\n \n \n {/* {actionType !== \"onGoing\" && (\n \n )} */}\n \n
\n
\n
\n
\n \n );\n};\n\nexport default InstantScreen;\n","import React, { useContext } from \"react\";\nimport Modal from \"react-bootstrap/Modal\";\nimport { AiOutlineClose } from \"react-icons/ai\";\nimport BalanceContext from \"../../context/balance/BalanceContext\";\nimport {usdtThousandBitSeparatorNonAbs} from '../../lib/utils'\n\nimport styles from \"./MemberLevelAlert.module.scss\";\n\nconst MemberLevelAlert = ({ show, errorText, handleClose }) => {\n const balanceContext = useContext(BalanceContext);\n const { level } = balanceContext;\n\n if (errorText === \"買賣功能已被鎖定\") {\n return (\n <>\n \n \n
\n 系統訊息\n \n
\n
\n\n \n

買賣功能已被鎖定

\n
\n

鎖定原因: 累計超過 10 次/每 30 天超時訂單

\n

鎖定時間: 24 小時

\n
\n
\n\n \n \n \n \n \n );\n }\n\n return (\n <>\n \n \n
\n 系統訊息\n \n
\n
\n\n \n

交易額度不足

\n
\n {errorText === \"交易額度不足/30天\" && (\n

你的交易額度已達上限 {`${usdtThousandBitSeparatorNonAbs(level?.month)}/30天`}

\n )}\n\n {errorText === \"交易額度不足/每次\" && (\n

你的交易額度已達上限 {`${usdtThousandBitSeparatorNonAbs(level?.month)}/每次`}

\n )}\n

欲提高交易額度請洽客服窗口申請

\n
\n
\n\n \n \n \n \n \n );\n};\n\nexport default MemberLevelAlert;\n","export const TWCity = [\n {\n state_name: null,\n name: \"臺北市\",\n full_name: \"臺北市\",\n zipcodes_endpoint:\n \"https://demeter.5fpro.com/tw/zipcode/%E8%87%BA%E5%8C%97%E5%B8%82.json\",\n },\n {\n state_name: null,\n name: \"基隆市\",\n full_name: \"基隆市\",\n zipcodes_endpoint:\n \"https://demeter.5fpro.com/tw/zipcode/%E5%9F%BA%E9%9A%86%E5%B8%82.json\",\n },\n {\n state_name: null,\n name: \"新北市\",\n full_name: \"新北市\",\n zipcodes_endpoint:\n \"https://demeter.5fpro.com/tw/zipcode/%E6%96%B0%E5%8C%97%E5%B8%82.json\",\n },\n {\n state_name: null,\n name: \"連江縣\",\n full_name: \"連江縣\",\n zipcodes_endpoint:\n \"https://demeter.5fpro.com/tw/zipcode/%E9%80%A3%E6%B1%9F%E7%B8%A3.json\",\n },\n {\n state_name: null,\n name: \"宜蘭縣\",\n full_name: \"宜蘭縣\",\n zipcodes_endpoint:\n \"https://demeter.5fpro.com/tw/zipcode/%E5%AE%9C%E8%98%AD%E7%B8%A3.json\",\n },\n {\n state_name: null,\n name: \"新竹市\",\n full_name: \"新竹市\",\n zipcodes_endpoint:\n \"https://demeter.5fpro.com/tw/zipcode/%E6%96%B0%E7%AB%B9%E5%B8%82.json\",\n },\n {\n state_name: null,\n name: \"新竹縣\",\n full_name: \"新竹縣\",\n zipcodes_endpoint:\n \"https://demeter.5fpro.com/tw/zipcode/%E6%96%B0%E7%AB%B9%E7%B8%A3.json\",\n },\n {\n state_name: null,\n name: \"桃園市\",\n full_name: \"桃園市\",\n zipcodes_endpoint:\n \"https://demeter.5fpro.com/tw/zipcode/%E6%A1%83%E5%9C%92%E5%B8%82.json\",\n },\n {\n state_name: null,\n name: \"苗栗縣\",\n full_name: \"苗栗縣\",\n zipcodes_endpoint:\n \"https://demeter.5fpro.com/tw/zipcode/%E8%8B%97%E6%A0%97%E7%B8%A3.json\",\n },\n {\n state_name: null,\n name: \"臺中市\",\n full_name: \"臺中市\",\n zipcodes_endpoint:\n \"https://demeter.5fpro.com/tw/zipcode/%E8%87%BA%E4%B8%AD%E5%B8%82.json\",\n },\n {\n state_name: null,\n name: \"彰化縣\",\n full_name: \"彰化縣\",\n zipcodes_endpoint:\n \"https://demeter.5fpro.com/tw/zipcode/%E5%BD%B0%E5%8C%96%E7%B8%A3.json\",\n },\n {\n state_name: null,\n name: \"南投縣\",\n full_name: \"南投縣\",\n zipcodes_endpoint:\n \"https://demeter.5fpro.com/tw/zipcode/%E5%8D%97%E6%8A%95%E7%B8%A3.json\",\n },\n {\n state_name: null,\n name: \"嘉義市\",\n full_name: \"嘉義市\",\n zipcodes_endpoint:\n \"https://demeter.5fpro.com/tw/zipcode/%E5%98%89%E7%BE%A9%E5%B8%82.json\",\n },\n {\n state_name: null,\n name: \"嘉義縣\",\n full_name: \"嘉義縣\",\n zipcodes_endpoint:\n \"https://demeter.5fpro.com/tw/zipcode/%E5%98%89%E7%BE%A9%E7%B8%A3.json\",\n },\n {\n state_name: null,\n name: \"雲林縣\",\n full_name: \"雲林縣\",\n zipcodes_endpoint:\n \"https://demeter.5fpro.com/tw/zipcode/%E9%9B%B2%E6%9E%97%E7%B8%A3.json\",\n },\n {\n state_name: null,\n name: \"臺南市\",\n full_name: \"臺南市\",\n zipcodes_endpoint:\n \"https://demeter.5fpro.com/tw/zipcode/%E8%87%BA%E5%8D%97%E5%B8%82.json\",\n },\n {\n state_name: null,\n name: \"高雄市\",\n full_name: \"高雄市\",\n zipcodes_endpoint:\n \"https://demeter.5fpro.com/tw/zipcode/%E9%AB%98%E9%9B%84%E5%B8%82.json\",\n },\n {\n state_name: null,\n name: \"南海島\",\n full_name: \"南海島\",\n zipcodes_endpoint:\n \"https://demeter.5fpro.com/tw/zipcode/%E5%8D%97%E6%B5%B7%E5%B3%B6.json\",\n },\n {\n state_name: null,\n name: \"澎湖縣\",\n full_name: \"澎湖縣\",\n zipcodes_endpoint:\n \"https://demeter.5fpro.com/tw/zipcode/%E6%BE%8E%E6%B9%96%E7%B8%A3.json\",\n },\n {\n state_name: null,\n name: \"金門縣\",\n full_name: \"金門縣\",\n zipcodes_endpoint:\n \"https://demeter.5fpro.com/tw/zipcode/%E9%87%91%E9%96%80%E7%B8%A3.json\",\n },\n {\n state_name: null,\n name: \"屏東縣\",\n full_name: \"屏東縣\",\n zipcodes_endpoint:\n \"https://demeter.5fpro.com/tw/zipcode/%E5%B1%8F%E6%9D%B1%E7%B8%A3.json\",\n },\n {\n state_name: null,\n name: \"臺東縣\",\n full_name: \"臺東縣\",\n zipcodes_endpoint:\n \"https://demeter.5fpro.com/tw/zipcode/%E8%87%BA%E6%9D%B1%E7%B8%A3.json\",\n },\n {\n state_name: null,\n name: \"花蓮縣\",\n full_name: \"花蓮縣\",\n zipcodes_endpoint:\n \"https://demeter.5fpro.com/tw/zipcode/%E8%8A%B1%E8%93%AE%E7%B8%A3.json\",\n },\n];\n","import React, { useState, useEffect, useRef } from \"react\";\n// import { Stepper, Step } from \"react-form-stepper\";\nimport Alert from \"react-bootstrap/Alert\";\n\n// import moment from 'moment'\nimport dayjs from \"dayjs\";\n\nimport {\n isNationalIdentificationNumberValid, // 身分證字號\n} from \"taiwan-id-validator\";\n\nimport { resizeFile } from \"../../lib/imageResize\";\n\nimport { TWCity } from \"../../data/tw-city\";\n\nimport { useHistory } from \"react-router-dom\";\n\nimport { useDispatch, useSelector } from \"react-redux\";\nimport Spinner from \"react-bootstrap/Spinner\";\n\nimport { ImageUploader, Toast, Image, Space, SpinLoading } from \"antd-mobile\";\n\nimport styles from \"./KycValidForm.module.scss\";\n\nimport Button from \"react-bootstrap/Button\";\nimport Form from \"react-bootstrap/Form\";\nimport Card from \"react-bootstrap/Card\";\n\nimport {\n setKyc,\n cleanSetKycStatus,\n getKyc,\n} from \"../../store/actions/kycAction\";\n\nimport {\n setKycUserData,\n cleanKycSetUserStatus,\n getKycUserData,\n} from \"../../store/actions/userAction\";\n\n/**\n * 1 => 審核中\n * 2 => 審核通過\n * 3 => 審核失敗\n */\n\nconst KycValidForm = () => {\n const history = useHistory();\n\n const { error: setKycError, data: kycData } = useSelector(\n (state) => state.setKyc\n );\n\n const {\n loading: userKycLoading,\n error: userKycError,\n data: userKycData,\n } = useSelector((state) => state.setUser);\n\n const { data: getKycData, isLoading: kycLoading } = useSelector(\n (state) => state.getKyc\n );\n\n const { data: getUserKycData, loading: userLoading } = useSelector(\n (state) => state.getUer\n );\n\n const { Data, Status } = getUserKycData || {};\n const { reqStatus } = Data || {};\n\n console.log(getKycData);\n\n const bankLastItem = getKycData?.[getKycData?.length - 1];\n const isValidIng = reqStatus === 1;\n const updateLevel = reqStatus === 3;\n const validSuccess = updateLevel\n ? true\n : Status === 101 && bankLastItem?.User_BankStatus === 101;\n\n const [bankData, setBankData] = useState({\n SType: null,\n P1: \"\",\n P2: \"\",\n P3: \"\",\n Img1: \"\",\n });\n\n const [bankStatus, setBankStatus] = useState({\n P1: null,\n P2: null,\n p3: null,\n Img1: null,\n });\n\n const [userData, setUserData] = useState({\n country: \"台灣\",\n idType: \"初\",\n name: \"\",\n email: \"\",\n validCode: \"\",\n birthday: \"\",\n IDNumber: \"\",\n city: \"\",\n area: \"\",\n address: \"\",\n idLocation: \"台北\",\n idDate: \"\",\n\n IDPhotoFront: \"\",\n IDPhotoBack: \"\",\n IDPhotoSecondFront: \"\",\n IDPhotoSecondBack: \"\",\n selfPhoto: \"\",\n sign: \"\",\n });\n\n const [idPhotoFront, setIdPhotoFront] = useState([]);\n const [idPhotoBack, setIdPhotoBack] = useState([]);\n const [IDPhotoSecondFront, setIDPhotoSecondFront] = useState([]);\n const [IDPhotoSecondBack, setIDPhotoSecondBack] = useState([]);\n const [selfList, setSelfList] = useState([]);\n const [accountList, setAccountList] = useState([]);\n const [signList, setSignList] = useState([]);\n\n const [kycValidUerStatus, setKycValidUserStatus] = useState({});\n const [kycValidUerDesc, setKycValidUserDesc] = useState({});\n\n console.log(getUserKycData, \"origin all\");\n\n useEffect(() => {\n if (!getUserKycData) return;\n\n const { Data } = getUserKycData || {};\n if (!Data) return;\n\n const { status, des, client, bankset, bank } = Data || {};\n\n if (des) {\n setKycValidUserDesc(des);\n }\n\n if (status) {\n setKycValidUserStatus(status);\n }\n\n if (client) {\n setUserData(client);\n }\n\n if (bankset) {\n setBankStatus(bankset);\n }\n\n if (bank) {\n setBankData(bank);\n }\n }, [getUserKycData]);\n\n const formBtnRef = useRef();\n const datePickerRef = useRef();\n const scrollRef = useRef();\n\n const dispatch = useDispatch();\n\n const scrollToRef = (ref) => {\n window.scrollTo({ top: ref.current.offsetTop, behavior: \"smooth\" });\n };\n\n const mockUpload = async (file, type) => {\n const result = await resizeFile(file);\n\n if (type === \"Img1\") {\n setBankData((prev) => ({\n ...prev,\n [type]: result,\n }));\n } else {\n setUserData((prev) => ({\n ...prev,\n [type]: result,\n }));\n }\n\n return {\n url: URL.createObjectURL(file),\n };\n };\n\n const beforeUpload = (file) => {\n if (isValidIng) return null;\n\n if (file.size > 4048 * 4048) {\n Toast.show(\"圖片尺寸超過4M\");\n return null;\n }\n return file;\n };\n\n const onSubmit = async (event) => {\n event.preventDefault();\n event.stopPropagation();\n\n // const form = event.currentTarget;\n\n if (!isNationalIdentificationNumberValid(userData.IDNumber)) {\n Toast.show({\n icon: \"fail\",\n content: \"無效的身分證號碼\",\n });\n\n scrollToRef(scrollRef);\n return;\n }\n\n if (kycValidUerStatus?.IDPhotoFront === 3 && !idPhotoFront?.length) {\n Toast.show({\n icon: \"fail\",\n content: \"請上傳驗證照片!\",\n });\n return;\n }\n\n if (kycValidUerStatus?.IDPhotoBack === 3 && !idPhotoBack?.length) {\n Toast.show({\n icon: \"fail\",\n content: \"請上傳驗證照片!\",\n });\n return;\n }\n\n if (\n kycValidUerStatus?.IDPhotoSecondFront === 3 &&\n !IDPhotoSecondFront?.length\n ) {\n Toast.show({\n icon: \"fail\",\n content: \"請上傳驗證照片!\",\n });\n return;\n }\n\n if (\n kycValidUerStatus?.IDPhotoSecondBack === 3 &&\n !IDPhotoSecondBack?.length\n ) {\n Toast.show({\n icon: \"fail\",\n content: \"請上傳驗證照片!\",\n });\n return;\n }\n\n if (kycValidUerStatus?.selfPhoto === 3 && !selfList?.length) {\n Toast.show({\n icon: \"fail\",\n content: \"請上傳驗證照片!\",\n });\n return;\n }\n\n if (bankStatus.status?.Img === 3 && !accountList?.length) {\n Toast.show({\n icon: \"fail\",\n content: \"請上傳驗證照片!\",\n });\n return;\n }\n\n if (kycValidUerStatus?.sign === 3 && !signList?.length) {\n Toast.show({\n icon: \"fail\",\n content: \"請上傳驗證照片!\",\n });\n return;\n }\n\n const { Data } = getUserKycData || {};\n const { client, reqStatus, ...rest } = Data || {};\n\n const { P1, P2, P3, Img1 } = bankData || {};\n\n const sendUserData = {\n ...rest,\n client: { ...userData },\n bank: { ...bankData },\n reqStatus: 1,\n };\n\n dispatch(setKycUserData(sendUserData));\n dispatch(setKyc({ P1, P2, P3, Img1, SType: 1 }));\n };\n\n const onChange = (e) => {\n setBankData((prev) => ({\n ...prev,\n [e.target.id]: e.target.value,\n }));\n };\n\n const userDataOnChange = (e) => {\n setUserData((prev) => ({\n ...prev,\n [e.target.id]: e.target.value,\n }));\n };\n\n useEffect(() => {\n if (!setKycError) return;\n Toast.show({\n icon: \"fail\",\n content: setKycError,\n });\n }, [setKycError, userKycError]);\n\n useEffect(() => {\n if (!userKycError) return;\n Toast.show({\n icon: \"fail\",\n content: userKycError,\n });\n }, [userKycError]);\n\n useEffect(() => {\n if (!kycData || !userKycData) return;\n\n Toast.show({\n icon: \"success\",\n content: \"上傳成功,頁面即將跳轉\",\n afterClose: () => {\n history.replace(\"/home\");\n dispatch(cleanKycSetUserStatus());\n dispatch(cleanSetKycStatus());\n },\n });\n }, [kycData, history, userKycData, dispatch]);\n\n useEffect(() => {\n dispatch(getKycUserData());\n dispatch(getKyc());\n }, [dispatch]);\n\n if (kycLoading || userLoading) {\n return (\n \n \n loading...\n \n );\n }\n\n return (\n <>\n \n
\n {!getUserKycData && (\n \n 尚未驗證\n \n )}\n {isValidIng && (\n \n 資料已上傳,驗證中\n \n )}\n\n {validSuccess && (\n \n 已經完成驗證\n \n )}\n
\n
實名驗證-基本資料
\n
\n \n 姓名\n \n {kycValidUerDesc?.name && (\n \n {kycValidUerDesc?.name}\n \n )}\n {kycValidUerStatus?.name === 1 && (\n
驗證中
\n )}\n
\n\n \n 電子信箱\n \n {kycValidUerStatus?.email === 1 && (\n
驗證中
\n )}\n {kycValidUerDesc?.email && (\n \n {kycValidUerDesc?.email}\n \n )}\n
\n\n \n 出生日期\n \n\n {kycValidUerStatus?.birthday === 1 && (\n
驗證中
\n )}\n\n {kycValidUerDesc?.birthday && (\n \n {kycValidUerDesc?.birthday}\n \n )}\n
\n\n \n 選擇國籍\n \n \n \n \n \n\n {kycValidUerStatus?.country === 1 && (\n
驗證中
\n )}\n {kycValidUerDesc?.country && (\n \n {kycValidUerDesc?.country}\n \n )}\n
\n\n {/* 身分證字號 */}\n \n 身份證字號\n \n {kycValidUerStatus?.IDNumber === 1 && (\n
驗證中
\n )}\n {kycValidUerDesc?.IDNumber && (\n \n {kycValidUerDesc?.IDNumber}\n \n )}\n
\n\n {/* 發證日期 */}\n \n 發證日期\n \n {kycValidUerStatus?.idDate === 1 && (\n
驗證中
\n )}\n {kycValidUerDesc?.idDate && (\n \n {kycValidUerDesc?.idDate}\n \n )}\n
\n\n {/* 發證地點 */}\n \n 發證地點\n \n {TWCity.map((city) => (\n \n ))}\n \n {kycValidUerStatus?.idLocation === 1 && (\n
驗證中
\n )}\n {kycValidUerDesc?.idLocation && (\n \n {kycValidUerDesc?.idLocation}\n \n )}\n
\n\n {/* 領補換類別 */}\n \n 領補換類別\n \n \n \n \n \n\n {kycValidUerStatus?.idType === 1 && (\n
驗證中
\n )}\n\n {kycValidUerDesc?.idType && (\n \n {kycValidUerDesc?.idType}\n \n )}\n
\n\n \n 戶籍地址\n\n
\n
\n \n\n {kycValidUerStatus?.city === 1 && (\n
\n 驗證中\n
\n )}\n {kycValidUerDesc?.city && (\n \n {kycValidUerDesc?.city}\n \n )}\n
\n\n
\n \n\n {kycValidUerStatus?.area === 1 && (\n
\n 驗證中\n
\n )}\n {kycValidUerDesc?.area && (\n \n {kycValidUerDesc?.area}\n \n )}\n
\n
\n\n \n {kycValidUerStatus?.address === 1 && (\n
驗證中
\n )}\n {kycValidUerDesc?.address && (\n \n {kycValidUerDesc?.address}\n \n )}\n
\n\n \n 銀行戶名\n \n {bankStatus?.status?.P2 === 1 && (\n
驗證中
\n )}\n\n {bankStatus?.des?.P2 && (\n \n {bankStatus?.des?.P2}\n \n )}\n
\n\n \n 銀行代號\n {\n event.currentTarget.blur();\n }}\n />\n {bankStatus?.status?.P3 === 1 && (\n
驗證中
\n )}\n {bankStatus?.des?.P3 && (\n \n {bankStatus?.des?.P3}\n \n )}\n
\n\n \n 銀行帳號\n {\n event.currentTarget.blur();\n }}\n // onBlur={onBlurHandle}\n // isInvalid={blurShowError.account}\n />\n {bankStatus?.status?.P1 === 1 && (\n
驗證中
\n )}\n {bankStatus?.des?.P1 && (\n \n {bankStatus?.des?.P1}\n \n )}\n
\n\n \n {validSuccess\n ? \"已完成驗證\"\n : \"請務必確保您所輸入的資料,與您的身份文件一致\"}\n \n\n \n
\n
\n\n {!validSuccess && (\n \n
\n 實名驗證-上傳圖片\n
\n *避免模糊\n *請勿使用經過編輯的圖片\n *檔案大小需在4MB內\n {/* *僅接受 .JPEG / .JPG / .PNG格式 */}\n\n
\n
\n
上傳身分證 正 & 反面
\n \n {isValidIng ||\n kycValidUerStatus.IDPhotoFront === 1 ||\n kycValidUerStatus.IDPhotoFront === 2 ? (\n
\n \n \n {kycValidUerStatus.IDPhotoFront === 2\n ? \"驗證成功\"\n : \"驗證中\"}\n \n
\n ) : (\n <>\n mockUpload(file, `IDPhotoFront`)}\n maxCount={1}\n showUpload={idPhotoFront.length < 1}\n beforeUpload={beforeUpload}\n showFailed={false}\n imageFit=\"cover\"\n />\n {(kycValidUerDesc?.IDPhotoFront ||\n kycValidUerStatus?.IDPhotoFront === 3) && (\n \n {`正面照片 - ${\n kycValidUerDesc?.IDPhotoFront || \"請重新上傳\"\n }`}\n \n )}\n \n )}\n\n {isValidIng ||\n kycValidUerStatus.IDPhotoBack === 1 ||\n kycValidUerStatus.IDPhotoBack === 2 ? (\n
\n \n \n {kycValidUerStatus.IDPhotoBack === 2\n ? \"驗證成功\"\n : \"驗證中\"}\n \n
\n ) : (\n <>\n mockUpload(file, `IDPhotoBack`)}\n maxCount={1}\n showUpload={idPhotoBack.length < 1}\n beforeUpload={beforeUpload}\n showFailed={false}\n imageFit=\"contain\"\n />\n {(kycValidUerDesc?.IDPhotoBack ||\n kycValidUerStatus?.IDPhotoBack === 3) && (\n \n {`反面照片 - ${\n kycValidUerDesc?.IDPhotoBack || \"請重新上傳\"\n }`}\n \n )}\n \n )}\n
\n
\n\n
\n
\n 上傳第二證件 正 & 反面\n \n 健保卡/駕照/護照 擇一\n \n
\n \n {isValidIng ||\n kycValidUerStatus.IDPhotoSecondFront === 1 ||\n kycValidUerStatus.IDPhotoSecondFront === 2 ? (\n
\n \n \n {kycValidUerStatus.IDPhotoSecondFront === 2\n ? \"驗證成功\"\n : \"驗證中\"}\n \n
\n ) : (\n <>\n mockUpload(file, `IDPhotoSecondFront`)}\n maxCount={1}\n showFailed={false}\n showUpload={IDPhotoSecondFront.length < 1}\n beforeUpload={beforeUpload}\n />\n {(kycValidUerDesc?.IDPhotoSecondFront ||\n kycValidUerStatus?.IDPhotoSecondFront === 3) && (\n \n {`正面照片 - ${\n kycValidUerDesc?.IDPhotoSecondFront || \"請重新上傳\"\n }`}\n \n )}\n \n )}\n\n {isValidIng ||\n kycValidUerStatus.IDPhotoSecondBack === 1 ||\n kycValidUerStatus.IDPhotoSecondBack === 2 ? (\n
\n \n \n {kycValidUerStatus.IDPhotoSecondBack === 2\n ? \"驗證成功\"\n : \"驗證中\"}\n \n
\n ) : (\n <>\n mockUpload(file, `IDPhotoSecondBack`)}\n maxCount={1}\n showFailed={false}\n showUpload={IDPhotoSecondBack.length < 1}\n beforeUpload={beforeUpload}\n />\n {(kycValidUerDesc?.IDPhotoSecondBack ||\n kycValidUerStatus?.IDPhotoSecondBack === 3) && (\n \n {`反面照片 - ${\n kycValidUerDesc?.IDPhotoSecondBack || \"請重新上傳\"\n }`}\n \n )}\n \n )}\n
\n
\n\n
\n
\n 上傳手持證件自拍照\n \n 身分證件請勿遮住臉部\n \n \n 手指請勿遮住證件文字\n \n
\n\n {isValidIng ||\n kycValidUerStatus.selfPhoto === 1 ||\n kycValidUerStatus.selfPhoto === 2 ? (\n
\n \n \n {kycValidUerStatus.selfPhoto === 2 ? \"驗證成功\" : \"驗證中\"}\n \n
\n ) : (\n <>\n mockUpload(file, \"selfPhoto\")}\n maxCount={1}\n showFailed={false}\n showUpload={selfList.length < 1}\n beforeUpload={beforeUpload}\n imageFit=\"contain\"\n />\n {(kycValidUerDesc?.selfPhoto ||\n kycValidUerStatus?.selfPhoto === 3) && (\n \n {`自拍照 - ${kycValidUerDesc?.selfPhoto || \"請重新上傳\"}`}\n \n )}\n \n )}\n
\n\n
\n
\n 上傳存摺正面\n
\n {isValidIng ||\n bankStatus?.status?.Img === 1 ||\n bankStatus?.status?.Img === 2 ? (\n
\n \n \n {bankStatus.status?.Img === 2 ? \"驗證成功\" : \"驗證中\"}\n \n
\n ) : (\n <>\n mockUpload(file, \"Img1\")}\n maxCount={1}\n showFailed={false}\n showUpload={accountList.length < 1}\n beforeUpload={beforeUpload}\n imageFit=\"contain\"\n />\n\n {(bankStatus?.des?.Img || bankStatus?.status?.Img === 3) && (\n \n {`存摺 - ${bankStatus?.des?.Img || \"請重新上傳\"}`}\n \n )}\n \n )}\n
\n\n
\n
\n 上傳本人簽名\n
\n {isValidIng ||\n kycValidUerStatus.sign === 1 ||\n kycValidUerStatus.sign === 2 ? (\n
\n \n \n {kycValidUerStatus.sign === 2 ? \"驗證成功\" : \"驗證中\"}\n \n
\n ) : (\n <>\n mockUpload(file, \"sign\")}\n maxCount={1}\n showFailed={false}\n showUpload={signList?.length < 1}\n beforeUpload={beforeUpload}\n imageFit=\"contain\"\n />\n {(kycValidUerDesc?.sign || kycValidUerStatus?.sign === 3) && (\n \n {`簽名 - ${kycValidUerDesc?.sign || \"請重新上傳\"}`}\n \n )}\n \n )}\n
\n
\n\n {!validSuccess && (\n {\n formBtnRef.current.click();\n }}\n >\n {userKycLoading && (\n \n )}\n {isValidIng ? \"驗證中\" : \"填寫完成\"}\n \n )}\n\n {validSuccess && (\n \n 已經完成驗證\n \n )}\n
\n )}\n \n );\n};\n\nexport default KycValidForm;\n","import React, { useState, useEffect, useContext } from \"react\";\nimport {\n Route,\n Switch,\n Redirect,\n Link,\n useHistory,\n useLocation,\n} from \"react-router-dom\";\n\n// Context\nimport AuthContext from \"../../context/auth/AuthContext\";\nimport HttpErrorContext from \"../../context/httpError/HttpErrorContext\";\n\n// Components\nimport Transaction from \"../../pages/Transaction\";\nimport Header from \"../../Components/Layout/Header\";\nimport TheNav from \"../../Components/Layout/TheNav\";\nimport MoneyRecord from \"../../Components/MoneyRecord\";\nimport Overview from \"../../Components/Overview\";\nimport TheWallet from \"../../Components/Wallet/TheWallet\";\nimport WalletDetail from \"../../Components/Wallet/WalletDetail\";\nimport History from \"../../Components/History\";\nimport InstantDetail from \"../../Components/Instant/InstantDetail\";\nimport InstantScreen from \"../../pages/InstantScreen\";\nimport MemberLevelAlert from \"../../Components/member-level-alert/MemberLevelAlert\";\nimport kycForm from \"../../Components/Kyc/KycValidForm\";\n\n// Style\nimport style from \"../../Components/Layout/Header.module.scss\";\n\nconst HOST =\n process.env.NODE_ENV === \"development\"\n ? \"http://localhost:3000\"\n : \"https://www.88u.asia\";\n\nconst HomeScreen = () => {\n // Router Props\n const history = useHistory();\n const location = useLocation();\n\n const [showModal, setShowModal] = useState(false);\n const [text, setText] = useState(\"\");\n\n // Http Error Context\n const httpErrorContext = useContext(HttpErrorContext);\n const { errorText, setHttpError } = httpErrorContext;\n\n // AuthContext\n const authContext = useContext(AuthContext);\n const { logout, setAgent, autoLogout } = authContext;\n\n // Init State\n const [token, setToken] = useState(null);\n\n // ===========\n // UseEffect\n // ===========\n useEffect(() => {\n const token = localStorage.getItem(\"token\");\n const agent = localStorage.getItem(\"agent\");\n\n if (!token) {\n history.replace(\"/auth/login\");\n return;\n }\n\n setToken(token);\n if (agent) {\n setAgent(true);\n autoLogout();\n }\n if (location.pathname === \"/home\" || location.pathname === \"/home/\")\n history.replace(\"/home/overview\");\n // 每小時確認一次agent帳號的過期時間\n let checkAgentExpires = setInterval(() => {\n autoLogout();\n }, 1000 * 60 * 60);\n return () => {\n clearInterval(checkAgentExpires);\n };\n // eslint-disable-next-line\n }, []);\n\n const handleClose = () => {\n setShowModal(false);\n setText(\"\");\n };\n\n useEffect(() => {\n if (\n errorText === \"交易額度不足/30天\" ||\n errorText === \"交易額度不足/每次\"\n ) {\n setText(errorText);\n setShowModal(true);\n return;\n }\n\n if (errorText) alert(errorText);\n return () => {\n setHttpError(\"\");\n };\n // eslint-disable-next-line\n }, [errorText]);\n\n const is88u = process.env.REACT_APP_HOST_NAME === \"88U\";\n const diSessionID = sessionStorage.getItem(\"88u_di_session\");\n const diOrderID = sessionStorage.getItem(\"88u_di_order\");\n\n const redirectToDi = is88u && !!diSessionID;\n\n const hasOrderUrl = diOrderID ? `buy_token=${diOrderID}` : ''\n\n const URL = `${HOST}/di/#/home?session_id=${diSessionID}&${hasOrderUrl}`;\n\n\n return (\n <>\n \n\n
\n {redirectToDi ? (\n \n \n \n ) : (\n \n \n \n )}\n\n \n
\n\n \n\n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default React.memo(HomeScreen);\n","// Sell\nexport const SET_RMB_SELL_RATE = 'SET_RMB_SELL_RATE';\nexport const SET_ORDER_TOKEN = 'SET_ORDER_TOKEN';\nexport const SET_WS_PAIRING = 'SET_WS_PAIRING';\nexport const SET_WS_DATA = 'SET_WS_DATA';\nexport const SET_SELL_COMPLETED = 'SET_SELL_COMPLETED';\nexport const CLEAN_ORDER_TOKEN = 'CLEAN_ORDER_TOKEN';\nexport const SET_WS_CLIENT = 'SET_WS_CLIENT';\nexport const SET_CANCEL_ORDER_DATA = 'SET_CANCEL_ORDER_DATA';\nexport const SET_CONFIRM_SELL = 'SET_CONFIRM_SELL';\nexport const SET_SELL_STATUS = 'SET_SELL_STATUS';\nexport const SET_RATE_DATA = 'SET_RATE_DATA';\nexport const SET_TRANSFER_HANDLE = 'SET_TRANSFER_HANDLE';\nexport const SET_SELL_COUNT = 'SET_SELL_COUNT';\nexport const SET_SHOW_SELL_BANK = 'SET_SHOW_SELL_BANK';\n\n// Transfer\nexport const SET_TRANSFER_ORDER_TOKEN = 'SET_TRANSFER_ORDER_TOKEN';\nexport const SET_TRANSFER_STATUS = 'SET_TRANSFER_STATUS';\nexport const SET_USDT_COUNT = 'SET_USDT_COUNT';\nexport const SET_ORDER_DETAIL = 'SET_ORDER_DETAIL';\nexport const GET_WS_CLIENT = 'GET_WS_CLIENT';\n\n// Balance\nexport const SET_BALANCE = 'GET_BALANCE';\nexport const SET_TICK = 'SET_TICK';\n\n// Chat\nexport const SET_TRANSLATE = 'SET_TRANSLATE';\nexport const SET_MESSAGES = 'SET_MESSAGES';\nexport const SET_CHAT_WS_CLIENT = 'SET_CHAT_WS_CLIENT';\nexport const CHAT_SET_ORDER_TOKEN = 'CHAT_SET_ORDER_TOKEN';\nexport const SET_INSTANT_CLIENT = 'SET_INSTANT_CLIENT';\nexport const SET_INSTANT_MESSAGES = 'SET_INSTANT_MESSAGES';\nexport const SET_CHAT_LOADING = 'SET_CHAT_LOADING';\nexport const SET_NEW_MESSAGE = 'SET_NEW_MESSAGE';\n\n// Auth\nexport const IS_SEND_VALID_CODE = 'IS_SEND_VALID_CODE'; // 簡訊驗證碼發送情況\nexport const SET_VALID_TOKEN = 'SET_VALID_TOKEN'; // 確認驗證碼正確後回傳的token\nexport const SET_AUTH_LOADING = 'SET_AUTH_LOADING';\nexport const SHOW_ERROR_MODAL = 'SHOW_ERROR_MODAL';\nexport const REMOVE_VALID_TOKEN = 'REMOVE_VALID_TOKEN';\nexport const SET_EXPIRED_TIME = 'SET_EXPIRED_TIME';\nexport const SET_AGENT = 'SET_AGENT';\nexport const SET_ACCOUNT_EXISTS = 'SET_ACCOUNT_EXISTS';\n\n// History\nexport const SET_ALL_HISTORY = 'SET_ALL_HISTORY';\nexport const SET_SINGLE_DETAIL = 'SET_SINGLE_DETAIL';\nexport const SET_WAIT_HISTORY = 'SET_WAIT_HISTORY';\nexport const HISTORY_LOADING = 'HISTORY_LOADING';\n\n// Login\nexport const LOGIN_SET_LOADING = 'LOGIN_SET_LOADING';\nexport const SET_ERROR_TEXT = 'SET_ERROR_TEXT';\n\n// Http Error\nexport const SET_HTTP_ERROR = 'SET_HTTP_ERROR';\nexport const SET_HTTP_LOADING = 'SET_HTTP_LOADING';\nexport const SET_BUTTON_LOADING = 'SET_BUTTON_LOADING';\n\n// Buy\nexport const BUY_BTN_LOADING = 'BUY_BTN_LOADING';\nexport const SET_BUY_COUNT = 'SET_BUY_COUNT';\nexport const SET_BUY_ERROR_TEXT = 'SET_BUY_ERROR_TEXT';\nexport const SET_BUY_ORDER_TOKEN = 'SET_BUY_ORDER_TOKEN';\nexport const SET_BUY_WS_STATUS = 'SET_BUY_WS_STATUS';\nexport const HANDLE_PAIRING = 'HANDLE_PAIRING';\nexport const SET_SHOW_BANK = 'SET_SHOW_BANK';\nexport const SET_BUY_WS_CLIENT = 'SET_BUY_WS_CLIENT';\nexport const SET_BUY_WS_DATA = 'SET_BUY_WS_DATA';\nexport const SET_DELTA_TIME = 'SET_DELTA_TIME';\nexport const HIDE_BUY_INFO = 'HIDE_BUY_INFO';\n\n// Instant\nexport const SET_INSTANT_WS_DATA = 'SET_INSTANT_WS_DATA';\nexport const CLEAN_INSTANT_DATA = 'CLEAN_INSTANT_DATA';\nexport const SET_COUNT_DATA = 'SET_COUNT_DATA';\nexport const SET_SELL1_DATA = 'SET_SELL1_DATA';\nexport const SET_BUY1_DATA = 'SET_BUY1_DATA';\nexport const INSTANT_ALL_WS_CLIENT = 'INSTANT_ALL_WS_CLIENT'; // instant all client\nexport const INSTANT_ON_GOING_WS_CLIENT = 'INSTANT_ON_GOING_WS_CLIENT'; // instant on going client\nexport const SET_STATUS_WS_CLIENT = 'SET_STATUS_WS_CLIENT'; // 確認狀態的client\nexport const SET_WS_STATUS_DATA = 'SET_WS_STATUS_DATA';\nexport const SET_INSTANT_ONGOING_DATA = 'SET_INSTANT_ONGOING_DATA';\nexport const SET_ACTION_TYPE = 'SET_ACTION_TYPE';\nexport const ORDER_NOT_EXISTS = 'ORDER_NOT_EXISTS';\nexport const SET_PAYMENT_NAME = 'SET_PAYMENT_NAME';\n\n// Wallet\nexport const SET_WALLET_DATA = 'SET_WALLET_DATA';\nexport const SET_WALLET_TYPE = 'SET_WALLET_TYPE';\n","import {\n SET_SELL_COMPLETED,\n SET_RMB_SELL_RATE,\n SET_ORDER_TOKEN,\n SET_WS_PAIRING,\n SET_WS_DATA,\n CLEAN_ORDER_TOKEN,\n SET_WS_CLIENT,\n SET_CANCEL_ORDER_DATA,\n SET_CONFIRM_SELL,\n SET_SELL_STATUS,\n SET_RATE_DATA,\n SET_TRANSFER_HANDLE,\n SET_SELL_COUNT,\n SET_SHOW_SELL_BANK,\n} from '../type';\n\nconst SellReducer = (state, action) => {\n switch (action.type) {\n case SET_SHOW_SELL_BANK:\n return {\n ...state,\n showBank: action.payload,\n };\n case SET_SELL_COUNT:\n return {\n ...state,\n sellCount: action.payload,\n };\n case SET_TRANSFER_HANDLE:\n return {\n ...state,\n transferHandle: action.payload,\n };\n case SET_RATE_DATA:\n return {\n ...state,\n rateAllData: action.payload,\n };\n case SET_SELL_STATUS:\n return {\n ...state,\n sellStatus: action.payload,\n };\n case SET_RMB_SELL_RATE: {\n return {\n ...state,\n exRate: action.payload.RMB_SELL,\n buyRate: action.payload.RMB_BUY,\n };\n }\n\n case SET_ORDER_TOKEN: {\n return {\n ...state,\n orderToken: action.payload,\n };\n }\n\n case SET_WS_PAIRING: {\n return {\n ...state,\n wsPairing: action.payload,\n };\n }\n\n case SET_WS_DATA: {\n return {\n ...state,\n wsData: action.payload,\n };\n }\n\n // 判斷是否應該進入 \"提交確認/交易完成\" 組件\n case SET_CONFIRM_SELL: {\n return {\n ...state,\n confirmSell: action.payload,\n };\n }\n\n // 提交確認/交易完成組件中,判斷是提交確認還是交易完成\n case SET_SELL_COMPLETED: {\n return {\n ...state,\n sellIsCompleted: action.payload,\n };\n }\n\n // 清除ORDER TOKEN\n case CLEAN_ORDER_TOKEN: {\n return {\n ...state,\n orderToken: null,\n };\n }\n\n // 清除 web socket 連接\n case SET_WS_CLIENT: {\n return {\n ...state,\n wsClient: action.payload,\n };\n }\n\n // 取消訂單的數據\n case SET_CANCEL_ORDER_DATA: {\n return {\n ...state,\n cancelData: action.payload,\n };\n }\n\n default:\n return state;\n }\n};\n\nexport default SellReducer;\n","import { OPEN_WEB_PUSH_NOTIFY, SET_DEVICE_ID } from '../type';\n\nconst initialState = {\n openWebPushNotify: localStorage.getItem('openNotify') === 'yes',\n setDeviceId: { error: '', status: '', data: null },\n};\n\nexport const agentReducer = (state = initialState, action) => {\n switch (action.type) {\n case OPEN_WEB_PUSH_NOTIFY:\n return {\n ...state,\n openWebPushNotify: action.openWebPushNotify,\n };\n\n case SET_DEVICE_ID:\n return {\n ...state,\n setDeviceId: action.payload,\n };\n\n default:\n return state;\n }\n};\n","import { instantActionsTypes } from \"../type\";\n\nconst initialState = {\n instantData: null,\n currentInstantData: null,\n};\n\nexport const instantReducer = (state = initialState, action) => {\n switch (action.type) {\n case instantActionsTypes.SET_ORDER_DATA:\n return {\n ...state,\n instantData: action.payload,\n };\n\n case instantActionsTypes.CURRENT_INSTANT_ORDER:\n return {\n ...state,\n currentInstantData: action.payload,\n };\n\n default:\n return state;\n }\n};\n","import { orderActionsTypes } from \"../type\";\n\nconst initialState = {\n orderStatus: {},\n};\n\nexport const orderReducer = (state = initialState, action) => {\n switch (action.type) {\n case orderActionsTypes.SET_ORDER_DATA:\n return {\n ...state,\n orderStatus: action.payload,\n };\n\n default:\n return state;\n }\n};\n","import { expiredActionTypes } from \"../type\";\n\nconst initialState = {\n loading: false,\n data: null,\n error: \"\",\n};\n\nexport const expiredReducer = (state = initialState, action) => {\n switch (action.type) {\n case expiredActionTypes.SET_EXPIRED_BEGIN:\n return {\n loading: true,\n data: null,\n error: \"\",\n };\n\n case expiredActionTypes.SET_EXPIRED_SUCCESS:\n return {\n loading: false,\n data: action.payload.data,\n error: \"\",\n };\n\n case expiredActionTypes.SET_EXPIRED_ERROR:\n return {\n loading: false,\n data: null,\n error: action.payload.error,\n };\n\n default:\n return state;\n }\n};\n","import { autoPickActionTypes } from \"../type\";\n\nconst initState = {\n loading: false,\n data: null,\n error: \"\",\n};\n\nexport const autoPickReducer = (state = initState, action) => {\n switch (action.type) {\n case autoPickActionTypes.SET_AUTO_PICK_BEGIN:\n return {\n ...state,\n loading: true,\n };\n\n case autoPickActionTypes.SET_AUTO_PICK_SUCCESS:\n return {\n loading: false,\n data: action.payload.data,\n error: \"\",\n };\n\n case autoPickActionTypes.SET_AUTO_PICK_ERROR:\n return {\n loading: false,\n data: null,\n error: action.payload.error,\n };\n\n case autoPickActionTypes.SET_AUTO_PICK_CLEAR:\n return state;\n\n default:\n return state;\n }\n};\n","import { bankFormActionsTypes } from \"../type\";\n\nconst initialState = {\n buy: null,\n sell: null,\n};\n\nexport const temp = () => {};\n\nexport const bankFormReducer = (state = initialState, action) => {\n switch (action.type) {\n case bankFormActionsTypes.SET_BUY_FORM:\n return {\n ...state,\n buy: action.payload,\n };\n\n case bankFormActionsTypes.SET_SELL_FORM:\n return {\n ...state,\n sell: action.payload,\n };\n\n default:\n return state;\n }\n};\n","import dayjs from \"dayjs\";\n\nimport { memberChatActionsTypes } from \"../type\";\n\nimport { unitDate } from \"../../lib/unitDate\";\n\nimport { customText } from \"../../config/customText\";\n\nconst initState = {\n showChat: false,\n messages: [],\n};\n\nexport const memberChatReducer = (state = initState, action) => {\n switch (action.type) {\n case memberChatActionsTypes.SHOW_CHAT:\n return {\n ...state,\n showChat: !state.showChat,\n };\n\n case memberChatActionsTypes.SET_MESSAGE_LIST:\n const arr = action.payload.sort((a, b) => {\n return (\n dayjs(unitDate(a.SysDate)).valueOf() -\n dayjs(unitDate(b.SysDate)).valueOf()\n );\n });\n\n const existsCustomText = arr.find(\n (el, index, arr) =>\n el.Message === customText.Message && index === arr.length - 1\n );\n\n return {\n ...state,\n messages: existsCustomText ? [...arr] : [...arr, customText],\n };\n\n case memberChatActionsTypes.SET_MESSAGE:\n return {\n ...state,\n messages: [...state.messages, action.payload],\n };\n default:\n return state;\n }\n};\n","import { kycActionsTypes } from \"../type\";\n\nconst setInitialState = {\n isLoading: false,\n data: null,\n error: null,\n};\n\nexport const setKycReducer = (state = setInitialState, action) => {\n switch (action.type) {\n case kycActionsTypes.SET_KYC_BEGIN:\n return {\n isLoading: true,\n data: null,\n error: null,\n };\n\n case kycActionsTypes.SET_KYC_SUCCESS:\n return {\n isLoading: false,\n data: action.payload,\n error: null,\n };\n\n case kycActionsTypes.SET_KYC_ERROR:\n return {\n isLoading: false,\n data: null,\n error: action.payload,\n };\n\n case kycActionsTypes.SET_KYC_CLEAR:\n return setInitialState;\n\n default:\n return state;\n }\n};\n\nconst getInitialState = {\n isLoading: false,\n data: null,\n error: null,\n};\n\nexport const getKycReducer = (state = getInitialState, action) => {\n switch (action.type) {\n case kycActionsTypes.GET_KYC_BEGIN:\n return {\n isLoading: true,\n data: null,\n error: null,\n };\n\n case kycActionsTypes.GET_KYC_SUCCESS:\n return {\n isLoading: false,\n data: action.payload,\n error: null,\n };\n\n case kycActionsTypes.GET_KYC_ERROR:\n return {\n isLoading: false,\n data: null,\n error: action.payload,\n };\n\n case kycActionsTypes.GET_KYC_CLEAR:\n return getInitialState;\n\n default:\n return state;\n }\n};\n\nconst removeInitialState = {\n isLoading: false,\n data: null,\n error: null,\n};\n\nexport const removeKycReducer = (state = removeInitialState, action) => {\n switch (action.type) {\n case kycActionsTypes.REMOVE_KYC_BEGIN:\n return {\n isLoading: true,\n data: null,\n error: null,\n };\n\n case kycActionsTypes.REMOVE_KYC_SUCCESS:\n return {\n isLoading: false,\n data: action.payload,\n error: null,\n };\n\n case kycActionsTypes.REMOVE_KYC_ERROR:\n return {\n isLoading: false,\n data: null,\n error: action.payload,\n };\n\n case kycActionsTypes.REMOVE_KYC_CLEAR:\n return removeInitialState;\n\n default:\n return state;\n }\n};\n","import { userActionsTypes } from \"../type\";\n\nconst initialState = {\n loading: false,\n data: null,\n error: null,\n};\n\nexport const setUserReducer = (state = initialState, action) => {\n switch (action.type) {\n case userActionsTypes.SET_USER_BEGIN:\n return {\n loading: true,\n data: null,\n error: null,\n };\n\n case userActionsTypes.SET_USER_SUCCESS:\n return {\n loading: false,\n data: action.payload,\n error: null,\n };\n\n case userActionsTypes.SET_USER_ERROR:\n return {\n loading: false,\n data: null,\n error: action.payload,\n };\n\n case userActionsTypes.SET_USER_CLEAR:\n return initialState;\n\n default:\n return state;\n }\n};\n\nconst getInitialState = {\n loading: false,\n data: null,\n error: null,\n};\n\nexport const getUserReducer = (state = getInitialState, action) => {\n switch (action.type) {\n case userActionsTypes.GET_USER_BEGIN:\n return {\n loading: true,\n data: null,\n error: null,\n };\n\n case userActionsTypes.GET_USER_SUCCESS:\n return {\n loading: false,\n data: action.payload,\n error: null,\n };\n\n case userActionsTypes.GET_USER_ERROR:\n return {\n loading: false,\n data: null,\n error: action.payload,\n };\n\n case userActionsTypes.GET_USER_CLEAR:\n return getInitialState;\n \n default:\n return state;\n }\n};\n","import { accountActionsTypes } from \"../type\";\n\nconst setAccInitialState = {\n loading: false,\n data: null,\n error: null,\n};\n\nexport const setAccountReducer = (state = setAccInitialState, action) => {\n switch (action.type) {\n case accountActionsTypes.SET_CURRENT_ACC_BEGIN:\n return {\n loading: true,\n data: null,\n error: null,\n };\n\n case accountActionsTypes.SET_CURRENT_ACC_SUCCESS:\n return {\n loading: false,\n data: action.payload.data,\n error: null,\n };\n\n case accountActionsTypes.SET_CURRENT_ACC_ERROR:\n return {\n loading: false,\n data: null,\n error: action.payload.error,\n };\n\n case accountActionsTypes.SET_CURRENT_ACC_CLEAR:\n return setAccInitialState;\n default:\n return state;\n }\n};\n\nconst currentAccInitialState = {\n loading: false,\n data: null,\n error: null,\n};\n\nexport const currentAccountReducer = (\n state = currentAccInitialState,\n action\n) => {\n switch (action.type) {\n case accountActionsTypes.GET_CURRENT_ACC_BEGIN:\n return {\n loading: true,\n data: null,\n error: null,\n };\n\n case accountActionsTypes.GET_CURRENT_ACC_SUCCESS:\n return {\n loading: false,\n data: action.payload.data,\n error: null,\n };\n\n case accountActionsTypes.GET_CURRENT_ACC_ERROR:\n return {\n loading: false,\n data: null,\n error: action.payload.error,\n };\n\n case accountActionsTypes.GET_CURRENT_ACC_CLEAR:\n return currentAccInitialState;\n default:\n return state;\n }\n};\n\nconst AccHistoryInitialState = {\n loading: false,\n data: null,\n error: null,\n};\n\nexport const accHistoryReducer = (state = AccHistoryInitialState, action) => {\n switch (action.type) {\n case accountActionsTypes.SET_HISTORY_ACC_BEGIN:\n return {\n loading: true,\n data: null,\n error: null,\n };\n\n case accountActionsTypes.SET_HISTORY_ACC_SUCCESS:\n return {\n loading: false,\n data: action.payload.data,\n error: null,\n };\n\n case accountActionsTypes.SET_HISTORY_ACC_ERROR:\n return {\n loading: false,\n data: null,\n error: action.payload.error,\n };\n\n case accountActionsTypes.SET_HISTORY_ACC_CLEAR:\n return AccHistoryInitialState;\n default:\n return state;\n }\n};\n","import { combineReducers, createStore, applyMiddleware } from \"redux\";\nimport thunk from \"redux-thunk\";\nimport { composeWithDevTools } from \"redux-devtools-extension\";\n\n// 持久化存储 state\nimport { persistStore, persistReducer } from \"redux-persist\";\nimport storage from \"redux-persist/lib/storage\";\n\nimport { agentReducer } from \"./reducers/agentReducer\";\nimport { instantReducer } from \"./reducers/instantReducer\";\nimport { orderReducer } from \"./reducers/orderReducer\";\nimport { expiredReducer } from \"./reducers/expiredReducer\";\nimport { autoPickReducer } from \"./reducers/autoPickReducer\";\nimport { bankFormReducer } from \"./reducers/bankFormReducer\";\nimport { memberChatReducer } from \"./reducers/memberChatReducer\";\nimport {\n setKycReducer,\n getKycReducer,\n removeKycReducer,\n} from \"./reducers/kycReducer\";\n\nimport { setUserReducer, getUserReducer } from \"./reducers/userReducer\";\n\nimport {\n setAccountReducer,\n currentAccountReducer,\n accHistoryReducer,\n} from \"./reducers/accountReducer\";\n\nconst persistConfig = {\n key: \"root\",\n storage,\n whitelist: [\"bankForm\"], // only member will be persisted\n};\n\nconst middleware = [thunk];\n\nconst reducer = combineReducers({\n agent: agentReducer,\n instant: instantReducer,\n order: orderReducer,\n setAccount: setAccountReducer,\n currentAcc: currentAccountReducer,\n historyAcc: accHistoryReducer,\n expired: expiredReducer,\n autoPick: autoPickReducer,\n bankForm: bankFormReducer,\n memberChat: memberChatReducer,\n setKyc: setKycReducer,\n getKyc: getKycReducer,\n removeKyc: removeKycReducer,\n setUser: setUserReducer,\n getUer: getUserReducer,\n});\n\nconst rootReducer = (state, action) => {\n if (action.type === \"RESET_STORE\") {\n storage.removeItem(\"persist:root\");\n return reducer(undefined, action);\n }\n\n return reducer(state, action);\n};\n\n// 持久化根reducers\nconst persistedReducer = persistReducer(persistConfig, rootReducer);\n\nexport const store = createStore(\n persistedReducer,\n composeWithDevTools(applyMiddleware(...middleware))\n);\n\nexport const persisStore = persistStore(store);\n\nexport default store;\n","import { useReducer, useContext } from \"react\";\nimport { useHistory } from \"react-router-dom\";\n\nimport SellContext from \"./SellContext\";\nimport SellReducer from \"./SellReducer\";\n\nimport store from \"../../store/store\";\n\nimport { setOrderStatus } from \"../../store/actions/orderActions\";\n\n// import {locationMoneyCalc} from '../../lib/utils'\n\n// Context\nimport HttpErrorContext from \"../httpError/HttpErrorContext\";\nimport BalanceContext from \"../../context/balance/BalanceContext\";\n\n// Lang Context\nimport { useI18n } from \"../../lang\";\n\nimport {\n SET_SELL_COMPLETED,\n SET_RMB_SELL_RATE,\n SET_ORDER_TOKEN,\n SET_WS_PAIRING,\n SET_WS_DATA,\n CLEAN_ORDER_TOKEN,\n SET_WS_CLIENT,\n SET_CANCEL_ORDER_DATA,\n SET_CONFIRM_SELL,\n SET_SELL_STATUS,\n SET_RATE_DATA,\n SET_TRANSFER_HANDLE,\n SET_SELL_COUNT,\n SET_SHOW_SELL_BANK,\n} from \"../type\";\n\nimport ReconnectingWebSocket from \"reconnecting-websocket\";\n// import { w3cwebsocket as W3CWebsocket } from \"websocket\";\n\nconst SellState = (props) => {\n // Lang Context\n const { t } = useI18n();\n\n const initialState = {\n exRate: null,\n buyRate: null,\n transferHandle: null,\n orderToken: null,\n wsPairing: false,\n wsData: null,\n sellData: null,\n closeWs: false,\n loading: false,\n wsClient: null,\n sellIsCompleted: false,\n cancelData: null,\n confirmSell: false,\n sellCurrentToken: null,\n sellStatus: null,\n rateAllData: null,\n sellCount: null,\n showBank: false,\n };\n\n // Router Props\n const history = useHistory();\n\n // Http Error Context\n const httpErrorContext = useContext(HttpErrorContext);\n const { handleHttpError, setHttpLoading } = httpErrorContext;\n\n // Balance Context\n const balanceContext = useContext(BalanceContext);\n const { getBalance } = balanceContext;\n\n // Get Header\n const getHeader = () => {\n const token = localStorage.getItem(\"token\");\n\n if (!token) {\n history.replace(\"/auth/login\");\n return;\n }\n\n let headers = new Headers();\n headers.append(\"Content-Type\", \"application/json\");\n headers.append(\"login_session\", token);\n\n return headers;\n };\n\n const getExRate = async () => {\n const headers = getHeader();\n if (!headers) {\n history.replace(\"/auth/login\");\n return;\n }\n\n const exRateApi = `/j/ChkExRate.aspx`;\n\n try {\n const res = await fetch(exRateApi, {\n headers,\n });\n\n const resData = await res.json();\n const { data } = resData;\n\n if (resData.code === 200) {\n setExRateData(data);\n setRateAllData(data);\n } else {\n handleHttpError(data);\n }\n } catch (error) {\n alert(error);\n handleHttpError(error);\n }\n };\n\n // Sell --step 1 (獲取 order token)\n const getOrderToken = async (data) => {\n const headers = getHeader();\n\n if (!headers) {\n history.replace(\"/auth/login\");\n return;\n }\n\n if (!data) return;\n\n const getOrderApi = `/j/req_sell1.aspx`;\n\n try {\n const res = await fetch(getOrderApi, {\n method: \"POST\",\n headers,\n body: JSON.stringify({\n AccountNumber: data.account,\n AccountName: data.name,\n BankName: data.bank,\n BankBranch: data.city,\n UsdtAmt: Number(data.usdt),\n }),\n });\n\n const resData = await res.json();\n\n if (resData.code === 200) {\n const {\n data: { order_token },\n } = resData;\n setOrderToken(order_token);\n sellWebSocket(order_token);\n } else {\n handleHttpError(resData);\n }\n } catch (error) {\n handleHttpError(error);\n }\n\n setWsPairing(false);\n };\n\n // 確認收款 (sell 2)\n const confirmSellAction = async (orderToken) => {\n const headers = getHeader();\n\n if (!orderToken || !headers) return;\n\n setHttpLoading(true);\n\n const sell2Api = `/j/Req_Sell2.aspx`;\n\n try {\n const res = await fetch(sell2Api, {\n method: \"POST\",\n headers,\n body: JSON.stringify({\n Token: orderToken,\n }),\n });\n\n const resData = await res.json();\n\n if (resData.code === 200) {\n // setConfirmSell(true);\n } else {\n handleHttpError(resData);\n }\n } catch (error) {\n handleHttpError(error);\n }\n\n setHttpLoading(false);\n };\n\n // get order detail\n const getOrderDetail = async (orderToken) => {\n const headers = getHeader();\n\n if (!orderToken || !headers) return;\n\n const detailApi = `/j/GetTxDetail.aspx`;\n\n try {\n const res = await fetch(detailApi, {\n method: \"POST\",\n headers,\n body: JSON.stringify({\n Token: orderToken,\n }),\n });\n\n const resData = await res.json();\n\n if (resData.code === 200) {\n // setConfirmSell(true);\n } else {\n handleHttpError(resData);\n }\n } catch (error) {\n handleHttpError(error);\n }\n };\n\n // webSocket連接\n const sellWebSocket = (orderToken) => {\n const loginSession = localStorage.getItem(\"token\");\n\n if (!orderToken || !loginSession) return;\n\n const connectWs = \"j/ws_orderstatus.ashx\";\n\n const url = `wss://${process.env.REACT_APP_PROXY}/${connectWs}?login_session=${loginSession}&order_token=${orderToken}`;\n\n const client = new ReconnectingWebSocket(url);\n\n setWsClient(client);\n\n // 1.建立連接\n client.onopen = () => {\n console.log(\"websocket client connected sell\");\n };\n\n // 2.收到server回復\n client.onmessage = (message) => {\n if (!message.data) return;\n const dataFromServer = JSON.parse(message.data);\n store.dispatch(setOrderStatus(dataFromServer.data));\n console.log(\"got reply!\", dataFromServer, \"sell\");\n setSellStatus(dataFromServer.data.Order_StatusID);\n\n // 配對中 Order_StatusID:31 or 32\n if (dataFromServer.data.Order_StatusID === 31) {\n setWsData(dataFromServer.data);\n setWsPairing(true);\n }\n\n // 等待付款 Order_StatusID:33\n if (dataFromServer.data.Order_StatusID === 33) {\n setWsData(dataFromServer.data);\n setWsPairing(false);\n // console.log(dataFromServer, \"=====\");\n // history.replace(`/home/transaction/sell/${orderToken}`);\n }\n\n // 等待收款 Order_StatusID:34\n if (dataFromServer.data.Order_StatusID === 34) {\n setWsData(dataFromServer.data);\n }\n\n if (dataFromServer.data.Order_StatusID === 35) {\n setWsData(dataFromServer.data);\n }\n\n // 交易成功 Order_StatusID:1\n if (dataFromServer.data.Order_StatusID === 1) {\n getBalance();\n // dispatch({ type: SET_SELL_COMPLETED, payload: true });\n setWsData(dataFromServer.data);\n setCompleteStatus(true);\n\n client.close();\n }\n\n // 交易失敗\n if (dataFromServer.data.Order_StatusID === 99) {\n client.close();\n }\n };\n\n // 3.錯誤處理\n client.onclose = function (message) {\n console.log(\"關閉連線.....sell...\", message);\n };\n };\n\n // 關閉webSocket\n // const closeWebSocket = (orderToken) => {\n // console.log(\"1234hjfdkjfad;fj;\");\n // if (state.client) {\n // state.client.close();\n // }\n\n // if (!orderToken) return;\n\n // const loginSession = localStorage.getItem(\"token\");\n // if (!loginSession) return;\n\n // const connectWs = \"j/ws_orderstatus.ashx\";\n\n // let url;\n\n // if (window.location.host.includes(\"k100u\")) {\n // url = `wss://${window.location.host}/${connectWs}?login_session=${loginSession}&order_token=${orderToken}`;\n // } else {\n // url = `wss://demo.k100u.com/${connectWs}?login_session=${loginSession}&order_token=${orderToken}`;\n // }\n\n // const client = new ReconnectingWebSocket(url);\n\n // client.close();\n // };\n\n // 取消訂單\n const cancelOrder = async (orderToken) => {\n const headers = getHeader();\n\n if (!orderToken || !headers) return;\n\n const cancelApi = `/j/Req_CancelOrder.aspx`;\n\n try {\n const res = await fetch(cancelApi, {\n method: \"POST\",\n headers,\n body: JSON.stringify({\n Token: orderToken,\n }),\n });\n\n const resData = await res.json();\n\n dispatch({ type: SET_CANCEL_ORDER_DATA, payload: resData });\n\n if (resData.code === 200) {\n // alert('訂單已經取消');\n history.replace(\"/home/overview\");\n } else {\n alert(t(\"cancel_fail\"));\n }\n } catch (error) {\n handleHttpError(error);\n }\n };\n\n // 清除Order Token\n const cleanOrderToken = () => {\n dispatch({ type: CLEAN_ORDER_TOKEN });\n };\n\n // Set ExRate Data\n const setExRateData = (data) => {\n dispatch({ type: SET_RMB_SELL_RATE, payload: data });\n };\n\n // Set Order Token\n const setOrderToken = (token) => {\n dispatch({ type: SET_ORDER_TOKEN, payload: token });\n };\n\n // Set Web Socket Client\n const setWsClient = (value) => {\n dispatch({ type: SET_WS_CLIENT, payload: value });\n };\n\n // Set wsPairing\n const setWsPairing = (value) => {\n dispatch({ type: SET_WS_PAIRING, payload: value });\n };\n\n // Set WsData\n const setWsData = (data) => {\n dispatch({ type: SET_WS_DATA, payload: data });\n };\n\n // Set Confirm Sell (判斷是否要進入complete)\n const setConfirmSell = (value) => {\n dispatch({ type: SET_CONFIRM_SELL, payload: value });\n };\n\n // Set Complete status\n const setCompleteStatus = (value) => {\n dispatch({ type: SET_SELL_COMPLETED, payload: value });\n };\n\n // Set Sell Status\n const setSellStatus = (value) => {\n dispatch({ type: SET_SELL_STATUS, payload: value });\n };\n\n // Set Rate All Data\n const setRateAllData = (data) => {\n dispatch({ type: SET_RATE_DATA, payload: data });\n };\n\n // Set Transfer Handle\n const setTransferHandle = (num) => {\n dispatch({ type: SET_TRANSFER_HANDLE, payload: num });\n };\n\n // Set Sell Count\n const setSellCount = (data) => {\n dispatch({ type: SET_SELL_COUNT, payload: data });\n };\n\n // Set Show Bank\n const setShowBank = (value) => {\n dispatch({ type: SET_SHOW_SELL_BANK, payload: value });\n };\n\n // Clean All\n const cleanAll = () => {\n if (state.wsClient) state.wsClient.close();\n setConfirmSell(false);\n setWsPairing(false);\n setCompleteStatus(false);\n setSellStatus(null);\n setRateAllData(null);\n setTransferHandle(null);\n setShowBank(false);\n setWsClient(null);\n };\n\n // useReducer\n const [state, dispatch] = useReducer(SellReducer, initialState);\n\n return (\n \n {props.children}\n \n );\n};\n\nexport default SellState;\n","import { SET_BALANCE, SET_TICK } from \"../type\";\n\nconst BalanceReducer = (state, action) => {\n switch (action.type) {\n case SET_TICK:\n return {\n ...state,\n tick: action.payload,\n };\n case SET_BALANCE:\n const { Lvl, Avb_Balance, Real_Balance } = action.payload;\n let limit = {\n month: null,\n day: null\n }\n switch (Lvl) {\n case 0:\n limit = {month: 500, day: 500};\n break;\n\n case 1:\n limit = {month: 20000, day: 2000};\n break;\n\n case 2:\n limit = {month: 200000, day: 10000};\n break;\n\n case 3:\n limit = {month: 500000, day: 30000};\n break;\n\n case 4:\n limit = {month: 1000000, day: 60000};\n break;\n\n case 5:\n limit = {month: 0, day: 0};\n break;\n\n default:\n limit = {month: 999999, day: 10000};\n break;\n }\n return {\n ...state,\n avb: Avb_Balance.toFixed(2),\n real: Real_Balance.toFixed(2),\n level: limit,\n lvl: Lvl\n };\n\n default:\n return state;\n }\n};\n\nexport default BalanceReducer;\n","import { useReducer, useContext } from \"react\";\nimport BalanceReducer from \"./BalanceReducer\";\nimport BalanceContext from \"./BalanceContext\";\nimport { SET_BALANCE, SET_TICK } from \"../type\";\n\n// Context\nimport HttpErrorContext from \"../../context/httpError/HttpErrorContext\";\n\nconst BalanceState = (props) => {\n // Http Error Context\n const httpErrorContext = useContext(HttpErrorContext);\n const { setHttpLoading, handleHttpError } = httpErrorContext;\n\n // Init State\n const initialState = {\n avb: null, //可提\n real: null, //結餘\n level: null,\n tick: null,\n lvl: null\n };\n\n // Get Header\n const getHeader = () => {\n const token = localStorage.getItem(\"token\");\n if (!token) return;\n\n let headers = new Headers();\n headers.append(\"Content-Type\", \"application/json\");\n headers.append(\"login_session\", token);\n\n return headers;\n };\n\n // get avb and real\n const getBalance = async () => {\n const headers = getHeader();\n if (!headers) return;\n\n setHttpLoading(true);\n\n const balanceApi = \"/j/ChkBalance.aspx\";\n\n try {\n const res = await fetch(balanceApi, {\n headers,\n });\n\n const resData = await res.json();\n\n\n if (resData.code === 200) {\n const { data } = resData;\n setBalance(data);\n } else {\n handleHttpError(resData);\n }\n } catch (error) {\n handleHttpError(error);\n }\n\n setHttpLoading(false);\n };\n\n // Get Tick\n const getTick = async (token) => {\n const headers = getHeader();\n\n if (!token || !headers) return;\n\n const getTickApi = \"/j/ChkUpdate.aspx\";\n\n try {\n const res = await fetch(getTickApi, {\n headers,\n });\n const resData = await res.json();\n\n if (resData.code === 200) {\n setTick(resData.data.UpdateTick);\n // console.log(resData.data.UpdateTick)\n } else {\n handleHttpError(resData);\n }\n } catch (error) {\n handleHttpError(error);\n }\n };\n\n // Set Balance\n const setBalance = (data) => {\n dispatch({ type: SET_BALANCE, payload: data });\n };\n\n const setTick = (tick) => {\n dispatch({ type: SET_TICK, payload: tick });\n };\n\n const [state, dispatch] = useReducer(BalanceReducer, initialState);\n\n return (\n \n {props.children}\n \n );\n};\n\nexport default BalanceState;\n","import {\n IS_SEND_VALID_CODE,\n SET_VALID_TOKEN,\n SET_AUTH_LOADING,\n SHOW_ERROR_MODAL,\n REMOVE_VALID_TOKEN,\n SET_EXPIRED_TIME,\n LOGIN_SET_LOADING,\n SET_ERROR_TEXT,\n SET_AGENT,\n SET_ACCOUNT_EXISTS,\n} from '../type';\n\nconst AuthReducer = (state, action) => {\n switch (action.type) {\n case SET_ACCOUNT_EXISTS:\n return {\n ...state,\n accountIsExists: action.payload,\n };\n case SET_AGENT:\n return {\n ...state,\n isAgent: action.payload,\n };\n case SET_ERROR_TEXT:\n return {\n ...state,\n errorText: action.payload,\n };\n case LOGIN_SET_LOADING:\n return {\n ...state,\n loginLoading: action.payload,\n };\n case SET_EXPIRED_TIME:\n return {\n ...state,\n expiredTime: action.payload,\n };\n\n case REMOVE_VALID_TOKEN:\n return {\n ...state,\n validToken: null,\n };\n case SHOW_ERROR_MODAL:\n return {\n ...state,\n showErrorModal: {\n show: action.payload.show,\n text: action.payload.text,\n status: action.payload.status,\n },\n };\n\n case SET_AUTH_LOADING:\n return {\n ...state,\n authLoading: action.payload,\n };\n\n case SET_VALID_TOKEN:\n return {\n ...state,\n validToken: action.payload,\n };\n\n case IS_SEND_VALID_CODE:\n return {\n ...state,\n isSendValidCode: action.payload,\n };\n default:\n return state;\n }\n};\n\nexport default AuthReducer;\n","import { useReducer } from \"react\";\nimport { useHistory } from \"react-router-dom\";\n\nimport AuthReducer from \"./AuthReducer\";\nimport AuthContext from \"./AuthContext\";\n\n// Lang Context\nimport { useI18n } from \"../../lang\";\n\nimport {\n IS_SEND_VALID_CODE,\n SET_VALID_TOKEN,\n SET_AUTH_LOADING,\n SHOW_ERROR_MODAL,\n REMOVE_VALID_TOKEN,\n SET_EXPIRED_TIME,\n LOGIN_SET_LOADING,\n SET_ERROR_TEXT,\n SET_AGENT,\n SET_ACCOUNT_EXISTS,\n} from \"../type\";\n\nconst AuthState = (props) => {\n // Lang Context\n const { t } = useI18n();\n // Router Props\n const history = useHistory();\n\n // Init State\n const initialState = {\n loginLoading: false,\n errorText: \"\",\n isSendValidCode: false,\n validToken: null,\n authLoading: false,\n showErrorModal: {\n show: false,\n text: \"\",\n status: \"\",\n },\n expiredTime: null,\n isAgent: false,\n accountIsExists: \"notYetConfirm\",\n };\n\n // Get Header\n const getHeader = () => {\n const token = localStorage.getItem(\"token\");\n if (!token) return;\n let headers = new Headers();\n headers.append(\"Content-Type\", \"application/json\");\n headers.append(\"login_session\", token);\n\n return headers;\n };\n\n // loginLoading\n const handleLoginLoading = (value) => {\n dispatch({ type: LOGIN_SET_LOADING, payload: value });\n };\n\n // set error text\n const setErrorText = (value) => {\n dispatch({ type: SET_ERROR_TEXT, payload: value });\n };\n\n // 登入\n const login = async (data) => {\n handleLoginLoading(true);\n let loginApi = `/j/login.aspx`;\n\n try {\n const res = await fetch(loginApi, {\n method: \"POST\",\n body: JSON.stringify({\n Login_countrycode: data.countryCode,\n Login_tel: data.phoneNumber,\n Login_pwd: data.password,\n }),\n });\n\n const resData = await res.json();\n\n // console.log(resData);\n\n handleLoginLoading(false);\n\n if (resData.code === 200) {\n if (resData.data.isAgent) {\n setAgent(true);\n const expiresStamp = 1000 * 60 * 60 * 24; // 過期時間\n const expiresDate = new Date().getTime() + expiresStamp;\n localStorage.setItem(\"agent\", expiresDate);\n }\n\n const {\n data: { login_session },\n } = resData;\n\n localStorage.setItem(\"token\", login_session);\n\n history.replace(\"/home/overview\");\n } else {\n handleHttpError(resData);\n }\n } catch (error) {\n handleHttpError(error);\n console.log(error);\n }\n };\n\n // 登出\n const logout = async () => {\n const headers = getHeader();\n localStorage.removeItem(\"token\");\n localStorage.removeItem(\"expiresIn\");\n localStorage.removeItem(\"agent\");\n localStorage.removeItem(\"loglevel\");\n setAgent(false);\n\n let logoutApi = \"/j/logout.aspx\";\n try {\n const res = await fetch(logoutApi, { headers });\n const resData = await res.json();\n\n if (resData.code === 200) {\n // localStorage.removeItem('token');\n // localStorage.removeItem('expiresIn');\n // localStorage.removeItem('agent');\n // localStorage.removeItem('loglevel');\n } else {\n handleHttpError(resData);\n }\n } catch (error) {\n handleHttpError(error);\n }\n\n history.replace(\"/auth/login\");\n };\n\n // 自動登出\n const autoLogout = async () => {\n const expiresDate = localStorage.getItem(\"agent\");\n if (!expiresDate) return;\n const expiresIn = new Date().getTime() - expiresDate;\n\n if (expiresIn <= 0) return;\n\n alert(t(\"login_again\"));\n\n logout();\n };\n\n // 忘記密碼之獲取手機驗證碼 step-1\n const getValidCode = async (data) => {\n const registerApi = `/j/Req_Fpwd_oneTimePwd.aspx`;\n if (data.countryCode === 886) {\n // data.phoneNumber = data.phoneNumber.substr(1);\n }\n try {\n const res = await fetch(registerApi, {\n method: \"POST\",\n body: JSON.stringify({\n reg_countrycode: data.countryCode,\n reg_tel: data.phoneNumber,\n }),\n });\n const resData = await res.json();\n\n if (resData.code === 200) {\n dispatch({ type: IS_SEND_VALID_CODE, payload: true });\n const expiresStamp = 120000;\n const expiresDate = Date.now() + expiresStamp;\n\n localStorage.setItem(\"expiresIn\", expiresDate);\n dispatch({ type: SET_EXPIRED_TIME, payload: expiresDate });\n } else {\n dispatch({ type: IS_SEND_VALID_CODE, payload: false });\n handleHttpError(resData);\n }\n } catch (error) {\n handleHttpError(error);\n }\n };\n\n // 確認驗證碼是否正確 step-2\n const checkValidCode = async (data) => {\n dispatch({ type: SET_AUTH_LOADING, payload: true });\n if (data.countryCode === 886) {\n // data.phoneNumber = data.phoneNumber.substr(1);\n }\n\n const checkValidApi = `/j/ChkoneTimePwd.aspx`;\n\n try {\n const res = await fetch(checkValidApi, {\n method: \"POST\",\n body: JSON.stringify({\n reg_countrycode: data.countryCode,\n reg_tel: data.phoneNumber,\n OneTimePwd: data.validCode,\n }),\n });\n\n const resData = await res.json();\n\n dispatch({ type: SET_AUTH_LOADING, payload: false });\n\n if (resData.code === 200) {\n dispatch({ type: SET_VALID_TOKEN, payload: resData.data });\n } else {\n handleHttpError(resData);\n }\n } catch (error) {\n handleHttpError(error);\n }\n };\n\n // 設定新密碼 step-3\n const forgetPassword = async (data) => {\n dispatch({ type: SET_AUTH_LOADING, payload: true });\n\n const setNewPwApi = `/j/Req_ForgotPwd.aspx`;\n\n try {\n const res = await fetch(setNewPwApi, {\n method: \"POST\",\n body: JSON.stringify({\n reg_countrycode: data.countryCode,\n reg_tel: data.phoneNumber,\n reg_pwd: data.password,\n reg_token: data.token,\n }),\n });\n\n const resData = await res.json();\n\n dispatch({ type: SET_AUTH_LOADING, payload: false });\n\n if (resData.code === 200) {\n dispatch({\n type: SHOW_ERROR_MODAL,\n payload: {\n show: true,\n text: t(\"set_password_success\"),\n status: \"success\",\n },\n });\n\n dispatch({\n type: REMOVE_VALID_TOKEN,\n });\n } else {\n handleHttpError(resData);\n }\n } catch (error) {\n handleHttpError(error);\n }\n };\n\n // 更換密碼\n const changePw = async (data) => {\n const changePwApi = `/j/Req_ChgPwd.aspx`;\n const headers = getHeader();\n\n try {\n const res = await fetch(changePwApi, {\n method: \"POST\",\n headers,\n body: JSON.stringify({\n Login_pwd: data.oldPw,\n New_pwd: data.newPw,\n }),\n });\n\n const resData = await res.json();\n\n if (resData !== 200) {\n handleHttpError(resData);\n } else {\n alert(t(\"password_changed\"));\n }\n } catch (error) {\n handleHttpError(error);\n }\n };\n\n const handleHttpError = (data) => {\n if (data.code === \"1\") {\n setErrorText(t(\"http_error_code_1\"));\n return;\n }\n\n if (data.code === \"10\") {\n setErrorText(t(\"http_error_code_10\"));\n return;\n }\n\n if (data.code === \"11\") {\n setErrorText(t(\"http_error_code_11\"));\n\n return;\n }\n\n if (data.code === \"12\") {\n setErrorText(t(\"http_error_code_12\"));\n\n return;\n }\n\n if (data.code === \"13\") {\n setErrorText(t(\"http_error_code_13\"));\n\n return;\n }\n if (data.code === \"14\") {\n setErrorText(t(\"http_error_code_14\"));\n\n return;\n }\n\n if (data.code === \"15\") {\n setErrorText(t(\"http_error_code_15\"));\n\n return;\n }\n\n if (data.code === \"16\") {\n setErrorText(t(\"http_error_code_16\"));\n\n return;\n }\n\n if (data.code === \"17\") {\n setErrorText(t(\"http_error_code_17\"));\n\n return;\n }\n\n if (data.code === \"20\") {\n setErrorText(t(\"http_error_code_20\"));\n\n return;\n }\n\n if (data.code === \"21\") {\n dispatch({\n type: SHOW_ERROR_MODAL,\n payload: { show: true, text: t(\"http_error_code_21\"), status: \"fail\" },\n });\n\n setErrorText(t(\"http_error_code_21\"));\n\n return;\n }\n\n if (data.code === \"22\") {\n dispatch({\n type: SHOW_ERROR_MODAL,\n payload: { show: true, text: t(\"http_error_code_22\"), status: \"fail\" },\n });\n setErrorText(t(\"http_error_code_22\"));\n\n return;\n }\n\n if (data.code === \"30\") {\n alert(t(\"http_error_code_30\"));\n return;\n }\n\n if (data.code === \"31\") {\n alert(t(\"http_error_code_31\"));\n return;\n }\n\n if (data.code === \"ˇ\b32\") {\n alert(t(\"http_error_code_32\"));\n return;\n }\n\n if (data.code === \"ˇ\b91\") {\n alert(t(\"http_error_code_91\"));\n history.replace(\"/auth/login\");\n localStorage.removeItem(\"token\");\n localStorage.removeItem(\"agent\");\n localStorage.removeItem(\"loglevel\");\n return;\n }\n };\n\n // 驗證帳號是否存在\n const checkAccountExists = async (data) => {\n const checkAccount = `/j/ChkLoginExists.aspx`;\n\n try {\n const res = await fetch(checkAccount, {\n method: \"POST\",\n body: JSON.stringify({\n reg_countrycode: data.countryCode,\n reg_tel: data.phoneNumber,\n }),\n });\n\n const resData = await res.json();\n\n if (resData.code === \"11\") {\n setAccountExists(\"exists\");\n return;\n }\n\n if (resData.code === 200) {\n setAccountExists(\"notExists\");\n } else {\n handleHttpError(resData);\n }\n } catch (error) {\n handleHttpError(error);\n }\n };\n\n // set countdown btn\n const setCountDown = (value) => {\n dispatch({ type: IS_SEND_VALID_CODE, payload: value });\n dispatch({ type: SET_EXPIRED_TIME, payload: null });\n };\n\n const cleanErr = () => {\n dispatch({\n type: SHOW_ERROR_MODAL,\n payload: { show: false, text: \"\", status: null },\n });\n };\n\n const removeValidToken = () => {\n dispatch({ type: REMOVE_VALID_TOKEN });\n };\n\n const setAgent = (value) => {\n dispatch({ type: SET_AGENT, payload: value });\n };\n\n // 帳號是否已經存在\n const setAccountExists = (value) => {\n dispatch({ type: SET_ACCOUNT_EXISTS, payload: value });\n };\n\n const [state, dispatch] = useReducer(AuthReducer, initialState);\n\n return (\n \n {props.children}\n \n );\n};\n\nexport default AuthState;\n","import {\n SET_TRANSFER_ORDER_TOKEN,\n SET_TRANSFER_STATUS,\n SET_USDT_COUNT,\n SET_ORDER_DETAIL,\n GET_WS_CLIENT,\n} from '../type';\n\nconst SellReducer = (state, action) => {\n switch (action.type) {\n case GET_WS_CLIENT:\n return {\n ...state,\n wsClient: action.payload,\n };\n case SET_ORDER_DETAIL:\n return {\n ...state,\n orderDetail: action.payload,\n };\n case SET_USDT_COUNT:\n return {\n ...state,\n usdtCount: action.payload,\n };\n case SET_TRANSFER_STATUS:\n return {\n ...state,\n transferStatus: action.payload,\n };\n case SET_TRANSFER_ORDER_TOKEN:\n return {\n ...state,\n transferOrderToken: action.payload,\n };\n default:\n return state;\n }\n};\n\nexport default SellReducer;\n","import { useReducer, useContext } from \"react\";\nimport ReconnectingWebSocket from \"reconnecting-websocket\";\nimport TransferContext from \"./TransferContext\";\nimport TransferReducer from \"./TransferReducer\";\nimport {\n SET_TRANSFER_ORDER_TOKEN,\n SET_TRANSFER_STATUS,\n SET_USDT_COUNT,\n SET_ORDER_DETAIL,\n GET_WS_CLIENT,\n} from \"../type\";\n\n// Context\nimport HttpErrorContext from \"../httpError/HttpErrorContext\";\n// import BalanceContext from '../balance/BalanceContext';\n\nconst TransferState = (props) => {\n // Http Error Context\n const httpErrorContext = useContext(HttpErrorContext);\n const { setHttpLoading, handleHttpError } = httpErrorContext;\n\n // Init State\n const initialState = {\n transferOrderToken: null,\n transferStatus: null,\n usdtCount: null,\n orderDetail: null,\n };\n\n // Get Header\n const getHeader = () => {\n const token = localStorage.getItem(\"token\");\n if (!token) return;\n let headers = new Headers();\n headers.append(\"Content-Type\", \"application/json\");\n headers.append(\"login_session\", token);\n\n return headers;\n };\n\n // webSocket連接\n const transferWebSocket = (orderToken) => {\n if (!orderToken) return;\n\n const loginSession = localStorage.getItem(\"token\");\n if (!loginSession) return;\n\n const connectWs = \"j/ws_orderstatus.ashx\";\n\n let url;\n\n // if (window.location.protocol === 'http:') {\n // url = `${process.env.REACT_APP_WEBSOCKET_URL}/${connectWs}?login_session=${loginSession}&order_token=${orderToken}`;\n // } else {\n // url = `${process.env.REACT_APP_WEBSOCKET_URL_DOMAIN}/${connectWs}?login_session=${loginSession}&order_token=${orderToken}`;\n // }\n\n if (!window.location.host.includes(\"demo\") && !window.location.host.includes(\"localhost\")) {\n url = `wss://${window.location.host}/${connectWs}?login_session=${loginSession}&order_token=${orderToken}`;\n } else {\n url = `wss://demo.k100u.com/${connectWs}?login_session=${loginSession}&order_token=${orderToken}`;\n }\n\n const client = new ReconnectingWebSocket(url);\n\n dispatch({ type: GET_WS_CLIENT, payload: client });\n\n // 1.建立連接\n client.onopen = () => {\n // console.log('websocket transfer connected sell');\n };\n\n // 2.收到server回復\n client.onmessage = (message) => {\n if(!message || !message?.data) return\n const dataFromServer = JSON.parse(message.data);\n // console.log('got transfer reply!', dataFromServer);\n dispatch({\n type: SET_TRANSFER_STATUS,\n payload: dataFromServer.data.Order_StatusID,\n });\n };\n\n // 3.錯誤處理\n client.onclose = (message) => {\n // console.log('關閉連線.....');\n };\n };\n\n // 關閉webSocket\n const closeWebSocket = () => {\n if (state.wsClient) {\n state.wsClient.close();\n } else {\n return;\n }\n };\n\n // 驗證錢包地址 ---ERC\n const checkErcAddress = async (transferAddress, transferCount) => {\n const headers = getHeader();\n if (!headers) return;\n\n const checkErcApi = `/j/ChkToAddressValid.aspx`;\n\n try {\n const res = await fetch(checkErcApi, {\n method: \"POST\",\n headers,\n body: JSON.stringify({\n ToAddress: transferAddress.val,\n }),\n });\n const resData = await res.json();\n\n if (resData.code === 200) {\n sendTransferReq(transferAddress, transferCount);\n } else {\n handleHttpError(resData);\n setHttpLoading(false);\n }\n } catch (error) {\n handleHttpError(error);\n setHttpLoading(false);\n }\n };\n\n // send transfer req --- ERC\n const sendTransferReq = async (transferAddress, transferCount) => {\n const headers = getHeader();\n if (!transferAddress || !transferCount || !headers) {\n setHttpLoading(false);\n handleHttpError(\"\");\n return;\n }\n\n const transferApi = \"/j/Req_Transfer1.aspx\";\n try {\n const res = await fetch(transferApi, {\n method: \"POST\",\n headers,\n body: JSON.stringify({\n ToAddress: transferAddress.val,\n UsdtAmt: transferCount.val,\n }),\n });\n const resData = await res.json();\n\n if (resData.code === 200) {\n setOrderToken(resData.data.order_token);\n detailReq(resData.data.order_token);\n } else {\n handleHttpError(resData);\n }\n } catch (error) {\n handleHttpError(error);\n }\n setHttpLoading(false);\n };\n\n // 驗證錢包地址 ---TRC\n const checkTrcAddress = async (transferAddress, transferCount) => {\n const headers = getHeader();\n if (!headers) return;\n\n const checkErcApi = `/j/ChkToAddressValid2.aspx`;\n\n try {\n const res = await fetch(checkErcApi, {\n method: \"POST\",\n headers,\n body: JSON.stringify({\n ToAddress: transferAddress.val,\n }),\n });\n const resData = await res.json();\n\n if (resData.code === 200) {\n sendTransferReqTrc(transferAddress, transferCount);\n } else {\n handleHttpError(resData);\n setHttpLoading(false);\n }\n } catch (error) {\n handleHttpError(error);\n setHttpLoading(false);\n }\n };\n\n // send transfer req --- TRC\n const sendTransferReqTrc = async (transferAddress, transferCount) => {\n const headers = getHeader();\n if (!transferAddress || !transferCount || !headers) {\n setHttpLoading(false);\n handleHttpError(\"\");\n return;\n }\n\n const transferApi = \"/j/Req_Transfer2.aspx\";\n try {\n const res = await fetch(transferApi, {\n method: \"POST\",\n headers,\n body: JSON.stringify({\n ToAddress: transferAddress.val,\n UsdtAmt: transferCount.val,\n }),\n });\n const resData = await res.json();\n\n if (resData.code === 200) {\n setOrderToken(resData.data.order_token);\n detailReq(resData.data.order_token);\n } else {\n handleHttpError(resData);\n }\n } catch (error) {\n handleHttpError(error);\n }\n setHttpLoading(false);\n };\n\n // get detail\n const detailReq = async (orderToken) => {\n const headers = getHeader();\n\n if (!orderToken || !headers) {\n setHttpLoading(false);\n return;\n }\n\n const detailApi = \"/j/GetTxDetail.aspx\";\n try {\n const res = await fetch(detailApi, {\n method: \"POST\",\n headers,\n body: JSON.stringify({\n Token: orderToken,\n }),\n });\n const resData = await res.json();\n\n // console.log(resData, 'detail req ====');\n\n if (resData.code === 200) {\n setUsdtCount(Math.abs(resData.data.UsdtAmt));\n setOrderDetail(resData);\n } else {\n handleHttpError(resData);\n setHttpLoading(false);\n }\n } catch (error) {\n handleHttpError(error);\n setHttpLoading(false);\n }\n\n setHttpLoading(false);\n };\n\n // clean status\n const cleanStatus = () => {\n dispatch({ type: SET_TRANSFER_STATUS, payload: null });\n };\n\n // set usdt count\n const setUsdtCount = (value) => {\n dispatch({ type: SET_USDT_COUNT, payload: value });\n };\n\n // set order token\n const setOrderToken = (value) => {\n dispatch({ type: SET_TRANSFER_ORDER_TOKEN, payload: value });\n };\n\n // Set Order Detail\n const setOrderDetail = (data) => {\n dispatch({ type: SET_ORDER_DETAIL, payload: data });\n };\n\n // useReducer\n const [state, dispatch] = useReducer(TransferReducer, initialState);\n\n return (\n \n {props.children}\n \n );\n};\n\nexport default TransferState;\n","import { SET_ALL_HISTORY, SET_SINGLE_DETAIL, SET_WAIT_HISTORY, HISTORY_LOADING } from '../type';\n\nconst HistoryReducer = (state, action) => {\n switch (action.type) {\n case HISTORY_LOADING:\n return {\n ...state,\n historyLoading: action.payload,\n };\n case SET_WAIT_HISTORY:\n return {\n ...state,\n waitList: action.payload,\n };\n case SET_SINGLE_DETAIL:\n return {\n ...state,\n singleDetail: action.payload,\n };\n case SET_ALL_HISTORY:\n return {\n ...state,\n allHistory: action.payload,\n };\n default:\n return state;\n }\n};\n\nexport default HistoryReducer;\n","import { useReducer, useContext } from \"react\";\nimport { useHistory } from \"react-router-dom\";\nimport HistoryReducer from \"./HistoryReducer\";\nimport HistoryContext from \"./HistoryContext\";\nimport {\n SET_ALL_HISTORY,\n SET_SINGLE_DETAIL,\n SET_WAIT_HISTORY,\n HISTORY_LOADING,\n} from \"../type\";\n\n// Context\nimport HttpErrorContext from \"../../context/httpError/HttpErrorContext\";\n\nconst HistoryState = (props) => {\n // Router Props\n const history = useHistory();\n\n // Http Error Context\n const httpErrorContext = useContext(HttpErrorContext);\n const { handleHttpError } = httpErrorContext;\n\n // Init State\n const initialState = {\n allHistory: [],\n waitList: [],\n singleDetail: null,\n historyLoading: false,\n };\n\n // Get Header\n const getHeader = () => {\n const token = localStorage.getItem(\"token\");\n\n if (token) {\n let headers = new Headers();\n headers.append(\"Content-Type\", \"application/json\");\n headers.append(\"login_session\", token);\n\n return headers;\n } else {\n history.replace(\"/auth/login\");\n return;\n }\n };\n\n // Get History Wait\n const setWaitList = async () => {\n const headers = getHeader();\n\n const historyApi = \"/j/GetTxPendings.aspx\";\n\n try {\n const res = await fetch(historyApi, {\n headers,\n });\n\n const resData = await res.json();\n\n if (resData.code === 200) {\n const { data } = resData;\n // console.log(data);\n\n const newData = data.map((h) => {\n if (h.MasterType === 0) {\n h.MasterType = \"買入\";\n return h;\n } else if (h.MasterType === 1) {\n h.MasterType = \"賣出\";\n return h;\n } else if (h.MasterType === 2) {\n h.MasterType = \"轉出\";\n return h;\n } else {\n h.MasterType = \"轉入\";\n return h;\n }\n });\n\n dispatch({ type: SET_WAIT_HISTORY, payload: newData });\n } else {\n handleHttpError(resData);\n }\n } catch (error) {\n handleHttpError(error);\n }\n };\n\n // get history all\n const getHistoryAll = async () => {\n setLoading(true);\n const headers = getHeader();\n\n const historyApi = \"/j/GetTxHistory.aspx\";\n\n try {\n const res = await fetch(historyApi, {\n headers,\n });\n\n const resData = await res.json();\n\n if (resData.code === 200) {\n dispatch({ type: SET_ALL_HISTORY, payload: resData.data });\n } else {\n handleHttpError(resData);\n }\n setLoading(false);\n } catch (error) {\n handleHttpError(error);\n setLoading(false);\n }\n };\n\n // get single detail\n const detailReq = async (detailToken) => {\n setLoading(true);\n const headers = getHeader();\n\n const detailApi = \"/j/GetTxDetail.aspx\";\n\n try {\n const res = await fetch(detailApi, {\n method: \"POST\",\n headers,\n body: JSON.stringify({\n Token: detailToken,\n }),\n });\n const resData = await res.json();\n\n if (resData.code === 200) {\n const { data } = resData;\n\n // buy and sell\n if (data.MasterType === 1 || data.MasterType === 0) {\n\n let payer;\n let payerAccount;\n let payerBankCode;\n\n if (data.P5) {\n payer = data.P5.split(\"|\")[0];\n payerAccount = data.P5.split(\"|\")[1];\n payerBankCode = data.P5.split(\"|\")[2];\n }\n\n const orderDetail = {\n date: data.Date,\n txHASH: data.Tx_HASH,\n usdtAmt: data.UsdtAmt,\n account: data.P1,\n payee: data.P2,\n bank: data.P3,\n branch: data.P4,\n payer,\n payerAccount,\n payerBankCode,\n exchangePrice: data.D1,\n rmb: data.D2,\n charge: data.D3,\n orderState: data.Order_StatusID,\n type: data.MasterType,\n };\n\n setSingleDetail(orderDetail);\n }\n\n // 轉出\n if (data.MasterType === 2) {\n const orderDetail = {\n date: data.Date,\n txHASH: data.Tx_HASH,\n usdtAmt: data.UsdtAmt,\n receivingAddress: data.P1,\n charge: data.D1,\n orderState: data.Order_StatusID,\n type: data.MasterType,\n };\n setSingleDetail(orderDetail);\n }\n\n // 轉入\n if (data.MasterType === 3) {\n const orderDetail = {\n date: data.Date,\n txHASH: data.Tx_HASH,\n usdtAmt: data.UsdtAmt,\n orderState: data.Order_StatusID,\n type: data.MasterType,\n };\n setSingleDetail(orderDetail);\n }\n\n // handle error\n } else {\n handleHttpError(resData);\n }\n\n setLoading(false);\n } catch (error) {\n handleHttpError(error);\n setLoading(false);\n }\n };\n\n // Set Loading\n const setLoading = (value) => {\n dispatch({ type: HISTORY_LOADING, payload: value });\n };\n\n const setSingleDetail = (orderDetail) => {\n dispatch({ type: SET_SINGLE_DETAIL, payload: orderDetail });\n };\n\n const [state, dispatch] = useReducer(HistoryReducer, initialState);\n\n return (\n \n {props.children}\n \n );\n};\n\nexport default HistoryState;\n","import { SET_HTTP_ERROR, SET_HTTP_LOADING, SET_BUTTON_LOADING } from '../type';\n\nconst HttpErrorReducer = (state, action) => {\n switch (action.type) {\n case SET_BUTTON_LOADING:\n return {\n ...state,\n btnLoading: action.payload,\n };\n case SET_HTTP_LOADING:\n return {\n ...state,\n httpLoading: action.payload,\n };\n case SET_HTTP_ERROR:\n return {\n ...state,\n errorText: action.payload,\n };\n default:\n return state;\n }\n};\n\nexport default HttpErrorReducer;\n","import { useReducer } from \"react\";\nimport { useHistory } from \"react-router-dom\";\n\n\nimport HttpErrorReducer from \"./HttpErrorReducer\";\nimport HttpErrorContext from \"./HttpErrorContext\";\n\n// Lang Context\nimport { useI18n } from \"../../lang\";\n\nimport { SET_HTTP_ERROR, SET_HTTP_LOADING, SET_BUTTON_LOADING } from \"../type\";\n\nconst HttpErrorState = (props) => {\n // Lang Context\n const { t } = useI18n();\n // Router Props\n const history = useHistory();\n\n // Init State\n const initialState = {\n errorText: \"\",\n httpLoading: false,\n btnLoading: false,\n };\n\n const setHttpError = (value) => {\n dispatch({ type: SET_HTTP_ERROR, payload: value });\n };\n\n const setHttpLoading = (value) => {\n dispatch({ type: SET_HTTP_LOADING, payload: value });\n };\n\n const setBtnLoading = (value) => {\n dispatch({ type: SET_BUTTON_LOADING, payload: value });\n };\n\n const handleHttpError = (data) => {\n if (!data?.code) return;\n if (data.code === \"1\") {\n setHttpError(t(\"http_error_code_1\"));\n return;\n }\n\n if (data.code === \"10\") {\n setHttpError(t(\"http_error_code_10\"));\n return;\n }\n\n if (data.code === \"11\") {\n setHttpError(t(\"http_error_code_11\"));\n return;\n }\n\n if (data.code === \"12\") {\n setHttpError(t(\"http_error_code_12\"));\n return;\n }\n\n if (data.code === \"13\") {\n setHttpError(t(\"http_error_code_13\"));\n return;\n }\n if (data.code === \"14\") {\n setHttpError(t(\"http_error_code_14\"));\n return;\n }\n\n if (data.code === \"15\") {\n setHttpError(t(\"http_error_code_15\"));\n return;\n }\n\n if (data.code === \"16\") {\n setHttpError(t(\"http_error_code_16\"));\n history.replace(\"/home/overview\");\n return;\n }\n\n if (data.code === \"17\") {\n setHttpError(t(\"http_error_code_17\"));\n return;\n }\n\n if (data.code === \"18\") {\n setHttpError(`Unknown Error: ${data.message}`);\n return;\n }\n\n if (data.code === \"20\") {\n setHttpError(t(\"http_error_code_20\"));\n history.replace(\"/home/overview\");\n return;\n }\n\n if (data.code === \"21\") {\n setHttpError(t(\"http_error_code_21\"));\n return;\n }\n\n if (data.code === \"22\") {\n setHttpError(t(\"http_error_code_22\"));\n return;\n }\n\n if (data.code === \"30\") {\n setHttpError(t(\"http_error_code_30\"));\n return;\n }\n\n if (data.code === \"31\") {\n setHttpError(t(\"http_error_code_31\"));\n return;\n }\n if (data.code === \"32\") {\n setHttpError(t(\"http_error_code_32\"));\n return;\n }\n\n if (data.code === \"41\") {\n setHttpError(t(\"http_error_code_41\"));\n return;\n }\n\n if (data.code === \"42\") {\n setHttpError(t(\"http_error_code_42\"));\n return;\n }\n\n if (data.code === \"91\") {\n setHttpError(t(\"http_error_code_91\"));\n history.replace(\"/auth/login\");\n localStorage.removeItem(\"token\");\n localStorage.removeItem(\"expiresIn\");\n localStorage.removeItem(\"agent\");\n localStorage.removeItem(\"loglevel\");\n setHttpError(\"\");\n return;\n }\n\n setHttpError(t(\"http_error_other\"));\n localStorage.removeItem(\"token\");\n localStorage.removeItem(\"expiresIn\");\n localStorage.removeItem(\"agent\");\n localStorage.removeItem(\"loglevel\");\n history.replace(\"/auth/login\");\n\n setHttpError(\"\");\n };\n\n const [state, dispatch] = useReducer(HttpErrorReducer, initialState);\n\n return (\n \n {props.children}\n \n );\n};\n\nexport default HttpErrorState;\n","import {\n BUY_BTN_LOADING,\n SET_BUY_COUNT,\n SET_BUY_ERROR_TEXT,\n SET_BUY_ORDER_TOKEN,\n SET_BUY_WS_STATUS,\n HANDLE_PAIRING,\n SET_SHOW_BANK,\n SET_BUY_WS_CLIENT,\n SET_BUY_WS_DATA,\n SET_DELTA_TIME,\n HIDE_BUY_INFO,\n} from '../type';\n\nconst BalanceReducer = (state, action) => {\n switch (action.type) {\n case HIDE_BUY_INFO:\n return {\n ...state,\n isHideBuyInfo: action.payload,\n };\n case SET_DELTA_TIME:\n return {\n ...state,\n deltaTime: action.payload,\n };\n case SET_BUY_WS_DATA:\n return {\n ...state,\n buyWsData: action.payload,\n };\n case SET_BUY_WS_CLIENT:\n return {\n ...state,\n buyWsClient: action.payload,\n };\n case SET_SHOW_BANK:\n return {\n ...state,\n showBank: action.payload,\n };\n case HANDLE_PAIRING:\n return {\n ...state,\n buyPairing: action.payload,\n };\n case SET_BUY_WS_STATUS:\n return {\n ...state,\n wsStatus: action.payload,\n };\n case SET_BUY_ORDER_TOKEN:\n return {\n ...state,\n buyOrderToken: action.payload,\n };\n case SET_BUY_ERROR_TEXT:\n return {\n ...state,\n buyErrorText: action.payload,\n };\n case SET_BUY_COUNT:\n return {\n ...state,\n buyCount: {\n usdt: action.payload.usdt,\n rmb: action.payload.rmb,\n },\n };\n\n case BUY_BTN_LOADING:\n return {\n ...state,\n buyBtnLoading: action.payload,\n };\n\n default:\n return state;\n }\n};\n\nexport default BalanceReducer;\n","import { useReducer, useContext } from \"react\";\nimport { useHistory } from \"react-router-dom\";\nimport ReconnectingWebSocket from \"reconnecting-websocket\";\n// import { w3cwebsocket as W3CWebsocket } from \"websocket\";\n\nimport store from \"../../store/store\";\n\nimport { locationMoneyCalc } from \"../../lib/utils\";\n\n// actions\nimport { setOrderStatus } from \"../../store/actions/orderActions\";\n\nimport BuyReducer from \"./BuyReducer\";\nimport BuyContext from \"./BuyContext\";\n\n// Lang Context\nimport { useI18n } from \"../../lang\";\n\n// Context\nimport HttpErrorContext from \"../httpError/HttpErrorContext\";\nimport BalanceContext from \"../../context/balance/BalanceContext\";\n\nimport {\n BUY_BTN_LOADING,\n SET_BUY_COUNT,\n SET_BUY_ERROR_TEXT,\n SET_BUY_ORDER_TOKEN,\n SET_BUY_WS_STATUS,\n HANDLE_PAIRING,\n SET_SHOW_BANK,\n SET_BUY_WS_CLIENT,\n SET_BUY_WS_DATA,\n SET_DELTA_TIME,\n HIDE_BUY_INFO,\n} from \"../type\";\n\nconst BuyState = (props) => {\n // Lang Context\n const { t } = useI18n();\n\n // Router Props\n const history = useHistory();\n\n // Http error context\n const httpErrorContext = useContext(HttpErrorContext);\n const { handleHttpError, setHttpError, setHttpLoading } = httpErrorContext;\n\n // Balance Context\n const balanceContext = useContext(BalanceContext);\n const { getBalance } = balanceContext;\n\n // Init State\n const initialState = {\n buyBtnLoading: false,\n buyCount: {\n usdt: \"\",\n rmb: \"\",\n },\n buyErrorText: \"\",\n buyOrderToken: \"\",\n wsStatus: null,\n buyPairing: false,\n showBank: false,\n buyWsClient: null,\n buyWsData: null,\n deltaTime: null,\n isHideBuyInfo: false,\n };\n\n // Get Header\n const getHeader = () => {\n const token = localStorage.getItem(\"token\");\n\n if (!token) return;\n let headers = new Headers();\n headers.append(\"Content-Type\", \"application/json\");\n headers.append(\"login_session\", token);\n\n return headers;\n };\n\n // 確認購買,獲得Order Token--step 1\n const confirmBuy = async ({ accountName, bankCode, account }) => {\n handleBuyBtnLoading(true);\n const { usdt } = state.buyCount;\n const headers = getHeader();\n\n try {\n const reqBuyApi = `/j/Req_Buy1.aspx`;\n const res = await fetch(reqBuyApi, {\n method: \"POST\",\n headers,\n body: JSON.stringify({\n ClientName: `${accountName}|${account}|${bankCode}`,\n UsdtAmt: usdt,\n }),\n });\n\n const resData = await res.json();\n\n if (resData.code === 200) {\n setHttpError(\"\");\n setOrderToken(resData.data.order_token);\n } else {\n handleHttpError(resData);\n }\n } catch (error) {\n handleHttpError(error);\n handleBuyBtnLoading(false);\n }\n };\n\n //連接web socket --step 2\n const buyConnectWs = (token) => {\n const transactionApi = \"j/ws_orderstatus.ashx\";\n\n let loginSession = localStorage.getItem(\"token\");\n\n const url = `wss://${process.env.REACT_APP_PROXY}/${transactionApi}?login_session=${loginSession}&order_token=${token}`;\n\n const client = new ReconnectingWebSocket(url);\n\n if (client) setWsClient(client);\n // console.log(token);\n\n // 1.建立連接\n client.onopen = () => {\n console.log(\"websocket client connected buy\");\n };\n\n // 2.收到server回復\n client.onmessage = (message) => {\n // console.log(message);\n if (!message.data) return;\n const dataFromServer = JSON.parse(message.data);\n store.dispatch(setOrderStatus(dataFromServer.data));\n setWsStatus(dataFromServer.data.Order_StatusID);\n setDeltaTime(dataFromServer.data.DeltaTime);\n\n // 配對中\n if (dataFromServer.data.Order_StatusID === 31) {\n handlePairing(true);\n\n const data = {\n usdt: dataFromServer.data.UsdtAmt,\n rmb: locationMoneyCalc(dataFromServer.data.D2),\n };\n setBuyCount(data);\n handleBuyBtnLoading(false);\n }\n\n // 等待付款\n if (dataFromServer.data.Order_StatusID === 33) {\n const wsData = {\n cny: locationMoneyCalc(dataFromServer.data.D2),\n name: dataFromServer.data.P2,\n account: dataFromServer.data.P1,\n bank: dataFromServer.data.P3,\n city: dataFromServer.data.P4,\n usdt: dataFromServer.data.UsdtAmt,\n hash: dataFromServer.data.Tx_HASH,\n };\n\n setWsData(wsData);\n\n }\n\n // 收款確認\n if (dataFromServer.data.Order_StatusID === 34) {\n const wsData = {\n cny: locationMoneyCalc(dataFromServer.data.D2),\n name: dataFromServer.data.P2,\n account: dataFromServer.data.P1,\n bank: dataFromServer.data.P3,\n city: dataFromServer.data.P4,\n usdt: dataFromServer.data.UsdtAmt,\n hash: dataFromServer.data.Tx_HASH,\n };\n\n setWsData(wsData);\n handleBuyBtnLoading(false);\n }\n\n if (dataFromServer.data.Order_StatusID === 35) {\n const wsData = {\n cny: locationMoneyCalc(dataFromServer.data.D2),\n name: dataFromServer.data.P2,\n account: dataFromServer.data.P1,\n bank: dataFromServer.data.P3,\n city: dataFromServer.data.P4,\n usdt: dataFromServer.data.UsdtAmt,\n hash: dataFromServer.data.Tx_HASH,\n };\n\n setWsData(wsData);\n handleBuyBtnLoading(false);\n }\n\n // 交易完成\n if (dataFromServer.data.Order_StatusID === 1) {\n getBalance();\n const wsData = {\n cny: locationMoneyCalc(dataFromServer.data.D2),\n name: dataFromServer.data.P2,\n account: dataFromServer.data.P1,\n bank: dataFromServer.data.P3,\n city: dataFromServer.data.P4,\n usdt: dataFromServer.data.UsdtAmt,\n hash: dataFromServer.data.Tx_HASH,\n };\n setWsData(wsData);\n client.close();\n }\n\n // 交易失敗\n if (dataFromServer.data.Order_StatusID === 99) {\n client.close();\n }\n };\n\n //3. 連線關閉\n client.onclose = (message) => {\n console.log(\"關閉連線\", message);\n // setWsClient(null);\n };\n };\n\n // Buy2 --step 3\n const BuyerAlreadyPay = async (orderToken) => {\n handleBuyBtnLoading(true);\n cleanErr();\n\n const headers = getHeader();\n\n try {\n const reqBuy2Api = `/j/Req_Buy2.aspx`;\n const res = await fetch(reqBuy2Api, {\n method: \"POST\",\n headers,\n body: JSON.stringify({\n Token: orderToken,\n }),\n });\n\n const resData = await res.json();\n if (resData.code === 200) {\n // console.log(resData);\n } else {\n handleHttpError(resData);\n }\n } catch (error) {\n handleHttpError(error);\n handleBuyBtnLoading(false);\n }\n };\n\n // Get And Set DeltaTime\n const GetDeltaTime = async (orderToken) => {\n const headers = getHeader();\n const getDetailApi = `/j/GetTxDetail.aspx`;\n\n try {\n const res = await fetch(getDetailApi, {\n method: \"POST\",\n headers,\n body: JSON.stringify({\n Token: orderToken,\n }),\n });\n\n const resData = await res.json();\n setWsData(resData?.data);\n\n if (resData.code === 200) {\n setDeltaTime(resData.data.DeltaTime);\n } else {\n handleHttpError(resData);\n }\n } catch (error) {\n handleHttpError(error);\n }\n };\n\n // 取消訂單\n const cancelOrder = async (orderToken) => {\n const headers = getHeader();\n const cancelApi = `/j/Req_CancelOrder.aspx`;\n try {\n const res = await fetch(cancelApi, {\n method: \"POST\",\n headers,\n body: JSON.stringify({\n Token: orderToken,\n }),\n });\n\n const resData = await res.json();\n\n if (resData.code === 200) {\n } else {\n alert(t(\"cancel_fail\"));\n history.replace(\"/home/overview\");\n }\n } catch (error) {\n handleHttpError(error);\n history.replace(\"/home/overview\");\n }\n\n setHttpLoading(false);\n };\n\n // 設定購買數量\n const setBuyCount = (data) => {\n dispatch({ type: SET_BUY_COUNT, payload: data });\n };\n\n // Set Error Text\n const setErrorText = (text) => {\n dispatch({ type: SET_BUY_ERROR_TEXT, payload: text });\n };\n\n // Handle Buy Btn Loading\n const handleBuyBtnLoading = (value) => {\n dispatch({ type: BUY_BTN_LOADING, payload: value });\n };\n\n // Set Order Token\n const setOrderToken = (token) => {\n\n dispatch({ type: SET_BUY_ORDER_TOKEN, payload: token });\n };\n\n // Set Web Socket Status\n const setWsStatus = (value) => {\n dispatch({ type: SET_BUY_WS_STATUS, payload: value });\n };\n\n // Handle Pairing\n const handlePairing = (value) => {\n dispatch({ type: HANDLE_PAIRING, payload: value });\n };\n\n // Set Show Bank\n const setShowBank = (value) => {\n dispatch({ type: SET_SHOW_BANK, payload: value });\n };\n\n // Set Web Socket Client\n const setWsClient = (client) => {\n dispatch({ type: SET_BUY_WS_CLIENT, payload: client });\n };\n\n // Set Buy Web Socket Res Data\n const setWsData = (data) => {\n console.log(data)\n dispatch({ type: SET_BUY_WS_DATA, payload: data });\n };\n\n // Set Delta Time\n const setDeltaTime = (num) => {\n dispatch({ type: SET_DELTA_TIME, payload: num });\n };\n\n // Set Hide Buy Info\n const setHideBuyInfo = (value) => {\n dispatch({ type: HIDE_BUY_INFO, payload: value });\n };\n\n /*\n ** 1.關閉web socket\n ** 2.清除order token\n ** 3.show bank設為false\n ** 4.web socket status設為null\n ** 5.pairing modal 設為false\n ** 6.清除web socket data\n ** 7.購買數量清除,設為空字串\n */\n const cleanAll = () => {\n setWsClient(null);\n handleBuyBtnLoading(false);\n setShowBank(false);\n setWsStatus(null);\n handlePairing(false);\n setWsData({});\n setOrderToken(null);\n setBuyCount({\n rmb: \"\",\n usdt: \"\",\n });\n };\n\n const cleanErr = () => {\n setHttpError(\"\");\n setErrorText(\"\");\n };\n\n const [state, dispatch] = useReducer(BuyReducer, initialState);\n\n return (\n \n {props.children}\n \n );\n};\n\nexport default BuyState;\n","import { SET_TRANSLATE, SET_MESSAGES, SET_CHAT_WS_CLIENT, CHAT_SET_ORDER_TOKEN, SET_INSTANT_CLIENT, SET_INSTANT_MESSAGES, SET_CHAT_LOADING, SET_NEW_MESSAGE } from '../type';\n\nconst ChatReducer = (state, action) => {\n switch (action.type) {\n // case SET_MESSAGE_TARGET:\n // let arr = [...state.messageTarget, action.payload];\n // return {\n // ...state,\n // messageTarget: [...new Set(arr)], // 去除重複的item\n // };\n case SET_NEW_MESSAGE:\n return {\n ...state,\n newMessage: action.payload,\n };\n case SET_CHAT_LOADING:\n return {\n ...state,\n chatLoading: action.payload,\n };\n case SET_INSTANT_MESSAGES:\n if (!Array.isArray(action.payload)) {\n return {\n ...state,\n instantMessages: [...state.instantMessages, action.payload],\n };\n } else {\n return {\n ...state,\n instantMessages: action.payload.reverse(),\n };\n }\n\n case SET_INSTANT_CLIENT:\n return {\n ...state,\n instantClient: action.payload,\n };\n case CHAT_SET_ORDER_TOKEN:\n return {\n ...state,\n orderToken: action.payload,\n };\n case SET_CHAT_WS_CLIENT:\n return {\n ...state,\n client: action.payload,\n };\n case SET_MESSAGES:\n if (!Array.isArray(action.payload)) {\n return {\n ...state,\n messages: [...state.messages, action.payload],\n };\n } else {\n return {\n ...state,\n messages: action.payload.reverse(),\n };\n }\n\n case SET_TRANSLATE:\n return {\n ...state,\n isTranslate: action.payload,\n };\n default:\n return state;\n }\n};\n\nexport default ChatReducer;\n","import { useReducer } from \"react\";\nimport ReconnectingWebSocket from \"reconnecting-websocket\";\n// import { w3cwebsocket as W3CWebsocket } from 'websocket';\n\nimport ChatReducer from \"./ChatReducer\";\nimport ChatContext from \"./ChatContext\";\n\nimport {\n SET_TRANSLATE,\n SET_MESSAGES,\n SET_CHAT_WS_CLIENT,\n CHAT_SET_ORDER_TOKEN,\n SET_INSTANT_CLIENT,\n SET_INSTANT_MESSAGES,\n SET_CHAT_LOADING,\n SET_NEW_MESSAGE,\n} from \"../type\";\n\nconst ChatState = (props) => {\n const initialState = {\n isTranslate: false,\n messages: [],\n orderToken: \"\",\n client: null,\n instantClient: null,\n instantMessages: [],\n chatLoading: false,\n newMessage: false,\n };\n\n // Chat WebSocket\n const chatConnect = (orderToken) => {\n const loginSession = localStorage.getItem(\"token\");\n\n const chatApi = `WS_ChatOrder.ashx`;\n\n let url;\n\n if (window.location.protocol === \"http:\") {\n url = `${process.env.REACT_APP_K100U_CHAT_WEBSOCKET}/${chatApi}?login_session=${loginSession}&order_token=${orderToken}`;\n } else {\n url = `${process.env.REACT_APP_K100U_CHAT_WEBSOCKET}/${chatApi}?login_session=${loginSession}&order_token=${orderToken}`;\n }\n\n const client = new ReconnectingWebSocket(url);\n\n // console.log(client);\n\n setClient(client);\n\n // 1.建立連接\n client.onopen = (message) => {\n console.log(\"chat connect\");\n };\n\n // 2.收到server回復\n client.onmessage = (message) => {\n console.log(message);\n if (!message || !message?.data) return;\n const dataFromServer = JSON.parse(message?.data);\n // console.log(\"got Chat reply!\", dataFromServer);\n\n if (!dataFromServer) return;\n\n setChatLoading(false);\n\n setMessages(dataFromServer);\n };\n\n // 3.錯誤處理\n client.onclose = (message) => {\n // console.log('聊天室關閉');\n };\n };\n\n // 關閉連線\n const closeUserChatWebSocket = (orderToken) => {\n // state.client.close();\n // alert('call close');\n // const loginSession = localStorage.getItem('token');\n // const chatApi = `chat/WS_ChatOrder.ashx`;\n // let url;\n // if (window.location.protocol === 'http:') {\n // url = `${process.env.REACT_APP_WEBSOCKET_URL}/${chatApi}?login_session=${loginSession}&order_token=${orderToken}`;\n // } else {\n // url = `${process.env.REACT_APP_WEBSOCKET_URL_DOMAIN}/${chatApi}?login_session=${loginSession}&order_token=${orderToken}`;\n // }\n // const client = new ReconnectingWebSocket(url);\n // if (client) {\n // alert('has client');\n // alert(client === state.client);\n // client.close();\n // } else {\n // console.log('沒有webSocket Client');\n // }\n };\n\n // instant chat\n const instantChat = (orderToken) => {\n const loginSession = localStorage.getItem(\"token\");\n\n const chatApi = `ws_ChatOrder3.ashx`;\n\n let url;\n\n if (window.location.protocol === \"http:\") {\n url = `${process.env.REACT_APP_K100U_CHAT_WEBSOCKET}/${chatApi}?login_session=${loginSession}&order_token=${orderToken}`;\n } else {\n url = `${process.env.REACT_APP_K100U_CHAT_WEBSOCKET}/${chatApi}?login_session=${loginSession}&order_token=${orderToken}`;\n }\n\n const client = new ReconnectingWebSocket(url);\n\n // 1.建立連接\n client.onopen = (message) => {\n setInstantClient(client);\n // console.log('instant chat connect');\n };\n\n // 2.收到server回復\n client.onmessage = (message) => {\n if (message?.data === \"\" || message?.data.includes(\"login_session\"))\n return;\n\n const dataFromServer = JSON.parse(message?.data);\n if (!dataFromServer) return;\n // console.log('instant got Chat reply!', dataFromServer);\n setChatLoading(false);\n if (dataFromServer.Message_Role === 1) {\n setNewMessage(true);\n // console.log(\"new message\");\n }\n setInstantMessages(dataFromServer);\n };\n\n // 3.錯誤處理\n client.onclose = (message) => {\n // console.log(\"instant聊天室關閉\");\n };\n };\n\n const setTranslate = (value) => {\n dispatch({ type: SET_TRANSLATE, payload: value });\n };\n\n const setMessages = (message) => {\n dispatch({ type: SET_MESSAGES, payload: message });\n };\n\n const setOrderToken = (orderToken) => {\n dispatch({ type: CHAT_SET_ORDER_TOKEN, payload: orderToken });\n };\n\n // Set Instant Client\n const setInstantClient = (value) => {\n dispatch({ type: SET_INSTANT_CLIENT, payload: value });\n };\n\n // Set Instant Messages\n const setInstantMessages = (message) => {\n dispatch({ type: SET_INSTANT_MESSAGES, payload: message });\n };\n\n // Set Normal Chat Client\n const setClient = (client) => {\n dispatch({ type: SET_CHAT_WS_CLIENT, payload: client });\n };\n\n // Set Chat Loading\n const setChatLoading = (value) => {\n dispatch({ type: SET_CHAT_LOADING, payload: value });\n };\n\n // Set New Message\n const setNewMessage = (value) => {\n dispatch({ type: SET_NEW_MESSAGE, payload: value });\n };\n\n const [state, dispatch] = useReducer(ChatReducer, initialState);\n\n return (\n \n {props.children}\n \n );\n};\n\nexport default ChatState;\n","import {\n SET_INSTANT_WS_DATA,\n CLEAN_INSTANT_DATA,\n SET_SELL1_DATA,\n SET_COUNT_DATA,\n SET_BUY1_DATA,\n INSTANT_ALL_WS_CLIENT,\n INSTANT_ON_GOING_WS_CLIENT,\n SET_WS_STATUS_DATA,\n SET_STATUS_WS_CLIENT,\n SET_INSTANT_ONGOING_DATA,\n SET_ACTION_TYPE,\n ORDER_NOT_EXISTS,\n SET_PAYMENT_NAME,\n} from '../type';\n\nconst InstantReducer = (state, action) => {\n switch (action.type) {\n case SET_PAYMENT_NAME:\n return {\n ...state,\n paymentName: action.payload,\n };\n case ORDER_NOT_EXISTS:\n return {\n ...state,\n orderExists: action.payload,\n };\n case SET_ACTION_TYPE:\n return {\n ...state,\n actionType: action.payload,\n };\n case SET_INSTANT_ONGOING_DATA:\n return {\n ...state,\n wsOnGoingData: action.payload,\n };\n case SET_STATUS_WS_CLIENT:\n return {\n ...state,\n wsStatusClient: action.payload,\n };\n case SET_WS_STATUS_DATA:\n return {\n ...state,\n wsStatusData: action.payload,\n };\n case INSTANT_ALL_WS_CLIENT:\n return {\n ...state,\n instantAllClient: action.payload,\n };\n case INSTANT_ON_GOING_WS_CLIENT:\n return {\n ...state,\n instantOnGoingClient: action.payload,\n };\n case SET_BUY1_DATA:\n return {\n ...state,\n buy1Data: action.payload,\n };\n case SET_COUNT_DATA:\n return {\n ...state,\n countData: action.payload,\n };\n case SET_SELL1_DATA:\n return {\n ...state,\n sell1Data: action.payload,\n };\n case CLEAN_INSTANT_DATA:\n return {\n ...state,\n instantData: [],\n };\n case SET_INSTANT_WS_DATA:\n return {\n ...state,\n instantData: action.payload,\n };\n\n default:\n return state;\n }\n};\n\nexport default InstantReducer;\n","import { useReducer, useContext } from \"react\";\nimport ReconnectingWebSocket from \"reconnecting-websocket\";\n// import { w3cwebsocket as W3CWebsocket } from \"websocket\";\nimport InstantReducer from \"./InstantReducer\";\nimport InstantContext from \"./InstantContext\";\n\nimport store from \"../../store/store\";\n\n// Acitons\nimport { setOrderStatus } from \"../../store/actions/orderActions\";\n// Context\nimport HttpErrorContext from \"../../context/httpError/HttpErrorContext\";\nimport BalanceContext from \"../../context/balance/BalanceContext\";\n\nimport {\n SET_INSTANT_WS_DATA,\n // CLEAN_INSTANT_DATA,\n SET_SELL1_DATA,\n SET_COUNT_DATA,\n INSTANT_ALL_WS_CLIENT,\n INSTANT_ON_GOING_WS_CLIENT,\n SET_BUY1_DATA,\n SET_WS_STATUS_DATA,\n SET_STATUS_WS_CLIENT,\n SET_INSTANT_ONGOING_DATA,\n SET_ACTION_TYPE,\n ORDER_NOT_EXISTS,\n SET_PAYMENT_NAME,\n} from \"../type\";\n\nconst InstantState = (props) => {\n // Http Error Context\n const httpErrorContext = useContext(HttpErrorContext);\n const { handleHttpError, setHttpLoading } = httpErrorContext;\n\n // Balance Context\n const balanceContext = useContext(BalanceContext);\n const { getBalance } = balanceContext;\n\n // Init State\n const initialState = {\n instantData: [],\n wsOnGoingData: [],\n countData: null,\n sell1Data: null,\n buy1Data: null,\n wsClient: null,\n wsStatusData: null,\n instantAllClient: null,\n instantOnGoingClient: null,\n wsStatusClient: null,\n actionType: \"\",\n orderExists: true,\n paymentName: \"\",\n };\n\n // Get Header\n const getHeader = () => {\n const token = localStorage.getItem(\"token\");\n if (!token) return;\n\n let headers = new Headers();\n headers.append(\"Content-Type\", \"application/json\");\n headers.append(\"login_session\", token);\n\n return headers;\n };\n\n // Instant Web Socket連接 --所有的即時交易\n const connectInstantWs = () => {\n setHttpLoading(true);\n const loginSession = localStorage.getItem(\"token\");\n if (!loginSession) return;\n\n const connectWs = \"j/ws_liveorders.ashx\";\n\n const url = `wss://${process.env.REACT_APP_PROXY}/${connectWs}?login_session=${loginSession}`;\n\n const client = new ReconnectingWebSocket(url);\n\n setAllClient(client);\n\n // 1.建立連接\n client.onopen = () => {\n console.log(\"websocket client connected instant\");\n };\n\n // 2.收到server回復\n client.onmessage = (message) => {\n if (!message.data) return;\n const dataFromServer = JSON.parse(message?.data);\n\n console.log(\"got reply liveOrders!\", dataFromServer);\n\n if (dataFromServer?.data?.length > 0) {\n setInstantData(dataFromServer.data);\n } else {\n setInstantData([]);\n }\n setHttpLoading(false);\n };\n\n // 3.錯誤處理\n client.onclose = function (message) {\n console.log(\"關閉連線.....\");\n };\n };\n\n // Instant Ongoing Web Socket Connect --進行中\n const instantOngoingWsConnect = () => {\n const loginSession = localStorage.getItem(\"token\");\n if (!loginSession) return;\n\n setHttpLoading(true);\n const connectWs = \"j/WS_livePendingOrders.ashx\";\n\n const url = `wss://${process.env.REACT_APP_PROXY}/${connectWs}?login_session=${loginSession}`;\n\n const client = new ReconnectingWebSocket(url);\n\n setOnGoingClient(client);\n\n // 1.建立連接\n client.onopen = () => {\n // console.log('websocket client connected instant on going');\n };\n\n // 2.收到server回復\n client.onmessage = (message) => {\n if (!message.data) return;\n const dataFromServer = JSON.parse(message?.data);\n console.log(\"got reply livePending!\", dataFromServer);\n\n if (dataFromServer?.data?.length > 0) {\n setOnGoingData(dataFromServer.data);\n } else {\n setOnGoingData([]);\n }\n setHttpLoading(false);\n };\n\n // 3.錯誤處理\n client.onclose = function (message) {\n // console.log('關閉連線..... onGoing');\n };\n };\n\n // Status Web Socket --確認狀態\n const statusWs = (orderToken) => {\n if (!orderToken) return;\n\n const loginSession = localStorage.getItem(\"token\");\n if (!loginSession) return;\n\n const connectWs = \"j/ws_orderstatus.ashx\";\n\n const url = `wss://${process.env.REACT_APP_PROXY}/${connectWs}?login_session=${loginSession}&order_token=${orderToken}`;\n\n const client = new ReconnectingWebSocket(url);\n\n if (client) {\n setWsStatusClient(client);\n\n // 1.建立連接\n client.onopen = () => {\n console.log(\"websocket client connected instant status\");\n };\n\n // 2.收到server回復\n client.onmessage = (message) => {\n if (!message.data) return;\n const dataFromServer = JSON.parse(message?.data);\n // console.log(\"got reply status!\", dataFromServer);\n\n if (dataFromServer) {\n setWsStatusData(dataFromServer.data.Order_StatusID);\n // setBuy1Data(dataFromServer?.data);\n // setSell1Data(dataFromServer?.data);\n\n const name = dataFromServer.data.P5.split(\"|\")[0];\n const account = dataFromServer.data.P5.split(\"|\")[1];\n const bankCode = dataFromServer.data.P5.split(\"|\")[2];\n // console.log(name);\n\n setPaymentName({ name, account, bankCode });\n store.dispatch(setOrderStatus(dataFromServer.data));\n }\n\n // // 交易成功 Order_StatusID:1\n if (\n dataFromServer.data.Order_StatusID === 1 ||\n dataFromServer.data.Order_StatusID === 99\n ) {\n getBalance();\n client.close();\n }\n };\n\n // 3. 關閉提示\n client.onclose = function (message) {\n console.log(\"關閉ws status連線.....\");\n };\n }\n };\n\n // Sell Match --1\n const sellMatch1 = async (token) => {\n const headers = getHeader();\n if (!headers) return;\n setHttpLoading(true);\n try {\n const match1 = `/j/Req_SellMatch1.aspx`;\n\n const res = await fetch(match1, {\n method: \"POST\",\n headers,\n body: JSON.stringify({\n Token: token,\n }),\n });\n\n const resData = await res.json();\n\n // console.log(resData, 'sell1');\n\n if (resData.code === \"16\") {\n setOrderExists(false);\n return;\n }\n\n if (resData.code === 200) {\n setSell1Data(resData.data);\n } else {\n handleHttpError(resData);\n }\n } catch (error) {\n handleHttpError(error);\n }\n\n setHttpLoading(false);\n };\n\n // Sell Match --2\n const sellMatch2 = async (token) => {\n const headers = getHeader();\n if (!headers) return;\n setHttpLoading(true);\n try {\n const match2 = `/j/Req_SellMatch2.aspx`;\n\n const res = await fetch(match2, {\n method: \"POST\",\n headers,\n body: JSON.stringify({\n Token: token,\n }),\n });\n\n const resData = await res.json();\n\n if (resData.code === 200) {\n setSell1Data(resData.data);\n } else {\n handleHttpError(resData);\n }\n } catch (error) {\n handleHttpError(error);\n }\n setHttpLoading(false);\n };\n\n // Buy Match --1\n const buyMatch1 = async (token) => {\n const headers = getHeader();\n if (!headers) return;\n setHttpLoading(true);\n try {\n const match1 = `/j/Req_BuyMatch1.aspx`;\n\n const res = await fetch(match1, {\n method: \"POST\",\n headers,\n body: JSON.stringify({\n Token: token,\n }),\n });\n\n const resData = await res.json();\n // console.log(resData, 'buy1');\n\n if (resData.code === \"16\") {\n setOrderExists(false);\n return;\n }\n\n if (resData.code === 200) {\n setBuy1Data(resData.data);\n } else {\n handleHttpError(resData);\n }\n } catch (error) {\n handleHttpError(error);\n }\n\n setHttpLoading(false);\n };\n\n // Buy Match --2\n const buyMatch2 = async (token) => {\n const headers = getHeader();\n setHttpLoading(true);\n try {\n const match2 = `/j/Req_BuyMatch2.aspx`;\n\n const res = await fetch(match2, {\n method: \"POST\",\n headers,\n body: JSON.stringify({\n Token: token,\n }),\n });\n\n const resData = await res.json();\n if (resData.code === 200) {\n setBuy1Data(resData.data);\n } else {\n handleHttpError(resData);\n }\n } catch (error) {\n handleHttpError(error);\n }\n setHttpLoading(false);\n };\n\n // Set Instant Data\n const setInstantData = (data) => {\n dispatch({ type: SET_INSTANT_WS_DATA, payload: data });\n };\n\n // Set Count Data\n const setCountData = (data) => {\n if (!data) return;\n dispatch({ type: SET_COUNT_DATA, payload: data });\n };\n\n // Set Sell--1 Data\n const setSell1Data = (data) => {\n dispatch({ type: SET_SELL1_DATA, payload: data });\n };\n\n // Set Buy --1 Data\n const setBuy1Data = (data) => {\n dispatch({ type: SET_BUY1_DATA, payload: data });\n };\n\n // Set Web Socket Client -- Instant All\n const setAllClient = (value) => {\n dispatch({ type: INSTANT_ALL_WS_CLIENT, payload: value });\n };\n\n // Set Web Socket Client -- Instant On Going\n const setOnGoingClient = (value) => {\n dispatch({ type: INSTANT_ON_GOING_WS_CLIENT, payload: value });\n };\n\n // Set Web Socket Client --Status\n const setWsStatusClient = (client) => {\n dispatch({ type: SET_STATUS_WS_CLIENT, payload: client });\n };\n\n // Set Ws Status Data\n const setWsStatusData = (data) => {\n dispatch({ type: SET_WS_STATUS_DATA, payload: data });\n };\n\n // Set Ws On Going Data\n const setOnGoingData = (data) => {\n dispatch({ type: SET_INSTANT_ONGOING_DATA, payload: data });\n };\n\n // Set Action Type\n const setActionType = (type) => {\n dispatch({ type: SET_ACTION_TYPE, payload: type });\n };\n\n // Set Order Exists\n const setOrderExists = (value) => {\n dispatch({ type: ORDER_NOT_EXISTS, payload: value });\n };\n\n // Set Payment Name\n const setPaymentName = ({ name, account, bankCode }) => {\n dispatch({ type: SET_PAYMENT_NAME, payload: { name, account, bankCode } });\n };\n\n // Clean All\n const cleanAll = () => {\n setWsStatusData(null);\n setBuy1Data(null);\n setSell1Data(null);\n setCountData(null);\n setPaymentName(\"\");\n };\n\n const [state, dispatch] = useReducer(InstantReducer, initialState);\n\n return (\n \n {props.children}\n \n );\n};\n\nexport default InstantState;\n","import { SET_WALLET_DATA, SET_WALLET_TYPE } from '../type';\n\nconst WalletReducer = (state, action) => {\n switch (action.type) {\n case SET_WALLET_TYPE:\n return {\n ...state,\n walletType: action.payload,\n };\n case SET_WALLET_DATA:\n return {\n ...state,\n walletData: action.payload,\n };\n default:\n return state;\n }\n};\n\nexport default WalletReducer;\n","import { useReducer, useContext } from 'react';\nimport WalletReducer from './WalletReducer';\nimport WalletContext from './WalletContext';\nimport { SET_WALLET_DATA, SET_WALLET_TYPE } from '../type';\n\n// Context\nimport HttpErrorContext from '../../context/httpError/HttpErrorContext';\n\nconst WalletState = props => {\n // Http Error Context\n const httpErrorContext = useContext(HttpErrorContext);\n const { setHttpLoading, handleHttpError } = httpErrorContext;\n\n const initialState = {\n walletData: null,\n walletType: '',\n };\n\n // Get Header\n const getHeader = () => {\n const token = localStorage.getItem('token');\n\n if (!token) return;\n\n let headers = new Headers();\n headers.append('Content-Type', 'application/json');\n headers.append('login_session', token);\n\n return headers;\n };\n\n const getQrCode = async () => {\n const headers = getHeader();\n\n if (!headers) return;\n\n setHttpLoading(true);\n\n const walletApi = '/j/GetWallet.aspx';\n\n try {\n const res = await fetch(walletApi, {\n headers,\n });\n\n const resData = await res.json();\n\n if (resData.code === 200) {\n setWalletData(resData.data);\n } else {\n handleHttpError(resData);\n }\n } catch (error) {\n handleHttpError(error);\n }\n\n setHttpLoading(false);\n };\n\n // Set Wallet Data\n const setWalletData = data => {\n dispatch({ type: SET_WALLET_DATA, payload: data });\n };\n\n // Set Wallet Type\n const setWalletType = type => {\n dispatch({ type: SET_WALLET_TYPE, payload: type });\n };\n\n const [state, dispatch] = useReducer(WalletReducer, initialState);\n\n return (\n \n {props.children}\n \n );\n};\n\nexport default WalletState;\n","import { useHistory } from 'react-router-dom';\n\n// Context\nimport { useI18n } from '../../lang/index';\n\n// Style\nimport Card from 'react-bootstrap/Card';\nimport Container from 'react-bootstrap/Container';\nimport Table from 'react-bootstrap/Table';\nimport Button from 'react-bootstrap/Button';\nimport Form from 'react-bootstrap/Form';\nimport classes from './Agreenment.module.scss';\n\nconst Agreement = () => {\n // Lang Context\n const { t } = useI18n();\n\n const history = useHistory();\n // const [agree, setAgree] = useState(false);\n\n // const handleCheck = e => {\n // if (e.target.checked) {\n // setAgree(true);\n // } else {\n // setAgree(false);\n // }\n // };\n\n const handleClick = () => {\n history.push('/auth/register');\n };\n return (\n \n \n \n

\n\n

\n
    \n {t('agreement_rule_list').map((el, index) => (\n
  • {el}
  • \n ))}\n
\n

{t('agreement_buy_rule')}

\n

{t('agreement_buy_rule_sub')}

\n
    \n {t('agreement_buy_rule_list').map((el, index) => (\n
  • {el}
  • \n ))}\n
\n

{t('agreement_sell_rule')}

\n

{t('agreement_sell_rule_sub')}

\n
    \n {t('agreement_sell_rule_list').map((el, index) => (\n
  • {el}
  • \n ))}\n
\n

{t('user_rule')}

\n
    \n {t('user_rule_list').map((el, index) => (\n
  • {el}
  • \n ))}\n
\n {/* 賣方 Table#1 */}\n \n <>\n \n \n {t('table_1_th').map((el, index) => (\n \n ))}\n \n \n \n \n {t('table_1_td_1').map((el, index) => (\n \n ))}\n \n \n {t('table_1_td_2').map((el, index) => (\n \n ))}\n \n \n {t('table_1_td_3').map((el, index) => (\n \n ))}\n \n \n {t('table_1_td_4').map((el, index) => (\n \n ))}\n \n \n {t('table_1_td_5').map((el, index) => (\n \n ))}\n \n\n \n {t('table_1_td_6').map((el, index) => (\n \n ))}\n \n \n {t('table_1_td_7').map((el, index) => (\n \n ))}\n \n\n \n {t('table_1_td_8').map((el, index) => (\n \n ))}\n \n\n \n {t('table_1_td_9').map((el, index) => (\n \n ))}\n \n\n \n {t('table_1_td_10').map((el, index) => (\n \n ))}\n \n\n \n {t('table_1_td_11').map((el, index) => (\n \n ))}\n \n\n \n {t('table_1_td_12').map((el, index) => (\n \n ))}\n \n\n \n {t('table_1_td_13').map((el, index) => (\n \n ))}\n \n\n \n {t('table_1_td_14').map((el, index) => (\n \n ))}\n \n \n \n
{el}
{el}
{el}
{el}
{el}
{el}
{el}
{el}
{el}
{el}
{el}
{el}
{el}
{el}
{el}
\n {t('table_1_ps').map((el, index) => (\n

{el}

\n ))}\n
\n {/* 買方 */}\n \n \n \n {t('table_2_th').map((el, index) => (\n \n ))}\n \n \n \n \n {t('table_2_td_1').map((el, index) => (\n \n ))}\n \n \n {t('table_2_td_2').map((el, index) => (\n \n ))}\n \n\n \n {t('table_2_td_3').map((el, index) => (\n \n ))}\n \n\n \n {t('table_2_td_4').map((el, index) => (\n \n ))}\n \n\n \n {t('table_2_td_5').map((el, index) => (\n \n ))}\n \n\n \n {t('table_2_td_6').map((el, index) => (\n \n ))}\n \n\n \n {t('table_2_td_7').map((el, index) => (\n \n ))}\n \n \n
{el}
{el}
{el}
{el}
{el}
{el}
{el}
{el}
\n

{t('table_2_ps')}

\n\n
\n {/* 風控 */}\n \n \n \n {t('table_3_th').map((el, index) => (\n \n ))}\n \n \n \n \n {t('table_3_td_1').map((el, index) => (\n \n ))}\n \n \n {t('table_3_td_2').map((el, index) => (\n \n ))}\n \n\n \n {t('table_3_td_3').map((el, index) => (\n \n ))}\n \n\n \n {t('table_3_td_4').map((el, index) => (\n \n ))}\n \n\n \n {t('table_3_td_5').map((el, index) => (\n \n ))}\n \n\n \n {t('table_3_td_6').map((el, index) => (\n \n ))}\n \n\n \n {t('table_3_td_7').map((el, index) => (\n \n ))}\n \n\n \n {t('table_3_td_8').map((el, index) => (\n \n ))}\n \n \n
{el}
{el}
{el}
{el}
{el}
{el}
{el}
{el}
{el}
\n\n \n {/* \n \n
*/}\n \n
\n
\n
\n
\n );\n};\n\nexport default Agreement;\n","import React, { useState, useEffect } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { getToken } from '../../firebaseInit.js';\n\n// Redux\nimport { useDispatch } from 'react-redux';\n\n// Actions\nimport { setDeviceIdAction } from '../../store/actions/agentAction';\n\n// Hooks\nimport useHttp from '../../hooks/useHttp';\n\n// Apis\nimport { sendWebPushToken } from '../../lib/api';\n\nconst Notifications = props => {\n const history = useHistory();\n\n // Redux\n const dispatch = useDispatch();\n\n const [isTokenFound, setTokenFound] = useState(false);\n\n const {\n status: sendDeviceStatus,\n error: sendDeviceError,\n data: sendDeviceData,\n sendRequest: sendDeviceIdToServerRequest,\n } = useHttp(sendWebPushToken);\n\n // console.log('Token found', isTokenFound);\n\n useEffect(() => {\n if (sendDeviceError) {\n if (!localStorage.getItem('token')) {\n localStorage.clear();\n history.replaceState('/');\n }\n }\n dispatch(\n setDeviceIdAction({\n error: sendDeviceError,\n status: sendDeviceStatus,\n data: sendDeviceData,\n })\n );\n }, [sendDeviceStatus, sendDeviceError, sendDeviceData, dispatch, history]);\n\n // To load once\n useEffect(() => {\n let data;\n dispatch(\n setDeviceIdAction({\n status: 'pending',\n })\n );\n const tokenFunc = async () => {\n data = await getToken(setTokenFound);\n // console.log(data);\n\n if (data) {\n sendDeviceIdToServerRequest(data);\n // console.log('Token is', data);\n } else {\n dispatch(setDeviceIdAction({}));\n }\n\n return data;\n };\n\n tokenFunc();\n }, [setTokenFound, sendDeviceIdToServerRequest, dispatch]);\n\n return <>;\n};\n\nNotifications.propTypes = {};\n\nexport default React.memo(Notifications);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { ToastContainer, toast } from 'react-toastify';\nimport 'react-toastify/dist/ReactToastify.css';\n\nconst ReactNotificationComponent = ({ title, body }) => {\n let hideNotify = title === '';\n\n const Display = () => {\n return (\n
\n

{title}

\n

{body}

\n
\n );\n };\n\n if (!hideNotify) {\n toast.info();\n }\n\n return (\n \n );\n};\n\nReactNotificationComponent.defaultProps = {\n title: 'This is title',\n body: 'Some body',\n};\n\nReactNotificationComponent.propTypes = {\n title: PropTypes.string,\n body: PropTypes.string,\n};\n\nexport default ReactNotificationComponent;\n","export const urlParamsKey = {\n session_id: \"session_id\",\n user: \"user\",\n location: \"location\",\n order: \"order\",\n};\n\nexport const getParamsFromUrl = (params) => {\n try {\n const str = `?${window.location.hash.split(\"?\")[1]}`;\n const searchParams = new URLSearchParams(str);\n return searchParams.get(params) || \"\";\n } catch (error) {\n console.log(error);\n }\n};\n","import React, { useState, useEffect } from \"react\";\nimport { Route, Switch, Redirect } from \"react-router-dom\";\n\n// Components\nimport Auth from \"./Components/Auth\";\nimport ForgetPassword from \"./Components/Auth/ForgetPassword\";\n\nimport { useHistory } from \"react-router-dom\";\n// Pages\nimport Home from \"./pages/Home\";\n// import DiPage from \"./pages/di/DiPage\";\n\n// Redux\nimport { useSelector, useDispatch } from \"react-redux\";\n\n// Actions\nimport { setOpenWebPushNotify } from \"./store/actions/agentAction\";\n\n// Context State\nimport SellState from \"./context/sell/SellState\";\nimport BalanceState from \"./context/balance/BalanceState\";\nimport AuthState from \"./context/auth/AuthState.jsx\";\nimport TransferState from \"./context/transfer/TransferState\";\nimport HistoryState from \"./context/history/HistoryState\";\nimport HttpErrorState from \"./context/httpError/HttpErrorState\";\nimport BuyState from \"./context/buy/BuyState\";\nimport ChatState from \"./context/chat/ChatState\";\nimport InstantState from \"./context/instant/InstantState\";\nimport WalletState from \"./context/wallet/WalletState\";\nimport Agreement from \"./Components/Auth/Agreement.js\";\n\n// Firebase web puh\nimport { onMessageListener, deleteToken } from \"./firebaseInit\";\nimport Notification from \"./Components/Notifications/Notifications\";\nimport ReactNotificationComponent from \"./Components/Notifications/ReactNotification\";\nimport { getParamsFromUrl, urlParamsKey } from \"./lib/parseUrl\";\n\nimport \"./App.scss\";\nimport \"bootstrap/dist/css/bootstrap.min.css\";\n\nconst App = () => {\n const history = useHistory();\n // Redux\n const { openWebPushNotify } = useSelector((state) => state.agent);\n const dispatch = useDispatch();\n\n const [isAuth, setIsAuth] = useState(false);\n\n const [showNotify, setShowNotify] = useState(false);\n const [notification, setNotification] = useState({ title: \"\", body: \"\" });\n\n useEffect(() => {\n const user = getParamsFromUrl(urlParamsKey.user);\n const sessionID = getParamsFromUrl(urlParamsKey.session_id);\n const orderID = getParamsFromUrl(urlParamsKey.order);\n const location = getParamsFromUrl(urlParamsKey.location);\n const isKycFromDi = location === \"kyc-valid\";\n\n if (sessionID) {\n sessionStorage.setItem(\"88u_di_session\", sessionID);\n if (user && location) {\n localStorage.setItem(\"token\", user);\n sessionStorage.setItem(\"88u_di_order\", orderID);\n\n if (isKycFromDi) {\n sessionStorage.setItem(\"isKyc\", true);\n } else {\n sessionStorage.removeItem(\"isKyc\");\n }\n\n history.push(`/home/${location}`);\n }\n }\n\n if (!sessionID) {\n if (location && user) {\n sessionStorage.clear();\n localStorage.setItem(\"token\", user);\n history.push(`/home/${location}`);\n }\n }\n }, [history]);\n\n useEffect(() => {\n const notifyStat = localStorage.getItem(\"openNotify\");\n\n if (!openWebPushNotify || !notifyStat) {\n setOpenWebPushNotify(false);\n setShowNotify(false);\n setNotification({ title: \"\", body: \"\" });\n deleteToken();\n return;\n }\n\n const onMessageListenerCallback = (payload) => {\n try {\n if (payload) {\n setShowNotify(true);\n setNotification({\n title: payload.notification.title,\n body: payload.notification.body,\n });\n }\n } catch (error) {\n console.log(\"onMessage Fail.\", error);\n }\n };\n\n onMessageListener(onMessageListenerCallback);\n }, [openWebPushNotify]);\n\n useEffect(() => {\n if (!window.Notification) return;\n\n if (window.Notification.permission === \"denied\") {\n dispatch(setOpenWebPushNotify(false));\n localStorage.removeItem(\"openNotify\");\n }\n }, [dispatch]);\n\n const setAuth = (token) => {\n if (token) {\n setIsAuth(true);\n } else {\n setIsAuth(false);\n }\n };\n\n return (\n
\n \n \n \n \n \n \n \n \n \n \n {openWebPushNotify && }\n\n {showNotify && (\n \n )}\n\n \n (\n \n )}\n />\n\n \n\n (\n \n )}\n />\n\n \n\n \n \n \n \n \n \n \n \n \n \n \n \n
\n );\n};\n\nexport default React.memo(App);\n","import React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { HashRouter } from \"react-router-dom\";\nimport { I18nProvider } from \"./lang/index\";\nimport { ConfigProvider } from \"antd-mobile\";\nimport zhTW from \"antd-mobile/es/locales/zh-TW\";\n// import enUS from \"antd-mobile/es/locales/en-US\";\n\nimport App from \"./App\";\nimport \"./index.scss\";\n\n// Redux\nimport { Provider } from \"react-redux\";\nimport { PersistGate } from \"redux-persist/integration/react\";\nimport { store, persisStore } from \"./store/store\";\n\nconst locales = [\"en-US\", \"zh-TW\", \"zh-HK\"];\nconst translations = {\n \"en-US\": require(\"./locales/en-US\").default,\n \"zh-HK\": require(\"./locales/zh-HK\").default,\n \"zh-CN\": require(\"./locales/zh-CN\").default,\n};\n\nif (process.env.REACT_APP_HOST_NAME) {\n // document.querySelector('meta[name=\"description\"]').setAttribute(\"content\", '');\n // document.querySelector('title').setAttribute(\"content\", '');\n}\n\nReactDOM.render(\n \n \n \n \n \n \n \n \n \n \n ,\n document.getElementById(\"root\")\n);\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"section\":\"History_section__1XO4d\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"Agreenment_container__1ROhp\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"chatBox\":\"TheChat_chatBox__1_tCc\",\"top\":\"TheChat_top__vuaeP\",\"talk\":\"TheChat_talk__3uENj\",\"talk_l\":\"TheChat_talk_l__3wu3b\",\"talk_r\":\"TheChat_talk_r__2IX00\",\"talk_time\":\"TheChat_talk_time__1UwpU\",\"a_right\":\"TheChat_a_right__22Ni0\",\"attach_icon\":\"TheChat_attach_icon__sUrfc\",\"send_icon\":\"TheChat_send_icon__1vhTJ\",\"bottom\":\"TheChat_bottom__21I2E\",\"talkBox\":\"TheChat_talkBox__2nQc1\",\"soundBtnBox\":\"TheChat_soundBtnBox__16qAZ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"logo\":\"Header_logo__2vK6k\",\"navList\":\"Header_navList__9Jq6H\",\"navLink\":\"Header_navLink__3i_t2\",\"header\":\"Header_header__24-pl\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"MemberLevelAlert_container__24rr-\",\"header\":\"MemberLevelAlert_header__1He4A\",\"header-icon\":\"MemberLevelAlert_header-icon__gXUIb\",\"body\":\"MemberLevelAlert_body__2EhfB\",\"body-title\":\"MemberLevelAlert_body-title__14ks4\",\"sub-text-box\":\"MemberLevelAlert_sub-text-box__19A2C\",\"button\":\"MemberLevelAlert_button__2QNWQ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"overView_container__3cWCM\",\"landingBlock\":\"overView_landingBlock__1qHJr\",\"textBox\":\"overView_textBox__zDs3N\",\"title\":\"overView_title__2DFkr\",\"subText\":\"overView_subText__1Ea2f\",\"imgBox\":\"overView_imgBox__1DcKH\",\"phone\":\"overView_phone__1AjNb\",\"cs-button\":\"overView_cs-button__1kjOe\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"MemberChat_container__MhM8h\",\"header\":\"MemberChat_header__fiPib\",\"close\":\"MemberChat_close__2M7Zb\",\"body\":\"MemberChat_body__2PeUd\",\"message-box\":\"MemberChat_message-box__1KFyV\",\"action\":\"MemberChat_action__1NtNk\",\"input\":\"MemberChat_input__2Fbcd\",\"send\":\"MemberChat_send__3D8tE\",\"upload\":\"MemberChat_upload__13Ans\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"AccListMobile_container__3izro\",\"item\":\"AccListMobile_item__1qaM7\",\"name\":\"AccListMobile_name__2nL_v\",\"account\":\"AccListMobile_account__2lBBW\",\"bank\":\"AccListMobile_bank__23DUH\",\"city\":\"AccListMobile_city__1bGQ1\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"KycValidForm_container__2HryX\",\"header\":\"KycValidForm_header__1fkIg\",\"email-valid\":\"KycValidForm_email-valid__XyBo0\",\"address-row\":\"KycValidForm_address-row__3KF3Q\"};"],"sourceRoot":""}