From be1856a3a2b3ec2430412683fead58dbea14bcec Mon Sep 17 00:00:00 2001 From: Miguel Fonseca <150562+mcsf@users.noreply.github.com> Date: Thu, 21 Mar 2024 15:25:42 +0000 Subject: [PATCH] Disable click-to-select on touch devices (use onTouchStart) --- packages/dataviews/src/view-table.js | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/packages/dataviews/src/view-table.js b/packages/dataviews/src/view-table.js index dec2c30ff2b808..7e2e4796da2747 100644 --- a/packages/dataviews/src/view-table.js +++ b/packages/dataviews/src/view-table.js @@ -249,6 +249,11 @@ function TableRow( { setIsHovered( false ); }; + // Will be set to true if `onTouchStart` fires. This happens before + // `onClick` and can be used to exclude touchscreen devices from certain + // behaviours. + const isTouchDevice = useRef( false ); + return ( { + isTouchDevice.current = true; + } } onClick={ () => { - if ( document.getSelection().type !== 'Range' ) { + if ( + ! isTouchDevice.current && + document.getSelection().type !== 'Range' + ) { if ( ! isSelected ) { onSelectionChange( data.filter( ( _item ) => {