This commit is contained in:
Kirill
2026-05-23 18:47:35 +05:00
parent bd9bdc0352
commit d0d7eab77e
16 changed files with 889 additions and 65 deletions
@@ -0,0 +1,71 @@
import { useState } from 'react'
import Box from '@mui/material/Box'
import Button from '@mui/material/Button'
import Link from '@mui/material/Link'
import Typography from '@mui/material/Typography'
import { Link as RouterLink } from 'react-router-dom'
const STORAGE_KEY = 'cookie-consent-accepted'
function wasAccepted(): boolean {
try {
return localStorage.getItem(STORAGE_KEY) === '1'
} catch {
return false
}
}
function markAccepted() {
try {
localStorage.setItem(STORAGE_KEY, '1')
} catch {
// ignore
}
}
export function CookieConsentBanner() {
const [visible, setVisible] = useState(!wasAccepted())
if (!visible) return null
return (
<Box
sx={{
position: 'fixed',
bottom: 0,
left: 0,
right: 0,
zIndex: 1300,
bgcolor: 'background.paper',
borderTop: 1,
borderColor: 'divider',
px: 2,
py: 1.5,
display: 'flex',
alignItems: 'center',
justifyContent: 'center',
gap: 2,
flexWrap: 'wrap',
boxShadow: 3,
}}
>
<Typography variant="body2" color="text.secondary">
Мы используем cookie для поддержания сессии. Продолжая использовать сайт, вы принимаете{' '}
<Link component={RouterLink} to="/privacy" underline="hover">
Политику обработки персональных данных
</Link>
.
</Typography>
<Button
variant="contained"
size="small"
onClick={() => {
markAccepted()
setVisible(false)
}}
>
Понятно
</Button>
</Box>
)
}