UNPKG

1.25 kBJavaScriptView Raw
1import * as React from 'react';
2import { Customizations } from './Customizations';
3import { CustomizerContext } from './CustomizerContext';
4/**
5 * Hook to get Customizations settings from Customizations singleton or CustomizerContext.
6 * It will trigger component state update on settings change observed.
7 */
8export function useCustomizationSettings(properties, scopeName) {
9 var forceUpdate = useForceUpdate();
10 var customizations = React.useContext(CustomizerContext).customizations;
11 var inCustomizerContext = customizations.inCustomizerContext;
12 React.useEffect(function () {
13 if (!inCustomizerContext) {
14 Customizations.observe(forceUpdate);
15 }
16 return function () {
17 if (!inCustomizerContext) {
18 Customizations.unobserve(forceUpdate);
19 }
20 };
21 // eslint-disable-next-line react-hooks/exhaustive-deps -- exclude forceUpdate
22 }, [inCustomizerContext]);
23 return Customizations.getSettings(properties, scopeName, customizations);
24}
25function useForceUpdate() {
26 var _a = React.useState(0), setValue = _a[1];
27 return function () { return setValue(function (value) { return ++value; }); };
28}
29//# sourceMappingURL=useCustomizationSettings.js.map
\No newline at end of file