Components
Loading preview...
Display tab content.
@shugar
npx shadcn@latest add https://21st.dev/r/shugar/tabsimport React, { useState } from "react";
import { ITab, Tabs } from "@/components/ui/tabs";
const defaultTabs: ITab[] = [
{
title: "Apple",
value: "apple"
},
{
title: "Orange",
value: "orange"
},
{
title: "Mango",
value: "mango"
}
];
const disabledTabs: ITab[] = [
{
title: "Apple",
value: "apple"
},
{
title: "Orange",
value: "orange"
},
{
title: "Disabled",
value: "disabled",
disabled: true,
tooltip: "Disabled tooltip",
}
];
const iconsTabs: ITab[] = [
{
title: "Apple",
value: "apple",
icon: "https://www.svgrepo.com/show/530203/apple.svg"
},
{
value: "orange",
icon: "https://www.svgrepo.com/show/474519/orange.svg"
},
{
title: "Mango",
value: "mango"
}
];
export const Default = () => {
const [selected1, setSelected1] = useState<string>("apple");
return (
<div className="flex flex-col gap-2">
<div className="font-bold text-xl dark:text-white">Default</div>
<Tabs selected={selected1} setSelected={setSelected1} tabs={defaultTabs} />
</div>
);
};
export const Disabled = () => {
const [selected2, setSelected2] = useState<string>("apple");
return (
<div className="flex flex-col gap-2">
<div className="font-bold text-xl dark:text-white">Disabled</div>
<Tabs selected={selected2} setSelected={setSelected2} tabs={defaultTabs} disabled />
</div>
);
};
export const DisableSpecificTabs = () => {
const [selected3, setSelected3] = useState<string>("apple");
return (
<div className="flex flex-col gap-2">
<div className="font-bold text-xl dark:text-white">Disable specific tabs</div>
<Tabs selected={selected3} setSelected={setSelected3} tabs={disabledTabs} />
</div>
);
};
export const WithIcons = () => {
const [selected4, setSelected4] = useState<string>("apple");
return (
<div className="flex flex-col gap-2">
<div className="font-bold text-xl dark:text-white">With icons</div>
<Tabs selected={selected4} setSelected={setSelected4} tabs={iconsTabs} />
</div>
);
};
export const Secondary = () => {
const [selected5, setSelected5] = useState<string>("apple");
return (
<div className="flex flex-col gap-2">
<div className="font-bold text-xl dark:text-white">Secondary</div>
<Tabs
selected={selected5}
setSelected={setSelected5}
tabs={disabledTabs}
variant="secondary"
/>
</div>
);
};