Skip to content

Commit 5bd580c

Browse files
fix: treeView component not allowing all letters in input (#19047)
* fix: treeView component not allowing all letters in inout * fix: added test story * fix: remmoved test story
1 parent 1651ed2 commit 5bd580c

File tree

3 files changed

+26
-10
lines changed

3 files changed

+26
-10
lines changed

packages/react/src/components/TreeView/TreeView-test.js

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -540,4 +540,28 @@ describe('TreeView', () => {
540540
expect(node2).toHaveClass(`${prefix}--tree-node--selected`);
541541
expect(node3).not.toHaveClass(`${prefix}--tree-node--selected`);
542542
});
543+
it('should select nodes correctly when ctrl+A is pressed', async () => {
544+
const user = userEvent.setup();
545+
546+
render(
547+
<TreeView multiselect label="Tree View">
548+
<TreeNode data-testid="Node 1" label="Node 1" />
549+
<TreeNode data-testid="Node 2" label="Node 2" />
550+
<TreeNode data-testid="Node 3" label="Node 3" />
551+
</TreeView>
552+
);
553+
554+
const node1 = screen.getByTestId('Node 1');
555+
const node2 = screen.getByTestId('Node 2');
556+
const node3 = screen.getByTestId('Node 3');
557+
558+
await user.click(node1);
559+
expect(node1).toHaveFocus();
560+
561+
await user.keyboard('[ControlLeft>]A');
562+
563+
expect(node1).toHaveClass(`${prefix}--tree-node--selected`);
564+
expect(node2).toHaveClass(`${prefix}--tree-node--selected`);
565+
expect(node3).toHaveClass(`${prefix}--tree-node--selected`);
566+
});
543567
});

packages/react/src/components/TreeView/TreeView.tsx

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -197,16 +197,7 @@ const TreeView: TreeViewComponent = ({
197197

198198
function handleKeyDown(event) {
199199
event.stopPropagation();
200-
if (
201-
matches(event, [
202-
keys.ArrowUp,
203-
keys.ArrowDown,
204-
keys.Home,
205-
keys.End,
206-
// @ts-ignore - `matches` doesn't like the object syntax without missing properties
207-
{ code: 'KeyA' },
208-
])
209-
) {
200+
if (matches(event, [keys.ArrowUp, keys.ArrowDown, keys.Home, keys.End])) {
210201
event.preventDefault();
211202
}
212203

packages/react/src/components/TreeView/Treeview.stories.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import { default as TreeView, TreeNode } from './';
1212
import { Button } from '../Button/index';
1313
import mdx from './TreeView.mdx';
1414
import './story.scss';
15+
import TextInput from '../TextInput';
1516

1617
function renderTree({ nodes, expanded, withIcons = false, withLinks = false }) {
1718
if (!nodes) {

0 commit comments

Comments
 (0)