diff --git a/src/App.tsx b/src/App.tsx index f3569b8..dc367e0 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,6 +1,6 @@ -import { HashRouter, Routes, Route } from 'react-router-dom'; +import { HashRouter, Routes, Route, useLocation } from 'react-router-dom'; import { Layout } from './components/Layout'; -import { lazy, Suspense } from 'react'; +import { lazy, Suspense, useEffect } from 'react'; const HomePage = lazy(() => import('./pages/home/HomePage')); const CloudPage = lazy(() => import('./pages/cloud/CloudPage')); @@ -13,9 +13,29 @@ const GpuPage = lazy(() => import('./pages/gpu/GpuPage')); const PodsPage = lazy(() => import('./pages/pods/PodsPage')); const NodesPage = lazy(() => import('./pages/nodes/NodesPage')); +function ScrollToTop() { + const { pathname, hash } = useLocation(); + + useEffect(() => { + if (hash) { + const id = hash.replace('#', ''); + const element = document.getElementById(id); + if (element) { + element.scrollIntoView({ behavior: 'smooth', block: 'start' }); + return; + } + } + + window.scrollTo({ top: 0, left: 0, behavior: 'auto' }); + }, [pathname, hash]); + + return null; +} + function App() { return ( + Loading...}> }>