summaryrefslogtreecommitdiff
path: root/internal/client/ui/core/networkjoin
diff options
context:
space:
mode:
Diffstat (limited to 'internal/client/ui/core/networkjoin')
-rw-r--r--internal/client/ui/core/networkjoin/networkjoin.go21
1 files changed, 18 insertions, 3 deletions
diff --git a/internal/client/ui/core/networkjoin/networkjoin.go b/internal/client/ui/core/networkjoin/networkjoin.go
index 1df0db3..8f8200b 100644
--- a/internal/client/ui/core/networkjoin/networkjoin.go
+++ b/internal/client/ui/core/networkjoin/networkjoin.go
@@ -2,16 +2,19 @@ package networkjoin
import (
"errors"
+ "strconv"
"strings"
tea "github.com/charmbracelet/bubbletea"
"github.com/charmbracelet/lipgloss"
"github.com/kyren223/eko/internal/client/gateway"
"github.com/kyren223/eko/internal/client/ui/colors"
+ "github.com/kyren223/eko/internal/client/ui/core/state"
"github.com/kyren223/eko/internal/client/ui/field"
"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 (
@@ -70,6 +73,9 @@ func New() Model {
if strings.TrimSpace(s) == "" {
return errors.New("cannot be empty")
}
+ if _, err := strconv.ParseInt(s, 10, 64); err != nil {
+ return err
+ }
return nil
}
@@ -154,10 +160,19 @@ func (m *Model) Select() tea.Cmd {
if m.name.Input.Err != nil {
return nil
}
+ name := m.name.Input.Value()
+ id, err := strconv.ParseInt(name, 10, 64)
+ assert.NoError(err, "input is already validated to be valid")
- // TODO: change this to actual invite packet
- request := packet.CreateNetwork{
- Name: m.name.Input.Value(),
+ yes := true
+ request := packet.SetNetworkUser{
+ Member: &yes,
+ Admin: nil,
+ Muted: nil,
+ Banned: nil,
+ BanReason: nil,
+ Network: snowflake.ID(id),
+ User: *state.State.UserID,
}
return gateway.Send(&request)
}