diff --git a/pkg/gui/controllers/status_controller.go b/pkg/gui/controllers/status_controller.go index 2a186670b..5d35d9f47 100644 --- a/pkg/gui/controllers/status_controller.go +++ b/pkg/gui/controllers/status_controller.go @@ -4,6 +4,7 @@ import ( "errors" "fmt" "strings" + "time" "github.com/jesseduffield/lazygit/pkg/commands/types/enums" "github.com/jesseduffield/lazygit/pkg/constants" @@ -106,7 +107,7 @@ func (self *StatusController) onClick() error { } cx, _ := self.c.Views().Status.Cursor() - upstreamStatus := presentation.BranchStatus(currentBranch, types.ItemOperationNone, self.c.Tr) + upstreamStatus := presentation.BranchStatus(currentBranch, types.ItemOperationNone, self.c.Tr, time.Now()) repoName := self.c.Git().RepoPaths.RepoName() workingTreeState := self.c.Git().Status.WorkingTreeState() switch workingTreeState { diff --git a/pkg/gui/presentation/branches.go b/pkg/gui/presentation/branches.go index bd027ca62..22512aca2 100644 --- a/pkg/gui/presentation/branches.go +++ b/pkg/gui/presentation/branches.go @@ -3,6 +3,7 @@ package presentation import ( "fmt" "strings" + "time" "github.com/jesseduffield/lazygit/pkg/commands/git_commands" "github.com/jesseduffield/lazygit/pkg/commands/models" @@ -29,7 +30,7 @@ func GetBranchListDisplayStrings( ) [][]string { return lo.Map(branches, func(branch *models.Branch, _ int) []string { diffed := branch.Name == diffName - return getBranchDisplayStrings(branch, getItemOperation(branch), fullDescription, diffed, tr, userConfig, worktrees) + return getBranchDisplayStrings(branch, getItemOperation(branch), fullDescription, diffed, tr, userConfig, worktrees, time.Now()) }) } @@ -42,6 +43,7 @@ func getBranchDisplayStrings( tr *i18n.TranslationSet, userConfig *config.UserConfig, worktrees []*models.Worktree, + now time.Time, ) []string { displayName := b.Name if b.DisplayName != "" { @@ -124,13 +126,13 @@ func ColoredBranchStatus(branch *models.Branch, itemOperation types.ItemOperatio colour = style.FgMagenta } - return colour.Sprint(BranchStatus(branch, itemOperation, tr)) + return colour.Sprint(BranchStatus(branch, itemOperation, tr, time.Now())) } -func BranchStatus(branch *models.Branch, itemOperation types.ItemOperation, tr *i18n.TranslationSet) string { +func BranchStatus(branch *models.Branch, itemOperation types.ItemOperation, tr *i18n.TranslationSet, now time.Time) string { itemOperationStr := itemOperationToString(itemOperation, tr) if itemOperationStr != "" { - return itemOperationStr + " " + utils.Loader() + return itemOperationStr + " " + utils.Loader(now) } if !branch.IsTrackingRemote() { diff --git a/pkg/gui/presentation/tags.go b/pkg/gui/presentation/tags.go index 9bdabcf40..c210bdebc 100644 --- a/pkg/gui/presentation/tags.go +++ b/pkg/gui/presentation/tags.go @@ -1,6 +1,8 @@ package presentation import ( + "time" + "github.com/jesseduffield/lazygit/pkg/commands/models" "github.com/jesseduffield/lazygit/pkg/gui/presentation/icons" "github.com/jesseduffield/lazygit/pkg/gui/style" @@ -37,7 +39,7 @@ func getTagDisplayStrings(t *models.Tag, itemOperation types.ItemOperation, diff descriptionStr := descriptionColor.Sprint(t.Description()) itemOperationStr := itemOperationToString(itemOperation, tr) if itemOperationStr != "" { - descriptionStr = style.FgCyan.Sprint(itemOperationStr+" "+utils.Loader()) + " " + descriptionStr + descriptionStr = style.FgCyan.Sprint(itemOperationStr+" "+utils.Loader(time.Now())) + " " + descriptionStr } res = append(res, textStyle.Sprint(t.Name), descriptionStr) return res diff --git a/pkg/gui/status/status_manager.go b/pkg/gui/status/status_manager.go index 1f4aaa569..da4f5f14c 100644 --- a/pkg/gui/status/status_manager.go +++ b/pkg/gui/status/status_manager.go @@ -71,7 +71,7 @@ func (self *StatusManager) GetStatusString() string { } topStatus := self.statuses[0] if topStatus.statusType == "waiting" { - return topStatus.message + " " + utils.Loader() + return topStatus.message + " " + utils.Loader(time.Now()) } return topStatus.message } diff --git a/pkg/utils/utils.go b/pkg/utils/utils.go index 12041719e..f40cd4fd3 100644 --- a/pkg/utils/utils.go +++ b/pkg/utils/utils.go @@ -28,9 +28,8 @@ func GetProjectRoot() string { const LoaderAnimationInterval = 50 // Loader dumps a string to be displayed as a loader -func Loader() string { +func Loader(now time.Time) string { characters := "|/-\\" - now := time.Now() milliseconds := now.UnixMilli() index := milliseconds / LoaderAnimationInterval % int64(len(characters)) return characters[index : index+1]