6ced8434bd
* Uniformize folder structure * Fix icons * Fix icons * Fix tests * Fix tests
36 lines
958 B
TypeScript
36 lines
958 B
TypeScript
import { useEffect } from 'react';
|
|
import { useRecoilState, useRecoilValue } from 'recoil';
|
|
|
|
import { entityTableDimensionsState } from '../states/entityTableDimensionsState';
|
|
import { tableRowIdsState } from '../states/tableRowIdsState';
|
|
|
|
import { useResetTableRowSelection } from './useResetTableRowSelection';
|
|
|
|
export type TableDimensions = {
|
|
numberOfColumns: number;
|
|
numberOfRows: number;
|
|
};
|
|
|
|
export function useInitializeEntityTable({
|
|
numberOfColumns,
|
|
}: {
|
|
numberOfColumns: number;
|
|
}) {
|
|
const resetTableRowSelection = useResetTableRowSelection();
|
|
|
|
const tableRowIds = useRecoilValue(tableRowIdsState);
|
|
|
|
useEffect(() => {
|
|
resetTableRowSelection();
|
|
}, [resetTableRowSelection]);
|
|
|
|
const [, setTableDimensions] = useRecoilState(entityTableDimensionsState);
|
|
|
|
useEffect(() => {
|
|
setTableDimensions({
|
|
numberOfColumns,
|
|
numberOfRows: tableRowIds?.length,
|
|
});
|
|
}, [tableRowIds, numberOfColumns, setTableDimensions]);
|
|
}
|