MCPcopy Create free account
hub / github.com/Thunder-Compute/thunder-cli / Update

Method Update

tui/connect.go:90–161  ·  view source on GitHub ↗
(msg tea.Msg)

Source from the content-addressed store, hash-verified

88}
89
90func (m connectModel) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
91 switch msg := msg.(type) {
92 case connectInstancesMsg:
93 m.loading = false
94 if msg.err != nil {
95 m.err = msg.err
96 m.quitting = true
97 return m, tea.Quit
98 }
99
100 var items []string
101 for _, inst := range msg.instances {
102 if inst.Status == "RUNNING" {
103 displayName := fmt.Sprintf("%s (%s) - %s GPU: %s", inst.Name, inst.ID, inst.NumGPUs, utils.FormatGPUType(inst.GPUType))
104 items = append(items, displayName)
105 if m.displayToID == nil {
106 m.displayToID = make(map[string]string)
107 }
108 m.displayToID[displayName] = inst.ID
109 }
110 }
111 if len(items) == 0 {
112 m.noInstances = true
113 m.quitting = true
114 return m, tea.Quit
115 }
116 m.instances = items
117 return m, nil
118 case spinner.TickMsg:
119 if m.loading {
120 var cmd tea.Cmd
121 m.spinner, cmd = m.spinner.Update(msg)
122 return m, cmd
123 }
124 case tea.KeyMsg:
125 if m.loading {
126 switch msg.String() {
127 case "q", "Q", "esc", "ctrl+c":
128 m.cancelled = true
129 m.quitting = true
130 return m, tea.Quit
131 }
132 return m, nil
133 }
134 switch msg.String() {
135 case "q", "Q", "esc", "ctrl+c":
136 m.cancelled = true
137 m.quitting = true
138 return m, deferQuit()
139
140 case "up", "k":
141 if m.cursor > 0 {
142 m.cursor--
143 }
144
145 case "down", "j":
146 if m.cursor < len(m.instances)-1 {
147 m.cursor++

Callers

nothing calls this directly

Calls 2

FormatGPUTypeFunction · 0.92
deferQuitFunction · 0.85

Tested by

no test coverage detected