@wordpress/dataviews 2.0.1 → 2.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/bulk-actions.js +5 -19
- package/build/bulk-actions.js.map +1 -1
- package/build/dataviews.js +17 -11
- package/build/dataviews.js.map +1 -1
- package/build/lock-unlock.js +1 -1
- package/build/lock-unlock.js.map +1 -1
- package/build/single-selection-checkbox.js +1 -1
- package/build/single-selection-checkbox.js.map +1 -1
- package/build/view-list.js +2 -2
- package/build/view-list.js.map +1 -1
- package/build/view-table.js +11 -5
- package/build/view-table.js.map +1 -1
- package/build-module/bulk-actions.js +6 -20
- package/build-module/bulk-actions.js.map +1 -1
- package/build-module/dataviews.js +18 -12
- package/build-module/dataviews.js.map +1 -1
- package/build-module/lock-unlock.js +1 -1
- package/build-module/lock-unlock.js.map +1 -1
- package/build-module/single-selection-checkbox.js +1 -1
- package/build-module/single-selection-checkbox.js.map +1 -1
- package/build-module/view-list.js +2 -2
- package/build-module/view-list.js.map +1 -1
- package/build-module/view-table.js +11 -5
- package/build-module/view-table.js.map +1 -1
- package/build-types/bulk-actions.d.ts.map +1 -1
- package/build-types/dataviews.d.ts +3 -1
- package/build-types/dataviews.d.ts.map +1 -1
- package/build-types/view-table.d.ts.map +1 -1
- package/package.json +5 -5
- package/src/bulk-actions.tsx +10 -31
- package/src/dataviews.tsx +25 -24
- package/src/lock-unlock.ts +1 -1
- package/src/single-selection-checkbox.tsx +1 -1
- package/src/view-list.tsx +2 -2
- package/src/view-table.tsx +14 -3
- package/tsconfig.tsbuildinfo +1 -1
package/src/view-table.tsx
CHANGED
|
@@ -75,6 +75,7 @@ interface BulkSelectionCheckboxProps< Item extends AnyItem > {
|
|
|
75
75
|
onSelectionChange: ( items: Item[] ) => void;
|
|
76
76
|
data: Item[];
|
|
77
77
|
actions: Action< Item >[];
|
|
78
|
+
getItemId: ( item: Item ) => string;
|
|
78
79
|
}
|
|
79
80
|
|
|
80
81
|
interface TableRowProps< Item extends AnyItem > {
|
|
@@ -249,6 +250,7 @@ function BulkSelectionCheckbox< Item extends AnyItem >( {
|
|
|
249
250
|
onSelectionChange,
|
|
250
251
|
data,
|
|
251
252
|
actions,
|
|
253
|
+
getItemId,
|
|
252
254
|
}: BulkSelectionCheckboxProps< Item > ) {
|
|
253
255
|
const selectableItems = useMemo( () => {
|
|
254
256
|
return data.filter( ( item ) => {
|
|
@@ -259,13 +261,18 @@ function BulkSelectionCheckbox< Item extends AnyItem >( {
|
|
|
259
261
|
);
|
|
260
262
|
} );
|
|
261
263
|
}, [ data, actions ] );
|
|
262
|
-
const
|
|
264
|
+
const selectedItems = data.filter(
|
|
265
|
+
( item ) =>
|
|
266
|
+
selection.includes( getItemId( item ) ) &&
|
|
267
|
+
selectableItems.includes( item )
|
|
268
|
+
);
|
|
269
|
+
const areAllSelected = selectedItems.length === selectableItems.length;
|
|
263
270
|
return (
|
|
264
271
|
<CheckboxControl
|
|
265
272
|
className="dataviews-view-table-selection-checkbox"
|
|
266
273
|
__nextHasNoMarginBottom
|
|
267
274
|
checked={ areAllSelected }
|
|
268
|
-
indeterminate={ ! areAllSelected && !!
|
|
275
|
+
indeterminate={ ! areAllSelected && !! selectedItems.length }
|
|
269
276
|
onChange={ () => {
|
|
270
277
|
if ( areAllSelected ) {
|
|
271
278
|
onSelectionChange( [] );
|
|
@@ -293,7 +300,7 @@ function TableRow< Item extends AnyItem >( {
|
|
|
293
300
|
data,
|
|
294
301
|
}: TableRowProps< Item > ) {
|
|
295
302
|
const hasPossibleBulkAction = useHasAPossibleBulkAction( actions, item );
|
|
296
|
-
const isSelected = selection.includes( id );
|
|
303
|
+
const isSelected = hasPossibleBulkAction && selection.includes( id );
|
|
297
304
|
|
|
298
305
|
const [ isHovered, setIsHovered ] = useState( false );
|
|
299
306
|
|
|
@@ -323,6 +330,9 @@ function TableRow< Item extends AnyItem >( {
|
|
|
323
330
|
isTouchDevice.current = true;
|
|
324
331
|
} }
|
|
325
332
|
onClick={ () => {
|
|
333
|
+
if ( ! hasPossibleBulkAction ) {
|
|
334
|
+
return;
|
|
335
|
+
}
|
|
326
336
|
if (
|
|
327
337
|
! isTouchDevice.current &&
|
|
328
338
|
document.getSelection()?.type !== 'Range'
|
|
@@ -495,6 +505,7 @@ function ViewTable< Item extends AnyItem >( {
|
|
|
495
505
|
onSelectionChange={ onSelectionChange }
|
|
496
506
|
data={ data }
|
|
497
507
|
actions={ actions }
|
|
508
|
+
getItemId={ getItemId }
|
|
498
509
|
/>
|
|
499
510
|
</th>
|
|
500
511
|
) }
|