@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
JavaScript
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