| 274 | } |
| 275 | |
| 276 | func callVDomFn(fnVal any, data vdom.VDomEvent) { |
| 277 | if fnVal == nil { |
| 278 | return |
| 279 | } |
| 280 | fn := fnVal |
| 281 | if vdf, ok := fnVal.(*vdom.VDomFunc); ok { |
| 282 | fn = vdf.Fn |
| 283 | } |
| 284 | if fn == nil { |
| 285 | return |
| 286 | } |
| 287 | rval := reflect.ValueOf(fn) |
| 288 | if rval.Kind() != reflect.Func { |
| 289 | return |
| 290 | } |
| 291 | rtype := rval.Type() |
| 292 | if rtype.NumIn() == 0 { |
| 293 | rval.Call(nil) |
| 294 | return |
| 295 | } |
| 296 | if rtype.NumIn() == 1 { |
| 297 | rval.Call([]reflect.Value{reflect.ValueOf(data)}) |
| 298 | return |
| 299 | } |
| 300 | } |
| 301 | |
| 302 | func (r *RootElem) Event(event vdom.VDomEvent, globalEventHandler func(vdom.VDomEvent)) { |
| 303 | defer func() { |