Compare commits

..

3 Commits

Author SHA1 Message Date
aoife cassidy
0adaf9e90c
apply settings 2025-01-19 14:01:44 +02:00
aoife cassidy
fd79bceb79
fix terminal freezing 2025-01-19 13:52:00 +02:00
aoife cassidy
c9aec29b0c
fix terminal doubling inputs 2025-01-19 13:51:42 +02:00
4 changed files with 38 additions and 4 deletions

View File

@ -11,7 +11,9 @@ import (
"git.tilde.town/nbsp/welcome/ui"
)
type Editor struct{}
type Editor struct {
loaded bool
}
func (view *Editor) Draw(state *ui.State) {
win := state.Window()
@ -53,6 +55,11 @@ like before, when you're done, type `},
}
func (view *Editor) Event(state *ui.State, event vaxis.Event) (processed bool) {
if view.loaded {
return
}
view.loaded = true
win := state.Window().New(0, 16, 80, 80)
view.Draw(state)

View File

@ -1,6 +1,10 @@
package app
import (
"fmt"
"os"
"strings"
"git.sr.ht/~rockorager/vaxis"
"git.sr.ht/~rockorager/vaxis/widgets/textinput"
"git.tilde.town/nbsp/welcome/ui"
@ -26,7 +30,23 @@ func (view *Settings) Event(state *ui.State, event vaxis.Event) (processed bool)
}
case "Enter":
if view.index == 3 {
// TODO: save settings
pronouns := strings.TrimSpace(view.inputs[0].String())
birthday := strings.TrimSpace(view.inputs[1].String())
timezone := strings.TrimSpace(view.inputs[2].String())
// XXX: this assumes nothing will break
if pronouns != "" {
os.WriteFile(".pronouns", []byte(pronouns), 0644)
}
if birthday != "" {
os.WriteFile(".birthday", []byte(pronouns), 0644)
}
if timezone != "" {
f, _ := os.OpenFile(".bashrc", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
f.Write([]byte(fmt.Sprintf("export TZ='%s'\n", timezone)))
f.Close()
}
ui.ViewChange <- &Shell{}
}
if view.index < 3 {

View File

@ -9,7 +9,9 @@ import (
"git.tilde.town/nbsp/welcome/ui"
)
type Shell struct{}
type Shell struct {
loaded bool
}
func (view *Shell) Draw(state *ui.State) {
win := state.Window()
@ -44,6 +46,11 @@ you're ready.`},
}
func (view *Shell) Event(state *ui.State, event vaxis.Event) (processed bool) {
if view.loaded {
return
}
view.loaded = true
win := state.Window().New(0, 16, 80, 80)
view.Draw(state)

View File

@ -15,7 +15,7 @@ type View interface {
var Events = make(chan vaxis.Event)
var Quit = make(chan struct{})
var ViewChange = make(chan View, 10)
var ViewChange = make(chan View, 1)
type State struct {
content View