summaryrefslogtreecommitdiff
path: root/form/form.go
blob: 84758f533ef66e9d4d3404ef3e523b31c7a893c4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package form

import (
	"context"
	"io"

	"github.com/a-h/templ"
)

func Form(v any, errs []error) templ.Component {
	fields := fields(v)
	errors := fieldErrors(errs)
	return templ.ComponentFunc(func(ctx context.Context, w io.Writer) error {
		for _, field := range fields {
			if err := field.item(errors[field.Name]).Render(ctx, w); err != nil {
				return err
			}
		}
		return nil
	})
}