| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- import React, {useMemo, useState} from 'react';
- import Popup from "@components/Popup";
- import { useNavigate } from 'react-router-dom';
- import {ROUTE_TYPE_FULL, ROUTE_TYPE_IN, ROUTE_TYPE_POP} from "@constants/routes";
- const i18n=global.i18n;
- const RouteWrapper = (props) => {
- const { Comp, route} = props;
- const navigate = useNavigate()
- /** useMemo 缓存query,避免每次生成生的query */
- const renderIn=()=>{
- let isexit=false;
- if (Comp!=null)isexit=true;
- return (
- <>
- {
- isexit?<Comp />:<></>
- }
- </>
- );
- }
- const handleClose = () => {
- navigate(-1);
- }
- const renderPop=()=>{
- let comp=(<></>);
- if (Comp!=null)comp=Comp;
- return(
- <Popup open={true} onClose={handleClose}>
- <div className="pop_content">
- {comp}
- </div>
- </Popup>
- )
- }
- const renderComp=()=>{
- let comp=(<></>);
- if (route.type===ROUTE_TYPE_FULL||route.type===ROUTE_TYPE_IN){
- comp=renderIn();
- }
- else if (route.type===ROUTE_TYPE_POP){
- comp=renderPop();
- }
- return comp;
- }
- return (
- renderComp()
- );
- };
- export default RouteWrapper;
|