From 95e0b3d964cae4abe649b6bce06a514279fe8f7b Mon Sep 17 00:00:00 2001 From: James Koster Date: Fri, 29 May 2026 12:46:08 +0100 Subject: [PATCH] Dashboard: Fix Add widget error on non-secure HTTP origins Replace crypto.randomUUID() with the uuid package so widget creation works when the dashboard is served over HTTP on non-localhost domains. Co-authored-by: Cursor --- package-lock.json | 3 ++- routes/dashboard/package.json | 3 ++- .../create-dashboard-widget/create-dashboard-widget.ts | 7 ++++++- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 733bae8495f657..96db2bf6b9912d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -64392,7 +64392,8 @@ "@wordpress/viewport": "file:../../packages/viewport", "@wordpress/warning": "file:../../packages/warning", "clsx": "^2.1.1", - "fast-deep-equal": "^3.1.3" + "fast-deep-equal": "^3.1.3", + "uuid": "^14.0.0" } }, "routes/experiments-home": { diff --git a/routes/dashboard/package.json b/routes/dashboard/package.json index ea052031e303e2..a181e17739dc1e 100644 --- a/routes/dashboard/package.json +++ b/routes/dashboard/package.json @@ -31,6 +31,7 @@ "@wordpress/viewport": "file:../../packages/viewport", "@wordpress/warning": "file:../../packages/warning", "clsx": "^2.1.1", - "fast-deep-equal": "^3.1.3" + "fast-deep-equal": "^3.1.3", + "uuid": "^14.0.0" } } diff --git a/routes/dashboard/widget-dashboard/utils/create-dashboard-widget/create-dashboard-widget.ts b/routes/dashboard/widget-dashboard/utils/create-dashboard-widget/create-dashboard-widget.ts index 82e020c4063e55..74b1b56ad423ec 100644 --- a/routes/dashboard/widget-dashboard/utils/create-dashboard-widget/create-dashboard-widget.ts +++ b/routes/dashboard/widget-dashboard/utils/create-dashboard-widget/create-dashboard-widget.ts @@ -1,3 +1,8 @@ +/** + * External dependencies + */ +import { v4 as uuid } from 'uuid'; + /** * Internal dependencies */ @@ -24,7 +29,7 @@ export function createDashboardWidget< T >( initialAttributes?: T ): DashboardWidget< T > { return { - uuid: crypto.randomUUID(), + uuid: uuid(), type: widgetType.name, attributes: initialAttributes ?? ( widgetType.example?.attributes as T ),