All files / src/pages/suppliers/handlers useToolbarHandlers.ts

100% Statements 46/46
100% Branches 4/4
100% Functions 1/1
100% Lines 46/46

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 471x 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 5x 3x 5x 5x 5x 2x 5x 5x 5x 2x 5x 5x 5x 5x 5x 5x 5x 5x  
/**
 * @file useToolbarHandlers.ts
 * @module pages/suppliers/handlers/useToolbarHandlers
 *
 * @summary
 * Custom hook that provides toolbar action event handlers for SuppliersBoard.
 * Manages: Create, Edit, Delete button click handlers.
 *
 * @enterprise
 * - Separation of concerns: handler logic isolated from component
 * - Clean orchestrator interface
 */
 
import { useCallback } from 'react';
import type { UseSuppliersBoardStateReturn } from '../hooks/useSuppliersBoardState';
 
/**
 * Hook providing toolbar action handlers.
 *
 * @param state - Suppliers board state object from useSuppliersBoardState
 * @returns Object with handler functions for toolbar actions
 *
 * @example
 * ```tsx
 * const { handleAddNew, handleEdit, handleDelete } = useToolbarHandlers(state);
 * ```
 */
export function useToolbarHandlers(state: UseSuppliersBoardStateReturn) {
  const handleAddNew = useCallback(() => {
    state.setOpenCreate(true);
  }, [state]);
 
  const handleEdit = useCallback(() => {
    state.setOpenEdit(true);
  }, [state]);
 
  const handleDelete = useCallback(() => {
    state.setOpenDelete(true);
  }, [state]);
 
  return {
    handleAddNew,
    handleEdit,
    handleDelete,
  };
}