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;