/** * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ import { withInjectables } from "@ogre-tools/injectable-react"; import type { IComputedValue } from "mobx"; import { observer } from "mobx-react"; import React from "react"; import siblingTabsInjectable from "../../routes/sibling-tabs.injectable"; import { TabLayout } from "./tab-layout-2"; import type { HierarchicalSidebarItem } from "./sidebar-items.injectable"; interface SiblingTabLayoutProps { children: React.ReactNode; scrollable?: boolean; } interface Dependencies { tabs: IComputedValue; } const NonInjectedSiblingsInTabLayout = observer( ({ tabs, children, ...other }: Dependencies & SiblingTabLayoutProps) => { const dereferencedTabs = tabs.get(); if (dereferencedTabs.length) { return ( {children} ); } return <>{children}; }, ); export const SiblingsInTabLayout = withInjectables( NonInjectedSiblingsInTabLayout, { getProps: (di, props) => ({ tabs: di.inject(siblingTabsInjectable), ...props, }), }, );