# Calculator Frontend-калькулятор с псевдоавторизацией. ## Стек - **Framework:** React 18 + TypeScript - **UI:** Ant Design 5 - **Сборка:** Vite - **Стили:** CSS Modules - **Роутинг:** React Router 6 - **Домен:** test-calculator.vigdorov.ru ## Деплой - **Namespace:** test-calculator (отдельный) - **CI/CD:** Drone CI через ci-templates (service.yaml + .drone.yml) - **Тип:** web-frontend (SPA → nginx) - **Registry:** registry.vigdorov.ru/library/test-calculator - **Trigger:** push в master ## Структура проекта ``` calculator/ service.yaml # Конфиг ci-templates .drone.yml # CI/CD пайплайн src/ components/ # UI-компоненты (Calculator, Display, Keypad, LoginForm) pages/ # Страницы (LoginPage, CalculatorPage) context/ # AuthContext для псевдоавторизации hooks/ # Кастомные хуки (useCalculator, useKeyboard) utils/ # Логика вычислений App.tsx main.tsx public/ index.html ``` ## Команды ```bash npm run dev # Запуск dev-сервера npm run build # Сборка для продакшена npm run preview # Превью билда npm run lint # Линтинг ``` ## Архитектурные решения - **Псевдоавторизация:** Логин сохраняется в localStorage, любой логин принимается. Нет пароля. - **Клавиатура:** Калькулятор полностью управляется с клавиатуры (цифры, операторы, Enter=равно, Escape=сброс, Backspace=удаление). - **Адаптивность:** Минимальная ширина экрана 320px. Интерфейс центрирован.