import { TabPanel } from "@wordpress/components";
import { GeneralIcon, StyleIcon, AdvancedIcon, SliderIcon, LayoutsIcon, CarouselIcon } from "./icon";
import "./editor.scss";
import { useState } from "@wordpress/element";
const TabControls = ({
attributes,
setAttributes,
GeneralTab = null,
StyleTab = null,
AdvancedTab = null,
VisibilityTab = null,
SliderTab = null,
displayIcon = true,
props = "",
verticalPosition = true,
Preset = null,
LayoutTab = null,
CarouselTab = null,
initialTab = "general",
}) => {
const Tabs = [];
const [tabName, setTabName] = useState(initialTab);
if (LayoutTab) {
Tabs.push({
name: `layout`,
title: {displayIcon && } Layouts,
className: "sp-smart-post-general-tab",
});
}
if (CarouselTab) {
Tabs.push({
name: `carousel`,
title: {displayIcon && } Carousel,
className: "sp-smart-post-general-tab",
});
}
if (GeneralTab) {
Tabs.push({
name: `general`,
title: {displayIcon && } General,
className: "sp-smart-post-general-tab",
});
}
if (Preset) {
Tabs.push({
name: "preset",
title: {displayIcon && } Preset,
className: "sp-smart-post-preset-tab",
});
}
if (StyleTab) {
Tabs.push({
name: `style`,
title: {displayIcon && } Style,
className: "sp-smart-post-style-tab",
});
}
if (VisibilityTab) {
Tabs.push({
name: "visibility",
title: Visibility,
className: "sp-smart-post-visibility-tab",
});
}
if (AdvancedTab) {
Tabs.push({
name: "advanced",
title: {displayIcon && } Advanced,
className: "sp-smart-post-advanced-tab",
});
}
if (SliderTab) {
Tabs.push({
name: "slider",
title: {displayIcon && } Slider,
className: "sp-smart-post-advanced-tab",
});
}
return (
setTabName(newVal)}
tabs={Tabs}
>
{(tab) => {
return (
<>
{tab.name === "layout" && LayoutTab && (
)}
{tab.name === "carousel" && CarouselTab && (
)}
{tab.name === "general" && GeneralTab && (
)}
{tab.name === "style" && StyleTab && (
)}
{tab.name === "visibility" && VisibilityTab && (
)}
{tab.name === "preset" && Preset && (
)}
{tab.name === "advanced" && AdvancedTab && (
)}
{tab.name === "slider" && SliderTab && (
)}
>
);
}}
);
};
export default TabControls;