import { useState } from "react";

import { type NavigationItem } from "@/types";

export default function useTabs({
  tabs,
  initialTabId,
  onTabClick,
}: {
  tabs: NavigationItem[];
  initialTabId: string;
  onTabClick?: (id: number) => void;
}) {
  const [activeTabIndex, setActiveTab] = useState(() => {
    const indexOfInitialTab = tabs.findIndex((tab) => tab.id === initialTabId);
    return indexOfInitialTab === -1 ? 0 : indexOfInitialTab;
  });

  const handleTabClick = (index: number) => {
    if (onTabClick) {
      onTabClick(index);
    }
  };

  return {
    tabProps: {
      tabs,
      activeTabIndex,
      handleTabClick,
    },
    activeTab: tabs[activeTabIndex],
    setActiveTab,
  };
}
