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.

29 lines (28 loc) 933 B
import { useContext, useMemo } from "react"; import { useComponentId } from "./useId.js"; import { ComponentStateContext, DefaultComponentState } from "../context/context.js"; const useComponentState = (id) => { const stateContext = useContext(ComponentStateContext); const componentID = useComponentId(id); const componentState = stateContext.components[componentID]; return useMemo(() => { return componentState || { ...DefaultComponentState, id: componentID }; }, [componentState, componentID]); }; const useComponentStates = (ids) => { const stateContext = useContext(ComponentStateContext); return useMemo(() => ids.reduce((obj, id) => Object.assign(obj, { [id]: stateContext.components[id] || { ...DefaultComponentState, id } }), {}), [ids, stateContext.components]); }; export { useComponentState, useComponentStates }; //# sourceMappingURL=useComponentState.js.map