Navigation.tsx

Обзор

Файл Navigation.tsx содержит реализацию React-компонента навигационной панели для мобильного интерфейса. Данный компонент предоставляет пользователю возможность переключаться между четырьмя основными разделами приложения: Profile (Профиль), Battle (Битва), Collection (Коллекция) и Settings (Настройки). Компонент визуально выделяет активную вкладку и уведомляет родительский компонент об изменении выбора. Дополнительно реализована имитация тактильной обратной связи при нажатии на вкладки через API вибрации браузера.


Описание компонентов и функций

NavigationProps (интерфейс)

Интерфейс описывает свойства, принимаемые компонентом Navigation.

Свойство

Тип

Описание

activeTab

`'profile' \

'battle' \

onTabChange

`(tab: 'profile' \

'battle' \


Navigation (React.FC)

Основной функциональный компонент навигации.

Параметры

Логика и поведение

Возвращаемое значение

JSX-элемент навигационной панели:

<nav className='mobile-nav'>
  <div className='nav-container'>
    {/* Вкладки */}
  </div>
</nav>

Пример использования

import React, { useState } from 'react';
import Navigation from './Navigation';

const App = () => {
  const [tab, setTab] = useState<'profile' | 'battle' | 'collection' | 'settings'>('profile');

  const handleTabChange = (newTab: 'profile' | 'battle' | 'collection' | 'settings') => {
    setTab(newTab);
  };

  return (
    <div>
      <Navigation activeTab={tab} onTabChange={handleTabChange} />
      {/* Другой контент в зависимости от tab */}
    </div>
  );
};

Важные детали реализации


Взаимодействие с другими частями системы


Диаграмма структуры компонента Navigation

classDiagram
    class Navigation {
        +activeTab: 'profile' | 'battle' | 'collection' | 'settings'
        +onTabChange(tab: 'profile' | 'battle' | 'collection' | 'settings'): void
        -handleTabClick(tab: 'profile' | 'battle' | 'collection' | 'settings'): void
        +render(): JSX.Element
    }
    Navigation ..> NavigationProps : implements

Резюме

Navigation.tsx — компактный, типизированный React-компонент, реализующий мобильную навигационную панель с четырьмя вкладками. Он обеспечивает переключение между разделами приложения с визуальным выделением и тактильной обратной связью, легко интегрируется в структуру приложения и поддерживает управление состоянием вкладок через callback. Такой компонент является важным элементом пользовательского опыта, обеспечивая удобную и понятную навигацию.