ivt
Version:
Ivt Components Library
43 lines (40 loc) • 1.94 kB
JavaScript
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