1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00

Fix type errors

Signed-off-by: Sebastian Malton <sebastian@malton.name>
This commit is contained in:
Sebastian Malton 2022-11-18 08:31:25 -05:00
parent b3a488f41e
commit 72c5533328
5 changed files with 37 additions and 31 deletions

View File

@ -6,14 +6,16 @@ import { getInjectable } from "@ogre-tools/injectable";
import { navigateToRouteInjectionToken } from "../../../../../common/front-end-routing/navigate-to-route-injection-token"; import { navigateToRouteInjectionToken } from "../../../../../common/front-end-routing/navigate-to-route-injection-token";
import preferencesRouteInjectable from "../../../common/preferences-route.injectable"; import preferencesRouteInjectable from "../../../common/preferences-route.injectable";
const navigateToPreferenceTabInjectable = getInjectable({ export type NavigateToPreferenceTab = (tabId: string) => void;
id: "navigate-to-preference-tab-2",
instantiate: (di) => { const navigateToPreferenceTabInjectable = getInjectable({
id: "navigate-to-preference-tab",
instantiate: (di): NavigateToPreferenceTab => {
const navigateToRoute = di.inject(navigateToRouteInjectionToken); const navigateToRoute = di.inject(navigateToRouteInjectionToken);
const route = di.inject(preferencesRouteInjectable); const route = di.inject(preferencesRouteInjectable);
return (preferenceTabId: string) => { return (preferenceTabId) => {
navigateToRoute(route, { navigateToRoute(route, {
withoutAffectingBackButton: true, withoutAffectingBackButton: true,
parameters: { preferenceTabId }, parameters: { preferenceTabId },

View File

@ -3,7 +3,6 @@
* Licensed under MIT License. See LICENSE in root directory for more information. * Licensed under MIT License. See LICENSE in root directory for more information.
*/ */
import { Tab } from "../../../../renderer/components/tabs"; 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 { withInjectables } from "@ogre-tools/injectable-react";
import { observer } from "mobx-react"; import { observer } from "mobx-react";
import type { PreferenceTab } from "../preference-items/preference-item-injection-token"; import type { PreferenceTab } from "../preference-items/preference-item-injection-token";
@ -12,7 +11,6 @@ import preferenceTabIsActiveInjectable from "./navigate-to-preference-tab/prefer
import React from "react"; import React from "react";
interface Dependencies { interface Dependencies {
navigateToTab: (tabId: string) => void;
tabIsActive: IComputedValue<boolean>; tabIsActive: IComputedValue<boolean>;
} }
@ -20,23 +18,21 @@ interface PreferenceNavigationTabProps {
tab: PreferenceTab; tab: PreferenceTab;
} }
const NonInjectedPreferencesNavigationTab = observer(({ navigateToTab, tabIsActive, tab } : Dependencies & PreferenceNavigationTabProps) => ( const NonInjectedPreferencesNavigationTab = observer(({
tabIsActive,
tab,
}: Dependencies & PreferenceNavigationTabProps) => (
<Tab <Tab
onClick={() => navigateToTab(tab.pathId)}
active={tabIsActive.get()} active={tabIsActive.get()}
label={tab.label} label={tab.label}
data-preference-tab-link-test={tab.pathId} data-preference-tab-link-test={tab.pathId}
value={tab.pathId}
/> />
)); ));
export const PreferencesNavigationTab = withInjectables<Dependencies, PreferenceNavigationTabProps>( export const PreferencesNavigationTab = withInjectables<Dependencies, PreferenceNavigationTabProps>(NonInjectedPreferencesNavigationTab, {
NonInjectedPreferencesNavigationTab, getProps: (di, props) => ({
...props,
{ tabIsActive: di.inject(preferenceTabIsActiveInjectable, props.tab.pathId),
getProps: (di, props) => ({ }),
navigateToTab: di.inject(navigateToPreferenceTabInjectable), });
tabIsActive: di.inject(preferenceTabIsActiveInjectable, props.tab.pathId),
...props,
}),
},
);

View File

@ -16,26 +16,33 @@ import { compositeHasDescendant } from "../../../../common/utils/composite/compo
import type { PreferenceTabsRoot } from "../preference-items/preference-tab-root"; import type { PreferenceTabsRoot } from "../preference-items/preference-tab-root";
import { Icon } from "../../../../renderer/components/icon"; import { Icon } from "../../../../renderer/components/icon";
import { checkThatAllDiscriminablesAreExhausted } from "../../../../common/utils/composable-responsibilities/discriminable/discriminable"; import { checkThatAllDiscriminablesAreExhausted } from "../../../../common/utils/composable-responsibilities/discriminable/discriminable";
import type { NavigateToPreferenceTab } from "./navigate-to-preference-tab/navigate-to-preference-tab.injectable";
import navigateToPreferenceTabInjectable from "./navigate-to-preference-tab/navigate-to-preference-tab.injectable";
interface Dependencies { interface Dependencies {
composite: IComputedValue<Composite<PreferenceItemTypes | PreferenceTabsRoot>>; composite: IComputedValue<Composite<PreferenceItemTypes | PreferenceTabsRoot>>;
navigateToPreferenceTab: NavigateToPreferenceTab;
} }
const NonInjectedPreferencesNavigation = observer(({ composite }: Dependencies) => ( const NonInjectedPreferencesNavigation = observer(({
<Tabs className="flex column" scrollable={false}> composite,
navigateToPreferenceTab,
}: Dependencies) => (
<Tabs<string>
className="flex column"
scrollable={false}
onChange={navigateToPreferenceTab}
>
{toNavigationHierarchy(composite.get())} {toNavigationHierarchy(composite.get())}
</Tabs> </Tabs>
)); ));
export const PreferencesNavigation = withInjectables<Dependencies>( export const PreferencesNavigation = withInjectables<Dependencies>(NonInjectedPreferencesNavigation, {
NonInjectedPreferencesNavigation, getProps: (di) => ({
composite: di.inject(preferencesCompositeInjectable),
{ navigateToPreferenceTab: di.inject(navigateToPreferenceTabInjectable),
getProps: (di) => ({ }),
composite: di.inject(preferencesCompositeInjectable), });
}),
},
);
const toNavigationHierarchy = (composite: Composite<PreferenceItemTypes | PreferenceTabsRoot>) => { const toNavigationHierarchy = (composite: Composite<PreferenceItemTypes | PreferenceTabsRoot>) => {
const value = composite.value; const value = composite.value;

View File

@ -43,6 +43,7 @@ export const TabLayout = observer(
active={active} active={active}
data-is-active-test={active} data-is-active-test={active}
data-testid={`tab-link-for-${registration.id}`} data-testid={`tab-link-for-${registration.id}`}
value={undefined}
/> />
); );
})} })}

View File

@ -39,7 +39,7 @@ export const TabLayout = observer(({ className, contentClass, tabs = [], childre
return ( return (
<div className={cssNames("TabLayout", className)}> <div className={cssNames("TabLayout", className)}>
{hasTabs && ( {hasTabs && (
<Tabs center onChange={(url) => navigate(url)}> <Tabs<string> center onChange={(url) => navigate(url)}>
{tabs.map(({ title, routePath, url = routePath, exact }) => ( {tabs.map(({ title, routePath, url = routePath, exact }) => (
<Tab <Tab
key={url} key={url}