mirror of
https://github.com/johndoe6345789/metabuilder.git
synced 2026-05-07 03:59:35 +00:00
22 lines
412 B
TypeScript
22 lines
412 B
TypeScript
import { useState, useCallback } from 'react'
|
|
|
|
export function useTabs<T extends string>(defaultTab: T) {
|
|
const [activeTab, setActiveTab] = useState<T>(defaultTab)
|
|
|
|
const switchTab = useCallback((tab: T) => {
|
|
setActiveTab(tab)
|
|
}, [])
|
|
|
|
const isActive = useCallback(
|
|
(tab: T) => activeTab === tab,
|
|
[activeTab]
|
|
)
|
|
|
|
return {
|
|
activeTab,
|
|
setActiveTab,
|
|
switchTab,
|
|
isActive,
|
|
}
|
|
}
|