diff --git a/package.json b/package.json
index d314a2b..5f755b4 100644
--- a/package.json
+++ b/package.json
@@ -9,7 +9,7 @@
},
"scripts": {
"start": "vite",
- "build": "vite build",
+ "build": "node ../scripts/generate-update-manifest.mjs && vite build",
"lint": "yarn check:eslint && yarn check:prettier",
"check:eslint": "eslint src/*",
"check:prettier": "prettier --check .",
diff --git a/src/app/components/updates-dialog/UpdatesDialog.css.ts b/src/app/components/updates-dialog/UpdatesDialog.css.ts
index cc86776..af1f358 100644
--- a/src/app/components/updates-dialog/UpdatesDialog.css.ts
+++ b/src/app/components/updates-dialog/UpdatesDialog.css.ts
@@ -3,7 +3,13 @@ import { color, config, toRem } from 'folds';
const MOBILE_BREAKPOINT = '480px';
-/** Dialog height cap — 85% of the viewport, minus safe areas. */
+export const PortalLayer = style({
+ position: 'fixed',
+ inset: 0,
+ zIndex: config.zIndex.Max,
+});
+
+/** Dialog + overlay padding must never exceed the viewport height. */
const DIALOG_MAX_HEIGHT =
'calc(85vh - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px))';
diff --git a/src/app/components/updates-dialog/UpdatesDialog.tsx b/src/app/components/updates-dialog/UpdatesDialog.tsx
index 202fda9..873363c 100644
--- a/src/app/components/updates-dialog/UpdatesDialog.tsx
+++ b/src/app/components/updates-dialog/UpdatesDialog.tsx
@@ -1,8 +1,10 @@
import React, { useState } from 'react';
+import { createPortal } from 'react-dom';
import FocusTrap from 'focus-trap-react';
import {
Box,
Button,
+ config,
Dialog,
IconButton,
Overlay,
@@ -46,18 +48,19 @@ export function UpdatesDialog({
setShowOlderList(false);
};
- return (
- }>
-
-
-