next-gs
Version:
NPM package for building a React+NextJS+Prisma admin application.
27 lines (20 loc) • 653 B
JavaScript
import React from "react";
import { useLocation, useHistory } from "react-router-dom";
const useLocationSearch = () => {
const history = useHistory();
const location = useLocation();
const getParam = React.useCallback(
(param) => new URLSearchParams(location.search).get(param) || "",
[location.search]
);
const setParam = React.useCallback(
(param, value) => {
const search = new URLSearchParams(location.search);
search.set(param, value);
history.replace(`${location.pathname}?${search.toString()}`);
},
[history, location]
);
return [getParam, setParam];
};
export default useLocationSearch;