mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
* 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>
61 lines
1.8 KiB
TypeScript
61 lines
1.8 KiB
TypeScript
/**
|
|
* Copyright (c) OpenLens Authors. All rights reserved.
|
|
* Licensed under MIT License. See LICENSE in root directory for more information.
|
|
*/
|
|
|
|
import { injectSystemCAs } from "../../../common/system-ca";
|
|
import React from "react";
|
|
import { Route, Router, Switch } from "react-router";
|
|
import { observer } from "mobx-react";
|
|
import { ClusterManager } from "../../components/cluster-manager";
|
|
import { ErrorBoundary } from "../../components/error-boundary";
|
|
import { Notifications } from "../../components/notifications";
|
|
import { ConfirmDialog } from "../../components/confirm-dialog";
|
|
import { CommandContainer } from "../../components/command-palette/command-container";
|
|
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
|
|
class NonInjectedRootFrame extends React.Component<Dependencies> {
|
|
static displayName = "RootFrame";
|
|
|
|
constructor(props: Dependencies) {
|
|
super(props);
|
|
|
|
ClusterFrameHandler.createInstance();
|
|
}
|
|
|
|
componentDidMount() {
|
|
ipcRenderer.send(IpcRendererNavigationEvents.LOADED);
|
|
}
|
|
|
|
render() {
|
|
return (
|
|
<Router history={this.props.history}>
|
|
<ErrorBoundary>
|
|
<Switch>
|
|
<Route component={ClusterManager} />
|
|
</Switch>
|
|
</ErrorBoundary>
|
|
<Notifications />
|
|
<ConfirmDialog />
|
|
<CommandContainer />
|
|
</Router>
|
|
);
|
|
}
|
|
}
|
|
|
|
export const RootFrame = withInjectables(NonInjectedRootFrame, {
|
|
getProps: (di) => ({ history: di.inject(historyInjectable) }),
|
|
});
|