diff --git a/doc/screenshots/pr-6381/aws-discovery-candidates.png b/doc/screenshots/pr-6381/aws-discovery-candidates.png new file mode 100644 index 00000000000..9006d175cf6 Binary files /dev/null and b/doc/screenshots/pr-6381/aws-discovery-candidates.png differ diff --git a/doc/screenshots/pr-6381/provider-vaults-tab.png b/doc/screenshots/pr-6381/provider-vaults-tab.png new file mode 100644 index 00000000000..6d304c20422 Binary files /dev/null and b/doc/screenshots/pr-6381/provider-vaults-tab.png differ diff --git a/doc/screenshots/pr-6381/remove-provider-vault-confirmation.png b/doc/screenshots/pr-6381/remove-provider-vault-confirmation.png new file mode 100644 index 00000000000..40a4c81a06e Binary files /dev/null and b/doc/screenshots/pr-6381/remove-provider-vault-confirmation.png differ diff --git a/docs/pr-screenshots/pr-6384/dev-restart-banner-desktop.png b/docs/pr-screenshots/pr-6384/dev-restart-banner-desktop.png new file mode 100644 index 00000000000..eaaff14cf49 Binary files /dev/null and b/docs/pr-screenshots/pr-6384/dev-restart-banner-desktop.png differ diff --git a/docs/pr-screenshots/pr-6384/dev-restart-banner-mobile.png b/docs/pr-screenshots/pr-6384/dev-restart-banner-mobile.png new file mode 100644 index 00000000000..8d6794d9c2c Binary files /dev/null and b/docs/pr-screenshots/pr-6384/dev-restart-banner-mobile.png differ diff --git a/docs/pr-screenshots/pr-6384/inbox-rows-desktop.png b/docs/pr-screenshots/pr-6384/inbox-rows-desktop.png new file mode 100644 index 00000000000..ebb28fc0d4c Binary files /dev/null and b/docs/pr-screenshots/pr-6384/inbox-rows-desktop.png differ diff --git a/docs/pr-screenshots/pr-6384/sidebar-desktop.png b/docs/pr-screenshots/pr-6384/sidebar-desktop.png new file mode 100644 index 00000000000..9adca66b633 Binary files /dev/null and b/docs/pr-screenshots/pr-6384/sidebar-desktop.png differ diff --git a/packages/db/src/backup-lib.test.ts b/packages/db/src/backup-lib.test.ts index 10d217e2bbc..5cabb4d0be2 100644 --- a/packages/db/src/backup-lib.test.ts +++ b/packages/db/src/backup-lib.test.ts @@ -352,7 +352,7 @@ describeEmbeddedPostgres("runDatabaseBackup", () => { '11111111-1111-4111-8111-111111111111', '22222222-2222-4222-8222-222222222222', 'signal', - ARRAY['upstream_import:preview', 'scope with space', 'quoted "scope"'], + ARRAY['upstream_import:preview', 'scope with space', 'quoted "scope"', 'NULL', 'null'], jsonb_build_array('json warning', jsonb_build_object('code', 'quoted "value"')) ); `); @@ -386,7 +386,7 @@ describeEmbeddedPostgres("runDatabaseBackup", () => { { signal: "signal", title: "case", - scopes: ["upstream_import:preview", "scope with space", 'quoted "scope"'], + scopes: ["upstream_import:preview", "scope with space", 'quoted "scope"', "NULL", "null"], warnings: ["json warning", { code: 'quoted "value"' }], }, ]); diff --git a/packages/db/src/backup-lib.ts b/packages/db/src/backup-lib.ts index 7a278b60935..02dc168bdb3 100644 --- a/packages/db/src/backup-lib.ts +++ b/packages/db/src/backup-lib.ts @@ -257,7 +257,7 @@ function formatPostgresArrayElement(value: unknown): string { : typeof value === "object" ? JSON.stringify(value) : String(value); - if (raw.length === 0 || /[{}\s,"\\]/.test(raw)) { + if (raw.length === 0 || /^null$/i.test(raw) || /[{}\s,"\\]/.test(raw)) { return `"${raw.replaceAll("\\", "\\\\").replaceAll('"', '\\"')}"`; } return raw; diff --git a/packages/plugins/plugin-workspace-diff/src/ui/index.tsx b/packages/plugins/plugin-workspace-diff/src/ui/index.tsx index f660bddc4fd..40b96249b40 100644 --- a/packages/plugins/plugin-workspace-diff/src/ui/index.tsx +++ b/packages/plugins/plugin-workspace-diff/src/ui/index.tsx @@ -129,14 +129,16 @@ function writeStoredFileSidebarWidth(width: number) { } function useIsDesktopDiffLayout() { - const [isDesktop, setIsDesktop] = useState(false); + const [isDesktop, setIsDesktop] = useState(() => { + if (typeof window === "undefined" || typeof window.matchMedia !== "function") return false; + return window.matchMedia("(min-width: 1024px)").matches; + }); useEffect(() => { if (typeof window === "undefined" || typeof window.matchMedia !== "function") return; const query = window.matchMedia("(min-width: 1024px)"); const update = () => setIsDesktop(query.matches); - update(); query.addEventListener("change", update); return () => query.removeEventListener("change", update); }, []); @@ -576,10 +578,6 @@ export function ChangesTab({ context }: PluginDetailTabProps) { }; }, []); - useEffect(() => { - fileSidebarWidthRef.current = fileSidebarWidth; - }, [fileSidebarWidth]); - useEffect(() => { if (!fileSidebarResizing || typeof document === "undefined") return; @@ -644,7 +642,7 @@ export function ChangesTab({ context }: PluginDetailTabProps) {