Skip to content

Commit ffa95fa

Browse files
authored
refactor(AnalyticalTable): add pluginName for all plugins & ensure order (#8486)
1 parent 6d4dd18 commit ffa95fa

6 files changed

Lines changed: 14 additions & 2 deletions

File tree

packages/main/src/components/AnalyticalTable/hooks/useColumnsDeps.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,3 +28,4 @@ export const useColumnsDeps = (hooks: ReactTableHooks) => {
2828
hooks.columnsDeps.push(columnsDeps);
2929
hooks.visibleColumnsDeps.push(visibleColumnsDeps);
3030
};
31+
useColumnsDeps.pluginName = 'useColumnsDeps';

packages/main/src/components/AnalyticalTable/hooks/useDragAndDrop.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,3 +84,4 @@ function getHeaderProps(
8484
export function useColumnDragAndDrop(hooks: ReactTableHooks) {
8585
hooks.getHeaderProps.push(getHeaderProps);
8686
}
87+
useColumnDragAndDrop.pluginName = 'useColumnDragAndDrop';

packages/main/src/components/AnalyticalTable/hooks/useDynamicColumnWidths.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { ensurePluginOrder } from 'react-table';
12
import { AnalyticalTableScaleWidthMode } from '../../../enums/AnalyticalTableScaleWidthMode.js';
23
import type {
34
AnalyticalTableColumnDefinition,
@@ -483,7 +484,10 @@ function captureRawColumnWidths(columns: AnalyticalTableColumnDefinition[], { in
483484
* This function follows `react-table`'s own `useResizeColumns` pattern: mutate `header.width` directly, to prevent cascading updates and rerenders.
484485
*/
485486
const adjustColumnWidths = (instance: TableInstance) => {
486-
const { flatHeaders, state, rows, data, webComponentsReactProperties } = instance;
487+
const { flatHeaders, state, rows, data, webComponentsReactProperties, plugins } = instance;
488+
489+
ensurePluginOrder(plugins, ['useColumnResizing'], 'useDynamicColumnWidths');
490+
487491
const { scaleWidthMode, loading, fontsReady } = webComponentsReactProperties;
488492
const { hiddenColumns, tableClientWidth: totalWidth, tableColResized, columnResizing } = state;
489493

@@ -605,3 +609,4 @@ export const useDynamicColumnWidths = (hooks: ReactTableHooks) => {
605609
hooks.columns.push(captureRawColumnWidths);
606610
hooks.useInstanceBeforeDimensions.push(adjustColumnWidths);
607611
};
612+
useDynamicColumnWidths.pluginName = 'useDynamicColumnWidths';

packages/main/src/components/AnalyticalTable/hooks/useKeyboardNavigation.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -394,3 +394,4 @@ export const useKeyboardNavigation = (hooks: ReactTableHooks) => {
394394
hooks.getTableProps.push(useGetTableProps);
395395
hooks.getHeaderProps.push(setHeaderProps);
396396
};
397+
useKeyboardNavigation.pluginName = 'useKeyboardNavigation';

packages/main/src/components/AnalyticalTable/hooks/useRowNavigationIndicator.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,3 +67,4 @@ export const useRowNavigationIndicators = (hooks: ReactTableHooks) => {
6767
hooks.columns.push(columns);
6868
hooks.visibleColumns.push(visibleColumns);
6969
};
70+
useRowNavigationIndicators.pluginName = 'useRowNavigationIndicators';

packages/main/src/components/AnalyticalTable/hooks/useSelectionChangeCallback.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,19 @@
11
import { enrichEventWithDetails } from '@ui5/webcomponents-react-base/internal/utils';
22
import { useEffect, useRef } from 'react';
3+
import { ensurePluginOrder } from 'react-table';
34
import { AnalyticalTableSelectionMode } from '../../../enums/AnalyticalTableSelectionMode.js';
45
import type { AnalyticalTablePropTypes, ReactTableHooks, TableInstance } from '../types/index.js';
56

67
type OnRowSelectEvent = Parameters<NonNullable<AnalyticalTablePropTypes['onRowSelect']>>[0];
78
type OnRowSelectDetail = OnRowSelectEvent['detail'];
89

910
const useInstance = (instance: TableInstance) => {
10-
const { webComponentsReactProperties, rowsById, preFilteredRowsById, state } = instance;
11+
const { webComponentsReactProperties, rowsById, preFilteredRowsById, state, plugins } = instance;
1112
const { selectedRowIds, filters, globalFilter } = state;
1213
const { onRowSelect, selectionMode } = webComponentsReactProperties;
1314

15+
ensurePluginOrder(plugins, ['useRowSelect'], 'useSelectionChangeCallback');
16+
1417
const prevSelectedRowIdsRef = useRef(selectedRowIds);
1518

1619
// react-table instance is intentionally mutable

0 commit comments

Comments
 (0)