(client *ClientImpl, name string, renderFn func(props P) any)
| 330 | } |
| 331 | |
| 332 | func DefineComponentEx[P any](client *ClientImpl, name string, renderFn func(props P) any) vdom.Component[P] { |
| 333 | if name == "" { |
| 334 | panic("Component name cannot be empty") |
| 335 | } |
| 336 | if !unicode.IsUpper(rune(name[0])) { |
| 337 | panic("Component name must start with an uppercase letter") |
| 338 | } |
| 339 | err := client.registerComponent(name, renderFn) |
| 340 | if err != nil { |
| 341 | panic(err) |
| 342 | } |
| 343 | return func(props P) *vdom.VDomElem { |
| 344 | return vdom.H(name, structToProps(props)) |
| 345 | } |
| 346 | } |
| 347 | |
| 348 | func (c *ClientImpl) registerComponent(name string, cfunc any) error { |
| 349 | return c.Root.RegisterComponent(name, cfunc) |
no test coverage detected