react-use
Version:
Collection of React Hooks
22 lines (21 loc) • 997 B
JavaScript
import { useState, useEffect } from 'react';
var getValue = function (search, param) { return new URLSearchParams(search).get(param); };
var useSearchParam = function (param) {
var _a = useState(function () { return getValue(location.search, param); }), value = _a[0], setValue = _a[1];
useEffect(function () {
var onChange = function () {
setValue(getValue(location.search, param));
};
window.addEventListener('popstate', onChange);
window.addEventListener('pushstate', onChange);
window.addEventListener('replacestate', onChange);
return function () {
window.removeEventListener('popstate', onChange);
window.removeEventListener('pushstate', onChange);
window.removeEventListener('replacestate', onChange);
};
}, []);
return value;
};
var useSearchParamServer = function () { return null; };
export default typeof window === 'object' ? useSearchParam : useSearchParamServer;