Skip to content

Commit 6475c54

Browse files
authored
Fix #8115 DataTableSelectionCellChangeEvent only return a single value (#8127)
1 parent 478f69c commit 6475c54

1 file changed

Lines changed: 61 additions & 7 deletions

File tree

components/lib/datatable/datatable.d.ts

Lines changed: 61 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -363,11 +363,11 @@ interface DataTableSelectionSingleChangeEvent<TValue extends DataTableValueArray
363363
}
364364

365365
/**
366-
* Custom cell selection change event.
366+
* Custom cell single selection change event.
367367
* @see {@link DataTableProps.onSelectionChange}
368368
* @event
369369
*/
370-
interface DataTableSelectionCellChangeEvent<TValue extends DataTableValueArray> {
370+
interface DataTableSelectionCellSingleChangeEvent<TValue extends DataTableValueArray> {
371371
/**
372372
* Browser event.
373373
*/
@@ -386,6 +386,30 @@ interface DataTableSelectionCellChangeEvent<TValue extends DataTableValueArray>
386386
[key: string]: any;
387387
}
388388

389+
/**
390+
* Custom cell multiple selection change event.
391+
* @see {@link DataTableProps.onSelectionChange}
392+
* @event
393+
*/
394+
interface DataTableSelectionCellMultipleChangeEvent<TValue extends DataTableValueArray> {
395+
/**
396+
* Browser event.
397+
*/
398+
originalEvent: React.SyntheticEvent;
399+
/**
400+
* Selection objects.
401+
*/
402+
value: Array<DataTableCellSelection<TValue>>;
403+
/**
404+
* Type of the selection.
405+
*/
406+
type?: 'cell';
407+
/**
408+
* Extra options.
409+
*/
410+
[key: string]: any;
411+
}
412+
389413
/**
390414
* Custom select all change event.
391415
* @see {@link DataTableProps.onSelectAllChange}
@@ -1851,7 +1875,7 @@ interface DataTablePropsMultiple<TValue extends DataTableValueArray> extends Dat
18511875
* Defines valid properties in DataTable component. In addition to these, all properties of HTMLDivElement can be used in this component.
18521876
* @group Properties
18531877
*/
1854-
interface DataTablePropsCell<TValue extends DataTableValueArray> extends DataTableBaseProps<TValue> {
1878+
interface DataTablePropsCellSingle<TValue extends DataTableValueArray> extends DataTableBaseProps<TValue> {
18551879
/**
18561880
* Whether to cell selection is enabled or not.
18571881
* @defaultValue false
@@ -1860,7 +1884,7 @@ interface DataTablePropsCell<TValue extends DataTableValueArray> extends DataTab
18601884
/**
18611885
* Specifies the selection mode, valid values are "single", "multiple", "radiobutton" and "checkbox".
18621886
*/
1863-
selectionMode: 'single' | 'multiple';
1887+
selectionMode: 'single';
18641888
/**
18651889
* Selected cells.
18661890
*/
@@ -1872,16 +1896,46 @@ interface DataTablePropsCell<TValue extends DataTableValueArray> extends DataTab
18721896
onContextMenuSelectionChange?(event: DataTableContextMenuMultipleSelectionChangeEvent<TValue>): void;
18731897
/**
18741898
* Callback to invoke when selection changes.
1875-
* @param {DataTableSelectionCellChangeEvent<TValue>} event - Custom selection change event.
1899+
* @param {DataTableSelectionCellSingleChangeEvent<TValue>} event - Custom selection change event.
1900+
*/
1901+
onSelectionChange?(event: DataTableSelectionCellSingleChangeEvent<TValue>): void;
1902+
}
1903+
1904+
/**
1905+
* Defines valid properties in DataTable component. In addition to these, all properties of HTMLDivElement can be used in this component.
1906+
* @group Properties
1907+
*/
1908+
interface DataTablePropsCellMultiple<TValue extends DataTableValueArray> extends DataTableBaseProps<TValue> {
1909+
/**
1910+
* Whether to cell selection is enabled or not.
1911+
* @defaultValue false
1912+
*/
1913+
cellSelection: true;
1914+
/**
1915+
* Specifies the selection mode, valid values are "single", "multiple", "radiobutton" and "checkbox".
1916+
*/
1917+
selectionMode: 'multiple';
1918+
/**
1919+
* Selected cells.
1920+
*/
1921+
selection: Array<DataTableCellSelection<TValue>> | null;
1922+
/**
1923+
* Callback to invoke when a row selected with right click.
1924+
* @param {DataTableRowEvent} event - Custom row event.
1925+
*/
1926+
onContextMenuSelectionChange?(event: DataTableContextMenuMultipleSelectionChangeEvent<TValue>): void;
1927+
/**
1928+
* Callback to invoke when selection changes.
1929+
* @param {DataTableSelectionCellMultipleChangeEvent<TValue>} event - Custom selection change event.
18761930
*/
1877-
onSelectionChange?(event: DataTableSelectionCellChangeEvent<TValue>): void;
1931+
onSelectionChange?(event: DataTableSelectionCellMultipleChangeEvent<TValue>): void;
18781932
}
18791933

18801934
/**
18811935
* Defines valid properties in DataTable component. In addition to these, all properties of HTMLDivElement can be used in this component.
18821936
* @group Properties
18831937
*/
1884-
export type DataTableProps<TValue extends DataTableValueArray> = DataTablePropsSingle<TValue> | DataTablePropsCell<TValue> | DataTablePropsMultiple<TValue>;
1938+
export type DataTableProps<TValue extends DataTableValueArray> = DataTablePropsSingle<TValue> | DataTablePropsCellSingle<TValue> | DataTablePropsMultiple<TValue> | DataTablePropsCellMultiple<TValue>;
18851939

18861940
/**
18871941
* **PrimeReact - DataTable<TValue**

0 commit comments

Comments
 (0)