'use client'; import { useState, useEffect } from 'react'; import Image from 'next/image'; import { getAllCalculators } from '@/lib/calculator-registry'; import CalculatorEngine from './CalculatorEngine'; type CalculatorMenuProps = { chatId?: string | null; }; export default function CalculatorMenu({ chatId: externalChatId }: CalculatorMenuProps) { const [selectedCalculator, setSelectedCalculator] = useState(null); const [chatId, setChatId] = useState(null); const calculators = getAllCalculators(); // Получаем chat_id из URL или пропсов useEffect(() => { if (externalChatId) { setChatId(externalChatId); } else { const params = new URLSearchParams(window.location.search); const id = params.get('chat_id'); if (id) { setChatId(id); } } }, [externalChatId]); // Если выбран калькулятор, показываем его if (selectedCalculator) { return ( setSelectedCalculator(null)} /> ); } // Иначе показываем меню выбора return (
{/* Логотип */}
Logo
{chatId === null && (
❗ Не найден chat_id. Откройте калькулятор через Telegram-бота.
)} {/* Заголовок */}

Выберите калькулятор

{/* Список калькуляторов */} {calculators.length === 0 ? (
Нет доступных калькуляторов
) : (
{calculators.map((calc) => ( ))}
)} {/* Подсказка */}
Выберите калькулятор для начала расчёта
); }