test commit

This commit is contained in:
Kirill
2026-05-21 14:32:45 +05:00
parent 47124a01a7
commit d056399b3b
7 changed files with 56 additions and 1 deletions
+4
View File
@@ -10,12 +10,16 @@ import Typography from '@mui/material/Typography'
import { Link as RouterLink } from 'react-router-dom'
import { AppHeader } from '@/app/layout/AppHeader'
import { STORE_EMAIL, STORE_NAME, STORE_PHONE, VK_URL } from '@/shared/config'
import { ScrollOnNavigate } from '@/shared/ui/ScrollOnNavigate'
import { ScrollToTop } from '@/shared/ui/ScrollToTop'
export function MainLayout({ children }: PropsWithChildren) {
const year = new Date().getFullYear()
return (
<Box sx={{ display: 'flex', flexDirection: 'column', minHeight: '100vh' }}>
<ScrollOnNavigate />
<ScrollToTop />
<AppHeader />
<Box component="main" sx={{ flex: 1, py: { xs: 4, md: 6 } }}>
@@ -25,6 +25,8 @@ import { AdminProductsPage } from '@/pages/admin-products'
import { AdminReviewsPage } from '@/pages/admin-reviews'
import { AdminUsersPage } from '@/pages/admin-users'
import { $user } from '@/shared/model/auth'
import { ScrollOnNavigate } from '@/shared/ui/ScrollOnNavigate'
import { ScrollToTop } from '@/shared/ui/ScrollToTop'
import { AdminNotificationsPage } from './AdminNotificationsPage'
type NavItem = {
@@ -124,6 +126,8 @@ export function AdminLayoutPage() {
return (
<Stack direction={{ xs: 'column', md: 'row' }} spacing={3} sx={{ alignItems: 'flex-start' }}>
<ScrollOnNavigate />
<ScrollToTop />
{isMobile ? (
<>
<Stack direction="row" spacing={1} sx={{ width: '100%', alignItems: 'center' }}>
+4
View File
@@ -26,6 +26,8 @@ import { OrderDetailPage } from '@/pages/me/ui/sections/OrderDetailPage'
import { OrdersPage } from '@/pages/me/ui/sections/OrdersPage'
import { SettingsPage } from '@/pages/me/ui/sections/SettingsPage'
import { $user } from '@/shared/model/auth'
import { ScrollOnNavigate } from '@/shared/ui/ScrollOnNavigate'
import { ScrollToTop } from '@/shared/ui/ScrollToTop'
type NavItem = {
to: string
@@ -128,6 +130,8 @@ export function MeLayoutPage() {
return (
<Stack direction={{ xs: 'column', md: 'row' }} spacing={3} sx={{ alignItems: 'flex-start' }}>
<ScrollOnNavigate />
<ScrollToTop />
{isMobile ? (
<>
<Stack direction="row" spacing={1} sx={{ width: '100%', alignItems: 'center' }}>
+1 -1
View File
@@ -81,7 +81,7 @@ export const AVATAR_STYLES: StyleDef[] = [
},
]
export const DEFAULT_STYLE_ID = 'bottts'
export const DEFAULT_STYLE_ID = 'avataaars'
export function getStyleById(id: string | null | undefined): StyleDef {
return AVATAR_STYLES.find((s) => s.id === id) ?? AVATAR_STYLES[0]
+12
View File
@@ -0,0 +1,12 @@
import { useEffect } from 'react'
import { useLocation } from 'react-router-dom'
export function ScrollOnNavigate() {
const { pathname } = useLocation()
useEffect(() => {
window.scrollTo(0, 0)
}, [pathname])
return null
}
+31
View File
@@ -0,0 +1,31 @@
import Fab from '@mui/material/Fab'
import useScrollTrigger from '@mui/material/useScrollTrigger'
import Zoom from '@mui/material/Zoom'
import { ArrowUp } from 'lucide-react'
export function ScrollToTop() {
const trigger = useScrollTrigger({ threshold: 400, disableHysteresis: true })
const handleClick = () => {
window.scrollTo({ top: 0, behavior: 'smooth' })
}
return (
<Zoom in={trigger}>
<Fab
color="primary"
size="small"
onClick={handleClick}
aria-label="К началу страницы"
sx={{
position: 'fixed',
bottom: 24,
right: 24,
zIndex: 1100,
}}
>
<ArrowUp size={20} />
</Fab>
</Zoom>
)
}
Binary file not shown.