"use client" import { useState } from "react" type TabType = "home" | "courses" | "profile" interface FooterProps { onTabChange?: (tab: TabType) => void activeTab?: TabType } // Строгие и аккуратные SVG иконки const HomeIcon = ({ filled = false, className = "" }) => ( {filled ? ( ) : ( )} ) const BookIcon = ({ filled = false, className = "" }) => ( {filled ? ( ) : ( )} ) const UserIcon = ({ filled = false, className = "" }) => ( {filled ? ( ) : ( )} ) function Footer({ onTabChange, activeTab: controlledActiveTab }: FooterProps) { const [internalActiveTab, setInternalActiveTab] = useState("home") const activeTab = controlledActiveTab || internalActiveTab const handleTabChange = (tab: TabType) => { if (!controlledActiveTab) { setInternalActiveTab(tab) } onTabChange?.(tab) } const tabs = [ { id: "home" as TabType, label: "Главная", icon: HomeIcon, }, { id: "courses" as TabType, label: "Курсы", icon: BookIcon, }, { id: "profile" as TabType, label: "Профиль", icon: UserIcon, }, ] return (
{/* Основной контейнер */}
{/* Фон с размытием */}
{/* Тонкая верхняя линия */}
{/* Контент */}
{tabs.map((tab) => { const isActive = activeTab === tab.id const Icon = tab.icon return ( ) })}
{/* Нижний отступ для мобильных устройств */}
) } export default Footer