From 7690b33a9d96d62d8d19c9c2e50f801969697bc8 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Thu, 2 Apr 2026 20:01:23 +0000 Subject: [PATCH 1/3] Add EmailTheming validation check in Inspector.Provider Throws an error when Inspector.Provider is rendered without the EmailTheming extension registered on the editor. This gives developers a clear message instead of silently returning null in Inspector.Document. Co-authored-by: Gabriel Miranda --- packages/editor/src/ui/inspector/provider.tsx | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/packages/editor/src/ui/inspector/provider.tsx b/packages/editor/src/ui/inspector/provider.tsx index 8d7de715a8..e6863305d0 100644 --- a/packages/editor/src/ui/inspector/provider.tsx +++ b/packages/editor/src/ui/inspector/provider.tsx @@ -131,6 +131,18 @@ export function useInspector() { export function InspectorProvider({ children }: RootProps) { const { editor } = useCurrentEditor(); + if (editor) { + const hasEmailTheming = editor.extensionManager.extensions.some( + (extension) => extension.name === 'theming', + ); + if (!hasEmailTheming) { + throw new Error( + 'Inspector.Provider requires the EmailTheming extension to be added to your editor. ' + + 'Please add EmailTheming (or EmailTheming.configure({ ... })) to your editor extensions.', + ); + } + } + const target = useEditorState({ editor, selector(context): InspectorTarget { From 90b7936763df4714d074230f73fd073ca67a700e Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Thu, 2 Apr 2026 20:02:59 +0000 Subject: [PATCH 2/3] refactor: move EmailTheming check into useEffect on mount Co-authored-by: Gabriel Miranda --- packages/editor/src/ui/inspector/provider.tsx | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/packages/editor/src/ui/inspector/provider.tsx b/packages/editor/src/ui/inspector/provider.tsx index e6863305d0..500a8e44be 100644 --- a/packages/editor/src/ui/inspector/provider.tsx +++ b/packages/editor/src/ui/inspector/provider.tsx @@ -131,17 +131,19 @@ export function useInspector() { export function InspectorProvider({ children }: RootProps) { const { editor } = useCurrentEditor(); - if (editor) { - const hasEmailTheming = editor.extensionManager.extensions.some( - (extension) => extension.name === 'theming', - ); - if (!hasEmailTheming) { - throw new Error( - 'Inspector.Provider requires the EmailTheming extension to be added to your editor. ' + - 'Please add EmailTheming (or EmailTheming.configure({ ... })) to your editor extensions.', + React.useEffect(() => { + if (editor) { + const hasEmailTheming = editor.extensionManager.extensions.some( + (extension) => extension.name === 'theming', ); + if (!hasEmailTheming) { + throw new Error( + 'Inspector.Provider requires the EmailTheming extension to be added to your editor. ' + + 'Please add EmailTheming (or EmailTheming.configure({ ... })) to your editor extensions.', + ); + } } - } + }, [editor]); const target = useEditorState({ editor, From b43b4d0b187e53023bcfd57c8b09f5e054a7922d Mon Sep 17 00:00:00 2001 From: Gabriel Miranda Date: Thu, 2 Apr 2026 17:40:28 -0300 Subject: [PATCH 3/3] Apply suggestion from @cubic-dev-ai[bot] Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com> --- packages/editor/src/ui/inspector/provider.tsx | 20 +++++++++---------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/packages/editor/src/ui/inspector/provider.tsx b/packages/editor/src/ui/inspector/provider.tsx index 500a8e44be..e6863305d0 100644 --- a/packages/editor/src/ui/inspector/provider.tsx +++ b/packages/editor/src/ui/inspector/provider.tsx @@ -131,19 +131,17 @@ export function useInspector() { export function InspectorProvider({ children }: RootProps) { const { editor } = useCurrentEditor(); - React.useEffect(() => { - if (editor) { - const hasEmailTheming = editor.extensionManager.extensions.some( - (extension) => extension.name === 'theming', + if (editor) { + const hasEmailTheming = editor.extensionManager.extensions.some( + (extension) => extension.name === 'theming', + ); + if (!hasEmailTheming) { + throw new Error( + 'Inspector.Provider requires the EmailTheming extension to be added to your editor. ' + + 'Please add EmailTheming (or EmailTheming.configure({ ... })) to your editor extensions.', ); - if (!hasEmailTheming) { - throw new Error( - 'Inspector.Provider requires the EmailTheming extension to be added to your editor. ' + - 'Please add EmailTheming (or EmailTheming.configure({ ... })) to your editor extensions.', - ); - } } - }, [editor]); + } const target = useEditorState({ editor,