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.

32 lines (31 loc) 916 B
import { useReducer, useMemo } from "react"; import { useStateSetters } from "../input/useStateSetters.js"; import { ComponentType, useSyncComponentState } from "../../context/context.js"; import { reducer } from "./reducer.js"; const useFileInputState = (id, options) => { const initialState = { value: options.initialState.initialValue, disabled: options.initialState.disabled ?? false }; const [internalState, dispatch] = useReducer(reducer, { ...initialState, showErrors: false, errors: [] }); const stateSetters = useStateSetters(dispatch, initialState); const state = useMemo(() => ({ ...internalState, ...stateSetters, id, componentType: ComponentType.FileInput }), [internalState, stateSetters, id]); useSyncComponentState(id, state); return { state, dispatch }; }; export { useFileInputState }; //# sourceMappingURL=useFileInputState.js.map