UNPKG

ivt

Version:

Ivt Components Library

43 lines (40 loc) 1.94 kB
import React__default from 'react'; import { c as cn } from './utils-BDcRwQMd.mjs'; import { T as Tabs, a as TabsList, b as TabsTrigger } from './tabs-B5HgsIWx.mjs'; import { S as ScrollArea, a as ScrollBar } from './scroll-area-qiUBme0Q.mjs'; const GenericTabs = ({ tabs, isLoading = false, className, currentPath = "", onNavigate, value: controlledValue, onValueChange, triggerClassName, widthCurrent })=>{ const activeTab = controlledValue ?? tabs.filter((t)=>{ const matchString = t.match ?? t.path; return matchString && currentPath.includes(matchString); }).sort((a, b)=>{ const lenA = (a.match ?? a.path ?? "").length; const lenB = (b.match ?? b.path ?? "").length; return lenB - lenA; })[0]?.value ?? tabs[0]?.value; const handleNavigate = (tab)=>{ if (tab.disabled || isLoading) return; if (onNavigate && tab.path) { onNavigate(tab.path); } }; return /*#__PURE__*/ React__default.createElement(Tabs, { value: activeTab, onValueChange: onValueChange, className: className }, /*#__PURE__*/ React__default.createElement(ScrollArea, { className: "w-full max-w-200 sm:max-w-200" }, /*#__PURE__*/ React__default.createElement(TabsList, { className: "flex h-full justify-start gap-2" }, tabs.map((tab)=>/*#__PURE__*/ React__default.createElement(TabsTrigger, { key: tab.value, value: tab.value, className: cn("w-fit min-w-fit sm:min-w-[196px]", triggerClassName, widthCurrent && "sm:min-w-fit px-6", tab.className), disabled: isLoading || tab.disabled, onClick: ()=>handleNavigate(tab), type: "button" }, tab.label))), /*#__PURE__*/ React__default.createElement(ScrollBar, { orientation: "horizontal" }))); }; export { GenericTabs as G }; //# sourceMappingURL=GenericTabs-CqunvZEw.mjs.map