From dec07e6fdfb6cbff06f6572a28318c9c842c69a1 Mon Sep 17 00:00:00 2001 From: Alano Terblanche <18033717+Benehiko@users.noreply.github.com> Date: Mon, 7 Jul 2025 11:22:28 +0200 Subject: [PATCH] tui/note: add warning note type Signed-off-by: Alano Terblanche <18033717+Benehiko@users.noreply.github.com> --- internal/tui/note.go | 41 +++++++++++++++++++++++++++++++++++++---- 1 file changed, 37 insertions(+), 4 deletions(-) diff --git a/internal/tui/note.go b/internal/tui/note.go index 664ba9e8d..d2bc0b9af 100644 --- a/internal/tui/note.go +++ b/internal/tui/note.go @@ -15,19 +15,39 @@ var InfoHeader = Str{ Fancy: aec.Bold.Apply(aec.LightCyanB.Apply(aec.BlackF.Apply("i")) + " " + aec.LightCyanF.Apply("Info → ")), } -func (o Output) PrintNote(format string, args ...any) { +type options struct { + header Str +} + +type noteOptions func(o *options) + +func withHeader(header Str) noteOptions { + return func(o *options) { + o.header = header + } +} + +func (o Output) printNoteWithOptions(format string, args []any, opts ...noteOptions) { if o.isTerminal { // TODO: Handle all flags format = strings.ReplaceAll(format, "--platform", ColorFlag.Apply("--platform")) } - header := o.Sprint(InfoHeader) + opt := &options{ + header: InfoHeader, + } - _, _ = fmt.Fprint(o, "\n", header) + for _, override := range opts { + override(opt) + } + + h := o.Sprint(opt.header) + + _, _ = fmt.Fprint(o, "\n", h) s := fmt.Sprintf(format, args...) for idx, line := range strings.Split(s, "\n") { if idx > 0 { - _, _ = fmt.Fprint(o, strings.Repeat(" ", Width(header))) + _, _ = fmt.Fprint(o, strings.Repeat(" ", Width(h))) } l := line @@ -37,3 +57,16 @@ func (o Output) PrintNote(format string, args ...any) { _, _ = fmt.Fprintln(o, l) } } + +func (o Output) PrintNote(format string, args ...any) { + o.printNoteWithOptions(format, args, withHeader(InfoHeader)) +} + +var warningHeader = Str{ + Plain: " Warn -> ", + Fancy: aec.Bold.Apply(aec.LightYellowB.Apply(aec.BlackF.Apply("w")) + " " + ColorWarning.Apply("Warn → ")), +} + +func (o Output) PrintWarning(format string, args ...any) { + o.printNoteWithOptions(format, args, withHeader(warningHeader)) +}