mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
Fix infinite render loop in release details (#4710)
* Fix infinite render loop in release details by replacing stateful, UI-triggered releaseStore with reactive async computed Co-authored-by: Mikko Aspiala <mikko.aspiala@gmail.com> Signed-off-by: Janne Savolainen <janne.savolainen@live.fi> * Update injectable Co-authored-by: Mikko Aspiala <mikko.aspiala@gmail.com> Signed-off-by: Janne Savolainen <janne.savolainen@live.fi> * Remove unnecessary return Signed-off-by: Janne Savolainen <janne.savolainen@live.fi> * Remove empty lines Signed-off-by: Janne Savolainen <janne.savolainen@live.fi> * Allow injection of history Co-authored-by: Mikko Aspiala <mikko.aspiala@gmail.com> Signed-off-by: Janne Savolainen <janne.savolainen@live.fi> * Make data required for opening of release details a dependency to make sure it's present Co-authored-by: Mikko Aspiala <mikko.aspiala@gmail.com> Signed-off-by: Janne Savolainen <janne.savolainen@live.fi> * Remove dead code Co-authored-by: Mikko Aspiala <mikko.aspiala@gmail.com> Signed-off-by: Janne Savolainen <janne.savolainen@live.fi> * Make arriving release values not re-render whole details Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
This commit is contained in:
1 parent
b7d29f8c49
commit
4f5a2988cb
33 files changed
+836
-600
No files matched your search
@@ -7,7 +7,6 @@ import { injectSystemCAs } from "../../../common/system-ca";
|
||||
import React from "react";
|
||||
import { Route, Router, Switch } from "react-router";
|
||||
import { observer } from "mobx-react";
|
||||
import { history } from "../../navigation";
|
||||
import { ClusterManager } from "../../components/cluster-manager";
|
||||
import { ErrorBoundary } from "../../components/error-boundary";
|
||||
import { Notifications } from "../../components/notifications";
|
||||
@@ -16,14 +15,21 @@ import { CommandContainer } from "../../components/command-palette/command-conta
|
||||
import { ipcRenderer } from "electron";
|
||||
import { IpcRendererNavigationEvents } from "../../navigation/events";
|
||||
import { ClusterFrameHandler } from "../../components/cluster-manager/lens-views";
|
||||
import historyInjectable from "../../navigation/history.injectable";
|
||||
import { withInjectables } from "@ogre-tools/injectable-react";
|
||||
import type { History } from "history";
|
||||
|
||||
injectSystemCAs();
|
||||
|
||||
interface Dependencies {
|
||||
history: History
|
||||
}
|
||||
|
||||
@observer
|
||||
export class RootFrame extends React.Component {
|
||||
class NonInjectedRootFrame extends React.Component<Dependencies> {
|
||||
static displayName = "RootFrame";
|
||||
|
||||
constructor(props: {}) {
|
||||
constructor(props: Dependencies) {
|
||||
super(props);
|
||||
|
||||
ClusterFrameHandler.createInstance();
|
||||
@@ -35,7 +41,7 @@ export class RootFrame extends React.Component {
|
||||
|
||||
render() {
|
||||
return (
|
||||
<Router history={history}>
|
||||
<Router history={this.props.history}>
|
||||
<ErrorBoundary>
|
||||
<Switch>
|
||||
<Route component={ClusterManager} />
|
||||
@@ -48,3 +54,7 @@ export class RootFrame extends React.Component {
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
export const RootFrame = withInjectables(NonInjectedRootFrame, {
|
||||
getProps: (di) => ({ history: di.inject(historyInjectable) }),
|
||||
});
|
||||
Reference in new issue
Block a user