From d556a76faf46fc1a8c988563573653074204371b Mon Sep 17 00:00:00 2001 From: Peter Pan Date: Fri, 29 Jan 2021 16:59:06 +0800 Subject: [PATCH] fix: selected model missing when switch between pages (#922) --- .../core/src/components/Loader/RunList.tsx | 4 ++-- frontend/packages/core/src/pages/graph.tsx | 17 +++++++++++++---- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/frontend/packages/core/src/components/Loader/RunList.tsx b/frontend/packages/core/src/components/Loader/RunList.tsx index 4ce412bf..fab31cea 100644 --- a/frontend/packages/core/src/components/Loader/RunList.tsx +++ b/frontend/packages/core/src/components/Loader/RunList.tsx @@ -22,11 +22,11 @@ const RunList: FunctionComponent<{count?: number}> = ({count}) => { return ( {Array.from({length: count ?? 2}).map((_, i) => ( - <> + - + ))} ); diff --git a/frontend/packages/core/src/pages/graph.tsx b/frontend/packages/core/src/pages/graph.tsx index 7efdd1e3..b8b9fb1e 100644 --- a/frontend/packages/core/src/pages/graph.tsx +++ b/frontend/packages/core/src/pages/graph.tsx @@ -94,6 +94,13 @@ const Graph: FunctionComponent = () => { const graph = useRef(null); const file = useRef(null); const [files, setFiles] = useState(storeModel); + const setModelFile = useCallback( + (f: FileList | File[]) => { + storeDispatch(actions.graph.setModel(f)); + setFiles(f); + }, + [storeDispatch] + ); const onClickFile = useCallback(() => { if (file.current) { file.current.value = ''; @@ -104,11 +111,10 @@ const Graph: FunctionComponent = () => { (e: React.ChangeEvent) => { const target = e.target; if (target && target.files && target.files.length) { - storeDispatch(actions.graph.setModel(target.files)); - setFiles(target.files); + setModelFile(target.files); } }, - [storeDispatch] + [setModelFile] ); const {data, loading} = useRequest(files ? null : '/graph/graph'); @@ -280,7 +286,10 @@ const Graph: FunctionComponent = () => { nodeDocumentation ]); - const uploader = useMemo(() => , [onClickFile]); + const uploader = useMemo(() => , [ + onClickFile, + setModelFile + ]); return ( <> -- GitLab