diff --git a/.changeset/breezy-ghosts-pay.md b/.changeset/breezy-ghosts-pay.md new file mode 100644 index 00000000000..ba1dd5a7b24 --- /dev/null +++ b/.changeset/breezy-ghosts-pay.md @@ -0,0 +1,5 @@ +--- +'@shopify/polaris': patch +--- + +Fixed edges of disabled `IndexTable.Row` `Checkbox` triggering selection diff --git a/polaris-react/src/components/IndexTable/components/Row/Row.tsx b/polaris-react/src/components/IndexTable/components/Row/Row.tsx index 1bc75a0baed..937dcd9f1f9 100644 --- a/polaris-react/src/components/IndexTable/components/Row/Row.tsx +++ b/polaris-react/src/components/IndexTable/components/Row/Row.tsx @@ -71,7 +71,13 @@ export const Row = memo(function Row({ event.stopPropagation(); let selectionType = SelectionType.Single; - if (('key' in event && event.key !== ' ') || !onSelectionChange) return; + if ( + disabled || + !selectable || + ('key' in event && event.key !== ' ') || + !onSelectionChange + ) + return; if (event.nativeEvent.shiftKey) { selectionType = SelectionType.Multi; @@ -82,7 +88,15 @@ export const Row = memo(function Row({ const selection: string | Range = selectionRange ?? id; onSelectionChange(selectionType, !selected, selection, position); }, - [id, onSelectionChange, selected, selectionRange, position], + [ + id, + onSelectionChange, + selected, + selectionRange, + position, + disabled, + selectable, + ], ); const contextValue = useMemo(