add hide/unhide buttons to example

This commit is contained in:
peterkogo
2025-09-02 11:45:08 +02:00
parent 62fd1e0d9d
commit 086b28e3a0
2 changed files with 64 additions and 38 deletions
+11 -1
View File
@@ -1,4 +1,4 @@
import { MouseEvent, useCallback } from 'react'; import { MouseEvent, useCallback, useState } from 'react';
import { import {
ReactFlow, ReactFlow,
MiniMap, MiniMap,
@@ -134,8 +134,13 @@ const BasicFlow = () => {
}); });
fitView(); fitView();
}; };
const [isHidden, setIsHidden] = useState(false);
const toggleVisibility = () => {
setIsHidden(!isHidden);
};
return ( return (
<>
<ReactFlow <ReactFlow
defaultNodes={initialNodes} defaultNodes={initialNodes}
defaultEdges={initialEdges} defaultEdges={initialEdges}
@@ -148,6 +153,7 @@ const BasicFlow = () => {
onSelectionDrag={printSelectionEvent('selection drag')} onSelectionDrag={printSelectionEvent('selection drag')}
onSelectionDragStop={printSelectionEvent('selection drag stop')} onSelectionDragStop={printSelectionEvent('selection drag stop')}
className="react-flow-basic-example" className="react-flow-basic-example"
style={{ display: isHidden ? 'none' : 'block' }}
minZoom={0.2} minZoom={0.2}
maxZoom={4} maxZoom={4}
fitView fitView
@@ -175,6 +181,10 @@ const BasicFlow = () => {
<button onClick={addNode}>addNode</button> <button onClick={addNode}>addNode</button>
</Panel> </Panel>
</ReactFlow> </ReactFlow>
<button onClick={toggleVisibility} style={{ position: 'absolute', zIndex: 10, right: 10, top: 100 }}>
{isHidden ? 'Show' : 'Hide'} Flow
</button>
</>
); );
}; };
@@ -155,6 +155,8 @@
// console.log(edges.map((edge) => ({ id: edge.id, selected: edge.selected }))); // console.log(edges.map((edge) => ({ id: edge.id, selected: edge.selected })));
edges.forEach((edge) => console.log({ id: edge.id, selected: edge.selected })); edges.forEach((edge) => console.log({ id: edge.id, selected: edge.selected }));
}); });
let hidden = $state(false);
</script> </script>
<!-- oninit={() => console.log('on init')} <!-- oninit={() => console.log('on init')}
@@ -197,6 +199,7 @@
}} --> }} -->
<SvelteFlow <SvelteFlow
style="display:{hidden ? 'none' : 'block'}"
bind:nodes bind:nodes
bind:edges bind:edges
{nodeTypes} {nodeTypes}
@@ -247,7 +250,20 @@
<InitTracker /> <InitTracker />
</SvelteFlow> </SvelteFlow>
<button
class="hide"
onclick={() => {
hidden = !hidden;
}}>Hide/Unhide</button
>
<style> <style>
.hide {
position: absolute;
top: 80px;
right: 15px;
}
:root { :root {
/* --background-color: #ffffdd; */ /* --background-color: #ffffdd; */
--background-pattern-color: #5050ff; --background-pattern-color: #5050ff;