You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
24 lines
728 B
24 lines
728 B
import { useEffect, useRef } from 'react';
|
|
import useForceUpdate from '../../_util/hooks/useForceUpdate';
|
|
import ResponsiveObserve from '../../_util/responsiveObserve';
|
|
|
|
function useBreakpoint() {
|
|
var refreshOnChange = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
|
|
var screensRef = useRef({});
|
|
var forceUpdate = useForceUpdate();
|
|
useEffect(function () {
|
|
var token = ResponsiveObserve.subscribe(function (supportScreens) {
|
|
screensRef.current = supportScreens;
|
|
|
|
if (refreshOnChange) {
|
|
forceUpdate();
|
|
}
|
|
});
|
|
return function () {
|
|
return ResponsiveObserve.unsubscribe(token);
|
|
};
|
|
}, []);
|
|
return screensRef.current;
|
|
}
|
|
|
|
export default useBreakpoint; |