sdk: infer iframe/video before text in goView import

This commit is contained in:
clawdbot 2026-01-28 00:34:28 +08:00
parent c20e4796ae
commit 67a61d92f5

View File

@ -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 // We try to infer the widget kind early so we can pick better default sizes
// when exports omit sizing information. // when exports omit sizing information.
const inferredType: 'text' | 'image' | 'iframe' | 'video' | undefined = isTextCommon(c) // Important: run media/embed checks before text checks.
? 'text' // Some goView/fork widgets have misleading keys that contain "text" even though
: isImage(c) || looksLikeImageOption(option) // the option payload is clearly video/iframe.
const inferredType: 'text' | 'image' | 'iframe' | 'video' | undefined =
isImage(c) || looksLikeImageOption(option)
? 'image' ? 'image'
: // Important: run video checks before iframe checks; iframe URL detection is broader. : // Important: run video checks before iframe checks; iframe URL detection is broader.
isVideo(c) || looksLikeVideoOption(option) isVideo(c) || looksLikeVideoOption(option)
? 'video' ? 'video'
: isIframe(c) || looksLikeIframeOption(option) : isIframe(c) || looksLikeIframeOption(option)
? 'iframe' ? 'iframe'
: undefined; : isTextCommon(c)
? 'text'
: undefined;
const defaults = const defaults =
inferredType === 'text' inferredType === 'text'