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

Prevent creation of dynamic components where withInjectables use type parameters to make React not re-mount because of dynamic components being different (#4808)

Co-authored-by: Mikko Aspiala <mikko.aspiala@gmail.com>

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
This commit is contained in:
Janne Savolainen 2022-02-03 12:26:14 +01:00 committed by GitHub
parent 6ebfd76644
commit 09824a6e01
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 44 additions and 42 deletions

View File

@ -138,12 +138,9 @@ class NonInjectedKubeObjectListLayout<K extends KubeObject> extends React.Compon
} }
} }
export function KubeObjectListLayout<K extends KubeObject>(
props: KubeObjectListLayoutProps<K>,
) {
const InjectedKubeObjectListLayout = withInjectables< const InjectedKubeObjectListLayout = withInjectables<
Dependencies, Dependencies,
KubeObjectListLayoutProps<K> KubeObjectListLayoutProps<KubeObject>
>( >(
NonInjectedKubeObjectListLayout, NonInjectedKubeObjectListLayout,
@ -156,5 +153,10 @@ export function KubeObjectListLayout<K extends KubeObject>(
}, },
); );
export function KubeObjectListLayout<K extends KubeObject>(
props: KubeObjectListLayoutProps<K>,
) {
return <InjectedKubeObjectListLayout {...props} />; return <InjectedKubeObjectListLayout {...props} />;
} }

View File

@ -108,10 +108,7 @@ class NonInjectedKubeObjectMenu<TKubeObject extends KubeObject> extends React.Co
} }
} }
export function KubeObjectMenu<T extends KubeObject>( const InjectedKubeObjectMenu = withInjectables<Dependencies, KubeObjectMenuProps<KubeObject>>(
props: KubeObjectMenuProps<T>,
) {
const InjectedKubeObjectMenu = withInjectables<Dependencies, KubeObjectMenuProps<T>>(
NonInjectedKubeObjectMenu, NonInjectedKubeObjectMenu,
{ {
getProps: (di, props) => ({ getProps: (di, props) => ({
@ -128,5 +125,8 @@ export function KubeObjectMenu<T extends KubeObject>(
}, },
); );
export function KubeObjectMenu<T extends KubeObject>(
props: KubeObjectMenuProps<T>,
) {
return <InjectedKubeObjectMenu {...props} />; return <InjectedKubeObjectMenu {...props} />;
} }

View File

@ -246,8 +246,7 @@ class NonInjectedTable<Item> extends React.Component<TableProps<Item> & Dependen
} }
} }
export function Table<Item>(props: TableProps<Item>) { const InjectedTable = withInjectables<Dependencies, TableProps<any>>(
const InjectedTable = withInjectables<Dependencies, TableProps<Item>>(
NonInjectedTable, NonInjectedTable,
{ {
@ -258,6 +257,7 @@ export function Table<Item>(props: TableProps<Item>) {
}, },
); );
export function Table<Item>(props: TableProps<Item>) {
return <InjectedTable {...props} />; return <InjectedTable {...props} />;
} }