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)
},
}
}