diff --git a/decor/spinner.go b/decor/spinner.go index 1eff1a0..b184b5a 100644 --- a/decor/spinner.go +++ b/decor/spinner.go @@ -26,6 +26,7 @@ type spinnerDecorator struct { WC frames []string + count uint complete *string } @@ -33,7 +34,8 @@ if st.Completed && d.complete != nil { return d.FormatMsg(*d.complete) } - frame := d.frames[st.Current%int64(len(d.frames))] + frame := d.frames[d.count%uint(len(d.frames))] + d.count++ return d.FormatMsg(frame) } diff --git a/spinner_filler.go b/spinner_filler.go index 74fcb90..fdd67a8 100644 --- a/spinner_filler.go +++ b/spinner_filler.go @@ -22,12 +22,13 @@ type spinnerFiller struct { frames []string + count uint alignment SpinnerAlignment } func (s *spinnerFiller) Fill(w io.Writer, width int, stat *decor.Statistics) { - frame := s.frames[stat.Current%int64(len(s.frames))] + frame := s.frames[s.count%uint(len(s.frames))] frameWidth := utf8.RuneCountInString(frame) if width < frameWidth { @@ -43,4 +44,5 @@ case SpinnerOnRight: io.WriteString(w, strings.Repeat(" ", rest)+frame) } + s.count++ }