tools/awps-tunnel/client/src/components/workflows/StatusIndicator.tsx (39 lines of code) (raw):
import { Icon } from "@fluentui/react";
import { ConnectionStatus, ConnectionStatusPair } from "../../models";
export function StatusIndicator({ status }: { status?: ConnectionStatus }) {
let className = status === ConnectionStatus.Connected ? "text-success" : status === ConnectionStatus.Disconnected ? "text-error" : "text-warning";
return <Icon iconName="StatusCircleInner" className={`${className} mx-2`}></Icon>;
}
export function StatusDescriptor({ status }: { status?: ConnectionStatus }) {
switch (status) {
case ConnectionStatus.Connected:
return (
<span className="text-success">
<Icon iconName="StatusCircleInner" className="text-success mx-2"></Icon>Connected
</span>
);
case ConnectionStatus.Disconnected:
return (
<span className="text-error">
<Icon iconName="StatusCircleInner" className="text-error mx-2"></Icon>Disconnected
</span>
);
default:
return (
<span className="text-warning">
<Icon iconName="StatusCircleInner" className="text-warning mx-2"></Icon>Connecting
</span>
);
}
}
export function StatusDisplayText({ status }: { status?: ConnectionStatusPair }) {
if (!status) {
return <span className="text-secondary">Unknown</span>;
}
if (status.statusOut === ConnectionStatus.Connected) {
return <span className="text-success">Succeeded</span>;
}
if (status.statusOut === ConnectionStatus.Disconnected) {
return <span className="text-error">Response error</span>;
}
return <span className="text-secondary">Unknown</span>;
}