/** * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ import { Tab, Tabs } from "../../tabs"; import { withInjectables } from "@ogre-tools/injectable-react"; import type { IComputedValue } from "mobx"; import React from "react"; import type { PreferenceNavigationItem, } from "./preference-navigation-items.injectable"; import preferenceNavigationItemsInjectable from "./preference-navigation-items.injectable"; import { observer } from "mobx-react"; import { Icon } from "../../icon"; interface Dependencies { navigationItems: IComputedValue; } const NonInjectedPreferencesNavigation = ({ navigationItems, }: Dependencies) => { const generalNavItems = navigationItems.get().filter(item => !item.fromExtension); const extensionNavItems = navigationItems.get().filter(item => item.fromExtension); function renderTab(item: PreferenceNavigationItem) { return ( ); } return ( item.navigate()} >
Preferences
{generalNavItems.map(renderTab)} {extensionNavItems.length > 0 && (

Custom Settings
{extensionNavItems.map(renderTab)}
)}
); }; interface PreferenceNavigationTabProps extends React.DOMAttributes { item: PreferenceNavigationItem; } const PreferencesNavigationTab = observer(({ item }: PreferenceNavigationTabProps) => ( )); export const PreferencesNavigation = withInjectables( NonInjectedPreferencesNavigation, { getProps: (di) => ({ navigationItems: di.inject(preferenceNavigationItemsInjectable), }), }, );