Skip to content

Commit 92f456f

Browse files
committed
extend story to test dimensions reset
1 parent 61dfc99 commit 92f456f

1 file changed

Lines changed: 45 additions & 9 deletions

File tree

src/extensions/react-flow/nodes/stories/NodeContent.stories.tsx

Lines changed: 45 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -103,11 +103,12 @@ export default {
103103
},
104104
intent: {
105105
control: "select",
106-
options: { "Not set": undefined, ...Definitions },
106+
options: [ undefined, ...Object.values(Definitions) ],
107107
},
108108
highlightColor: {
109109
control: "select",
110-
options: {
110+
options: [ "Not set", "Default", "Alternate", "Default + alternate", "Custom (red)", "Default + Custom (red)", "Custom (green) + alternate", "Custom (purple) + custom (yellow)"],
111+
mapping: {
111112
"Not set": undefined,
112113
Default: "default",
113114
Alternate: "alternate",
@@ -118,8 +119,8 @@ export default {
118119
"Custom (purple) + custom (yellow)": ["purple", "yellow"],
119120
},
120121
},
121-
content: { control: "none" },
122-
footerContent: { control: "none" },
122+
content: { control: false },
123+
footerContent: { control: false },
123124
isConnectable: { table: { disable: true } },
124125
targetPosition: { table: { disable: true } },
125126
sourcePosition: { table: { disable: true } },
@@ -128,17 +129,52 @@ export default {
128129
},
129130
} as Meta<typeof NodeContent>;
130131

132+
let forcedUpdateKey = 0; // @see https://github.com/storybookjs/storybook/issues/13375#issuecomment-1291011856
131133
const NodeContentExample = (args: any) => {
132134
const [reactflowInstance, setReactflowInstance] = useState(null);
133135
const [elements, setElements] = useState([] as Elements);
134136

137+
const defaultElement = {
138+
id: "example-1",
139+
type: "default",
140+
data: args,
141+
position: { x: 50, y: 50 },
142+
};
143+
135144
useEffect(() => {
145+
const sizeReset = {}
146+
if (args.resizeMaxDimensions && args.resizeDirections) {
147+
sizeReset["onNodeResize"] = (dimensions) => {
148+
// eslint-disable-next-line no-console
149+
console.log("call onNodeResize method")
150+
if (args.onNodeResize) {
151+
args.onNodeResize(dimensions);
152+
}
153+
if (dimensions?.width || dimensions?.height) {
154+
sizeReset["menuButtons"] = <IconButton name="item-reset" onClick={() => {
155+
// eslint-disable-next-line no-console
156+
console.log("reset size");
157+
setElements([
158+
{
159+
...defaultElement,
160+
data: {...defaultElement.data, ...sizeReset, ...{ nodeDimensions: {} }},
161+
},
162+
] as Elements);
163+
164+
}}/>;
165+
}
166+
setElements([
167+
{
168+
...defaultElement,
169+
data: {...defaultElement.data, ...sizeReset, ...{ nodeDimensions: dimensions }},
170+
},
171+
] as Elements);
172+
}
173+
}
136174
setElements([
137175
{
138-
id: "example-1",
139-
type: "default",
140-
data: args,
141-
position: { x: 50, y: 50 },
176+
...defaultElement,
177+
data: {...defaultElement.data, ...sizeReset},
142178
},
143179
] as Elements);
144180
}, [args]);
@@ -165,7 +201,7 @@ const NodeContentExample = (args: any) => {
165201
);
166202
};
167203

168-
const Template: StoryFn<typeof NodeContent> = (args) => <NodeContentExample {...args} /*some comment*/ />;
204+
const Template: StoryFn<typeof NodeContent> = (args) => <NodeContentExample {...args} /*some comment*/ key={++forcedUpdateKey} />;
169205

170206
export const Default = Template.bind({});
171207
Default.args = {

0 commit comments

Comments
 (0)