1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00
lens/src/features/preferences/renderer/preference-navigation/preferences-navigation-tab.tsx
Janne Savolainen c7ce675a02
Move code under a Feature
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
2022-10-21 08:23:14 +03:00

43 lines
1.5 KiB
TypeScript

/**
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import { Tab } from "../../../../renderer/components/tabs";
import navigateToPreferenceTabInjectable from "./navigate-to-preference-tab/navigate-to-preference-tab.injectable";
import { withInjectables } from "@ogre-tools/injectable-react";
import { observer } from "mobx-react";
import type { PreferenceTab } from "../preference-items/preference-item-injection-token";
import type { IComputedValue } from "mobx";
import preferenceTabIsActiveInjectable from "./navigate-to-preference-tab/preference-tab-is-active.injectable";
import React from "react";
interface Dependencies {
navigateToTab: (tabId: string) => void;
tabIsActive: IComputedValue<boolean>;
}
interface PreferenceNavigationTabProps {
tab: PreferenceTab;
}
const NonInjectedPreferencesNavigationTab = observer(({ navigateToTab, tabIsActive, tab } : Dependencies & PreferenceNavigationTabProps) => (
<Tab
onClick={() => navigateToTab(tab.pathId)}
data-testid={`tab-link-for-${tab.pathId}`}
active={tabIsActive.get()}
label={tab.label}
/>
));
export const PreferencesNavigationTab = withInjectables<Dependencies, PreferenceNavigationTabProps>(
NonInjectedPreferencesNavigationTab,
{
getProps: (di, props) => ({
navigateToTab: di.inject(navigateToPreferenceTabInjectable),
tabIsActive: di.inject(preferenceTabIsActiveInjectable, props.tab.pathId),
...props,
}),
},
);