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

100% Statements 58/58
100% Branches 6/6
100% Functions 1/1
100% Lines 58/58

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 58 591x 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 1x 6x 6x 6x 1x 6x 6x 6x 1x 6x 6x 6x 1x 6x 6x 6x 1x 6x 6x 6x 6x 6x 6x 6x 6x 6x 6x  
/**
 * @file useToolbarHandlers.ts
 * @module pages/inventory/handlers/useToolbarHandlers
 *
 * @summary
 * Custom hook that provides toolbar action event handlers for InventoryBoard.
 * Manages: Add New, Edit, Delete, Adjust Quantity, Change Price button handlers.
 *
 * @enterprise
 * - Separation of concerns: handler logic isolated from component
 * - Clean orchestrator interface
 */
 
import { useCallback } from 'react';
import type { InventoryState, InventoryStateSetters } from '../hooks/useInventoryState';
 
type InventoryStateReturn = InventoryState & InventoryStateSetters;
 
/**
 * Hook providing toolbar action handlers.
 *
 * @param state - Inventory board state object
 * @returns Object with handler functions for toolbar actions
 *
 * @example
 * ```tsx
 * const { handleAddNew, handleEdit, handleDelete, handleAdjustQty, handleChangePrice } = useToolbarHandlers(state);
 * ```
 */
export function useToolbarHandlers(state: InventoryStateReturn) {
  const handleAddNew = useCallback(() => {
    state.setOpenNew(true);
  }, [state]);
 
  const handleEdit = useCallback(() => {
    state.setOpenEditName(true);
  }, [state]);
 
  const handleDelete = useCallback(() => {
    state.setOpenDelete(true);
  }, [state]);
 
  const handleAdjustQty = useCallback(() => {
    state.setOpenAdjust(true);
  }, [state]);
 
  const handleChangePrice = useCallback(() => {
    state.setOpenPrice(true);
  }, [state]);
 
  return {
    handleAddNew,
    handleEdit,
    handleDelete,
    handleAdjustQty,
    handleChangePrice,
  };
}