import { useEffect, useRef, useCallback } from "react"; import type { ImageUpdateInfo } from "../../lib/types"; interface Props { imageUpdateInfo: ImageUpdateInfo; onDismiss: () => void; onClose: () => void; } export default function ImageUpdateDialog({ imageUpdateInfo, onDismiss, onClose, }: Props) { const overlayRef = useRef(null); useEffect(() => { const handleKeyDown = (e: KeyboardEvent) => { if (e.key === "Escape") onClose(); }; document.addEventListener("keydown", handleKeyDown); return () => document.removeEventListener("keydown", handleKeyDown); }, [onClose]); const handleOverlayClick = useCallback( (e: React.MouseEvent) => { if (e.target === overlayRef.current) onClose(); }, [onClose], ); const shortDigest = (digest: string) => { // Show first 16 chars of the hash part (after "sha256:") const hash = digest.startsWith("sha256:") ? digest.slice(7) : digest; return hash.slice(0, 16); }; return (

Container Image Update

A newer version of the container image is available in the registry. Re-pull the image in Docker settings to get the latest tools and fixes.

{imageUpdateInfo.local_digest && (
Local digest {shortDigest(imageUpdateInfo.local_digest)}...
)}
Remote digest {shortDigest(imageUpdateInfo.remote_digest)}...

Go to Settings > Docker and click "Re-pull Image" to update. Running containers will not be affected until restarted.

); }