| @@ -44,7 +44,7 @@ export const useCacheState = () => { | |||||
| const key = 'pagecache:' + pathname; | const key = 'pagecache:' + pathname; | ||||
| const setCacheState = useCallback( | const setCacheState = useCallback( | ||||
| (state: any) => { | |||||
| (state?: any) => { | |||||
| if (state) { | if (state) { | ||||
| pageKeys.push(key); | pageKeys.push(key); | ||||
| sessionStorage.setItem(key, JSON.stringify(state)); | sessionStorage.setItem(key, JSON.stringify(state)); | ||||
| @@ -11,7 +11,7 @@ import SubAreaTitle from '@/components/SubAreaTitle'; | |||||
| import { CommonTabKeys } from '@/enums'; | import { CommonTabKeys } from '@/enums'; | ||||
| import { createMirrorReq } from '@/services/mirror'; | import { createMirrorReq } from '@/services/mirror'; | ||||
| import { to } from '@/utils/promise'; | import { to } from '@/utils/promise'; | ||||
| import { mirrorNameKey } from '@/utils/sessionKeys'; | |||||
| import { getSessionItemThenRemove, mirrorNameKey } from '@/utils/sessionStorage'; | |||||
| import { getFileListFromEvent } from '@/utils/ui'; | import { getFileListFromEvent } from '@/utils/ui'; | ||||
| import { useNavigate } from '@umijs/max'; | import { useNavigate } from '@umijs/max'; | ||||
| import { Button, Col, Form, Input, Row, Upload, UploadFile, message, type UploadProps } from 'antd'; | import { Button, Col, Form, Input, Row, Upload, UploadFile, message, type UploadProps } from 'antd'; | ||||
| @@ -56,14 +56,11 @@ function MirrorCreate() { | |||||
| }; | }; | ||||
| useEffect(() => { | useEffect(() => { | ||||
| const name = sessionStorage.getItem(mirrorNameKey); | |||||
| const name = getSessionItemThenRemove(mirrorNameKey); | |||||
| if (name) { | if (name) { | ||||
| form.setFieldValue('name', name); | form.setFieldValue('name', name); | ||||
| setNameDisabled(true); | setNameDisabled(true); | ||||
| } | } | ||||
| return () => { | |||||
| sessionStorage.removeItem(mirrorNameKey); | |||||
| }; | |||||
| }, []); | }, []); | ||||
| // 创建公网、本地镜像 | // 创建公网、本地镜像 | ||||
| @@ -17,7 +17,7 @@ import { | |||||
| } from '@/services/mirror'; | } from '@/services/mirror'; | ||||
| import themes from '@/styles/theme.less'; | import themes from '@/styles/theme.less'; | ||||
| import { to } from '@/utils/promise'; | import { to } from '@/utils/promise'; | ||||
| import { mirrorNameKey } from '@/utils/sessionKeys'; | |||||
| import { mirrorNameKey, setSessionStorageItem } from '@/utils/sessionStorage'; | |||||
| import { modalConfirm } from '@/utils/ui'; | import { modalConfirm } from '@/utils/ui'; | ||||
| import { useNavigate, useParams, useSearchParams } from '@umijs/max'; | import { useNavigate, useParams, useSearchParams } from '@umijs/max'; | ||||
| import { | import { | ||||
| @@ -149,7 +149,7 @@ function MirrorInfo() { | |||||
| const createMirrorVersion = () => { | const createMirrorVersion = () => { | ||||
| navigate(`/dataset/mirror/create`); | navigate(`/dataset/mirror/create`); | ||||
| sessionStorage.setItem(mirrorNameKey, mirrorInfo.name || ''); | |||||
| setSessionStorageItem(mirrorNameKey, mirrorInfo.name || ''); | |||||
| setCacheState({ | setCacheState({ | ||||
| pagination, | pagination, | ||||
| }); | }); | ||||
| @@ -1,2 +0,0 @@ | |||||
| // 用于新建镜像 | |||||
| export const mirrorNameKey = 'mirror-name'; | |||||
| @@ -0,0 +1,30 @@ | |||||
| // 用于新建镜像 | |||||
| export const mirrorNameKey = 'mirror-name'; | |||||
| export const getSessionStorageItem = (key: string, isObject: boolean = false) => { | |||||
| const jsonStr = sessionStorage.getItem(key); | |||||
| if (!isObject) { | |||||
| return jsonStr; | |||||
| } | |||||
| if (jsonStr) { | |||||
| try { | |||||
| return JSON.parse(jsonStr); | |||||
| } catch (error) { | |||||
| return undefined; | |||||
| } | |||||
| } | |||||
| return undefined; | |||||
| }; | |||||
| export const setSessionStorageItem = (key: string, state?: any, isObject: boolean = false) => { | |||||
| if (state) { | |||||
| sessionStorage.setItem(key, isObject ? JSON.stringify(state) : state); | |||||
| } | |||||
| }; | |||||
| // 获取之后就删除,多用于上一个页面传递数据到下一个页面 | |||||
| export const getSessionItemThenRemove = (key: string, isObject: boolean = false) => { | |||||
| const res = getSessionStorageItem(key, isObject); | |||||
| sessionStorage.removeItem(key); | |||||
| return res; | |||||
| }; | |||||