Skip to content

Commit bf0b292

Browse files
committed
new tui work:
basic scaffolding for a new tui old tui has been moved to a folder called and has been gitignored for cleanliness
1 parent f74c039 commit bf0b292

19 files changed

Lines changed: 32 additions & 2670 deletions

.gitignore

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,3 +38,9 @@ testdata/
3838
.pyssg/
3939
__pycache__/
4040
*.pyc
41+
42+
# build stuff
43+
build/
44+
45+
# old tui
46+
internal/old_tui/

internal/tui/app/model.go

Lines changed: 18 additions & 168 deletions
Original file line numberDiff line numberDiff line change
@@ -1,186 +1,36 @@
11
package app
22

33
import (
4-
"context"
5-
64
tea "github.com/charmbracelet/bubbletea"
7-
"github.com/maniac-en/req/internal/log"
8-
"github.com/maniac-en/req/internal/tui/views"
95
)
106

11-
type ViewMode int
12-
13-
const (
14-
CollectionsViewMode ViewMode = iota
15-
AddCollectionViewMode
16-
EditCollectionViewMode
17-
SelectedCollectionViewMode
18-
)
19-
20-
type Model struct {
21-
ctx *Context
22-
mode ViewMode
23-
collectionsView views.CollectionsView
24-
addCollectionView views.AddCollectionView
25-
editCollectionView views.EditCollectionView
26-
selectedCollectionView views.SelectedCollectionView
27-
width int
28-
height int
29-
selectedIndex int
30-
}
31-
32-
func NewModel(ctx *Context) Model {
33-
collectionsView := views.NewCollectionsView(ctx.Collections)
34-
if ctx.DummyDataCreated {
35-
collectionsView.SetDummyDataNotification(true)
36-
}
37-
38-
m := Model{
39-
ctx: ctx,
40-
mode: CollectionsViewMode,
41-
collectionsView: collectionsView,
42-
addCollectionView: views.NewAddCollectionView(ctx.Collections),
43-
}
44-
return m
7+
type AppModel struct {
8+
width int
9+
height int
4510
}
4611

47-
func (m Model) Init() tea.Cmd {
48-
return m.collectionsView.Init()
12+
func (a AppModel) Init() tea.Cmd {
13+
return nil
4914
}
5015

51-
func (m Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
52-
var cmd tea.Cmd
53-
16+
func (a AppModel) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
5417
switch msg := msg.(type) {
55-
case tea.KeyMsg:
56-
isFiltering := m.mode == CollectionsViewMode && m.collectionsView.IsFiltering()
57-
58-
if !isFiltering {
59-
switch msg.String() {
60-
case "ctrl+c", "q":
61-
if m.mode == CollectionsViewMode {
62-
return m, tea.Quit
63-
}
64-
m.mode = CollectionsViewMode
65-
return m, nil
66-
case "a":
67-
if m.mode == CollectionsViewMode {
68-
m.selectedIndex = m.collectionsView.GetSelectedIndex()
69-
m.mode = AddCollectionViewMode
70-
if m.width > 0 && m.height > 0 {
71-
sizeMsg := tea.WindowSizeMsg{Width: m.width, Height: m.height}
72-
m.addCollectionView, _ = m.addCollectionView.Update(sizeMsg)
73-
}
74-
return m, nil
75-
}
76-
case "enter":
77-
if m.mode == CollectionsViewMode {
78-
if selectedItem := m.collectionsView.GetSelectedItem(); selectedItem != nil {
79-
m.selectedIndex = m.collectionsView.GetSelectedIndex()
80-
m.mode = SelectedCollectionViewMode
81-
if m.width > 0 && m.height > 0 {
82-
m.selectedCollectionView = views.NewSelectedCollectionViewWithSize(m.ctx.Endpoints, m.ctx.HTTP, *selectedItem, m.width, m.height)
83-
} else {
84-
m.selectedCollectionView = views.NewSelectedCollectionView(m.ctx.Endpoints, m.ctx.HTTP, *selectedItem)
85-
}
86-
return m, m.selectedCollectionView.Init()
87-
} else {
88-
log.Error("issue getting currently selected collection")
89-
}
90-
}
91-
case "e":
92-
if m.mode == CollectionsViewMode {
93-
if selectedItem := m.collectionsView.GetSelectedItem(); selectedItem != nil {
94-
m.selectedIndex = m.collectionsView.GetSelectedIndex()
95-
m.mode = EditCollectionViewMode
96-
m.editCollectionView = views.NewEditCollectionView(m.ctx.Collections, *selectedItem)
97-
if m.width > 0 && m.height > 0 {
98-
sizeMsg := tea.WindowSizeMsg{Width: m.width, Height: m.height}
99-
m.editCollectionView, _ = m.editCollectionView.Update(sizeMsg)
100-
}
101-
return m, nil
102-
} else {
103-
log.Error("issue getting currently selected collection")
104-
}
105-
}
106-
case "x":
107-
if m.mode == CollectionsViewMode {
108-
if selectedItem := m.collectionsView.GetSelectedItem(); selectedItem != nil {
109-
return m, func() tea.Msg {
110-
err := m.ctx.Collections.Delete(context.Background(), selectedItem.ID)
111-
if err != nil {
112-
return views.CollectionDeleteErrorMsg{Err: err}
113-
}
114-
return views.CollectionDeletedMsg{ID: selectedItem.ID}
115-
}
116-
}
117-
}
118-
}
119-
}
12018
case tea.WindowSizeMsg:
121-
m.width = msg.Width
122-
m.height = msg.Height
123-
if m.mode == CollectionsViewMode && !m.collectionsView.IsInitialized() {
124-
m.collectionsView = views.NewCollectionsViewWithSize(m.ctx.Collections, m.width, m.height)
125-
if m.ctx.DummyDataCreated {
126-
m.collectionsView.SetDummyDataNotification(true)
127-
}
128-
return m, m.collectionsView.Init()
129-
}
130-
if m.mode == CollectionsViewMode {
131-
m.collectionsView, _ = m.collectionsView.Update(msg)
132-
}
133-
case views.BackToCollectionsMsg:
134-
m.mode = CollectionsViewMode
135-
if m.width > 0 && m.height > 0 {
136-
m.collectionsView = views.NewCollectionsViewWithSize(m.ctx.Collections, m.width, m.height)
137-
if m.ctx.DummyDataCreated {
138-
m.collectionsView.SetDummyDataNotification(true)
139-
}
19+
a.height = msg.Height
20+
a.width = msg.Width
21+
case tea.KeyMsg:
22+
switch msg.String() {
23+
case "ctrl+c":
24+
return a, tea.Quit
14025
}
141-
m.collectionsView.SetSelectedIndex(m.selectedIndex)
142-
return m, m.collectionsView.Init()
143-
case views.EditCollectionMsg:
144-
m.mode = EditCollectionViewMode
145-
m.editCollectionView = views.NewEditCollectionView(m.ctx.Collections, msg.Collection)
146-
return m, nil
147-
case views.CollectionDeletedMsg:
148-
return m, m.collectionsView.Init()
149-
case views.CollectionDeleteErrorMsg:
150-
return m, nil
151-
case views.CollectionCreatedMsg:
152-
m.addCollectionView.ClearForm()
153-
m.mode = CollectionsViewMode
154-
m.selectedIndex = 0
155-
m.collectionsView.SetSelectedIndex(m.selectedIndex)
156-
return m, m.collectionsView.Init()
157-
}
158-
159-
switch m.mode {
160-
case CollectionsViewMode:
161-
m.collectionsView, cmd = m.collectionsView.Update(msg)
162-
case AddCollectionViewMode:
163-
m.addCollectionView, cmd = m.addCollectionView.Update(msg)
164-
case EditCollectionViewMode:
165-
m.editCollectionView, cmd = m.editCollectionView.Update(msg)
166-
case SelectedCollectionViewMode:
167-
m.selectedCollectionView, cmd = m.selectedCollectionView.Update(msg)
16826
}
27+
return a, nil
28+
}
16929

170-
return m, cmd
30+
func (a AppModel) View() string {
31+
return "Hello World"
17132
}
17233

173-
func (m Model) View() string {
174-
switch m.mode {
175-
case CollectionsViewMode:
176-
return m.collectionsView.View()
177-
case AddCollectionViewMode:
178-
return m.addCollectionView.View()
179-
case EditCollectionViewMode:
180-
return m.editCollectionView.View()
181-
case SelectedCollectionViewMode:
182-
return m.selectedCollectionView.View()
183-
default:
184-
return m.collectionsView.View()
185-
}
34+
func NewAppModel() AppModel {
35+
return AppModel{}
18636
}

internal/tui/components/collection_item.go

Lines changed: 0 additions & 36 deletions
This file was deleted.

internal/tui/components/endpoint_item.go

Lines changed: 0 additions & 41 deletions
This file was deleted.

0 commit comments

Comments
 (0)