refactor:

1、添加全局toast
2、将CopyButton拆分为useCopy hook
This commit is contained in:
雨霖铃
2026-02-13 00:24:56 +08:00
parent a93a8b3e9a
commit ee4d328b9c
7 changed files with 156 additions and 159 deletions
+16 -9
View File
@@ -1,5 +1,8 @@
// App.js
import { HashRouter as Router, Routes, Route } from 'react-router-dom';
import { ThemeProvider, createTheme } from '@mui/material/styles';
import CssBaseline from '@mui/material/CssBaseline';
import { SnackbarProvider } from 'notistack';
import TimestampPage from './pages/TimestampPage';
import RecordeReplayPage from './pages/RecordeReplayPage';
import Navbar from './components/Navbar';
@@ -13,19 +16,23 @@ const navItems = [
{ path: '/recorde-replay', label: '录制与回放', element: <RecordeReplayPage /> },
];
const theme = createTheme();
function App() {
return (
<Router future={{ v7_startTransition: true, v7_relativeSplatPath: true }}>
<RoutePersistence />
<div className="app">
<Navbar items={navItems} />
<Routes>
{navItems.map((item) => (
<Route key={item.path} path={item.path} element={item.element} />
))}
</Routes>
</div>
<ThemeProvider theme={theme}>
<CssBaseline />
<SnackbarProvider maxSnack={3} anchorOrigin={{ vertical: 'top', horizontal: 'center' }}>
<Navbar items={navItems} />
<Routes>
{navItems.map((item) => (
<Route key={item.path} path={item.path} element={item.element} />
))}
</Routes>
</SnackbarProvider>
</ThemeProvider>
</Router>
);
}