Skip to content

Commit d6fbbd9

Browse files
committed
fix: improve error handling when user enters invalid new registry
1 parent c1daee3 commit d6fbbd9

File tree

3 files changed

+12
-3
lines changed

3 files changed

+12
-3
lines changed

src/bubbles/app.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ func (m Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
7171
var cmd tea.Cmd
7272
switch msg := msg.(type) {
7373
case tea.KeyMsg:
74+
m.hasBannerMessage = false
7475
switch {
7576
case key.Matches(msg, m.keys.DownloadBlocks):
7677
m.isDownloading = true

src/bubbles/new_registry_input/new_registry_input.go

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"github.com/charmbracelet/bubbles/textinput"
55
tea "github.com/charmbracelet/bubbletea"
66
"github.com/charmbracelet/lipgloss"
7+
"github.com/fredrikmwold/jsrepo-tui/src/commands/manifest"
78
"github.com/fredrikmwold/jsrepo-tui/src/config"
89
"github.com/spf13/viper"
910
)
@@ -39,7 +40,14 @@ func (m Model) Update(msg tea.Msg) (Model, tea.Cmd) {
3940
switch msg.Type {
4041
case tea.KeyEnter:
4142
registries := viper.GetStringSlice("registries")
42-
registries = append(registries, m.newRegistryInput.Value())
43+
newRegistry := m.newRegistryInput.Value()
44+
result := manifest.GetManifest(newRegistry)()
45+
if _, ok := result.(manifest.ManifestErrorMessage); ok {
46+
return m, func() tea.Msg {
47+
return result
48+
}
49+
}
50+
registries = append(registries, newRegistry)
4351
viper.Set("registries", registries)
4452
viper.WriteConfig()
4553
return m, config.LoadConfig

src/commands/manifest/fetcher.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ func GetManifest(provider string) tea.Cmd {
2424
url = fmt.Sprintf("%s%s", url, "/refs/heads/"+branch+"/jsrepo-manifest.json")
2525
resp, err := http.Get(url)
2626
if err != nil {
27-
return ManifestErrorMessage(err.Error())
27+
return ManifestErrorMessage("Error getting manifest from: " + provider)
2828
}
2929
defer resp.Body.Close()
3030

@@ -35,7 +35,7 @@ func GetManifest(provider string) tea.Cmd {
3535
}
3636

3737
if resp.StatusCode == 404 {
38-
return ManifestErrorMessage("Manifest not found")
38+
return ManifestErrorMessage("Error getting manifest from: " + provider)
3939
}
4040

4141
var response ManifestResponse

0 commit comments

Comments
 (0)