UNPKG

@airplane/views

Version:

A React library for building Airplane views. Views components are optimized in style and functionality to produce internal apps that are easy to build and maintain.

51 lines (50 loc) 1.2 kB
import { jsx } from "react/jsx-runtime"; import * as React from "react"; import { useState, useCallback } from "react"; const defaultContext = { formTypeByID: {}, addFormInput: () => { }, removeFormInput: () => { } }; const FormContext = /* @__PURE__ */ React.createContext(defaultContext); const FormProvider = ({ children }) => { const [formInputs, setFormInputs] = useState({}); const addFormInput = useCallback((id, type) => { setFormInputs((formInputs2) => { if (id in formInputs2) { return formInputs2; } return { ...formInputs2, [id]: type }; }); }, []); const removeFormInput = React.useCallback((id) => { setFormInputs((formInputs2) => { if (!(id in formInputs2)) { return formInputs2; } const newFormInputs = { ...formInputs2 }; delete newFormInputs[id]; return newFormInputs; }); }, []); const context = { formTypeByID: formInputs, addFormInput, removeFormInput }; return /* @__PURE__ */ jsx(FormContext.Provider, { value: context, children }); }; export { FormContext, FormProvider }; //# sourceMappingURL=FormProvider.js.map