import { Blend, Clapperboard, FlipHorizontal2, Music, Sparkles, Sticker, Type, Video } from "lucide-react" import { memo, useCallback } from "react" import { useTranslation } from "react-i18next" import { cn } from "@/lib/utils" export const TAB_BUTTON_STYLES = "h-[50px] text-xs text-gray-600 dark:bg-[#2D2D2D] border-none " + "hover:text-gray-900 dark:text-gray-400 dark:hover:bg-background dark:hover:text-gray-100 " + "flex flex-col items-center justify-center gap-1 py-2 px-4 " + "cursor-pointer rounded-none transition-colors" export const TAB_ACTIVE_STYLES = "bg-background text-teal dark:text-[#35d1c1] cursor-default " + "[&>svg]:text-[#38dacac3]" interface BrowserTabsProps { activeTab: string onTabChange: (tab: string) => void } interface TabButtonProps { value: string activeTab: string onClick: (value: string) => void children: React.ReactNode testId?: string } const TabButton = memo(({ value, activeTab, onClick, children, testId }: TabButtonProps) => { const isActive = activeTab === value const handleClick = useCallback(() => { if (!isActive) { onClick(value) } }, [isActive, onClick, value]) return ( ) }) TabButton.displayName = "TabButton" export const BrowserTabs = memo(({ activeTab, onTabChange }: BrowserTabsProps) => { const { t } = useTranslation() return (