diff --git a/src/components/preview_panel/PreviewPanel.tsx b/src/components/preview_panel/PreviewPanel.tsx index 736bfd2..598d53f 100644 --- a/src/components/preview_panel/PreviewPanel.tsx +++ b/src/components/preview_panel/PreviewPanel.tsx @@ -1,5 +1,6 @@ import { useAtom, useAtomValue } from "jotai"; import { + appOutputAtom, previewModeAtom, previewPanelKeyAtom, selectedAppIdAtom, @@ -29,6 +30,12 @@ interface PreviewHeaderProps { onRestart: () => void; } +interface ConsoleHeaderProps { + isOpen: boolean; + onToggle: () => void; + latestMessage?: string; +} + // Preview Header component with preview mode toggle const PreviewHeader = ({ previewMode, @@ -81,16 +88,21 @@ const PreviewHeader = ({ const ConsoleHeader = ({ isOpen, onToggle, -}: { - isOpen: boolean; - onToggle: () => void; -}) => ( + latestMessage, +}: ConsoleHeaderProps) => (
- - System Messages + +
+ System Messages + {!isOpen && latestMessage && ( + + {latestMessage} + + )} +
{isOpen ? : }
@@ -104,6 +116,11 @@ export function PreviewPanel() { const { runApp, stopApp, restartApp, error, loading, app } = useRunApp(); const runningAppIdRef = useRef(null); const key = useAtomValue(previewPanelKeyAtom); + const appOutput = useAtomValue(appOutputAtom); + + const messageCount = appOutput.length; + const latestMessage = + messageCount > 0 ? appOutput[messageCount - 1]?.message : undefined; const handleRestart = useCallback(() => { restartApp(); @@ -183,6 +200,7 @@ export function PreviewPanel() { setIsConsoleOpen(false)} + latestMessage={latestMessage} />
@@ -192,7 +210,11 @@ export function PreviewPanel() { {!isConsoleOpen && ( - setIsConsoleOpen(true)} /> + setIsConsoleOpen(true)} + latestMessage={latestMessage} + /> )} );