mirror of
https://github.com/mrusme/neonmodem.git
synced 2024-12-04 14:46:37 -05:00
Refactored List style
This commit is contained in:
parent
54e8f53b77
commit
c2f13b5d5a
@ -52,8 +52,14 @@ type Config struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
PostsList struct {
|
PostsList struct {
|
||||||
List ThemeItemConfig
|
List struct {
|
||||||
Item ThemeItemConfig
|
Focused ThemeItemConfig
|
||||||
|
Blurred ThemeItemConfig
|
||||||
|
}
|
||||||
|
Item struct {
|
||||||
|
Focused ThemeItemConfig
|
||||||
|
Blurred ThemeItemConfig
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Post struct {
|
Post struct {
|
||||||
@ -84,19 +90,58 @@ func Load() (Config, error) {
|
|||||||
viper.SetDefault("Debug", "true")
|
viper.SetDefault("Debug", "true")
|
||||||
viper.SetDefault("Log", path.Join(cacheDir, "gobbs.log"))
|
viper.SetDefault("Log", path.Join(cacheDir, "gobbs.log"))
|
||||||
|
|
||||||
// PostsList List
|
// PostsList List:Focused
|
||||||
viper.SetDefault("Theme.PostsList.List.Margin",
|
viper.SetDefault("Theme.PostsList.List.Focused.Margin",
|
||||||
[]int{0, 0, 0, 0})
|
[]int{0, 0, 0, 0})
|
||||||
viper.SetDefault("Theme.PostsList.List.Padding",
|
viper.SetDefault("Theme.PostsList.List.Focused.Padding",
|
||||||
[]int{1, 1, 1, 1})
|
[]int{1, 1, 1, 1})
|
||||||
viper.SetDefault("Theme.PostsList.List.Border.Border",
|
viper.SetDefault("Theme.PostsList.List.Focused.Border.Border",
|
||||||
lipgloss.RoundedBorder())
|
lipgloss.RoundedBorder())
|
||||||
viper.SetDefault("Theme.PostsList.List.Border.Sides",
|
viper.SetDefault("Theme.PostsList.List.Focused.Border.Sides",
|
||||||
[]bool{true, true, true, true},
|
[]bool{true, true, true, true},
|
||||||
)
|
)
|
||||||
viper.SetDefault("Theme.PostsList.List.Border.Foreground",
|
viper.SetDefault("Theme.PostsList.List.Focused.Border.Foreground",
|
||||||
lipgloss.AdaptiveColor{Light: "#333333", Dark: "#cccccc"})
|
lipgloss.AdaptiveColor{Light: "#333333", Dark: "#cccccc"})
|
||||||
|
|
||||||
|
// PostsList List:Blurred
|
||||||
|
viper.SetDefault("Theme.PostsList.List.Blurred.Margin",
|
||||||
|
[]int{0, 0, 0, 0})
|
||||||
|
viper.SetDefault("Theme.PostsList.List.Blurred.Padding",
|
||||||
|
[]int{1, 1, 1, 1})
|
||||||
|
viper.SetDefault("Theme.PostsList.List.Blurred.Border.Border",
|
||||||
|
lipgloss.RoundedBorder())
|
||||||
|
viper.SetDefault("Theme.PostsList.List.Blurred.Border.Sides",
|
||||||
|
[]bool{true, true, true, true},
|
||||||
|
)
|
||||||
|
viper.SetDefault("Theme.PostsList.List.Blurred.Border.Foreground",
|
||||||
|
lipgloss.AdaptiveColor{Light: "#cccccc", Dark: "#333333"})
|
||||||
|
|
||||||
|
// PostsList Item:Focused
|
||||||
|
viper.SetDefault("Theme.PostsList.Item.Focused.Margin",
|
||||||
|
[]int{0, 0, 0, 0})
|
||||||
|
viper.SetDefault("Theme.PostsList.Item.Focused.Padding",
|
||||||
|
[]int{1, 1, 1, 1})
|
||||||
|
viper.SetDefault("Theme.PostsList.Item.Focused.Border.Border",
|
||||||
|
lipgloss.RoundedBorder())
|
||||||
|
viper.SetDefault("Theme.PostsList.Item.Focused.Border.Sides",
|
||||||
|
[]bool{true, true, true, true},
|
||||||
|
)
|
||||||
|
viper.SetDefault("Theme.PostsList.Item.Focused.Border.Foreground",
|
||||||
|
lipgloss.AdaptiveColor{Light: "#333333", Dark: "#cccccc"})
|
||||||
|
|
||||||
|
// PostsList Item:Blurred
|
||||||
|
viper.SetDefault("Theme.PostsList.Item.Blurred.Margin",
|
||||||
|
[]int{0, 0, 0, 0})
|
||||||
|
viper.SetDefault("Theme.PostsList.Item.Blurred.Padding",
|
||||||
|
[]int{1, 1, 1, 1})
|
||||||
|
viper.SetDefault("Theme.PostsList.Item.Blurred.Border.Border",
|
||||||
|
lipgloss.RoundedBorder())
|
||||||
|
viper.SetDefault("Theme.PostsList.Item.Blurred.Border.Sides",
|
||||||
|
[]bool{true, true, true, true},
|
||||||
|
)
|
||||||
|
viper.SetDefault("Theme.PostsList.Item.Blurred.Border.Foreground",
|
||||||
|
lipgloss.AdaptiveColor{Light: "#cccccc", Dark: "#333333"})
|
||||||
|
|
||||||
// DialogBox Window
|
// DialogBox Window
|
||||||
viper.SetDefault("Theme.DialogBox.Window.Margin",
|
viper.SetDefault("Theme.DialogBox.Window.Margin",
|
||||||
[]int{0, 0, 0, 0})
|
[]int{0, 0, 0, 0})
|
||||||
|
@ -13,8 +13,14 @@ type Theme struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
PostsList struct {
|
PostsList struct {
|
||||||
List lipgloss.Style
|
List struct {
|
||||||
Item lipgloss.Style
|
Focused lipgloss.Style
|
||||||
|
Blurred lipgloss.Style
|
||||||
|
}
|
||||||
|
Item struct {
|
||||||
|
Focused lipgloss.Style
|
||||||
|
Blurred lipgloss.Style
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Post struct {
|
Post struct {
|
||||||
@ -38,23 +44,41 @@ func New(cfg *config.Config) (*Theme) {
|
|||||||
// BorderBottom(false)
|
// BorderBottom(false)
|
||||||
//
|
//
|
||||||
|
|
||||||
t.PostsList.List = lipgloss.NewStyle().
|
t.PostsList.List.Focused = lipgloss.NewStyle().
|
||||||
Margin(cfg.Theme.PostsList.List.Margin...).
|
Margin(cfg.Theme.PostsList.List.Focused.Margin...).
|
||||||
Padding(cfg.Theme.PostsList.List.Padding...).
|
Padding(cfg.Theme.PostsList.List.Focused.Padding...).
|
||||||
Border(cfg.Theme.PostsList.List.Border.Border, cfg.Theme.PostsList.List.Border.Sides...).
|
Border(cfg.Theme.PostsList.List.Focused.Border.Border, cfg.Theme.PostsList.List.Focused.Border.Sides...).
|
||||||
BorderForeground(cfg.Theme.PostsList.List.Border.Foreground).
|
BorderForeground(cfg.Theme.PostsList.List.Focused.Border.Foreground).
|
||||||
BorderBackground(cfg.Theme.PostsList.List.Border.Background).
|
BorderBackground(cfg.Theme.PostsList.List.Focused.Border.Background).
|
||||||
Foreground(cfg.Theme.PostsList.List.Foreground).
|
Foreground(cfg.Theme.PostsList.List.Focused.Foreground).
|
||||||
Background(cfg.Theme.PostsList.List.Background)
|
Background(cfg.Theme.PostsList.List.Focused.Background)
|
||||||
|
|
||||||
t.PostsList.Item = lipgloss.NewStyle().
|
t.PostsList.List.Blurred = lipgloss.NewStyle().
|
||||||
Margin(cfg.Theme.PostsList.Item.Margin...).
|
Margin(cfg.Theme.PostsList.List.Blurred.Margin...).
|
||||||
Padding(cfg.Theme.PostsList.Item.Padding...).
|
Padding(cfg.Theme.PostsList.List.Blurred.Padding...).
|
||||||
Border(cfg.Theme.PostsList.Item.Border.Border, cfg.Theme.PostsList.Item.Border.Sides...).
|
Border(cfg.Theme.PostsList.List.Blurred.Border.Border, cfg.Theme.PostsList.List.Blurred.Border.Sides...).
|
||||||
BorderForeground(cfg.Theme.PostsList.Item.Border.Foreground).
|
BorderForeground(cfg.Theme.PostsList.List.Blurred.Border.Foreground).
|
||||||
BorderBackground(cfg.Theme.PostsList.Item.Border.Background).
|
BorderBackground(cfg.Theme.PostsList.List.Blurred.Border.Background).
|
||||||
Foreground(cfg.Theme.PostsList.Item.Foreground).
|
Foreground(cfg.Theme.PostsList.List.Blurred.Foreground).
|
||||||
Background(cfg.Theme.PostsList.Item.Background)
|
Background(cfg.Theme.PostsList.List.Blurred.Background)
|
||||||
|
|
||||||
|
t.PostsList.Item.Focused = lipgloss.NewStyle().
|
||||||
|
Margin(cfg.Theme.PostsList.Item.Focused.Margin...).
|
||||||
|
Padding(cfg.Theme.PostsList.Item.Focused.Padding...).
|
||||||
|
Border(cfg.Theme.PostsList.Item.Focused.Border.Border, cfg.Theme.PostsList.Item.Focused.Border.Sides...).
|
||||||
|
BorderForeground(cfg.Theme.PostsList.Item.Focused.Border.Foreground).
|
||||||
|
BorderBackground(cfg.Theme.PostsList.Item.Focused.Border.Background).
|
||||||
|
Foreground(cfg.Theme.PostsList.Item.Focused.Foreground).
|
||||||
|
Background(cfg.Theme.PostsList.Item.Focused.Background)
|
||||||
|
|
||||||
|
t.PostsList.Item.Blurred = lipgloss.NewStyle().
|
||||||
|
Margin(cfg.Theme.PostsList.Item.Blurred.Margin...).
|
||||||
|
Padding(cfg.Theme.PostsList.Item.Blurred.Padding...).
|
||||||
|
Border(cfg.Theme.PostsList.Item.Blurred.Border.Border, cfg.Theme.PostsList.Item.Blurred.Border.Sides...).
|
||||||
|
BorderForeground(cfg.Theme.PostsList.Item.Blurred.Border.Foreground).
|
||||||
|
BorderBackground(cfg.Theme.PostsList.Item.Blurred.Border.Background).
|
||||||
|
Foreground(cfg.Theme.PostsList.Item.Blurred.Foreground).
|
||||||
|
Background(cfg.Theme.PostsList.Item.Blurred.Background)
|
||||||
|
|
||||||
t.DialogBox.Window = lipgloss.NewStyle().
|
t.DialogBox.Window = lipgloss.NewStyle().
|
||||||
Margin(cfg.Theme.DialogBox.Window.Margin...).
|
Margin(cfg.Theme.DialogBox.Window.Margin...).
|
||||||
|
@ -110,8 +110,10 @@ func (m Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
|
|||||||
viewportWidth := m.ctx.Content[0] - 9
|
viewportWidth := m.ctx.Content[0] - 9
|
||||||
viewportHeight := m.ctx.Content[1] - 10
|
viewportHeight := m.ctx.Content[1] - 10
|
||||||
|
|
||||||
m.ctx.Theme.PostsList.List.Width(listWidth)
|
m.ctx.Theme.PostsList.List.Focused.Width(listWidth)
|
||||||
m.ctx.Theme.PostsList.List.Height(listHeight)
|
m.ctx.Theme.PostsList.List.Blurred.Width(listWidth)
|
||||||
|
m.ctx.Theme.PostsList.List.Focused.Height(listHeight)
|
||||||
|
m.ctx.Theme.PostsList.List.Blurred.Height(listHeight)
|
||||||
m.list.SetSize(
|
m.list.SetSize(
|
||||||
listWidth-2,
|
listWidth-2,
|
||||||
listHeight-2,
|
listHeight-2,
|
||||||
@ -138,17 +140,12 @@ func (m Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
|
|||||||
|
|
||||||
var cmd tea.Cmd
|
var cmd tea.Cmd
|
||||||
|
|
||||||
if m.viewportOpen == false {
|
if m.viewportOpen {
|
||||||
// m.ctx.Theme.PostsList.List.BorderForeground(lipgloss.Color("#FFFFFF"))
|
|
||||||
// viewportStyle.BorderForeground(lipgloss.Color("#874BFD"))
|
|
||||||
m.list, cmd = m.list.Update(msg)
|
|
||||||
cmds = append(cmds, cmd)
|
|
||||||
} else if m.viewportOpen == true {
|
|
||||||
// m.ctx.Theme.PostsList.List.BorderForeground(lipgloss.Color("#874BFD"))
|
|
||||||
// viewportStyle.BorderForeground(lipgloss.Color("#FFFFFF"))
|
|
||||||
m.viewport, cmd = m.viewport.Update(msg)
|
m.viewport, cmd = m.viewport.Update(msg)
|
||||||
cmds = append(cmds, cmd)
|
} else if m.viewportOpen == true {
|
||||||
|
m.list, cmd = m.list.Update(msg)
|
||||||
}
|
}
|
||||||
|
cmds = append(cmds, cmd)
|
||||||
|
|
||||||
return m, tea.Batch(cmds...)
|
return m, tea.Batch(cmds...)
|
||||||
}
|
}
|
||||||
@ -156,9 +153,15 @@ func (m Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
|
|||||||
func (m Model) View() string {
|
func (m Model) View() string {
|
||||||
var view strings.Builder = strings.Builder{}
|
var view strings.Builder = strings.Builder{}
|
||||||
|
|
||||||
|
var l string = ""
|
||||||
|
if m.viewportOpen {
|
||||||
|
l = m.ctx.Theme.PostsList.List.Blurred.Render(m.list.View())
|
||||||
|
} else {
|
||||||
|
l = m.ctx.Theme.PostsList.List.Focused.Render(m.list.View())
|
||||||
|
}
|
||||||
view.WriteString(lipgloss.JoinHorizontal(
|
view.WriteString(lipgloss.JoinHorizontal(
|
||||||
lipgloss.Top,
|
lipgloss.Top,
|
||||||
m.ctx.Theme.PostsList.List.Render(m.list.View()),
|
l,
|
||||||
))
|
))
|
||||||
|
|
||||||
if m.viewportOpen {
|
if m.viewportOpen {
|
||||||
|
Loading…
Reference in New Issue
Block a user