Refactor sidebar component to use struct

This commit refactors the sidebar component to use a struct for better
organization and maintainability. The `data` and `sindex` fields are now
exported as `Data` and `Sindex` respectively, allowing for easier access
and modification. Additionally, the styling for the selected sidebar
item has been updated for improved visual clarity.
This commit is contained in:
vaibhav
2026-01-18 04:02:17 +05:30
parent 1f413157ef
commit 0eadc7b502
2 changed files with 18 additions and 13 deletions

View File

@@ -6,8 +6,8 @@ import (
)
type Sidebar struct {
data []string
sindex int
Data []string
Sindex int
}
func (s Sidebar) Init() tea.Cmd {
@@ -19,12 +19,12 @@ func (s *Sidebar) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
case tea.KeyMsg:
switch m.String() {
case "up":
if s.sindex > 0 {
s.sindex--
if s.Sindex > 0 {
s.Sindex--
}
case "down":
if s.sindex < len(s.data)-1 {
s.sindex++
if s.Sindex < len(s.Data)-1 {
s.Sindex++
}
}
}
@@ -33,12 +33,12 @@ func (s *Sidebar) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
func (s Sidebar) View() string {
var items []string
for i, item := range s.data {
if i == s.sindex {
for i, item := range s.Data {
if i == s.Sindex {
items = append(items, lipgloss.
NewStyle().
Background(lipgloss.Color("93BD57")).
Padding(1, 2).
Foreground(lipgloss.Color("#FFFFFF")).
Background(lipgloss.Color("#93BD57")).
Render(item))
} else {
items = append(items, item)