Merge remote-tracking branch 'origin/master' into eliminate-gst-from-app-paths

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
This commit is contained in:
Janne Savolainen committed 2022-01-11 13:56:23 +02:00
commit 8d87bd0985
80 files changed
+1822 -1271

No files matched your search

@@ -21,16 +21,14 @@
import React from "react";
import { boundMethod, cssNames } from "../../utils";
import { openPortForward, PortForwardItem } from "../../port-forward";
import { openPortForward, PortForwardItem, PortForwardStore } from "../../port-forward";
import { MenuActions, MenuActionsProps } from "../menu/menu-actions";
import { MenuItem } from "../menu";
import { Icon } from "../icon";
import { Notifications } from "../notifications";
import { withInjectables } from "@ogre-tools/injectable-react";
import removePortForwardInjectable
from "../../port-forward/port-forward-store/remove-port-forward/remove-port-forward.injectable";
import portForwardDialogModelInjectable
from "../../port-forward/port-forward-dialog-model/port-forward-dialog-model.injectable";
import portForwardDialogModelInjectable from "../../port-forward/port-forward-dialog-model/port-forward-dialog-model.injectable";
import portForwardStoreInjectable from "../../port-forward/port-forward-store/port-forward-store.injectable";
interface Props extends MenuActionsProps {
portForward: PortForwardItem;
@@ -38,7 +36,7 @@ interface Props extends MenuActionsProps {
}
interface Dependencies {
removePortForward: (item: PortForwardItem) => Promise<void>,
portForwardStore: PortForwardStore,
openPortForwardDialog: (item: PortForwardItem) => void
}
@@ -48,12 +46,48 @@ class NonInjectedPortForwardMenu extends React.Component<Props & Dependencies> {
const { portForward } = this.props;
try {
this.props.removePortForward(portForward);
this.portForwardStore.remove(portForward);
} catch (error) {
Notifications.error(`Error occurred stopping the port-forward from port ${portForward.forwardPort}. The port-forward may still be active.`);
}
}
get portForwardStore() {
return this.props.portForwardStore;
}
private startPortForwarding = async () => {
const { portForward } = this.props;
const pf = await this.portForwardStore.start(portForward);
if (pf.status === "Disabled") {
const { name, kind, forwardPort } = portForward;
Notifications.error(`Error occurred starting port-forward, the local port ${forwardPort} may not be available or the ${kind} ${name} may not be reachable`);
}
};
renderStartStopMenuItem() {
const { portForward, toolbar } = this.props;
if (portForward.status === "Active") {
return (
<MenuItem onClick={() => this.portForwardStore.stop(portForward)}>
<Icon material="stop" tooltip="Stop port-forward" interactive={toolbar} />
<span className="title">Stop</span>
</MenuItem>
);
}
return (
<MenuItem onClick={this.startPortForwarding}>
<Icon material="play_arrow" tooltip="Start port-forward" interactive={toolbar} />
<span className="title">Start</span>
</MenuItem>
);
}
renderContent() {
const { portForward, toolbar } = this.props;
@@ -61,14 +95,17 @@ class NonInjectedPortForwardMenu extends React.Component<Props & Dependencies> {
return (
<>
<MenuItem onClick={() => openPortForward(this.props.portForward)}>
<Icon material="open_in_browser" interactive={toolbar} tooltip="Open in browser" />
<span className="title">Open</span>
</MenuItem>
{ portForward.status === "Active" &&
<MenuItem onClick={() => openPortForward(portForward)}>
<Icon material="open_in_browser" interactive={toolbar} tooltip="Open in browser" />
<span className="title">Open</span>
</MenuItem>
}
<MenuItem onClick={() => this.props.openPortForwardDialog(portForward)}>
<Icon material="edit" tooltip="Change port or protocol" interactive={toolbar} />
<span className="title">Edit</span>
</MenuItem>
{this.renderStartStopMenuItem()}
</>
);
}
@@ -93,7 +130,7 @@ export const PortForwardMenu = withInjectables<Dependencies, Props>(
{
getProps: (di, props) => ({
removePortForward: di.inject(removePortForwardInjectable),
portForwardStore: di.inject(portForwardStoreInjectable),
openPortForwardDialog: di.inject(portForwardDialogModelInjectable).open,
...props,
}),
@@ -76,7 +76,7 @@ class NonInjectedPortForwards extends React.Component<Props & Dependencies> {
showDetails = (item: PortForwardItem) => {
navigation.push(portForwardsURL({
params: {
forwardport: String(item.getForwardPort()),
forwardport: item.getId(),
},
}));
};