Jelajahi Sumber

顶部安装栏加开关

zhejiushizhuce 1 tahun lalu
induk
melakukan
f4d924c55b

+ 8 - 2
src/features/mainSlice.js

@@ -261,6 +261,7 @@ const reducerRoutes=(state,action)=>{
         //sport 配置
         let bbConf=null;
         let popFirst=0;
+        let showInstall=0;
         if (conf){
             if (!!conf.hall)hallServerUrl=conf.hall;
             if (!!conf.DOLLAR)global.DOLLAR=conf.DOLLAR;
@@ -292,10 +293,11 @@ const reducerRoutes=(state,action)=>{
             if (!!conf.loginOpen)loginOpen=conf.loginOpen;
             if (!!conf.registerOpen)registerOpen=conf.registerOpen;
             if (!!conf.popFirst)popFirst=conf.popFirst;
+            if (!!conf.showInstall)showInstall=conf.showInstall;
         }
         //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,blocks,...generData,isLogin:isLogin,userInfo,hallServerUrl,promoteInstall,guest,upgradeBonus,popWheel,popBindPhone,firstBonus,openRelief,bbConf,accountLogin,area,loginOpen,registerOpen,popFirst,showInstall});
         // 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});
     }
 }
@@ -636,7 +638,8 @@ export const Main=createSlice({
         area:0,
         loginOpen:"",
         registerOpen:"",
-        popFirst:0
+        popFirst:0,
+        showInstall:0
     },
     reducers: {
         logout:(state, action)=>{
@@ -986,6 +989,9 @@ export const getRegisterOpen=(state)=>{
 export const getPopFirst=(state)=>{
     return state.main.popFirst;
 }
+export const getShowInstall=(state)=>{
+    return state.main.showInstall;
+}
 //数据获取
 export default Main.reducer;
 

+ 16 - 3
src/layout/Navbar/index.jsx

@@ -24,7 +24,15 @@ import {useSpring} from "@react-spring/core";
 import {useWindowSize} from "react-use";
 import ResizeObserver from "resize-observer-polyfill";
 import {useSelector} from "react-redux";
-import {allTopNavs, getRoute, getRouteChain, getUserInfo, isLogin, isLogined} from "@features/mainSlice";
+import {
+    allTopNavs,
+    getRoute,
+    getRouteChain,
+    getShowInstall,
+    getUserInfo,
+    isLogin,
+    isLogined
+} from "@features/mainSlice";
 import LazyImage from "@components/LazyImage";
 import {numFormatter, sleep} from "@utils/helpers";
 import {ROUTE_PATH} from "@constants/routes";
@@ -257,6 +265,7 @@ const PageHeader = () => {
     let lastscroll=0;
     const {open} = useSidebar();
     const navstyle=open?styles.nav_open:"";
+    const isShowInstall=useSelector(getShowInstall);
 
     const checkNavActive=(lv)=>{
         if (currRoute&&currRoute.lv)return currRoute.lv.startsWith(lv);
@@ -368,6 +377,10 @@ const PageHeader = () => {
     //     }
     // }
     const checkInstall=(l)=>{
+        //route控制
+        if (!isShowInstall){
+            return false;
+        }
         if (!installOpen){
             return false;
         }
@@ -463,7 +476,7 @@ const PageHeader = () => {
         }
     }
     const checkInstallOpen=()=>{
-        if (installOpen){
+        if (installOpen&&isShowInstall){
             checkProgressier();
         }
         else
@@ -515,7 +528,7 @@ const PageHeader = () => {
         return ()=>{
             stopListener();
         }
-    },[installOpen])
+    },[installOpen,isShowInstall])
     const headerAni=useSpring({
         from: {transform: 'translateY(-100%) translateZ(0px)'},
         transform:showMHeader?'translateY(0%) translateZ(0px)':'translateY(-100%) translateZ(0px)',

+ 11 - 1
src/widgets/UserSettings/index.jsx

@@ -1,7 +1,15 @@
 import styles from './styles.module.scss';
 import {useDispatch, useSelector} from "react-redux";
 import {ReactComponent as EmptyAvatar} from '@assets/avatar_empty.svg';
-import {getArea, getIsGuest, getLogoutStatus, getUpgradeBonus, getUserInfo, isLogined} from "@features/mainSlice";
+import {
+    getArea,
+    getIsGuest,
+    getLogoutStatus,
+    getShowInstall,
+    getUpgradeBonus,
+    getUserInfo,
+    isLogined
+} from "@features/mainSlice";
 import Spring from "@components/Spring";
 import {useNavigate} from "react-router-dom";
 import {ROUTE_PATH} from "@constants/routes";
@@ -44,6 +52,7 @@ const UserSettings=()=>{
     const guest=useSelector(getIsGuest);
     const upgradBonus=useSelector(getUpgradeBonus);
     const area=useSelector(getArea);
+    const isShowInstall=useSelector(getShowInstall);
     const renderEmpty=()=>{
         return (
             <div className={styles.wrap_item}>
@@ -305,6 +314,7 @@ const UserSettings=()=>{
         )
     }
     const renderItemInstallBanner=()=>{
+        if (!isShowInstall)return ;
         return (
             <div className={styles.action_item}>
                 <div className={styles.action_left}>