diff --git a/packages/web/src/javascripts/Components/ComponentView/IframeFeatureView.tsx b/packages/web/src/javascripts/Components/ComponentView/IframeFeatureView.tsx index ff2807472..f86bc6d3e 100644 --- a/packages/web/src/javascripts/Components/ComponentView/IframeFeatureView.tsx +++ b/packages/web/src/javascripts/Components/ComponentView/IframeFeatureView.tsx @@ -21,6 +21,7 @@ interface Props { requestReload?: (viewer: ComponentViewerInterface, force?: boolean) => void onLoad?: () => void readonly?: boolean + usedInModal?: boolean } /** @@ -31,7 +32,13 @@ const MaxLoadThreshold = 4000 const VisibilityChangeKey = 'visibilitychange' const MSToWaitAfterIframeLoadToAvoidFlicker = 35 -const IframeFeatureView: FunctionComponent = ({ onLoad, componentViewer, requestReload, readonly = false }) => { +const IframeFeatureView: FunctionComponent = ({ + onLoad, + componentViewer, + requestReload, + readonly = false, + usedInModal = false, +}) => { const application = useApplication() const iframeRef = useRef(null) @@ -241,6 +248,7 @@ const IframeFeatureView: FunctionComponent = ({ onLoad, componentViewer, frameBorder={0} src={componentViewer.url || ''} sandbox={sandboxAttributes.join(' ')} + {...(usedInModal && { 'data-used-in-modal': true })} > Loading diff --git a/packages/web/src/javascripts/Components/Popover/PositionedPopoverContent.tsx b/packages/web/src/javascripts/Components/Popover/PositionedPopoverContent.tsx index d7fe18388..c21ce17b7 100644 --- a/packages/web/src/javascripts/Components/Popover/PositionedPopoverContent.tsx +++ b/packages/web/src/javascripts/Components/Popover/PositionedPopoverContent.tsx @@ -134,7 +134,11 @@ const PositionedPopoverContent = ({ }} onBlur={() => { setTimeout(() => { - if (document.activeElement && document.activeElement.tagName === 'IFRAME') { + if ( + document.activeElement && + document.activeElement.tagName === 'IFRAME' && + !document.activeElement.getAttribute('data-used-in-modal') + ) { togglePopover?.() } }) diff --git a/packages/web/src/javascripts/Components/SuperEditor/SuperNoteConverter.tsx b/packages/web/src/javascripts/Components/SuperEditor/SuperNoteConverter.tsx index 4247f88c5..dd78c3169 100644 --- a/packages/web/src/javascripts/Components/SuperEditor/SuperNoteConverter.tsx +++ b/packages/web/src/javascripts/Components/SuperEditor/SuperNoteConverter.tsx @@ -191,7 +191,12 @@ const SuperNoteConverter = ({ ) : null} {componentViewer ? (
- +
) : (
diff --git a/packages/web/src/javascripts/Utils/createEditorMenuGroups.ts b/packages/web/src/javascripts/Utils/createEditorMenuGroups.ts index 179d0fe9f..e28666255 100644 --- a/packages/web/src/javascripts/Utils/createEditorMenuGroups.ts +++ b/packages/web/src/javascripts/Utils/createEditorMenuGroups.ts @@ -24,8 +24,7 @@ const insertNativeEditorsInMap = (map: NoteTypeToEditorRowsMap, application: Web continue } - const isDeprecated = editorFeature.deprecated - if (isDeprecated) { + if (editorFeature.deprecated) { continue } @@ -47,8 +46,16 @@ const insertInstalledComponentsInMap = (map: NoteTypeToEditorRowsMap, applicatio }) for (const editor of thirdPartyOrInstalledEditors) { - const nativeFeature = FindNativeFeature(editor.identifier) - if (nativeFeature && !nativeFeature.deprecated) { + const nativeFeature = FindNativeFeature(editor.identifier) as IframeComponentFeatureDescription + + if (nativeFeature) { + map[nativeFeature.note_type].push({ + isEntitled: + application.features.getFeatureStatus(NativeFeatureIdentifier.create(nativeFeature.identifier).getValue()) === + FeatureStatus.Entitled, + uiFeature: new UIFeature(nativeFeature), + }) + continue }