diff --git a/stories/Undo.stories.tsx b/stories/Undo.stories.tsx index 4ec547c1..39c95ad5 100644 --- a/stories/Undo.stories.tsx +++ b/stories/Undo.stories.tsx @@ -47,12 +47,9 @@ export default { } } as Meta; -type PropsWithChildrenMock = { - initialHistory?: { nodes: NodeData[]; edges: EdgeData[] }[]; -}; +type Props = {} -const Template: Story = (props) => { - const { initialHistory } = props; +export const Simple: Story = () => { const [nodes, setNodes] = useState([ { id: '1', @@ -84,7 +81,6 @@ const Template: Story = (props) => { const { undo, redo, canUndo, canRedo } = useUndo({ nodes, edges, - initialHistory, onUndoRedo: (state: UndoRedoEvent) => { console.log('Undo / Redo', state); setEdges(state.edges); @@ -133,12 +129,8 @@ const Template: Story = (props) => { ); }; -export const Simple: Story = Template.bind({}); -Simple.args = {}; - -export const WithInitialHistory: Story = Template.bind({}); -WithInitialHistory.args = { - initialHistory: [ +export const WithInitialHistory: Story = () => { + const initialHistory: { nodes: NodeData[]; edges: EdgeData[] }[] = [ { nodes: [], edges: [] @@ -199,6 +191,83 @@ WithInitialHistory.args = { } ] } - ] -}; + ]; + const [nodes, setNodes] = useState([ + { + id: '1', + text: 'Node 1' + }, + { + id: '2', + text: 'Node 2' + }, + { + id: '3', + text: 'Node 3' + } + ]); + + const [edges, setEdges] = useState([ + { + id: '1-2', + from: '1', + to: '2' + }, + { + id: '1-3', + from: '1', + to: '3' + } + ]); + + const { undo, redo, canUndo, canRedo } = useUndo({ + nodes, + edges, + initialHistory, + onUndoRedo: (state: UndoRedoEvent) => { + console.log('Undo / Redo', state); + setEdges(state.edges); + setNodes(state.nodes); + } + }); + + const addNode = () => { + setNodes([ + ...nodes, + { + id: `a${Math.random()}`, + text: `Node ${Math.random()}` + } + ]); + }; + return ( +
+ + + + console.log('Layout', layout)} + /> +
+ ); +};