package webui import ( "fmt" "strings" elem "github.com/chasefleming/elem-go" "github.com/chasefleming/elem-go/attrs" ) func chatDiv(content string, color string) string { div := elem.Div(attrs.Props{ // attrs.ID: "container", attrs.Class: fmt.Sprintf("p-2 my-2 rounded bg-%s-600", color), }, elem.Raw(htmlIfy(content)), ) return div.Render() } func loader() string { return elem.Div(attrs.Props{ attrs.Class: "loader", }).Render() } func disabledElement(id string, disabled bool) string { return elem.Script(nil, elem.If(disabled, elem.Raw(`document.getElementById('`+id+`').disabled = true`), elem.Raw(`document.getElementById('`+id+`').disabled = false`), )).Render() } func htmlIfy(s string) string { s = strings.TrimSpace(s) s = strings.ReplaceAll(s, "\n", "
") return s }