{"version":3,"file":"useFormState.mjs","sources":["../../../../../../../../web/src/adminPortal/utils/useFormState.ts"],"sourcesContent":["import { useCallback, useState } from 'react';\n\nexport interface StateProps<TState, TRemoteState = TState> {\n  localState: TState;\n  setLocalState: (state: React.SetStateAction<TState>) => void;\n  remoteState: TRemoteState;\n}\n\nexport const useFormState = <TFormState>({ remoteState }: { remoteState: TFormState }) => {\n  const [localState, setLocalState] = useState(remoteState);\n\n  const resetLocalState = useCallback(() => {\n    setLocalState(remoteState);\n  }, [remoteState]);\n\n  const [editing, setEditing] = useState(false);\n  const handleSetEditing = useCallback(\n    (newEditing: boolean) => {\n      if (newEditing) {\n        resetLocalState();\n      }\n\n      setEditing(newEditing);\n    },\n    [resetLocalState],\n  );\n\n  return { localState, setLocalState, editing, handleSetEditing };\n};\n"],"names":["useFormState","remoteState","localState","setLocalState","useState","resetLocalState","useCallback","editing","setEditing","handleSetEditing","newEditing"],"mappings":";;;AAQO,MAAMA,YAAAA,GAAe,CAAa,EAAEC,WAAW,EAA+B,GAAA;AACnF,IAAA,MAAM,CAACC,UAAAA,EAAYC,aAAAA,CAAc,GAAGC,CAAAA,CAASH,WAAAA,CAAAA;AAE7C,IAAA,MAAMI,kBAAkBC,CAAAA,CAAY,IAAA;QAClCH,aAAAA,CAAcF,WAAAA,CAAAA;IAChB,CAAA,EAAG;AAACA,QAAAA;AAAY,KAAA,CAAA;AAEhB,IAAA,MAAM,CAACM,OAAAA,EAASC,UAAAA,CAAW,GAAGJ,CAAAA,CAAS,KAAA,CAAA;IACvC,MAAMK,gBAAAA,GAAmBH,EACvB,CAACI,UAAAA,GAAAA;AACC,QAAA,IAAIA,UAAAA,EAAY;AACdL,YAAAA,eAAAA,EAAAA;AACF,QAAA;QAEAG,UAAAA,CAAWE,UAAAA,CAAAA;IACb,CAAA,EACA;AAACL,QAAAA;AAAgB,KAAA,CAAA;IAGnB,OAAO;AAAEH,QAAAA,UAAAA;AAAYC,QAAAA,aAAAA;AAAeI,QAAAA,OAAAA;AAASE,QAAAA;AAAiB,KAAA;AAChE;;;;"}