diff --git a/packages/sdk/src/core/goview/convert.ts b/packages/sdk/src/core/goview/convert.ts index 5ffb1ee..2f68e7b 100644 --- a/packages/sdk/src/core/goview/convert.ts +++ b/packages/sdk/src/core/goview/convert.ts @@ -341,16 +341,20 @@ export function convertGoViewProjectToScreen(input: GoViewProjectLike | GoViewSt // We try to infer the widget kind early so we can pick better default sizes // when exports omit sizing information. - const inferredType: 'text' | 'image' | 'iframe' | 'video' | undefined = isTextCommon(c) - ? 'text' - : isImage(c) || looksLikeImageOption(option) + // Important: run media/embed checks before text checks. + // Some goView/fork widgets have misleading keys that contain "text" even though + // the option payload is clearly video/iframe. + const inferredType: 'text' | 'image' | 'iframe' | 'video' | undefined = + isImage(c) || looksLikeImageOption(option) ? 'image' : // Important: run video checks before iframe checks; iframe URL detection is broader. isVideo(c) || looksLikeVideoOption(option) ? 'video' : isIframe(c) || looksLikeIframeOption(option) ? 'iframe' - : undefined; + : isTextCommon(c) + ? 'text' + : undefined; const defaults = inferredType === 'text'