package savestatus import _ "embed" //go:embed status.html var markup string //go:embed status.css var css []byte //go:embed status.mjs var javascript []byte type Data struct { State, Placement string Saved, Saving, Retrying, Failed, Label string } func (d Data) CurrentState() string { switch d.State { case "saved", "saving", "retrying", "failed": return d.State default: return "idle" } } func (d Data) CurrentText() string { switch d.CurrentState() { case "saved": return d.Saved case "saving": return d.Saving case "retrying": return d.Retrying case "failed": return d.Failed default: return "" } } func (d Data) Mode() string { if d.Placement == "floating" { return "floating" } return "inline" } func Template() string { return markup } func CSS() []byte { return append([]byte(nil), css...) } func JS() []byte { return append([]byte(nil), javascript...) }