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.

27 lines (26 loc) 713 B
import { useReducer, useCallback, useMemo } from "react"; import { ComponentType, useSyncComponentState } from "../../context/context.js"; import { reducer } from "./reducer.js"; const useButtonState = (id) => { const [internalState, dispatch] = useReducer(reducer, { result: null }); const setResult = useCallback((result) => { dispatch({ type: "setResult", result }); }, []); const state = useMemo(() => ({ id, result: internalState.result, setResult, componentType: ComponentType.Button }), [id, internalState.result, setResult]); useSyncComponentState(id, state); return state; }; export { useButtonState }; //# sourceMappingURL=useButtonState.js.map