From 58993c2a4626d60aa800a8e29aa0fbe4c8b358a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Podsiad=C5=82y?= Date: Fri, 9 Feb 2024 10:29:59 +0100 Subject: [PATCH] feat: store hidden nodes separetly --- packages/frontend/src/App.tsx | 26 +++------------ packages/frontend/src/api/SimpleNode.ts | 1 - packages/frontend/src/store/State.ts | 1 + .../frontend/src/store/actions/Actions.ts | 2 ++ packages/frontend/src/store/store.ts | 11 +++++++ packages/frontend/src/view/NodeView.tsx | 7 +--- packages/frontend/src/view/Viewport.tsx | 32 +++++++++++-------- 7 files changed, 39 insertions(+), 41 deletions(-) diff --git a/packages/frontend/src/App.tsx b/packages/frontend/src/App.tsx index d5dc1c6..e8b5a8e 100644 --- a/packages/frontend/src/App.tsx +++ b/packages/frontend/src/App.tsx @@ -22,8 +22,10 @@ import { Viewport } from './view/Viewport' export function App() { // load the initial nodes from the store that gets rehydrated from local storage at startup const initialNodes = useStore((state) => state.nodes) + const hiddenNodesIds = useStore((state) => state.hiddenNodesIds) const projectId = useStore((state) => state.projectId) const updateNodeLocations = useStore((state) => state.updateNodeLocations) + const setHiddenNodes = useStore((state) => state.setHiddenNodes) const setProjectId = useStore((state) => state.setProjectId) const [nodes, setNodes] = useState( initialNodes.map(nodeToSimpleNode), @@ -48,6 +50,7 @@ export function App() { function clear() { setNodes([]) + setHiddenNodes(() => []) } function save() { @@ -74,26 +77,8 @@ export function App() { setNodes((nodes) => merge(nodes, result)) } - function hideNode(id: string) { - setNodes((nodes) => - nodes.map((node) => - node.id === id - ? { - ...node, - hidden: true, - } - : node, - ), - ) - } - function revealAllNodes() { - setNodes((nodes) => - nodes.map((node) => ({ - ...node, - hidden: false, - })), - ) + setHiddenNodes(() => []) } async function loadFromFile(file: File) { @@ -165,7 +150,6 @@ export function App() { loading={loading} // eslint-disable-next-line @typescript-eslint/no-misused-promises onDiscover={discoverContract} - onHideNode={hideNode} />
@@ -193,7 +177,7 @@ export function App() { onClick={revealAllNodes} className="rounded bg-blue-400 px-4 py-2 font-bold text-white hover:bg-blue-700" > - Reveal all ({nodes.filter((n) => n.hidden).length}) + Reveal all ({hiddenNodesIds.length})