Client changes to handle create frequency API

This commit is contained in:
2024-11-30 19:55:33 +02:00
parent 7357dc120b
commit bcd75dab26
3 changed files with 34 additions and 28 deletions

View File

@@ -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
}
}

View File

@@ -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,

View File

@@ -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]
}