@evg-b/evg-ui
Version:
EVG-UI library inspired by Material Design.
26 lines (20 loc) • 728 B
JavaScript
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
import { useReducer, useEffect } from 'react';
function useChangeTheme() {
// forceUpdate
var _useReducer = useReducer(function (x) {
return x + 1;
}, 0),
_useReducer2 = _slicedToArray(_useReducer, 2),
forceUpdate = _useReducer2[1]; // подписываешься на кастомный Event: changeTheme
var forceUpdateWarp = function forceUpdateWarp() {
forceUpdate();
};
useEffect(function () {
document.body.addEventListener('changeTheme', forceUpdateWarp);
return function () {
return document.body.removeEventListener('changeTheme', forceUpdateWarp);
};
}, []);
}
export default useChangeTheme;