All files / layers / L2W formBridge.ts

100% Statements 18/18
100% Branches 0/0
100% Functions 6/6
100% Lines 15/15

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    1714x 1714x 1714x       1714x 1714x 529x 529x 226x 1714x   226x   1731x   226x 61x 61x     226x    
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 }
}