Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 6x 6x 2x 2x 6x 6x 6x 6x 6x 1x 1x 6x 6x 6x 6x 6x 2x 2x 6x 6x 6x 6x 6x 6x 6x 6x 6x | /**
* @file useTableHandlers.ts
* @module pages/suppliers/handlers/useTableHandlers
*
* @summary
* Custom hook that provides table event handlers for SuppliersBoard.
* Manages: Row click selection, pagination changes, sort changes.
*
* @enterprise
* - Separation of concerns: handler logic isolated from component
* - Clean orchestrator interface
*/
import { useCallback } from 'react';
import type { GridPaginationModel, GridSortModel } from '@mui/x-data-grid';
import type { UseSuppliersBoardStateReturn } from '../hooks/useSuppliersBoardState';
/**
* Hook providing table handlers.
*
* @param state - Suppliers board state object from useSuppliersBoardState
* @returns Object with handler functions for table actions
*
* @example
* ```tsx
* const { handleRowClick, handlePaginationChange, handleSortChange } = useTableHandlers(state);
* ```
*/
export function useTableHandlers(state: UseSuppliersBoardStateReturn) {
const handleRowClick = useCallback(
(params: { id: string | number }) => {
state.setSelectedId(String(params.id));
},
[state]
);
const handlePaginationChange = useCallback(
(newModel: GridPaginationModel) => {
state.setPaginationModel(newModel);
},
[state]
);
const handleSortChange = useCallback(
(newModel: GridSortModel) => {
state.setSortModel(newModel);
},
[state]
);
return {
handleRowClick,
handlePaginationChange,
handleSortChange,
};
}
|