| 189 | } |
| 190 | |
| 191 | func callVDomFn(fnVal any, data VDomEvent) { |
| 192 | if fnVal == nil { |
| 193 | return |
| 194 | } |
| 195 | fn := fnVal |
| 196 | if vdf, ok := fnVal.(*VDomFunc); ok { |
| 197 | fn = vdf.Fn |
| 198 | } |
| 199 | if fn == nil { |
| 200 | return |
| 201 | } |
| 202 | rval := reflect.ValueOf(fn) |
| 203 | if rval.Kind() != reflect.Func { |
| 204 | return |
| 205 | } |
| 206 | rtype := rval.Type() |
| 207 | if rtype.NumIn() == 0 { |
| 208 | rval.Call(nil) |
| 209 | return |
| 210 | } |
| 211 | if rtype.NumIn() == 1 { |
| 212 | rval.Call([]reflect.Value{reflect.ValueOf(data)}) |
| 213 | return |
| 214 | } |
| 215 | } |
| 216 | |
| 217 | func (r *RootElem) Event(id string, propName string, event VDomEvent) { |
| 218 | comp := r.CompMap[id] |