file-tree-create-form.js 835 B

12345678910111213141516171819202122232425262728293031323334
  1. import { createContext, useContext, useState } from 'react'
  2. import PropTypes from 'prop-types'
  3. const FileTreeCreateFormContext = createContext()
  4. export const useFileTreeCreateForm = () => {
  5. const context = useContext(FileTreeCreateFormContext)
  6. if (!context) {
  7. throw new Error(
  8. 'useFileTreeCreateForm is only available inside FileTreeCreateFormProvider'
  9. )
  10. }
  11. return context
  12. }
  13. export default function FileTreeCreateFormProvider({ children }) {
  14. // is the form valid
  15. const [valid, setValid] = useState(false)
  16. return (
  17. <FileTreeCreateFormContext.Provider value={{ valid, setValid }}>
  18. {children}
  19. </FileTreeCreateFormContext.Provider>
  20. )
  21. }
  22. FileTreeCreateFormProvider.propTypes = {
  23. children: PropTypes.oneOfType([
  24. PropTypes.arrayOf(PropTypes.node),
  25. PropTypes.node,
  26. ]).isRequired,
  27. }