All files / layers / L2W formBridge.ts

88.88% Statements 8/9
100% Branches 0/0
66.66% Functions 2/3
100% Lines 8/8

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    668x 668x 668x       668x 668x 222x 222x   668x                          
import { useState, useCallback } from 'react'
import type { FormBridge } from '../interfaces'
 
export interface FormBridgeControl {
  bridge: FormBridge
  setDirty: (dirty: boolean) => void
  setPending: (pending: boolean) => void
  markDirty: () => void
  reset: () => void
}
 
export function useFormBridge(): FormBridgeControl {
  const [dirty, setDirty] = useState(false)
  const [pending, setPending] = useState(false)
 
  const bridge: FormBridge = { dirty, pending }
 
  const markDirty = useCallback(() => setDirty(true), [])
 
  const reset = useCallback(() => {
    setDirty(false)
    setPending(false)
  }, [])
 
  return { bridge, setDirty, setPending, markDirty, reset }
}