disableKeyboardA11y now correctly prevents escape key presses

This commit is contained in:
peterkogo
2024-02-21 08:27:50 +01:00
parent 20e2d3d2ce
commit 62bfc7acc6
4 changed files with 10 additions and 7 deletions
@@ -34,6 +34,7 @@ export function EdgeWrapper<EdgeType extends Edge = Edge>({
edgeTypes,
noPanClassName,
onError,
disableKeyboardA11y,
}: EdgeWrapperProps<EdgeType>): JSX.Element | null {
let edge = useStore((s) => s.edgeLookup.get(id)!) as EdgeType;
const defaultEdgeOptions = useStore((s) => s.defaultEdgeOptions);
@@ -160,7 +161,7 @@ export function EdgeWrapper<EdgeType extends Edge = Edge>({
: undefined;
const onKeyDown = (event: KeyboardEvent) => {
if (elementSelectionKeys.includes(event.key) && isSelectable) {
if (!disableKeyboardA11y && elementSelectionKeys.includes(event.key) && isSelectable) {
const { unselectNodesAndEdges, addSelectedEdges } = store.getState();
const unselect = event.key === 'Escape';
@@ -178,6 +178,10 @@ export function NodeWrapper<NodeType extends Node>({
return;
}
if (disableKeyboardA11y) {
return;
}
if (elementSelectionKeys.includes(event.key) && isSelectable) {
const unselect = event.key === 'Escape';
@@ -187,12 +191,7 @@ export function NodeWrapper<NodeType extends Node>({
unselect,
nodeRef,
});
} else if (
!disableKeyboardA11y &&
isDraggable &&
node.selected &&
Object.prototype.hasOwnProperty.call(arrowKeyDiffs, event.key)
) {
} else if (isDraggable && node.selected && Object.prototype.hasOwnProperty.call(arrowKeyDiffs, event.key)) {
store.setState({
ariaLiveMessage: `Moved selected node ${event.key
.replace('Arrow', '')
@@ -56,6 +56,7 @@ function EdgeRendererComponent<EdgeType extends Edge = Edge>({
onEdgeDoubleClick,
onEdgeUpdateStart,
onEdgeUpdateEnd,
disableKeyboardA11y,
}: EdgeRendererProps<EdgeType>) {
const { edgesFocusable, edgesUpdatable, elementsSelectable, onError } = useStore(selector, shallow);
const edgeIds = useVisibleEdgeIds(onlyRenderVisibleElements);
@@ -86,6 +87,7 @@ function EdgeRendererComponent<EdgeType extends Edge = Edge>({
rfId={rfId}
onError={onError}
edgeTypes={edgeTypes}
disableKeyboardA11y={disableKeyboardA11y}
/>
);
})}
+1
View File
@@ -83,6 +83,7 @@ export type EdgeWrapperProps<EdgeType extends Edge = Edge> = {
rfId?: string;
edgeTypes?: EdgeTypes;
onError?: OnError;
disableKeyboardA11y?: boolean;
};
export type DefaultEdgeOptions = DefaultEdgeOptionsBase<Edge>;