diff options
Diffstat (limited to 'internal/client')
| -rw-r--r-- | internal/client/ui/core/banlist/banlist.go | 54 | ||||
| -rw-r--r-- | internal/client/ui/core/chat/chat.go | 20 | ||||
| -rw-r--r-- | internal/client/ui/core/memberlist/memberlist.go | 54 | ||||
| -rw-r--r-- | internal/client/ui/core/signallist/signallist.go | 6 | ||||
| -rw-r--r-- | internal/client/ui/ui.go | 16 |
5 files changed, 74 insertions, 76 deletions
diff --git a/internal/client/ui/core/banlist/banlist.go b/internal/client/ui/core/banlist/banlist.go index c7f741d..c9b32d5 100644 --- a/internal/client/ui/core/banlist/banlist.go +++ b/internal/client/ui/core/banlist/banlist.go @@ -17,24 +17,13 @@ import ( ) var ( - sepStyle = lipgloss.NewStyle().Width(0).BorderBackground(colors.BackgroundDim). - Border(lipgloss.ThickBorder(), false, true, false, false) - - headerStyle = lipgloss.NewStyle().Background(colors.BackgroundDim). - Margin(0, 0, 1).Padding(1).Align(lipgloss.Center). - Border(lipgloss.ThickBorder(), false, false, true) - - margin = 2 - padding = 1 - memberStyle = lipgloss.NewStyle().Background(colors.BackgroundDim). - Margin(0, margin).Padding(0, padding).Align(lipgloss.Left) + margin = 2 + padding = 1 symbolWidth = 2 widthWithoutMember = ((margin + padding) * 2) + symbolWidth ellipsis = "…" - - BackgroundStyle = lipgloss.NewStyle().Background(colors.BackgroundDim) ) type Model struct { @@ -68,8 +57,12 @@ func (m Model) Init() tea.Cmd { } func (m Model) View() string { - memberStyle := memberStyle.Width(m.width - (margin * 2)) - backgroundStyle := BackgroundStyle.Width(m.width) + memberStyle := lipgloss.NewStyle().Width(m.width-(margin*2)). + Background(colors.BackgroundDim). + Margin(0, margin).Padding(0, padding).Align(lipgloss.Left) + + backgroundStyle := lipgloss.NewStyle().Background(colors.BackgroundDim) + backgroundWidthStyle := backgroundStyle.Width(m.width) maxMemberWidth := m.width - widthWithoutMember ownerId := state.State.Networks[m.networkId].OwnerID @@ -95,25 +88,25 @@ func (m Model) View() string { var userStyle lipgloss.Style if isTrusted && keysMatch { if ownerId == member.UserID { - userStyle = ui.TrustedOwnerStyle + userStyle = ui.TrustedOwnerStyle() } else if member.IsAdmin { - userStyle = ui.TrustedAdminStyle + userStyle = ui.TrustedAdminStyle() } else { - userStyle = ui.TrustedMemberStyle + userStyle = ui.TrustedMemberStyle() } } else { if ownerId == member.UserID { - userStyle = ui.OwnerStyle + userStyle = ui.OwnerStyle() } else if member.IsAdmin { - userStyle = ui.AdminStyle + userStyle = ui.AdminStyle() } else { - userStyle = ui.UserStyle + userStyle = ui.UserStyle() } } memberName := state.State.Users[member.UserID].Name memberName = userStyle.Render(memberName) if isTrusted && !keysMatch { - memberName = ui.UntrustedSymbol + memberName + memberName = ui.UntrustedSymbol() + memberName } if lipgloss.Width(memberName) <= maxMemberWidth { @@ -128,13 +121,15 @@ func (m Model) View() string { Render(memberName) + ellipsisStyle.Render(ellipsis) } - builder.WriteString(backgroundStyle.Render(memberStyle.Render(memberName))) + builder.WriteString(backgroundWidthStyle.Render(memberStyle.Render(memberName))) builder.WriteString("\n") } - sidebar := BackgroundStyle.Height(ui.Height).Render(builder.String()) - sep := sepStyle.Height(ui.Height) - sep = sep.BorderForeground(colors.Focus) + sidebar := backgroundStyle.Height(ui.Height).Render(builder.String()) + + sep := lipgloss.NewStyle().Width(0).Height(ui.Height). + BorderBackground(colors.BackgroundDim).BorderForeground(colors.Focus). + Border(lipgloss.ThickBorder(), false, true, false, false) result := lipgloss.JoinHorizontal(lipgloss.Top, sep.String(), sidebar) return result @@ -249,8 +244,11 @@ func (m *Model) SetIndex(index int) { } func (m Model) renderHeader() string { - headerStyle := headerStyle.Width(m.width) - headerStyle = headerStyle.BorderForeground(colors.Focus) + headerStyle := lipgloss.NewStyle().Width(m.width). + Background(colors.BackgroundDim).Foreground(colors.White). + Margin(0, 0, 1).Padding(1).Align(lipgloss.Center). + Border(lipgloss.ThickBorder(), false, false, true). + BorderForeground(colors.Focus) return headerStyle.Render("Ban List") } diff --git a/internal/client/ui/core/chat/chat.go b/internal/client/ui/core/chat/chat.go index da561f6..3ad584d 100644 --- a/internal/client/ui/core/chat/chat.go +++ b/internal/client/ui/core/chat/chat.go @@ -1315,25 +1315,25 @@ func (m *Model) renderHeader(message data.Message, selected bool) []byte { keysMatch := bytes.Equal(trustedPublicKey, user.PublicKey) if isTrusted && !keysMatch { - buf = append(buf, ui.UntrustedSymbol...) + buf = append(buf, ui.UntrustedSymbol()...) } var senderStyle lipgloss.Style if isTrusted && keysMatch { if ownerId == member.UserID { - senderStyle = ui.TrustedOwnerStyle + senderStyle = ui.TrustedOwnerStyle() } else if member.IsAdmin { - senderStyle = ui.TrustedAdminStyle + senderStyle = ui.TrustedAdminStyle() } else { - senderStyle = ui.TrustedMemberStyle + senderStyle = ui.TrustedMemberStyle() } } else { if ownerId == member.UserID { - senderStyle = ui.OwnerStyle + senderStyle = ui.OwnerStyle() } else if member.IsAdmin { - senderStyle = ui.AdminStyle + senderStyle = ui.AdminStyle() } else { - senderStyle = ui.UserStyle + senderStyle = ui.UserStyle() } } @@ -1350,14 +1350,14 @@ func (m *Model) renderHeader(message data.Message, selected bool) []byte { keysMatch := bytes.Equal(trustedPublicKey, user.PublicKey) if isTrusted && !keysMatch { - buf = append(buf, ui.UntrustedSymbol...) + buf = append(buf, ui.UntrustedSymbol()...) } var senderStyle lipgloss.Style if isTrusted && keysMatch { - senderStyle = ui.TrustedUserStyle + senderStyle = ui.TrustedUserStyle() } else { - senderStyle = ui.UserStyle + senderStyle = ui.UserStyle() } sender := senderStyle.Render(user.Name) diff --git a/internal/client/ui/core/memberlist/memberlist.go b/internal/client/ui/core/memberlist/memberlist.go index d6fbc59..0a934d9 100644 --- a/internal/client/ui/core/memberlist/memberlist.go +++ b/internal/client/ui/core/memberlist/memberlist.go @@ -18,24 +18,13 @@ import ( ) var ( - sepStyle = lipgloss.NewStyle().Width(0).BorderBackground(colors.BackgroundDim). - Border(lipgloss.ThickBorder(), false, true, false, false) - - headerStyle = lipgloss.NewStyle().Background(colors.BackgroundDim). - Margin(0, 0, 1).Padding(1).Align(lipgloss.Center). - Border(lipgloss.ThickBorder(), false, false, true) - - margin = 2 - padding = 1 - memberStyle = lipgloss.NewStyle().Background(colors.BackgroundDim). - Margin(0, margin).Padding(0, padding).Align(lipgloss.Left) + margin = 2 + padding = 1 symbolWidth = 2 widthWithoutMember = ((margin + padding) * 2) + symbolWidth ellipsis = "…" - - BackgroundStyle = lipgloss.NewStyle().Background(colors.BackgroundDim) ) type Model struct { @@ -77,8 +66,12 @@ func (m Model) View() string { return m.banlist.View() } - memberStyle := memberStyle.Width(m.width - (margin * 2)) - backgroundStyle := BackgroundStyle.Width(m.width) + backgroundStyle := lipgloss.NewStyle().Background(colors.BackgroundDim) + + memberStyle := lipgloss.NewStyle().Width(m.width-(margin*2)). + Background(colors.BackgroundDim). + Margin(0, margin).Padding(0, padding).Align(lipgloss.Left) + backgroundWidtStyle := backgroundStyle.Width(m.width) maxMemberWidth := m.width - widthWithoutMember ownerId := state.State.Networks[*networkId].OwnerID @@ -104,25 +97,25 @@ func (m Model) View() string { var userStyle lipgloss.Style if isTrusted && keysMatch { if ownerId == member.UserID { - userStyle = ui.TrustedOwnerStyle + userStyle = ui.TrustedOwnerStyle() } else if member.IsAdmin { - userStyle = ui.TrustedAdminStyle + userStyle = ui.TrustedAdminStyle() } else { - userStyle = ui.TrustedMemberStyle + userStyle = ui.TrustedMemberStyle() } } else { if ownerId == member.UserID { - userStyle = ui.OwnerStyle + userStyle = ui.OwnerStyle() } else if member.IsAdmin { - userStyle = ui.AdminStyle + userStyle = ui.AdminStyle() } else { - userStyle = ui.UserStyle + userStyle = ui.UserStyle() } } memberName := m.Users()[member.UserID].Name memberName = userStyle.Render(memberName) if isTrusted && !keysMatch { - memberName = ui.UntrustedSymbol + memberName + memberName = ui.UntrustedSymbol() + memberName } if lipgloss.Width(memberName) <= maxMemberWidth { @@ -137,17 +130,20 @@ func (m Model) View() string { Render(memberName) + ellipsisStyle.Render(ellipsis) } - builder.WriteString(backgroundStyle.Render(memberStyle.Render(memberName))) + builder.WriteString(backgroundWidtStyle.Render(memberStyle.Render(memberName))) builder.WriteString("\n") } - sidebar := BackgroundStyle.Height(ui.Height).Render(builder.String()) - sep := sepStyle.Height(ui.Height) + sidebar := backgroundStyle.Height(ui.Height).Render(builder.String()) + + sep := lipgloss.NewStyle().Width(0).Height(ui.Height). + BorderBackground(colors.BackgroundDim).BorderForeground(colors.White). + Border(lipgloss.ThickBorder(), false, true, false, false) if m.focus { sep = sep.BorderForeground(colors.Focus) } - result := lipgloss.JoinHorizontal(lipgloss.Top, sep.String(), sidebar) + result := lipgloss.JoinHorizontal(lipgloss.Top, sep.String(), sidebar) return result } @@ -524,7 +520,11 @@ func (m *Model) SetIndex(index int) { } func (m Model) renderHeader() string { - headerStyle := headerStyle.Width(m.width) + headerStyle := lipgloss.NewStyle().Width(m.width). + Background(colors.BackgroundDim). + Margin(0, 0, 1).Padding(1).Align(lipgloss.Center). + Border(lipgloss.ThickBorder(), false, false, true). + BorderForeground(colors.White).Foreground(colors.White) if m.focus { headerStyle = headerStyle.BorderForeground(colors.Focus) } diff --git a/internal/client/ui/core/signallist/signallist.go b/internal/client/ui/core/signallist/signallist.go index 3ae664e..c4dc83b 100644 --- a/internal/client/ui/core/signallist/signallist.go +++ b/internal/client/ui/core/signallist/signallist.go @@ -98,9 +98,9 @@ func (m Model) View() string { var userStyle lipgloss.Style if isTrusted && keysMatch { - userStyle = ui.TrustedUserStyle.Background(colors.BackgroundDim) + userStyle = ui.TrustedUserStyle().Background(colors.BackgroundDim) } else { - userStyle = ui.UserStyle.Background(colors.BackgroundDim) + userStyle = ui.UserStyle().Background(colors.BackgroundDim) } notif := "" @@ -120,7 +120,7 @@ func (m Model) View() string { username := user.Name username = userStyle.Render(username) if isTrusted && !keysMatch { - username = ui.UntrustedSymbol + username + username = ui.UntrustedSymbol() + username } if lipgloss.Width(username) <= maxUserWidth { diff --git a/internal/client/ui/ui.go b/internal/client/ui/ui.go index 08071d7..56f7b5e 100644 --- a/internal/client/ui/ui.go +++ b/internal/client/ui/ui.go @@ -29,14 +29,14 @@ var ( Height int Program *tea.Program - UserStyle = lipgloss.NewStyle().Foreground(colors.Purple).SetString("") - AdminStyle = lipgloss.NewStyle().Foreground(colors.Red).Bold(true).SetString("") - OwnerStyle = AdminStyle.Foreground(colors.Gold).SetString("") - TrustedUserStyle = UserStyle.Foreground(colors.Turquoise).SetString("") - TrustedMemberStyle = UserStyle.SetString("") - TrustedAdminStyle = AdminStyle.SetString("") - TrustedOwnerStyle = OwnerStyle.SetString("") - UntrustedSymbol = lipgloss.NewStyle().Foreground(colors.Red).Render("") + UserStyle = func() lipgloss.Style { return lipgloss.NewStyle().Foreground(colors.Purple).SetString("") } + AdminStyle = func() lipgloss.Style { return lipgloss.NewStyle().Foreground(colors.Red).Bold(true).SetString("") } + OwnerStyle = func() lipgloss.Style { return AdminStyle().Foreground(colors.Gold).SetString("") } + TrustedUserStyle = func() lipgloss.Style { return UserStyle().Foreground(colors.Turquoise).SetString("") } + TrustedMemberStyle = func() lipgloss.Style { return UserStyle().SetString("") } + TrustedAdminStyle = func() lipgloss.Style { return AdminStyle().SetString("") } + TrustedOwnerStyle = func() lipgloss.Style { return OwnerStyle().SetString("") } + UntrustedSymbol = func() string { return lipgloss.NewStyle().Foreground(colors.Red).Render("") } ) var NewAuth func() tea.Model |
