"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 ( handleTabChange(tab.id)} className={` group relative flex flex-col items-center justify-center transition-all duration-200 ease-out focus:outline-none focus:ring-2 focus:ring-teal-400/50 focus:ring-offset-2 focus:ring-offset-slate-900 rounded-lg p-2 min-w-[56px] ${isActive ? "" : "hover:bg-teal-900/20"} `} > {/* Активный индикатор */} {isActive && ( )} {/* Иконка */} {/* Подпись */} {tab.label} ) })} {/* Нижний отступ для мобильных устройств */} ) } export default Footer