Change summary
ui/pages/repo/files.go | 14 ++++++++++++++
ui/pages/repo/log.go | 16 ++++++++++++++++
ui/pages/repo/refs.go | 12 ++++++++++++
ui/pages/repo/repo.go | 6 +++++-
4 files changed, 47 insertions(+), 1 deletion(-)
Detailed changes
@@ -265,6 +265,14 @@ func (f *Files) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
}
}
}
+ case EmptyRepoMsg:
+ f.ref = nil
+ f.path = ""
+ f.currentItem = nil
+ f.activeView = filesViewFiles
+ f.lastSelected = make([]int, 0)
+ f.selector.Select(0)
+ cmds = append(cmds, f.setItems([]selector.IdentifiableItem{}))
}
switch f.activeView {
case filesViewFiles:
@@ -398,3 +406,9 @@ func (f *Files) deselectItemCmd() tea.Msg {
f.selector.Select(index)
return msg
}
+
+func (f *Files) setItems(items []selector.IdentifiableItem) tea.Cmd {
+ return func() tea.Msg {
+ return FileItemsMsg(items)
+ }
+}
@@ -299,6 +299,16 @@ func (l *Log) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
l.startLoading(),
)
}
+ case EmptyRepoMsg:
+ l.ref = nil
+ l.loading = false
+ l.activeView = logViewCommits
+ l.nextPage = 0
+ l.count = 0
+ l.activeCommit = nil
+ l.selectedCommit = nil
+ l.selector.Select(0)
+ cmds = append(cmds, l.setItems([]selector.IdentifiableItem{}))
}
if l.loading {
s, cmd := l.spinner.Update(msg)
@@ -486,3 +496,9 @@ func (l *Log) renderDiff(diff *ggit.Diff) string {
}
return wrap.String(s.String(), l.common.Width)
}
+
+func (l *Log) setItems(items []selector.IdentifiableItem) tea.Cmd {
+ return func() tea.Msg {
+ return LogItemsMsg(items)
+ }
+}
@@ -139,6 +139,9 @@ func (r *Refs) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
case key.Matches(msg, r.common.KeyMap.SelectItem):
cmds = append(cmds, r.selector.SelectItem)
}
+ case EmptyRepoMsg:
+ r.ref = nil
+ cmds = append(cmds, r.setItems([]selector.IdentifiableItem{}))
}
m, cmd := r.selector.Update(msg)
r.selector = m.(*selector.Selector)
@@ -193,6 +196,15 @@ func (r *Refs) updateItemsCmd() tea.Msg {
}
}
+func (r *Refs) setItems(items []selector.IdentifiableItem) tea.Cmd {
+ return func() tea.Msg {
+ return RefItemsMsg{
+ items: items,
+ prefix: r.refPrefix,
+ }
+ }
+}
+
func switchRefCmd(ref *ggit.Reference) tea.Cmd {
return func() tea.Msg {
return RefMsg(ref)
@@ -261,8 +261,12 @@ func (r *Repo) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
case tea.WindowSizeMsg:
cmds = append(cmds, r.updateModels(msg))
case EmptyRepoMsg:
+ r.ref = nil
r.state = readyState
- cmds = append(cmds, r.updateStatusBarCmd)
+ cmds = append(cmds,
+ r.updateModels(msg),
+ r.updateStatusBarCmd,
+ )
case common.ErrorMsg:
r.state = readyState
}