reintroduce useful rerender state

This commit is contained in:
Simon Knott 2024-11-04 17:27:28 +01:00
parent b62c5694d4
commit 01e52f72d2
No known key found for this signature in database
GPG key ID: 8CEDC00028084AEC

View file

@ -33,6 +33,7 @@ export const TraceView: React.FC<{
pathSeparator: string, pathSeparator: string,
}> = ({ item, rootDir, onOpenExternally, revealSource, pathSeparator }) => { }> = ({ item, rootDir, onOpenExternally, revealSource, pathSeparator }) => {
const [model, setModel] = React.useState<{ model: MultiTraceModel, isLive: boolean } | undefined>(); const [model, setModel] = React.useState<{ model: MultiTraceModel, isLive: boolean } | undefined>();
const [rerender, setRerender] = React.useState(0);
const pollTimer = React.useRef<NodeJS.Timeout | null>(null); const pollTimer = React.useRef<NodeJS.Timeout | null>(null);
const { outputDir } = React.useMemo(() => { const { outputDir } = React.useMemo(() => {
@ -79,13 +80,15 @@ export const TraceView: React.FC<{
setModel({ model, isLive: true }); setModel({ model, isLive: true });
} catch { } catch {
setModel(undefined); setModel(undefined);
} finally {
setRerender(rerender + 1);
} }
}, 500); }, 500);
return () => { return () => {
if (pollTimer.current) if (pollTimer.current)
clearTimeout(pollTimer.current); clearTimeout(pollTimer.current);
}; };
}, [outputDir, item, setModel, pathSeparator]); }, [outputDir, item, setModel, rerender, setRerender, pathSeparator]);
return <Workbench return <Workbench
key='workbench' key='workbench'