| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023 |
- import { initTrackAll ,trackEvent} from "../tracking/TrackAll"
- import {createAsyncThunk, createSlice} from "@reduxjs/toolkit";
- import {routes} from "@db/routes";
- import {
- ROUTE_PATH,
- ROUTE_TYPE_CUSTOM,
- ROUTE_TYPE_FULL,
- ROUTE_TYPE_IN,
- ROUTE_TYPE_OUTLINK,
- ROUTE_TYPE_POP,
- ROUTE_TYPE_POP_OR_FULL, SIDE_TYPE_NOMAL
- } from "@constants/routes";
- import {REQ_STATUS} from "@api/config";
- import {
- buildReqReducer,
- reqBindSMS,
- reqChangeEmail,
- reqChangeInfo,
- reqChangePass,
- reqChangePhone,
- reqCustomLeaveMsg,
- reqCustomService,
- reqFavoGet, reqForgetPass,
- reqForgetPayPass,
- reqGameCardInfo,
- reqGameInfo,
- reqGetRoutes,
- reqLogin,
- reqLogout,
- reqRegister,
- reqSendCode,
- reqSMSLogin,
- reqUpdateFavoInfo
- } from "@features/api";
- import {toast} from 'react-toastify';
- import {getHttpMsg, localStorageGet, localStorageSet} from "@utils/helpers";
- import {
- LOCAL_ACTIVITY_C,
- LOCAL_CUSTOM_LOCK,
- LOCAL_FAVO_IDS, LOCAL_GAME_URL,
- LOCAL_IS_LOGIN,
- LOCAL_SIGN,
- LOCAL_USER_INFO,
- LOCAL_VISTOR_ID
- } from "@constants/localkey";
- import {reqPayConfig} from "@features/paySlice";
- import FingerprintJS from '@fingerprintjs/fingerprintjs'
- import {APP_LOGIN_TYPE} from "@constants/app";
- import { v4 as uuidv4 } from 'uuid';
- const i18n=global.i18n;
- const generateNavs=(routes)=>{
- const navs=[];
- const allNavs=[];
- const allTopNavs=[];
- for (let i = 0; i <routes.length ; i++) {
- let route=routes[i];
- if (!route.side)continue;
- allNavs.push(route);
- if(route.side===SIDE_TYPE_NOMAL)allTopNavs.push(route);
- let block=route.block!=null?route.block:0;
- let temp=navs[block];
- if (temp==null)temp=[];
- temp.push(route);
- navs[block]=temp;
- }
- return {navs,allNavs,allTopNavs};
- }
- const generateRoutes=(routes,asyncRoutes=[])=>{
- const allMap={};
- const inRoutes=[];
- const popRoutes=[];
- //路由等级
- //ppath parent path
- const _generate=(list,plevel,ppath)=>{
- Object.keys(list).map((key)=>{
- let route=list[key];
- if (route){
- if (allMap[route.path]==null){
- //level
- route.plv=plevel;
- route.ppath=ppath;
- route.lv=plevel+key+"_";
- // if (route.path==="#/signin"||route.path==="#/signup"){
- // route.component="Login";
- // }
- if (route.path==="#/pay"){
- route.component="deposit";
- }
- if (route.path==="#/saque"){
- route.component="withdraw";
- }
- // if (route.path==="/sports"){
- // route.subs=[
- // {
- // "id": 100,
- // "parent_id": 4,
- // "index": 100,
- // "path": "/sports/soccer-1",
- // "type": 0,
- // "side": 1,
- // "block": 1,
- // "title": "Soccer",
- // "icon": "icon_Soccer",
- // "fill": ";;",
- // "style": 1,
- // "component": "Sport",
- // "query": "",
- // "login": 0,
- // "lpath": "#\/signup",
- // "state": 15,
- // "subs": []
- // },
- // {
- // "id": 101,
- // "parent_id": 4,
- // "index": 101,
- // "path": "/sports/basketball-2",
- // "type": 0,
- // "side": 1,
- // "block": 1,
- // "title": "Basketball",
- // "icon": "icon_Basketball",
- // "fill": ";;",
- // "style": 1,
- // "component": "Sport",
- // "query": "",
- // "login": 0,
- // "lpath": "#\/signup",
- // "state": 15,
- // "subs": []
- // }
- // ]
- // }
- // if (route.path==="/sports"){
- // route.type=ROUTE_TYPE_FULL;
- // }
- allMap[route.path]=route;
- let type=route.type;
- if (type===ROUTE_TYPE_IN||type===ROUTE_TYPE_FULL)inRoutes.push(route);
- else if (type===ROUTE_TYPE_POP_OR_FULL)popRoutes.push(route);
- else if (type===ROUTE_TYPE_POP)popRoutes.push(route);
- else if (type===ROUTE_TYPE_CUSTOM)popRoutes.push(route);
- }
- let subs=route.subs;
- if (subs!=null)_generate(subs,route.lv,route.path);
- }
- });
- }
- const allroutes=[...routes, ...asyncRoutes];
- _generate(allroutes,"","");
- const gnavs=generateNavs(allroutes);
- return {allMap,inRoutes,popRoutes,blockNavs:gnavs.navs,allNavs:gnavs.allNavs,allTopNavs:gnavs.allTopNavs};
- }
- const parseThemeStypes=(data)=>{
- if (data!=null){
- for (const key in data) {
- let item=data[key];
- if (item!=null){
- if (typeof item=="string"){
- if (item.indexOf(";")!=-1){
- data[key]=item.split(";");
- }
- }
- }
- }
- }
- return data;
- }
- const parseStyles=(data)=>{
- let styles={};
- if (data!=null){
- for (let i = 0; i <data.length ; i++) {
- let item=data[i];
- if (item){
- let styleid=item.styleid;
- let style=item.style;
- let json={};
- if (style!=null&&style!=""){
- json=JSON.parse(style);
- json['dark']=parseThemeStypes(json['dark']);
- json['light']=parseThemeStypes(json['light']);
- }
- styles[styleid]={styleid,style:json};
- }
- }
- }
- return styles;
- }
- const parseBlocks=(data)=>{
- let blocks={};
- if (data!=null){
- for (let i = 0; i < data.length; i++) {
- let item=data[i];
- if (item){
- blocks[item.block]=item;
- }
- }
- }
- return blocks;
- }
- const getFavorites=(data)=>{
- let favorites=[];
- if (data!=null&&!!data.length){
- let arr=data.split(",");
- if (arr){
- for (let i = 0; i < arr.length; i++) {
- favorites.push(parseInt(arr[i]));
- }
- }
- localStorageSet(LOCAL_FAVO_IDS,JSON.stringify(favorites));
- }
- else
- {
- let localFavorites=localStorageGet(LOCAL_FAVO_IDS,"");
- if (localFavorites!=="")favorites=JSON.parse(localFavorites)
- }
- return favorites;
- }
- const reducerRoutes=(state,action)=>{
- let json=action.payload;
- if (json&&json.code==0){
- let data=json.data==null?[]:json.data;
- let generData=generateRoutes(state.routes,data);
- let styles=parseStyles(json.styles);
- let blocks=parseBlocks(json.blocks);
- let user=json.user;
- let isLogin=0;
- let userInfo={};
- let hasPhone=0;
- if (user){
- if (typeof user=="object"){
- isLogin=1;
- // user.InsurePass=0;
- userInfo=user;
- //请求pay
- // global.dispatch(reqPayConfig(user));
- let sign=user.sign;
- if (sign!=null)localStorageSet(LOCAL_SIGN,sign);
- if(user.Phone!==""&&user.Phone.startsWith(user.RegisterLocation)){
- hasPhone=1;
- }
- //同步lang
- if (user.DefaultLanguage!=null)i18n.setLocalLangFromS(user.DefaultLanguage);
- checkChannel(user);
- }
- }
- let conf=json.conf;
- let hallServerUrl='';
- let promoteInstall=0;
- let guest=0;
- let upgradeBonus=0;
- let popWheel=0;
- let popBindPhone=0;
- let firstBonus=0;
- let openRelief=0;
- let accountLogin=1;
- let loginOpen="";
- let registerOpen="";
- let area=global.getLocalAreaID();
- //sport 配置
- let bbConf=null;
- let popFirst=0;
- if (conf){
- if (!!conf.hall)hallServerUrl=conf.hall;
- if (!!conf.DOLLAR)global.DOLLAR=conf.DOLLAR;
- if (!!conf.currency)global.currency=conf.currency;
- global.pf=conf.pf;
- //平台配置
- if(!!conf.pf&&!!conf.pf.id){
- let {type,id}=conf.pf;
- initTrackAll(type,id,isLogin?userInfo.UserID:null)
- }
- //promoteInstall
- if (!!conf.promoteInstall)promoteInstall=conf.promoteInstall;
- //guest
- if (!!conf.guest)guest=conf.guest;
- if (!!conf.upgradeBonus)upgradeBonus=conf.upgradeBonus;
- //弹出转盘
- if (!!conf.popWheel)popWheel=conf.popWheel;
- //弹出绑定电话奖励,并显示浮标
- if (!!conf.popBindPhone)popBindPhone=hasPhone?0:conf.popBindPhone;
- //显示首冲浮标
- if (!!conf.firstBonus)firstBonus=conf.firstBonus;
- //显示救济浮标
- if (!!conf.openRelief)openRelief=conf.openRelief;
- //sport 配置
- if (!!conf.bb){
- bbConf=conf.bb;
- if(userInfo!=null)userInfo.bb=bbConf;
- }
- if (!!conf.loginOpen)loginOpen=conf.loginOpen;
- if (!!conf.registerOpen)registerOpen=conf.registerOpen;
- if (!!conf.popFirst)popFirst=conf.popFirst;
- }
- //favorites
- // let favorites=getFavorites(json.favorites);
- Object.assign(state, {routes:state.routes,asyncRoutes:data,styles,blocks,...generData,isLogin:isLogin,userInfo,hallServerUrl,promoteInstall,guest,upgradeBonus,popWheel,popBindPhone,firstBonus,openRelief,bbConf,accountLogin,area,loginOpen,registerOpen,popFirst});
- // Object.assign(state, {routes:state.routes,asyncRoutes:data,styles:styles,blocks:blocks,...generData,isLogin:isLogin,userInfo:userInfo,hallServerUrl:hallServerUrl,promoteInstall:promoteInstall,guest:guest,upgradeBonus:upgradeBonus});
- }
- }
- const routesStatus=(state,status,arg)=>{
- state.status=status;
- }
- //login
- const getLocalUserInfo=()=>{
- let user={};
- let value=localStorageGet(LOCAL_USER_INFO,null);
- if (value&&value!=""){
- user=JSON.parse(value);
- }
- return user;
- }
- const getLocalIsLogin=()=>{
- let islogin=localStorageGet(LOCAL_IS_LOGIN,0);
- islogin=Number(islogin);
- return islogin;
- }
- const getMsg=(payload)=>{
- return getHttpMsg(payload);
- }
- //检查渠道
- const checkChannel=(userInfo)=>{
- if (userInfo!=null&&userInfo.Channel!=null){
- let Channel=parseInt(userInfo.Channel);
- let localC=localStorageGet(LOCAL_ACTIVITY_C,"");
- if (localC!=null&&localC!==""){
- localC=parseInt(localC);
- if (Channel!==localC){
- localStorageSet(LOCAL_ACTIVITY_C,Channel+"");
- window.location.replace(window.location.origin);
- }
- }
- }
- }
- const parseLogin=(state,action,arg,isShowMsg=true)=>{
- let payload=action.payload;
- let code=payload.code;
- let msg=getMsg(payload);
- //success
- if (code==200){
- let data=payload.data;
- if (data.bb==null){
- if (state.userInfo!=null)data.bb=state.userInfo.bb;
- }
- if (arg){
- if (arg.DefaultLanguage!=null)data.lang=arg.DefaultLanguage;
- else
- {
- if (state.userInfo!=null&&state.userInfo.lang!=null)data.lang=state.userInfo.lang;
- }
- }
- state.userInfo=data;
- state.isLogin=1;
- // localStorageSet(LOCAL_USER_INFO,JSON.stringify(data));
- // localStorageSet(LOCAL_IS_LOGIN,1);
- let sign=data.sign;
- if (sign!=null)localStorageSet(LOCAL_SIGN,sign);
- if(isShowMsg)toast.success(msg);
- //请求pay
- // global.dispatch(reqPayConfig(data));
- if(!!data.reg){
- //新注册的
- trackEvent("CompleteRegistration",{external_id:data.UserID})
- }
- checkChannel(data);
- if (arg!=null){
- if (arg.type!=null&&arg.type===APP_LOGIN_TYPE.GUEST){
- let {account,password}=data;
- if (account!=null&&password!=null){
- global.showSaveAccount({
- account,
- password
- })
- }
- }
- }
- }
- else
- {
- if(isShowMsg)toast.error(msg);
- }
- if (arg){
- let callback=arg.callback;
- if (callback!=null)callback(code);
- }
- }
- const reducerLogin=(state,action,arg)=>{
- // toast.success("success");
- parseLogin(state,action,arg);
- }
- const loginStatus=(state,status,arg)=>{
- state.loginStatus.login=status;
- }
- const reducerReg=(state,action,arg)=>{
- parseLogin(state,action,arg);
- }
- const regStatus=(state,status,arg)=>{
- state.loginStatus.register=status;
- }
- const reducerLogout=(state,action,arg)=>{
- let payload=action.payload;
- let code=payload.code;
- let msg=getMsg(payload);
- if (code==200){
- state.userInfo={};
- state.isLogin=0;
- localStorageSet(LOCAL_SIGN,"");
- // localStorageSet(LOCAL_USER_INFO,"");
- // localStorageSet(LOCAL_IS_LOGIN,0);
- toast.success(msg);
- }
- else
- {
- toast.error(msg);
- }
- }
- const logoutStatus=(state,status,arg)=>{
- state.loginStatus.logout=status;
- }
- //login
- //modify
- const reducerChangePass=(state,action,arg)=>{
- // let payload=action.payload;
- // let code=payload.code;
- // let msg=getMsg(payload);
- // if (code==200){
- // toast.success(msg);
- // }
- // else
- // {
- // toast.error(msg);
- // }
- parseLogin(state,action,arg);
- }
- const changePassStatus=(state,status,arg)=>{
- state.modifyStatus.password=status;
- }
- const reducerChangeInfo=(state,action,arg)=>{
- // let payload=action.payload;
- // let code=payload.code;
- // let msg=getMsg(payload);
- // if (code==200){
- // toast.success(msg);
- // }
- // else
- // {
- // toast.error(msg);
- // }
- parseLogin(state,action,arg);
- }
- const changeInfoStatus=(state,status,arg)=>{
- state.modifyStatus.info=status;
- }
- const reducerChangePhone=(state,action,arg)=>{
- parseLogin(state,action,arg);
- }
- const changePhoneStatus=(state,status,arg)=>{
- state.modifyStatus.phone=status;
- }
- const reducerChangeEmail=(state,action,arg)=>{
- parseLogin(state,action,arg);
- }
- const changeEmailStatus=(state,status,arg)=>{
- state.modifyStatus.phone=status;
- }
- //modify
- //gameinfo
- const reducerGameInfo=(state,action,arg)=>{
- // parseLogin(state,action,arg);
- parseLogin(state,action,arg,false);
- }
- const gameInfoStatus=(state,status,arg)=>{
- state.gameInfoStatus=status;
- }
- //gameinfo
- //custom
- const reducerCustom=(state,action,arg)=>{
- let payload=action.payload;
- if (payload&&payload.code===200){
- state.customerInfo=payload.data;
- }
- }
- const customStatus=(state,status,arg)=>{
- state.customServiceStatus=status;
- }
- const reducerCustomLeaveMsg=(state,action,arg)=>{
- let payload=action.payload;
- if (payload!=null){
- if (payload&&payload.code===200){
- localStorageSet(LOCAL_CUSTOM_LOCK,Date.now());
- toast.success(i18n.t("customer.TopTip_succeed"));
- }
- else {
- toast.error(i18n.t("customer.TopTip_fail"));
- }
- }
- if (arg&&arg.callback!=null){
- arg.callback(payload);
- }
- }
- const customLeaveMsgStatus=(state,status,arg)=>{
- state.customLeaveMsgStatus=status;
- }
- const reducerUpdateFavoInfo=(state,action,arg)=>{
- let payload=action.payload;
- let msg=getHttpMsg(payload);
- if (payload&&payload.code===200){
- if (msg!=null&&msg!==""){
- toast.success(msg)
- }
- }
- else
- {
- if (msg!=null&&msg!==""){
- toast.error(msg)
- }
- }
- }
- const reducerFavoGet=(state,action,arg)=>{
- let payload=action.payload;
- if (payload&&payload.code===200){
- let data=payload.data;
- let favorites=[];
- if (data!=null){
- for (let i = 0; i < data.length; i++) {
- let item=data[i];
- if(item)favorites.push(item.id);
- }
- }
- state.favorites=favorites;
- }
- }
- const reducerGameCardInfo=(state,action,arg)=>{
- let payload=action.payload;
- if (payload&&payload.code===200){
- let data=payload.data;
- if (data!=null){
- let id=Number(data.id);
- let level_info=data.level_info;
- let level=level_info!=null?1:0;
- let local=parseInt(localStorageGet(LOCAL_GAME_URL+id,0));
- if (local>0)level=local;
- state.gameCardInfo[id]={...data,level:level}
- }
- }
- }
- const gameCardInfoStatus=(state,status,arg)=>{
- state.gameCardInfoStatus=status;
- }
- //send code
- const reducerSendCode=(state,action,arg)=>{
- let payload=action.payload;
- let msg=getHttpMsg(payload);
- if (payload&&payload.code===200){
- toast.success(msg);
- state.otpTimeStamp=Date.now();
- }
- else
- {
- toast.error(msg);
- }
- }
- const sendCodeStatus=(state,status,arg)=>{
- state.loginStatus.send_code=status;
- }
- //bind phone
- const reducerBindSMS=(state,action,arg)=>{
- parseLogin(state,action,arg);
- }
- const bindSMSStatus=(state,status,arg)=>{
- state.loginStatus.bind=status;
- }
- //sms login
- const reducerSMSLogin=(state,action,arg)=>{
- parseLogin(state,action,arg);
- }
- const smsLoginStatus=(state,status,arg)=>{
- state.loginStatus.smslogin=status;
- }
- //custom
- export const Main=createSlice({
- name: 'main',
- initialState: {
- status:REQ_STATUS.NONE,
- routes:routes,
- asyncRoutes:[],
- styles:{},
- blocks:{},
- ...generateRoutes(routes),
- loginStatus:{
- login:REQ_STATUS.NONE,
- register:REQ_STATUS.NONE,
- logout:REQ_STATUS.NONE,
- bind:REQ_STATUS.NONE,
- send_code:REQ_STATUS.NONE,
- smslogin:REQ_STATUS.NONE,
- },
- userInfo: null,
- isLogin:0,
- modifyStatus:{
- info:REQ_STATUS.NONE,
- password:REQ_STATUS.NONE,
- phone:REQ_STATUS.NONE,
- email:REQ_STATUS.NONE
- },
- gameInfoStatus:REQ_STATUS.NONE,
- customLeaveMsgStatus:REQ_STATUS.NONE,
- customServiceStatus:REQ_STATUS.NONE,
- //客服
- customerInfo:[],
- //大厅服务器
- hallServerUrl:'',
- //收藏列表
- favorites:[],
- //当前游戏id
- gameID:0,
- //服务器踢
- serverKick:0,
- //安装提示
- promoteInstall:0,
- //服务器返回777打开充值
- openPay:0,
- gameCardInfoStatus:REQ_STATUS.NONE,
- //游戏卡信息
- gameCardInfo:{},
- //otp 时间戳
- otpTimeStamp:0,
- //是否是guest登录
- guest:0,
- //绑定奖励
- upgradeBonus:0,
- //sport conf
- bbConf:null,
- accountLogin:0,
- area:0,
- loginOpen:"",
- registerOpen:"",
- popFirst:0
- },
- reducers: {
- logout:(state, action)=>{
- state.userInfo={};
- state.isLogin=0;
- // localStorageSet(LOCAL_USER_INFO,"");
- // localStorageSet(LOCAL_IS_LOGIN,0);
- },
- updateUserInfo:(state, action)=>{
- parseLogin(state,action,{},false);
- },
- updateUserScore:(state, action)=>{
- let score=action.payload;
- if (score!=null){
- if(state.userInfo)state.userInfo.Score=Number(score);
- }
- },
- updateAddScore:(state, action)=>{
- let score=action.payload;
- if (score!=null){
- if(state.userInfo)state.userInfo.Score=state.userInfo.Score+Number(score);
- }
- },
- updateGameLike:(state, action)=>{
- let payload=action.payload;
- let id=payload.id;
- let like=payload.like;
- let favorites=state.favorites;
- let index=favorites.indexOf(id);
- if (like){
- if (index===-1){
- favorites.push(id);
- state.favorites=favorites;
- }
- }
- else {
- let index=favorites.indexOf(id);
- if (index!==-1){
- favorites.splice(index,1);
- state.favorites=favorites;
- }
- }
- // localStorageSet(LOCAL_FAVO_IDS,JSON.stringify(favorites));
- },
- onSliceChangeUser:(state,action)=>{
- state.favorites=[];
- },
- updateCurrGame:(state,action)=>{
- state.gameID=action.payload;
- },
- updateServerKick:(state,action)=>{
- state.serverKick=action.payload;
- },
- updateOpenPay:(state,action)=>{
- state.openPay=action.payload;
- },
- updateGameRoute:(state,action)=> {
- let route = state.allMap[ROUTE_PATH.GAME + "/*"];
- if (route != null) {
- let type = action.payload;
- route.type = type;
- }
- },
- updateGameCardInfo:(state,action)=>{
- let {data,level}=action.payload;
- if (data!=null){
- if (level==null)level=0;
- let id=data.id;
- state.gameCardInfo[id]={...data,level};
- }
- },
- updateAreaID:(state,action)=>{
- let areaID=action.payload;
- global.setLocalAreaID(areaID);
- // window.location.replace(window.location.href);
- // window.location.reload();
- }
- },
- extraReducers: (builder) => {
- // Add reducers for additional action types here, and handle loading state as needed
- // reducerRoutes(builder);
- buildReqReducer(builder,reqGetRoutes,reducerRoutes,routesStatus);
- buildReqReducer(builder,reqLogin,reducerLogin,loginStatus);
- buildReqReducer(builder,reqRegister,reducerReg,regStatus);
- buildReqReducer(builder,reqLogout,reducerLogout,logoutStatus);
- buildReqReducer(builder,reqChangePass,reducerChangePass,changePassStatus);
- buildReqReducer(builder,reqChangeInfo,reducerChangeInfo,changeInfoStatus);
- buildReqReducer(builder,reqChangePhone,reducerChangePhone,changePhoneStatus);
- buildReqReducer(builder,reqChangeEmail,reducerChangeEmail,changeEmailStatus);
- buildReqReducer(builder,reqGameInfo,reducerGameInfo,gameInfoStatus);
- buildReqReducer(builder,reqCustomService,reducerCustom,customStatus);
- buildReqReducer(builder,reqCustomLeaveMsg,reducerCustomLeaveMsg,customLeaveMsgStatus);
- buildReqReducer(builder,reqUpdateFavoInfo,reducerUpdateFavoInfo,null);
- buildReqReducer(builder,reqFavoGet,reducerFavoGet,null);
- buildReqReducer(builder,reqGameCardInfo,reducerGameCardInfo,gameCardInfoStatus);
- buildReqReducer(builder,reqSendCode,reducerSendCode,sendCodeStatus);
- buildReqReducer(builder,reqBindSMS,reducerBindSMS,bindSMSStatus);
- buildReqReducer(builder,reqSMSLogin,reducerSMSLogin,smsLoginStatus);
- buildReqReducer(builder,reqForgetPass,reducerChangePass,changePassStatus);
- },
- })
- export const {logout,updateUserInfo,updateUserScore,updateAddScore,updateGameLike,updateCurrGame,updateServerKick,updateOpenPay,updateGameRoute,updateGameCardInfo,updateAreaID} = Main.actions;
- //数据获取
- export const getFetchStatus=(state)=>{
- return state.main.status;
- }
- export const routesMap=(state)=>{
- return state.main.allMap;
- }
- export const routesIn=(state)=>{
- return state.main.inRoutes;
- }
- export const routesPop=(state)=>{
- return state.main.popRoutes;
- }
- export const nBlocks=(state)=>{
- return state.main.blockNavs;
- }
- export const allNavs=(state)=>{
- return state.main.allNavs;
- }
- export const allTopNavs=(state)=>{
- return state.main.allTopNavs;
- }
- const getRouteFromPath=(state,path)=>{
- let allMap=routesMap(state);
- let route=allMap[path];
- if (route==null){
- //查看是否有可变路由
- let paths=path.split("/");
- paths[paths.length-1]="*";
- let newpath=paths.join("/");
- route=allMap[newpath];
- }
- return route;
- }
- export const getRoute=(path)=>(state)=>{
- // let route=routesMap(state)[path];
- let route=getRouteFromPath(state,path);
- if (route==null)return {};
- return route;
- }
- export const getRouteChain=(path)=>(state)=>{
- let map=routesMap(state);
- let list=[];
- let getChain=(cpath)=>{
- let route=map[cpath];
- if (route!=null){
- list.unshift(route);
- if (route.ppath!=null&&route.ppath!==""){
- getChain(route.ppath);
- }
- }
- }
- getChain(path);
- return list;
- }
- export const getRouteStyles=(state)=>{
- let styles=state.main.styles;
- return styles;
- }
- export const getBlockColumn=(state)=>{
- let blocks=state.main.blocks;
- return blocks;
- }
- export const isFullRoute=(path)=>(state)=>{
- // let route=routesMap(state)[path];
- let route=getRouteFromPath(state,path);
- if (route)return route.type===ROUTE_TYPE_FULL;
- return false;
- }
- export const isPopRoute=(path)=>(state)=>{
- // let route=routesMap(state)[path];
- let route=getRouteFromPath(state,path);
- if (route)return route.type===ROUTE_TYPE_POP;
- return false;
- }
- export const isInRoute=(path)=>(state)=>{
- // let route=routesMap(state)[path];
- let route=getRouteFromPath(state,path);
- if (route)return route.type===ROUTE_TYPE_IN;
- return false;
- }
- export const isOutRoute=(path)=>(state)=>{
- // let route=routesMap(state)[path];
- let route=getRouteFromPath(state,path);
- if (route)return route.type===ROUTE_TYPE_OUTLINK;
- return false;
- }
- //login
- export const getLoginStatus=(state)=>{
- return state.main.loginStatus.login;
- }
- export const getRegStatus=(state)=>{
- return state.main.loginStatus.register;
- }
- export const getLogoutStatus=(state)=>{
- return state.main.loginStatus.logout;
- }
- export const getSendCodeStatus=(state)=>{
- return state.main.loginStatus.send_code;
- }
- export const getBindSMSStatus=(state)=>{
- return state.main.loginStatus.bind;
- }
- export const getSMSLoginStatus=(state)=>{
- return state.main.loginStatus.smslogin;
- }
- export const getSendCodeTS=(state)=>{
- return state.main.otpTimeStamp;
- }
- //modify
- export const getChangeInfoStatus=(state)=>{
- return state.main.modifyStatus.info;
- }
- export const getChangePassStatus=(state)=>{
- return state.main.modifyStatus.password;
- }
- export const getChangePhoneStatus=(state)=>{
- return state.main.modifyStatus.phone;
- }
- export const getChangeEmailStatus=(state)=>{
- return state.main.modifyStatus.email;
- }
- export const isLogined=(state)=>{
- // console.log(state.main.isLogin)
- return state.main.isLogin;
- // return 1;
- }
- export const getUserInfo=(state)=>{
- return state.main.userInfo;
- }
- export const getUserID=(state)=>{
- let uid=-1;
- let userInfo=state.main.userInfo;
- if (userInfo){
- if (userInfo.UserID!=null)uid=userInfo.UserID;
- else uid=0;
- }
- return uid;
- }
- export const getCustomInfo=(state)=>{
- return state.main.customerInfo;
- }
- export const getCustomTypeInfo=(type)=>(state)=>{
- let item=null;
- let customerInfo=state.main.customerInfo;
- if (customerInfo){
- for (let i = 0; i < customerInfo.length; i++) {
- let info=customerInfo[i];
- if (info.StatusName===type){
- item=info;
- break;
- }
- }
- }
- return item
- }
- export const getCustomStatus=(state)=>{
- return state.main.customLeaveMsgStatus;
- }
- export const getCustomServiceStatus=(state)=>{
- return state.main.customServiceStatus;
- }
- export const getHallServerUrl=(state)=>{
- return state.main.hallServerUrl;
- }
- export const getGameLikes=(state)=>{
- return state.main.favorites;
- }
- export const getGameLike=(id)=>(state)=>{
- let favorites=state.main.favorites;
- if (favorites.includes(id))return 1;
- return 0;
- }
- export const getKickState=(state)=>{
- return state.main.serverKick;
- }
- export const getPromoteInstall=(state)=>{
- return state.main.promoteInstall;
- }
- export const getPopWheel=(state)=>{
- return state.main.popWheel;
- }
- export const getOpenPay=(state)=>{
- return state.main.openPay;
- }
- export const getGameCardInfo=(id)=>(state)=>{
- id=Number(id);
- return state.main.gameCardInfo[id];
- }
- export const getIsGuest=(state)=>{
- return state.main.guest;
- }
- export const getUpgradeBonus=(state)=>{
- return state.main.upgradeBonus;
- }
- export const getPopBindPhone=(state)=>{
- return state.main.popBindPhone;
- }
- export const getFirstBonus=(state)=>{
- return state.main.firstBonus;
- }
- export const getOpenRelief=(state)=>{
- return state.main.openRelief;
- }
- export const getBBConf=(state)=>{
- return state.main.bbConf;
- }
- export const getAccountLogin=(state)=>{
- return state.main.accountLogin;
- }
- export const getArea=(state)=>{
- return state.main.area;
- }
- export const getUserBBToken=(state)=>{
- let token=null;
- let userInfo=state.main.userInfo;
- if (userInfo){
- if (userInfo.bb != null&&userInfo.bb.token!=null)token=userInfo.bb.token;
- }
- return token;
- }
- export const getUserLang=(state)=>{
- let lang="";
- let userInfo=state.main.userInfo;
- if (userInfo){
- lang=userInfo.lang;
- }
- return lang;
- }
- export const getUserNick=(state)=>{
- let nick="";
- let userInfo=state.main.userInfo;
- if (userInfo){
- nick=userInfo.NickName;
- }
- return nick;
- }
- export const getLoginOpen=(state)=>{
- return state.main.loginOpen;
- }
- export const getRegisterOpen=(state)=>{
- return state.main.registerOpen;
- }
- export const getPopFirst=(state)=>{
- return state.main.popFirst;
- }
- //数据获取
- export default Main.reducer;
- export const getBFP=()=>{
- return async (dispatch, getState) => {
- let bfp="";
- bfp=localStorageGet(LOCAL_VISTOR_ID,"");
- if (bfp!=null&&bfp!==""){
- global.BFP=bfp;
- return bfp;
- }
- bfp=uuidv4();
- localStorageSet(LOCAL_VISTOR_ID,bfp);
- global.BFP=bfp;
- // const fpPromise = FingerprintJS.load({
- // apiKey: "W7zWifGvJhjacPekHi64"
- // })
- //换成uuid
- // const fpPromise =FingerprintJS.load();
- // try {
- // let fp=await fpPromise;
- // let result=await fp.get();
- // if (result!=null){
- // bfp=result.visitorId;
- // localStorageSet(LOCAL_VISTOR_ID,bfp);
- // global.BFP=bfp;
- // }
- // }
- // catch (err){
- // console.log(err);
- // }
- return bfp;
- }
- }
|