All files / layers / L2W formBridge.ts

100% Statements 9/9
100% Branches 0/0
100% Functions 3/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    1770x 1770x 1770x       1770x 1770x 550x 550x   1770x                          
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 }
}