diff options
| author | Kyren223 <Kyren223@proton.me> | 2025-01-12 17:57:54 +0200 |
|---|---|---|
| committer | Kyren223 <Kyren223@proton.me> | 2025-01-12 17:57:54 +0200 |
| commit | bff19b516e69284b0a96087a094a9d811d630b85 (patch) | |
| tree | 2aafe081e77c0dabe569ad09882fabd4eb52d3f3 /internal/client/ui/core | |
| parent | 1c09d173d733b491970841add0a20bf2ecf078cd (diff) | |
Fixed network positioning issues
Diffstat (limited to 'internal/client/ui/core')
| -rw-r--r-- | internal/client/ui/core/core.go | 7 | ||||
| -rw-r--r-- | internal/client/ui/core/networklist/networklist.go | 19 | ||||
| -rw-r--r-- | internal/client/ui/core/state/state.go | 9 |
3 files changed, 22 insertions, 13 deletions
diff --git a/internal/client/ui/core/core.go b/internal/client/ui/core/core.go index 4dc50e2..10088bf 100644 --- a/internal/client/ui/core/core.go +++ b/internal/client/ui/core/core.go @@ -132,7 +132,7 @@ func (m *Model) updateNotConnected(msg tea.Msg) tea.Cmd { state.State.UserID = (*snowflake.ID)(&msg) m.connected = true m.timeout = initialTimeout - return m.timer.Stop() + return tea.Batch(m.timer.Stop(), gateway.Send(&packet.GetUserData{})) case gateway.ConnectionFailed: log.Println("failed to connect:", msg) @@ -175,7 +175,7 @@ func (m *Model) updateConnected(msg tea.Msg) tea.Cmd { state.State.UserID = nil m.connected = false m.timeout = initialTimeout - return tea.Batch(gateway.Connect(m.privKey, connectionTimeout), m.loading.Init()) + return gateway.Connect(m.privKey, connectionTimeout) case *packet.Error: err := "new connection from another location, closing this one" @@ -183,6 +183,9 @@ func (m *Model) updateConnected(msg tea.Msg) tea.Cmd { return ui.Transition(ui.NewAuth()) } + case *packet.SetUserData: + state.FromJsonUserData(msg.Data) + case *packet.NetworksInfo: state.UpdateNetworks(msg) networkId := state.NetworkId(m.networkList.Index()) diff --git a/internal/client/ui/core/networklist/networklist.go b/internal/client/ui/core/networklist/networklist.go index 00d5d12..5e3780f 100644 --- a/internal/client/ui/core/networklist/networklist.go +++ b/internal/client/ui/core/networklist/networklist.go @@ -16,10 +16,10 @@ var ( sepStyle = lipgloss.NewStyle().Width(0). Border(lipgloss.ThickBorder(), false, true, false, false) - selectedIndicator = "š\nā\nš" - trustedUsersIcon = IconStyle("ī· ", colors.Turquoise, colors.DarkerCyan) - trustedUsersButton = trustedUsersIcon.Margin(0, 1, 1).String() - trustedUsersButtonSelected = lipgloss.JoinHorizontal( + selectedIndicator = "š\nā\nš" + trustedUsersIcon = IconStyle("ī· ", colors.Turquoise, colors.DarkerCyan) + peersButton = trustedUsersIcon.Margin(0, 1, 1).String() + peersButtonSelected = lipgloss.JoinHorizontal( ui.Center, selectedIndicator, trustedUsersIcon.Margin(0, 1, 1, 0).String(), @@ -69,18 +69,19 @@ func (m Model) View() string { var builder strings.Builder builder.WriteString("\n") if m.index == PeersIndex { - builder.WriteString(trustedUsersButtonSelected) + builder.WriteString(peersButtonSelected) } else { - builder.WriteString(trustedUsersButton) + builder.WriteString(peersButton) } builder.WriteString("\n") - for i, network := range state.State.Networks { + for i, networkId := range state.Data.Networks { + network := state.State.Networks[networkId] + icon := IconStyle(network.Icon, lipgloss.Color(network.FgHexColor), lipgloss.Color(network.BgHexColor), ) - networkId := state.NetworkId(m.index) - if networkId != nil && *networkId == i { + if m.index == i { builder.WriteString(lipgloss.JoinHorizontal( ui.Center, selectedIndicator, diff --git a/internal/client/ui/core/state/state.go b/internal/client/ui/core/state/state.go index b253d71..9b8c053 100644 --- a/internal/client/ui/core/state/state.go +++ b/internal/client/ui/core/state/state.go @@ -5,6 +5,7 @@ import ( "slices" "github.com/google/btree" + "github.com/kyren223/eko/internal/client/gateway" "github.com/kyren223/eko/internal/data" "github.com/kyren223/eko/internal/packet" "github.com/kyren223/eko/pkg/assert" @@ -68,7 +69,7 @@ func UpdateNetworks(info *packet.NetworksInfo) { } for _, network := range info.Networks { - if _, ok := networks[network.ID]; !ok { + if !slices.Contains(Data.Networks, network.ID) { Data.Networks = append(Data.Networks, network.ID) } @@ -85,6 +86,10 @@ func UpdateNetworks(info *packet.NetworksInfo) { State.Users[user.ID] = user } } + + gateway.SendAsync(&packet.SetUserData{ + Data: JsonUserData(), + }) } func UpdateFrequencies(info *packet.FrequenciesInfo) { @@ -182,7 +187,7 @@ func JsonUserData() string { return string(bytes) } -func FromJsonUserDat(s string) { +func FromJsonUserData(s string) { var data UserData err := json.Unmarshal([]byte(s), &data) if err != nil { |
