diff --git a/package.json b/package.json index 68fb8b2..2d05e69 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "vite-react-typescript-starter", "private": true, - "version": "1.2.7", + "version": "1.2.8", "type": "module", "scripts": { "dev": "vite", diff --git a/src/components/Header/MobileMenu.tsx b/src/components/Header/MobileMenu.tsx index 868b635..bf43384 100644 --- a/src/components/Header/MobileMenu.tsx +++ b/src/components/Header/MobileMenu.tsx @@ -1,4 +1,4 @@ -import React from 'react'; +import React, { useEffect } from 'react'; import { Link } from 'react-router-dom'; import { CityTitles, CategoryTitles } from '../../types'; @@ -9,6 +9,7 @@ interface MobileMenuProps { currentCategory: string | null; currentCity: string | null; onCityChange: (event: React.ChangeEvent) => void; + onClose: () => void; } export function MobileMenu({ @@ -17,8 +18,19 @@ export function MobileMenu({ cities, currentCategory, currentCity, - onCityChange + onCityChange, + onClose }: MobileMenuProps) { + + // Блокируем прокрутку body при открытом меню + useEffect(() => { + if (isOpen) { + document.body.style.overflow = 'hidden'; + } else { + document.body.style.overflow = ''; + } + }, [isOpen]); + if (!isOpen) return null; return ( @@ -47,6 +59,7 @@ export function MobileMenu({ { + setIsMobileMenuOpen(false); + }, [location]); + const handleCityChange = (event: React.ChangeEvent) => { const city = event.target.value; const params = new URLSearchParams(location.search); @@ -116,6 +121,7 @@ export function Header() { currentCategory={currentCategory} currentCity={currentCity} onCityChange={handleCityChange} + onClose={() => setIsMobileMenuOpen(false)} /> ); diff --git a/src/pages/ArticlePage.tsx b/src/pages/ArticlePage.tsx index a811504..d7b0b1e 100644 --- a/src/pages/ArticlePage.tsx +++ b/src/pages/ArticlePage.tsx @@ -46,6 +46,11 @@ export function ArticlePage() { try { const response = await axios.get(`/api/articles/${id}`); setArticleData(response.data); + + // Сообщаем react-snap, что страница готова + //if (window.snapSaveState) { + // window.snapSaveState(); + //} } catch (error) { setError('Не удалось загрузить статью'); console.error(error);