feat: ControlRenderer checks widget registry for custom widgets
Added registry lookup at top of renderWidget() before hardcoded switch. Custom widgets registered via engine.registerWidget(type:factory) are now rendered by the factory closure, enabling app-level extensions.
This commit is contained in:
parent
36967370fd
commit
5ba2ae163b
@ -26,6 +26,16 @@ public struct ControlRenderer: View {
|
|||||||
func renderWidget(_ schema: ControlSchema) -> some View {
|
func renderWidget(_ schema: ControlSchema) -> some View {
|
||||||
let type = schema.widgettype
|
let type = schema.widgettype
|
||||||
|
|
||||||
|
// 优先查找自定义注册的widget
|
||||||
|
if let factory = engine.getWidgetFactory(type: type) {
|
||||||
|
factory(schema, engine)
|
||||||
|
} else {
|
||||||
|
renderKnownWidget(schema, type: type)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@ViewBuilder
|
||||||
|
func renderKnownWidget(_ schema: ControlSchema, type: String) -> some View {
|
||||||
switch type {
|
switch type {
|
||||||
// 文本类
|
// 文本类
|
||||||
case "Text":
|
case "Text":
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user