From 1b709549929745e49edad2a1c8a177cb2b347ce6 Mon Sep 17 00:00:00 2001 From: Melloware Date: Wed, 1 May 2024 09:46:57 -0400 Subject: [PATCH] Fix #6501: Datatable expose sorts and filters in ref (#6533) --- components/lib/datatable/DataTable.js | 4 ++++ components/lib/datatable/datatable.d.ts | 22 ++++++++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/components/lib/datatable/DataTable.js b/components/lib/datatable/DataTable.js index cee2cf30ff..0c35e77741 100644 --- a/components/lib/datatable/DataTable.js +++ b/components/lib/datatable/DataTable.js @@ -1531,6 +1531,10 @@ export const DataTable = React.forwardRef((inProps, ref) => { restoreState, restoreTableState, saveState, + getFilterMeta: () => filtersState, + setFilterMeta: (filters) => setFiltersState(filters), + getSortMeta: () => multiSortMetaState, + setSortMeta: (sorts) => setMultiSortMetaState(sorts), getElement: () => elementRef.current, getTable: () => tableRef.current, getVirtualScroller: () => virtualScrollerRef.current diff --git a/components/lib/datatable/datatable.d.ts b/components/lib/datatable/datatable.d.ts index 7a9f84e54d..d04f01614d 100644 --- a/components/lib/datatable/datatable.d.ts +++ b/components/lib/datatable/datatable.d.ts @@ -1858,6 +1858,28 @@ export declare class DataTable extends React * Saves the state. */ public saveState(): void; + /** + * Retrieves the currently applied filters for the data table. + * @returns {DataTableFilterMeta | undefined} The currently applied filters, if any, or undefined if no filters are set. + */ + public getFilterMeta(): DataTableFilterMeta | undefined; + /** + * Sets the filters for the data table. + * @param {DataTableFilterMeta} filters - The filters to be applied to the data table. + * @returns {void} + */ + public setFilterMeta(filters: DataTableFilterMeta): void; + /** + * Retrieves the currently applied multiple sort metadata for the data table. + * @returns {DataTableSortMeta[] | undefined} The currently applied sorts, if any, or undefined if no sorts are set. + */ + public getSortMeta(): DataTableSortMeta[] | undefined; + /** + * Sets the multiple sort metadata for the data table. + * @param {DataTableSortMeta[]} sorts - The sorts to be applied to the data table. + * @returns {void} + */ + public setSortMeta(sorts: DataTableSortMeta[]): void; /** * Used to get container element. * @return {HTMLDivElement} Container element