All files useComplexValueItem.tsx

100% Statements 5/5
100% Branches 2/2
100% Functions 2/2
100% Lines 5/5

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 191x   1x               14x   4x       14x    
import * as React from "react";
 
export default function useComplexValueItem<
  T extends { [key: string]: any },
  V
>(
  complexValue: T,
  key: keyof T,
  setComplexValue: (complexValue: T) => void,
): [V, (value: V) => void] {
  const handleItemValueChange = React.useCallback(
    value => {
      setComplexValue(Object.assign({}, complexValue, { [key]: value }));
    },
    [setComplexValue, complexValue, key],
  );
  return [complexValue ? complexValue[key] : undefined, handleItemValueChange];
}