summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--internal/client/ui/core/core.go4
-rw-r--r--internal/client/ui/core/frequencycreation/frequencycreation.go6
-rw-r--r--internal/client/ui/core/network/network.go52
3 files changed, 34 insertions, 28 deletions
diff --git a/internal/client/ui/core/core.go b/internal/client/ui/core/core.go
index fdaab35..27c6b96 100644
--- a/internal/client/ui/core/core.go
+++ b/internal/client/ui/core/core.go
@@ -193,7 +193,9 @@ func (m *Model) updateConnected(msg tea.Msg) tea.Cmd {
}
case FocusNetwork:
if m.frequencyCreationPopup == nil {
- popup := frequencycreation.New()
+ index := m.networkList.Index()
+ network := state.State.Networks[index]
+ popup := frequencycreation.New(network.ID)
m.frequencyCreationPopup = &popup
}
}
diff --git a/internal/client/ui/core/frequencycreation/frequencycreation.go b/internal/client/ui/core/frequencycreation/frequencycreation.go
index d7a34a5..43fca8f 100644
--- a/internal/client/ui/core/frequencycreation/frequencycreation.go
+++ b/internal/client/ui/core/frequencycreation/frequencycreation.go
@@ -13,6 +13,7 @@ import (
"github.com/kyren223/eko/internal/client/ui/layouts/flex"
"github.com/kyren223/eko/internal/packet"
"github.com/kyren223/eko/pkg/assert"
+ "github.com/kyren223/eko/pkg/snowflake"
)
var (
@@ -76,9 +77,10 @@ type Model struct {
perms int
nameWidth int
selected int
+ network snowflake.ID
}
-func New() Model {
+func New(network snowflake.ID) Model {
name := field.New(width)
name.Header = "Frequency Name"
name.HeaderStyle = headerStyle
@@ -277,7 +279,7 @@ func (m *Model) Select() tea.Cmd {
}
request := packet.CreateFrequency{
- Network: 0, // TODO:
+ Network: m.network,
Name: m.name.Input.Value(),
HexColor: "#" + m.color.Value(),
Perms: m.perms,
diff --git a/internal/client/ui/core/network/network.go b/internal/client/ui/core/network/network.go
index 8be44a3..877654f 100644
--- a/internal/client/ui/core/network/network.go
+++ b/internal/client/ui/core/network/network.go
@@ -27,17 +27,16 @@ var (
)
type Model struct {
- network *packet.FullNetwork
- history []func(m *Model)
- index int
- focus bool
+ history []func(m *Model)
+ networkIndex int
+ index int
+ focus bool
}
func New() Model {
return Model{
- focus: false,
- index: 0,
- network: nil,
+ focus: false,
+ index: 0,
}
}
@@ -46,22 +45,22 @@ func (m Model) Init() tea.Cmd {
}
func (m Model) View() string {
- if m.network == nil {
+ if m.Network() == nil {
return ""
}
var builder strings.Builder
- bg := lipgloss.Color(m.network.BgHexColor)
- fg := lipgloss.Color(m.network.FgHexColor)
+ bg := lipgloss.Color(m.Network().BgHexColor)
+ fg := lipgloss.Color(m.Network().FgHexColor)
nameStyle := nameStyle.Background(bg).Foreground(fg)
if m.focus {
nameStyle = nameStyle.BorderForeground(colors.Focus)
}
- builder.WriteString(nameStyle.Render(m.network.Name))
+ builder.WriteString(nameStyle.Render(m.Network().Name))
builder.WriteString("\n")
- for i, frequency := range m.network.Frequencies {
+ for i, frequency := range m.Network().Frequencies {
color := colors.White
if frequency.HexColor != nil {
color = lipgloss.Color(*frequency.HexColor)
@@ -129,31 +128,34 @@ func (m *Model) Blur() {
func (m Model) Swap(dir int) (Model, tea.Cmd) {
cmd := gateway.Send(&packet.SwapFrequencies{
- Network: m.network.ID,
+ Network: m.Network().ID,
Pos1: m.index,
Pos2: m.index + dir,
})
- tmp := m.network.Frequencies[m.index]
- m.network.Frequencies[m.index] = m.network.Frequencies[m.index+dir]
- m.network.Frequencies[m.index+dir] = tmp
+ tmp := m.Network().Frequencies[m.index]
+ m.Network().Frequencies[m.index] = m.Network().Frequencies[m.index+dir]
+ m.Network().Frequencies[m.index+dir] = tmp
m.index += dir
m.history = append(m.history, func(m *Model) {
m.index -= dir
- tmp := m.network.Frequencies[m.index]
- m.network.Frequencies[m.index] = m.network.Frequencies[m.index+dir]
- m.network.Frequencies[m.index+dir] = tmp
+ tmp := m.Network().Frequencies[m.index]
+ m.Network().Frequencies[m.index] = m.Network().Frequencies[m.index+dir]
+ m.Network().Frequencies[m.index+dir] = tmp
})
return m, cmd
}
func (m *Model) Set(index int) {
- if index != -1 {
- m.network = &state.State.Networks[index]
- } else {
- m.network = nil
- }
+ m.networkIndex = index
}
func (m Model) FrequenciesLength() int {
- return len(m.network.Frequencies)
+ return len(m.Network().Frequencies)
+}
+
+func (m Model) Network() *packet.FullNetwork {
+ if m.networkIndex < 0 {
+ return nil
+ }
+ return &state.State.Networks[m.networkIndex]
}