diff --git a/ui/src/components/IssueDocumentAnnotations.tsx b/ui/src/components/IssueDocumentAnnotations.tsx
index b38768b36c4..e17a24fcd26 100644
--- a/ui/src/components/IssueDocumentAnnotations.tsx
+++ b/ui/src/components/IssueDocumentAnnotations.tsx
@@ -242,6 +242,30 @@ export function IssueDocumentAnnotations({
[allThreads],
);
+ const fallbackDesktopPanelFrame = useMemo(() => {
+ if (!panelOpen || isMobile || desktopPanelFrame || typeof window === "undefined") return null;
+ const width = Math.min(
+ DESKTOP_ANNOTATION_PANEL_WIDTH,
+ Math.max(
+ DESKTOP_ANNOTATION_PANEL_MIN_WIDTH,
+ window.innerWidth - DESKTOP_ANNOTATION_PANEL_VIEWPORT_MARGIN * 2,
+ ),
+ );
+ return {
+ left: Math.max(
+ DESKTOP_ANNOTATION_PANEL_VIEWPORT_MARGIN,
+ window.innerWidth - width - DESKTOP_ANNOTATION_PANEL_VIEWPORT_MARGIN,
+ ),
+ top: DESKTOP_ANNOTATION_PANEL_VIEWPORT_MARGIN,
+ maxHeight: Math.max(
+ 240,
+ window.innerHeight - DESKTOP_ANNOTATION_PANEL_VIEWPORT_MARGIN * 2,
+ ),
+ width,
+ };
+ }, [desktopPanelFrame, isMobile, panelOpen]);
+ const renderedDesktopPanelFrame = desktopPanelFrame ?? fallbackDesktopPanelFrame;
+
const annotationPanel = panelOpen ? (