// components/CalculatorNav.tsx // Навигация между калькуляторами 'use client'; import { useState, useEffect } from 'react'; import { usePathname, useSearchParams } from 'next/navigation'; export default function CalculatorNav() { const pathname = usePathname(); const searchParams = useSearchParams(); // Получаем chat_id из разных источников (для статического экспорта) const chatIdFromParams = searchParams.get('chat_id'); const [chatId, setChatId] = useState(chatIdFromParams); useEffect(() => { // Проверяем URL напрямую (для статического экспорта) if (typeof window !== 'undefined') { const params = new URLSearchParams(window.location.search); const id = params.get('chat_id'); if (id && id !== chatId) { setChatId(id); } else if (!id) { // Пробуем восстановить из sessionStorage const savedChatId = sessionStorage.getItem('chat_id'); if (savedChatId && savedChatId !== chatId) { setChatId(savedChatId); } } } }, [pathname, chatId]); // Сохраняем chat_id при переходах const queryString = chatId ? `?chat_id=${chatId}` : ''; const calculators = [ { id: 'soap', name: 'Мыло' }, { id: 'candle', name: 'Свеча' }, ]; const handleCalculatorChange = (calcId: string) => { window.location.href = `/${calcId}${queryString}`; }; return (

🔄 Переключить калькулятор:

{calculators.map((calc) => { const isActive = pathname === `/${calc.id}`; return ( ); })}

Нажмите на кнопку выше, чтобы переключиться между калькуляторами

); }