package test import ( "context" "fmt" "github.com/doors-dev/doors" "github.com/doors-dev/gox" ) elem Report(value string) { ~(ReportId(0, value)) } elem ReportId(id int, value string) {
~(value)
} elem Marker(id string) {
} type page interface { h1() string content() gox.Elem head() gox.Elem } elem Document(p page) { ~(p.head())

~(p.h1())

~(p.content()) } func NewReporter(size int) *Reporter { reports := make([]*doors.Door, size) for i := range size { reports[i] = &doors.Door{} } return &Reporter{ reports: reports, } } type Reporter struct { reports []*doors.Door } func (r *Reporter) Update(ctx context.Context, i int, content string) { r.reports[i].Update(ctx, ReportId(i, content)) } elem (r *Reporter) Main() { ~(for _, report := range r.reports { ~(report) }) } elem Button(id string, handler func(context.Context) bool) { ~>doors.AClick{ On: func(ctx context.Context, _ doors.RequestEvent[doors.PointerEvent]) bool { return handler(ctx) }, } }