ra-core
Version:
Core components of react-admin, a frontend Framework for building admin applications on top of REST services, using ES6, React
38 lines • 1.12 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.useScrollToTop = void 0;
const react_1 = require("react");
const useLocation_1 = require("./useLocation.cjs");
/**
* Scroll the window to top when the target location contains the _scrollToTop state
*
* @see CoreAdminRouter where it's enabled by default
*
* @example // usage in buttons
* import { Link } from 'react-router-dom';
* import { Button } from '@mui/material';
*
* const FooButton = () => (
* <Button
* component={Link}
* to={{
* pathname: '/foo',
* state: { _scrollToTop: true },
* }}
* >
* Go to foo
* </Button>
* );
*/
const useScrollToTop = () => {
const location = (0, useLocation_1.useLocation)();
(0, react_1.useEffect)(() => {
if (location.state?._scrollToTop &&
typeof window != 'undefined' &&
typeof window.scrollTo === 'function') {
window.scrollTo(0, 0);
}
}, [location]);
};
exports.useScrollToTop = useScrollToTop;
//# sourceMappingURL=useScrollToTop.js.map