diff --git a/site/src/pages/TerminalPage/TerminalPage.tsx b/site/src/pages/TerminalPage/TerminalPage.tsx index 09fc1a0633511..4352ee40c0991 100644 --- a/site/src/pages/TerminalPage/TerminalPage.tsx +++ b/site/src/pages/TerminalPage/TerminalPage.tsx @@ -30,18 +30,11 @@ export const Language = { websocketErrorMessagePrefix: "WebSocket failed: ", } -const useTerminalWarning = ({ - agent, - fitAddon, -}: { - agent?: WorkspaceAgent - fitAddon: FitAddon | null -}) => { +const useTerminalWarning = ({ agent }: { agent?: WorkspaceAgent }) => { const lifecycleState = agent?.lifecycle_state const [startupWarning, setStartupWarning] = useState< TerminalPageAlertType | undefined >(undefined) - const shouldDisplayWarning = startupWarning !== undefined useEffect(() => { if (lifecycleState === "start_error") { @@ -58,13 +51,6 @@ const useTerminalWarning = ({ } }, [lifecycleState]) - // Resize the terminal when the warning toggles - useEffect(() => { - if (fitAddon) { - fitAddon.fit() - } - }, [shouldDisplayWarning, fitAddon]) - return { startupWarning, } @@ -132,7 +118,6 @@ const TerminalPage: FC = ({ renderer }) => { : undefined const { startupWarning } = useTerminalWarning({ agent: workspaceAgent, - fitAddon, }) // handleWebLink handles opening of URLs in the terminal! @@ -352,7 +337,14 @@ const TerminalPage: FC = ({ renderer }) => { )} - {startupWarning && } + {startupWarning && ( + { + fitAddon?.fit() + }} + /> + )}
{ +export default ({ + alertType, + onDismiss, +}: { + alertType: TerminalPageAlertType + onDismiss: () => void +}) => { + const severity = mapAlertTypeToText[alertType].severity return ( theme.palette.divider, + backgroundColor: (theme) => theme.palette.background.paperLight, + borderLeft: (theme) => `3px solid ${theme.palette[severity].light}`, + marginBottom: 1, + }} + onDismiss={onDismiss} dismissible actions={[