file-tree-create-form.tsx 794 B

1234567891011121314151617181920212223242526272829303132
  1. import { createContext, FC, useContext, useState } from 'react'
  2. const FileTreeCreateFormContext = createContext<
  3. { valid: boolean; setValid: (value: boolean) => void } | undefined
  4. >(undefined)
  5. export const useFileTreeCreateForm = () => {
  6. const context = useContext(FileTreeCreateFormContext)
  7. if (!context) {
  8. throw new Error(
  9. 'useFileTreeCreateForm is only available inside FileTreeCreateFormProvider'
  10. )
  11. }
  12. return context
  13. }
  14. const FileTreeCreateFormProvider: FC<React.PropsWithChildren> = ({
  15. children,
  16. }) => {
  17. // is the form valid
  18. const [valid, setValid] = useState(false)
  19. return (
  20. <FileTreeCreateFormContext.Provider value={{ valid, setValid }}>
  21. {children}
  22. </FileTreeCreateFormContext.Provider>
  23. )
  24. }
  25. export default FileTreeCreateFormProvider