chore: super conversion dialog (#2669)

This commit is contained in:
Mo
2023-11-30 10:50:15 -06:00
committed by GitHub
parent 394ed65e11
commit 8790f97e2d
4 changed files with 31 additions and 7 deletions

View File

@@ -21,6 +21,7 @@ interface Props {
requestReload?: (viewer: ComponentViewerInterface, force?: boolean) => void requestReload?: (viewer: ComponentViewerInterface, force?: boolean) => void
onLoad?: () => void onLoad?: () => void
readonly?: boolean readonly?: boolean
usedInModal?: boolean
} }
/** /**
@@ -31,7 +32,13 @@ const MaxLoadThreshold = 4000
const VisibilityChangeKey = 'visibilitychange' const VisibilityChangeKey = 'visibilitychange'
const MSToWaitAfterIframeLoadToAvoidFlicker = 35 const MSToWaitAfterIframeLoadToAvoidFlicker = 35
const IframeFeatureView: FunctionComponent<Props> = ({ onLoad, componentViewer, requestReload, readonly = false }) => { const IframeFeatureView: FunctionComponent<Props> = ({
onLoad,
componentViewer,
requestReload,
readonly = false,
usedInModal = false,
}) => {
const application = useApplication() const application = useApplication()
const iframeRef = useRef<HTMLIFrameElement | null>(null) const iframeRef = useRef<HTMLIFrameElement | null>(null)
@@ -241,6 +248,7 @@ const IframeFeatureView: FunctionComponent<Props> = ({ onLoad, componentViewer,
frameBorder={0} frameBorder={0}
src={componentViewer.url || ''} src={componentViewer.url || ''}
sandbox={sandboxAttributes.join(' ')} sandbox={sandboxAttributes.join(' ')}
{...(usedInModal && { 'data-used-in-modal': true })}
> >
Loading Loading
</iframe> </iframe>

View File

@@ -134,7 +134,11 @@ const PositionedPopoverContent = ({
}} }}
onBlur={() => { onBlur={() => {
setTimeout(() => { setTimeout(() => {
if (document.activeElement && document.activeElement.tagName === 'IFRAME') { if (
document.activeElement &&
document.activeElement.tagName === 'IFRAME' &&
!document.activeElement.getAttribute('data-used-in-modal')
) {
togglePopover?.() togglePopover?.()
} }
}) })

View File

@@ -191,7 +191,12 @@ const SuperNoteConverter = ({
) : null} ) : null}
{componentViewer ? ( {componentViewer ? (
<div className="component-view min-h-0"> <div className="component-view min-h-0">
<IframeFeatureView key={componentViewer.identifier} componentViewer={componentViewer} /> <IframeFeatureView
usedInModal
readonly={true}
key={componentViewer.identifier}
componentViewer={componentViewer}
/>
</div> </div>
) : ( ) : (
<div className="h-full min-h-0 overflow-hidden"> <div className="h-full min-h-0 overflow-hidden">

View File

@@ -24,8 +24,7 @@ const insertNativeEditorsInMap = (map: NoteTypeToEditorRowsMap, application: Web
continue continue
} }
const isDeprecated = editorFeature.deprecated if (editorFeature.deprecated) {
if (isDeprecated) {
continue continue
} }
@@ -47,8 +46,16 @@ const insertInstalledComponentsInMap = (map: NoteTypeToEditorRowsMap, applicatio
}) })
for (const editor of thirdPartyOrInstalledEditors) { for (const editor of thirdPartyOrInstalledEditors) {
const nativeFeature = FindNativeFeature(editor.identifier) const nativeFeature = FindNativeFeature(editor.identifier) as IframeComponentFeatureDescription
if (nativeFeature && !nativeFeature.deprecated) {
if (nativeFeature) {
map[nativeFeature.note_type].push({
isEntitled:
application.features.getFeatureStatus(NativeFeatureIdentifier.create(nativeFeature.identifier).getValue()) ===
FeatureStatus.Entitled,
uiFeature: new UIFeature(nativeFeature),
})
continue continue
} }