import React from "react"; import type { CollapsibleTabProps } from "design-system-old"; import AnalyticsUtil from "@appsmith/utils/AnalyticsUtil"; import { DEBUGGER_TAB_KEYS } from "./Debugger/helpers"; import { Tab, TabPanel, Tabs, TabsList } from "design-system"; import styled from "styled-components"; import { LIST_HEADER_HEIGHT, FOOTER_MARGIN } from "./Debugger/DebuggerLogs"; const TabPanelWrapper = styled(TabPanel)` margin-top: 0; height: calc(100% - ${LIST_HEADER_HEIGHT}); &.ads-v2-tabs__panel { overflow: auto; } & .t--code-editor-wrapper.codeWrapper { height: calc(100% - ${FOOTER_MARGIN}); & .CodeMirror-scroll { box-sizing: border-box; } } `; const TabsListWrapper = styled(TabsList)` padding: calc(var(--ads-v2-spaces-1) + 2px) var(--ads-v2-spaces-7) var(--ads-v2-spaces-1); `; export interface BottomTab { key: string; title: string; count?: number; panelComponent: React.ReactNode; } interface EntityBottomTabsProps { className?: string; tabs: Array; onSelect?: (tab: string) => void; selectedTabKey: string; } type CollapsibleEntityBottomTabsProps = EntityBottomTabsProps & CollapsibleTabProps; // Using this if there are debugger related tabs function EntityBottomTabs( props: EntityBottomTabsProps | CollapsibleEntityBottomTabsProps, ) { const onTabSelect = (key: string) => { const tab = props.tabs.find((tab) => tab.key === key); if (tab) { props.onSelect && props.onSelect(tab.key); if (Object.values(DEBUGGER_TAB_KEYS).includes(tab.key)) { AnalyticsUtil.logEvent("DEBUGGER_TAB_SWITCH", { tabName: tab.key, }); } } }; return ( {props.tabs.map((tab) => { return ( {tab.title} ); })} {props.tabs.map((tab) => ( {tab.panelComponent} ))} ); } export default EntityBottomTabs;