ra-core
Version:
Core components of react-admin, a frontend Framework for building admin applications on top of REST services, using ES6, React
34 lines • 940 B
JavaScript
import { useEffect } from 'react';
import { useLocation } from "./useLocation.js";
/**
* 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>
* );
*/
export const useScrollToTop = () => {
const location = useLocation();
useEffect(() => {
if (location.state?._scrollToTop &&
typeof window != 'undefined' &&
typeof window.scrollTo === 'function') {
window.scrollTo(0, 0);
}
}, [location]);
};
//# sourceMappingURL=useScrollToTop.js.map