chore(a11y): pass labelConfig state through store updater

This commit is contained in:
Abbey Yacoe
2025-05-21 12:21:59 +02:00
parent ee8709b5fb
commit 54fc3c0717
7 changed files with 6 additions and 32 deletions
+1 -19
View File
@@ -1,4 +1,4 @@
import { MouseEvent, useMemo, useEffect } from 'react';
import { MouseEvent } from 'react';
import {
ReactFlow,
MiniMap,
@@ -9,8 +9,6 @@ import {
Node,
Edge,
OnNodeDrag,
FitViewOptions,
useStore,
} from '@xyflow/react';
const onNodeDrag: OnNodeDrag = (_, node: Node, nodes: Node[]) => console.log('drag', node, nodes);
@@ -46,22 +44,6 @@ const initialEdges: Edge[] = [
];
const A11y = () => {
const labelConfig = useStore((state) => state.labelConfig);
const updateLabelConfig = useStore((state) => state.updateLabelConfig);
useEffect(() => {
console.log('Label Config:', labelConfig);
}, [labelConfig]);
useEffect(() => {
console.log('Updating labelConfig...');
updateLabelConfig({
'a11yDescription.node.default': 'Updated Node Desc.',
'a11yDescription.node.keyboardDisabled': 'Updated Keyboard Desc.',
'a11yDescription.edge.default': 'Updated Edge Desc.',
});
}, [updateLabelConfig]);
return (
<ReactFlow
defaultNodes={initialNodes}
@@ -68,6 +68,7 @@ const reactFlowFieldsToTrack = [
'debug',
'autoPanSpeed',
'paneClickDistance',
'labelConfig',
] as const;
type ReactFlowFieldsToTrack = (typeof reactFlowFieldsToTrack)[number];
@@ -306,6 +306,7 @@ function ReactFlow<NodeType extends Node = Node, EdgeType extends Edge = Edge>(
onBeforeDelete={onBeforeDelete}
paneClickDistance={paneClickDistance}
debug={debug}
labelConfig={labelConfig}
/>
<SelectionListener<NodeType, EdgeType> onSelectionChange={onSelectionChange} />
{children}
-5
View File
@@ -371,11 +371,6 @@ const createStore = ({
},
reset: () => set({ ...getInitialState() }),
updateLabelConfig: (newLabelConfig: Partial<LabelConfig>) => {
set((state) => ({
labelConfig: { ...state.labelConfig, ...newLabelConfig },
}));
},
};
}, Object.is);
+1 -2
View File
@@ -148,7 +148,7 @@ export type ReactFlowStore<NodeType extends Node = Node, EdgeType extends Edge =
lib: string;
debug: boolean;
labelConfig: Required<LabelConfig>;
labelConfig: LabelConfig;
};
export type ReactFlowActions<NodeType extends Node, EdgeType extends Edge> = {
@@ -172,7 +172,6 @@ export type ReactFlowActions<NodeType extends Node, EdgeType extends Edge> = {
triggerEdgeChanges: (changes: EdgeChange<EdgeType>[]) => void;
panBy: PanBy;
setPaneClickDistance: (distance: number) => void;
updateLabelConfig: (newLabelConfig: Partial<LabelConfig>) => void;
};
export type ReactFlowState<NodeType extends Node = Node, EdgeType extends Edge = Edge> = ReactFlowStore<
+2
View File
@@ -45,3 +45,5 @@ export const defaultLabelConfig = {
'a11yDescription.edge.default':
'Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.',
};
export type LabelConfig = Partial<typeof defaultLabelConfig>;
-6
View File
@@ -313,9 +313,3 @@ export type OnBeforeDeleteBase<NodeType extends NodeBase = NodeBase, EdgeType ex
nodes: NodeType[];
edges: EdgeType[];
}) => Promise<boolean | { nodes: NodeType[]; edges: EdgeType[] }>;
export type LabelConfig = {
'a11yDescription.node.default'?: string;
'a11yDescription.node.keyboardDisabled'?: string;
'a11yDescription.edge.default'?: string;
};