mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-01-30 04:50:04 +00:00
- Fixes automatic promotion of image previews by ~~more correctly handling a usage of `requestAnimationFrame` and~~ introducing a means to perform actions upon successful load of preview. - When workflows contain an old proxyWidget property in string form, parse it instead of throwing an error. - Do not overlay the `label` of promoted widgets. Further consideration is needed, but this resolves the primary annoyance and prevents untranslated widget names See #5914 ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-5911-Subgraph-widget-promotion-fixes-2826d73d365081838ffeeea4b8d7068c) by [Unito](https://www.unito.io)
21 lines
760 B
TypeScript
21 lines
760 B
TypeScript
import { z } from 'zod'
|
|
import { fromZodError } from 'zod-validation-error'
|
|
|
|
import type { NodeProperty } from '@/lib/litegraph/src/LGraphNode'
|
|
|
|
const proxyWidgetsPropertySchema = z.array(z.tuple([z.string(), z.string()]))
|
|
export type ProxyWidgetsProperty = z.infer<typeof proxyWidgetsPropertySchema>
|
|
|
|
export function parseProxyWidgets(
|
|
property: NodeProperty | undefined
|
|
): ProxyWidgetsProperty {
|
|
if (typeof property === 'string') property = JSON.parse(property)
|
|
const result = proxyWidgetsPropertySchema.safeParse(
|
|
typeof property === 'string' ? JSON.parse(property) : property
|
|
)
|
|
if (result.success) return result.data
|
|
|
|
const error = fromZodError(result.error)
|
|
throw new Error(`Invalid assignment for properties.proxyWidgets:\n${error}`)
|
|
}
|