summaryrefslogtreecommitdiff
path: root/internal/client/ui/core/banview/banview.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/client/ui/core/banview/banview.go')
-rw-r--r--internal/client/ui/core/banview/banview.go64
1 files changed, 64 insertions, 0 deletions
diff --git a/internal/client/ui/core/banview/banview.go b/internal/client/ui/core/banview/banview.go
new file mode 100644
index 0000000..51636f1
--- /dev/null
+++ b/internal/client/ui/core/banview/banview.go
@@ -0,0 +1,64 @@
+package banview
+
+import (
+ "strconv"
+
+ tea "github.com/charmbracelet/bubbletea"
+ "github.com/charmbracelet/lipgloss"
+ "github.com/kyren223/eko/internal/client/ui/colors"
+ "github.com/kyren223/eko/internal/client/ui/core/state"
+ "github.com/kyren223/eko/internal/client/ui/layouts/flex"
+ "github.com/kyren223/eko/pkg/snowflake"
+)
+
+var (
+ width = 48
+
+ style = lipgloss.NewStyle().
+ Border(lipgloss.ThickBorder()).
+ Padding(1, 4).
+ Align(lipgloss.Center, lipgloss.Center)
+
+ headerStyle = lipgloss.NewStyle().Foreground(colors.Focus)
+ grayStyle = lipgloss.NewStyle().Foreground(colors.LightGray)
+)
+
+const (
+ BanReasonField = iota
+ BanField
+ FieldCount
+)
+
+type Model struct {
+ banReason string
+ name string
+ id string
+}
+
+func New(userId, networkId snowflake.ID) Model {
+ return Model{
+ banReason: *state.State.Members[networkId][userId].BanReason,
+ name: state.State.Users[userId].Name,
+ id: strconv.FormatInt(int64(userId), 10),
+ }
+}
+
+func (m Model) Init() tea.Cmd {
+ return nil
+}
+
+func (m Model) View() string {
+ nameHeader := headerStyle.Render("Banned Username:")
+ name := m.name + grayStyle.Render(" ("+m.id+")")
+ name = lipgloss.NewStyle().Width(width).Render(name)
+
+ banReasonHeader := headerStyle.Render("Ban Reason:")
+ banReason := lipgloss.NewStyle().Width(width).Render(m.banReason)
+
+ content := flex.NewVertical(nameHeader, name, banReasonHeader, banReason).WithGap(1).View()
+ return style.Render(content)
+}
+
+func (m Model) Update(msg tea.Msg) (Model, tea.Cmd) {
+ return m, nil
+}