[improvements] Table - exposed active sort options and add an event (#4151)

* exposed sorted options

* adds onSort event

* clean up
This commit is contained in:
Arpit 2022-10-06 11:50:53 +05:30 committed by GitHub
parent 22c87762e4
commit 3af3835e7d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 25 additions and 0 deletions

View file

@ -322,6 +322,29 @@ export function Table({
}
);
const sortOptions = useMemo(() => {
if (state?.sortBy?.length === 0) {
return;
}
const columnName = columns.find((column) => column.id === state?.sortBy?.[0]?.id).accessor;
return {
sortedBy: {
column: columnName,
direction: state?.sortBy?.[0]?.desc ? 'descending' : 'ascending',
},
};
}, [JSON.stringify(state)]);
useEffect(() => {
if (!sortOptions) {
setExposedVariable('sortedBy', null);
return;
}
setExposedVariable('sortedBy', sortOptions.sortedBy).then(() => fireEvent('onSort'));
}, [sortOptions]);
registerAction(
'setPage',
async function (targetPageIndex) {

View file

@ -225,6 +225,7 @@ export const widgets = [
onBulkUpdate: { displayName: 'Bulk update' },
onPageChanged: { displayName: 'Page changed' },
onSearch: { displayName: 'Search' },
onSort: { displayName: 'On sorting columns' },
onCellValueChanged: { displayName: 'Cell value changed' },
onFilterChanged: { displayName: 'Filter changed' },
},

View file

@ -512,6 +512,7 @@ export async function onEvent(_ref, eventName, options, mode = 'edit') {
'onOpen',
'onClose',
'onRowClicked',
'onSort',
'onCellValueChanged',
'onFilterChanged',
].includes(eventName)