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 {
|
||||
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 {
|
||||
// 文本类
|
||||
case "Text":
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user