From 811f30edbb6c59a6d63ae890e7603d8500a776d2 Mon Sep 17 00:00:00 2001 From: Austin Sullivan Date: Fri, 21 Jul 2023 10:41:42 -0400 Subject: [PATCH 1/2] docs(Tabs): converted tabs & tables demo to use inputs for selection --- .../src/demos/examples/Tabs/TabsAndTable.tsx | 56 ++++++------------- 1 file changed, 17 insertions(+), 39 deletions(-) diff --git a/packages/react-core/src/demos/examples/Tabs/TabsAndTable.tsx b/packages/react-core/src/demos/examples/Tabs/TabsAndTable.tsx index 956ac4c99f6..8b8787a272e 100644 --- a/packages/react-core/src/demos/examples/Tabs/TabsAndTable.tsx +++ b/packages/react-core/src/demos/examples/Tabs/TabsAndTable.tsx @@ -94,20 +94,12 @@ export const TablesAndTabs = () => { lastCommit: 'Last commit' }; - const [selectedRepoNames, setSelectedRepoNames] = React.useState([]); - const setRepoSelected = (event: React.FormEvent, repo: Repository, isSelecting = true) => { - setSelectedRepoNames((prevSelected) => { - const otherSelectedRepoNames = prevSelected.filter((r) => r !== repo.name); - return isSelecting ? [...otherSelectedRepoNames, repo.name] : otherSelectedRepoNames; - }); - event.stopPropagation(); + const [selectedRepoName, setSelectedRepoName] = React.useState(repositories[0].name); + const isRepoSelected = (repo: Repository) => repo.name === selectedRepoName; + const setRepoSelected = (_event: React.FormEvent, repo: Repository) => { + setSelectedRepoName(repo.name); + setIsExpanded(true); }; - const onSelectAll = (isSelecting = true) => setSelectedRepoNames(isSelecting ? repositories.map((r) => r.name) : []); - const allRowsSelected = selectedRepoNames.length === repositories.length; - const isRepoSelected = (repo: Repository) => selectedRepoNames.includes(repo.name); - - const [rowClicked, setRowClicked] = React.useState('Node 1'); - const isRowClicked = (repo: Repository) => rowClicked === repo.name; const defaultActions: IAction[] = [ { @@ -167,6 +159,11 @@ export const TablesAndTabs = () => { } }; + const handleDrawerClose = () => { + setIsExpanded(false); + setSelectedRepoName(''); + }; + const customActionsToggle = (props: CustomActionsToggleProps, toggleName: string) => ( { - @@ -249,23 +241,14 @@ export const TablesAndTabs = () => { {repositories.map((repo, rowIndex) => ( - { - if ((event?.target as HTMLInputElement).type !== 'checkbox') { - setRowClicked(rowClicked === repo.name ? '' : repo.name); - setIsExpanded(!isRowClicked(repo)); - } - }} - isHoverable - isRowSelected={repo.name === rowClicked} - > +
onSelectAll(isSelecting), - isSelected: allRowsSelected - }} - /> + {columnNames.name} {columnNames.branches} {columnNames.prs}
setRepoSelected(event, repo, isSelected), - isSelected: isRepoSelected(repo) + onSelect: (event) => setRepoSelected(event, repo), + isSelected: isRepoSelected(repo), + variant: 'radio' }} /> @@ -316,17 +299,12 @@ export const TablesAndTabs = () => { - { - setRowClicked(''); - setIsExpanded(false); - }} - /> + - {rowClicked} + {selectedRepoName} From 77450567c7f67c4857388912ba7e741d6f535345 Mon Sep 17 00:00:00 2001 From: Austin Sullivan Date: Tue, 1 Aug 2023 10:48:28 -0400 Subject: [PATCH 2/2] docs(Tabs): updated links to not refresh the page to prevent confusion --- .../react-core/src/demos/examples/Tabs/TabsAndTable.tsx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/react-core/src/demos/examples/Tabs/TabsAndTable.tsx b/packages/react-core/src/demos/examples/Tabs/TabsAndTable.tsx index 8b8787a272e..0392b32e1af 100644 --- a/packages/react-core/src/demos/examples/Tabs/TabsAndTable.tsx +++ b/packages/react-core/src/demos/examples/Tabs/TabsAndTable.tsx @@ -147,8 +147,6 @@ export const TablesAndTabs = () => { const shouldFocus = [ArrowDown, ArrowUp, Enter, Space].includes(event.key); if (shouldToggle) { - event.preventDefault(); - event.stopPropagation(); onToggle(event); } @@ -254,7 +252,8 @@ export const TablesAndTabs = () => { {repo.name}
- siemur/test-space + {/** Preventing default behavior for demo purposes only */} + event.preventDefault()} href="#">siemur/test-space
@@ -308,7 +307,8 @@ export const TablesAndTabs = () => { - siemur/test-space + {/** Preventing default behavior for demo purposes only */} + event.preventDefault()} href="#">siemur/test-space