Skip to content

Commit

Permalink
Refactoring.
Browse files Browse the repository at this point in the history
  • Loading branch information
DECE2183 committed Sep 25, 2024
1 parent a05de0f commit 9171745
Show file tree
Hide file tree
Showing 14 changed files with 924 additions and 834 deletions.
37 changes: 37 additions & 0 deletions ui/components/input/helpKeys.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
package input

import (
"github.com/charmbracelet/bubbles/key"
"github.com/dece2183/yamusic-tui/config"
)

type helpKeyMap struct {
apply key.Binding
cancel key.Binding

Action string
}

func newHelpMap() *helpKeyMap {
return &helpKeyMap{
apply: key.NewBinding(
config.Current.Controls.Apply.Binding(),
config.Current.Controls.Apply.Help("apply"),
),
cancel: key.NewBinding(
config.Current.Controls.Cancel.Binding(),
config.Current.Controls.Cancel.Help("cancel"),
),
}
}

func (k *helpKeyMap) ShortHelp() []key.Binding {
k.apply.SetHelp(k.apply.Help().Key, k.Action)
return []key.Binding{k.apply, k.cancel}
}

func (k *helpKeyMap) FullHelp() [][]key.Binding {
return [][]key.Binding{
k.ShortHelp(),
}
}
50 changes: 14 additions & 36 deletions ui/components/input/input.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ package input

import (
"github.com/charmbracelet/bubbles/help"
"github.com/charmbracelet/bubbles/key"
"github.com/charmbracelet/bubbles/textinput"
tea "github.com/charmbracelet/bubbletea"
"github.com/charmbracelet/lipgloss"
Expand All @@ -18,45 +17,23 @@ const (
CANCEL
)

type helpKeyMap struct {
apply key.Binding
cancel key.Binding
}

func (k helpKeyMap) ShortHelp() []key.Binding {
return []key.Binding{k.apply, k.cancel}
}

func (k helpKeyMap) FullHelp() [][]key.Binding {
return [][]key.Binding{
k.ShortHelp(),
}
}

var helpMap = helpKeyMap{
apply: key.NewBinding(
config.Current.Controls.Apply.Binding(),
config.Current.Controls.Apply.Help("apply"),
),
cancel: key.NewBinding(
config.Current.Controls.Cancel.Binding(),
config.Current.Controls.Cancel.Help("cancel"),
),
}

type Model struct {
input textinput.Model
help help.Model
width int
value string

Title string
input textinput.Model
help help.Model
helpKeys *helpKeyMap
width int
value string

Title string
Action string
}

func New() *Model {
m := &Model{
input: textinput.New(),
help: help.New(),
input: textinput.New(),
help: help.New(),
helpKeys: newHelpMap(),
Action: "apply",
}
m.input.Focus()
return m
Expand All @@ -67,12 +44,13 @@ func (m *Model) Init() tea.Cmd {
}

func (m *Model) View() string {
m.helpKeys.Action = m.Action
title := style.DialogTitleStyle.Render(m.Title)
content := lipgloss.JoinVertical(lipgloss.Left, title, m.input.View())
return lipgloss.JoinVertical(
lipgloss.Left,
style.DialogBoxStyle.Render(content),
style.DialogHelpStyle.Render(m.help.View(helpMap)),
style.DialogHelpStyle.Render(m.help.View(m.helpKeys)),
)
}

Expand Down
36 changes: 36 additions & 0 deletions ui/components/playlist/helpKeys.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
package playlist

import (
"github.com/charmbracelet/bubbles/key"
"github.com/dece2183/yamusic-tui/config"
)

type helpKeyMap struct {
CursorUp key.Binding
CursorDown key.Binding
Rename key.Binding
Renamable bool
}

func (k helpKeyMap) ShortHelp() []key.Binding {
return []key.Binding{k.CursorUp, k.CursorDown}
}

func (k helpKeyMap) FullHelp() [][]key.Binding {
if k.Renamable {
return [][]key.Binding{
k.ShortHelp(),
{k.Rename},
}
} else {
return [][]key.Binding{
k.ShortHelp(),
}
}
}

var helpMap = helpKeyMap{
CursorUp: key.NewBinding(config.Current.Controls.PlaylistsUp.Binding(), config.Current.Controls.PlaylistsUp.Help("up")),
CursorDown: key.NewBinding(config.Current.Controls.PlaylistsDown.Binding(), config.Current.Controls.PlaylistsDown.Help("down")),
Rename: key.NewBinding(config.Current.Controls.PlaylistsRename.Binding(), config.Current.Controls.PlaylistsRename.Help("rename")),
}
30 changes: 0 additions & 30 deletions ui/components/playlist/playlist.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,36 +30,6 @@ const (
USER
)

type helpKeyMap struct {
CursorUp key.Binding
CursorDown key.Binding
Rename key.Binding
Renamable bool
}

func (k helpKeyMap) ShortHelp() []key.Binding {
return []key.Binding{k.CursorUp, k.CursorDown}
}

func (k helpKeyMap) FullHelp() [][]key.Binding {
if k.Renamable {
return [][]key.Binding{
k.ShortHelp(),
{k.Rename},
}
} else {
return [][]key.Binding{
k.ShortHelp(),
}
}
}

var helpMap = helpKeyMap{
CursorUp: key.NewBinding(config.Current.Controls.PlaylistsUp.Binding(), config.Current.Controls.PlaylistsUp.Help("up")),
CursorDown: key.NewBinding(config.Current.Controls.PlaylistsDown.Binding(), config.Current.Controls.PlaylistsDown.Help("down")),
Rename: key.NewBinding(config.Current.Controls.PlaylistsRename.Binding(), config.Current.Controls.PlaylistsRename.Help("rename")),
}

type Model struct {
program *tea.Program
list list.Model
Expand Down
16 changes: 9 additions & 7 deletions ui/components/search/search.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,25 +29,26 @@ const (
)

type Model struct {
header string
actionHelp string
list list.Model
input textinput.Model
width, height int
value string
updated bool
lastUpdateTime time.Time
additionalKeyBindigs []key.Binding

Title string
Action string
}

func New(header, action string) *Model {
func New() *Model {
m := &Model{
header: header,
actionHelp: action,
additionalKeyBindigs: []key.Binding{
key.NewBinding(config.Current.Controls.Apply.Binding(), config.Current.Controls.Apply.Help(action)),
key.NewBinding(config.Current.Controls.Apply.Binding(), config.Current.Controls.Apply.Help("search")),
key.NewBinding(config.Current.Controls.Cancel.Binding(), config.Current.Controls.Cancel.Help("cancel")),
},
Title: "Search",
Action: "search",
}

controls := config.Current.Controls
Expand Down Expand Up @@ -76,9 +77,10 @@ func (m *Model) Init() tea.Cmd {
}

func (m *Model) View() string {
m.additionalKeyBindigs[0].SetHelp(m.additionalKeyBindigs[0].Help().Key, m.Action)
return lipgloss.JoinVertical(
lipgloss.Left,
style.AccentTextStyle.MaxWidth(m.width).MarginBottom(1).Render(m.header),
style.AccentTextStyle.MaxWidth(m.width).MarginBottom(1).Render(m.Title),
style.DialogBoxStyle.MaxWidth(m.width).Render(m.input.View()),
lipgloss.NewStyle().MaxWidth(m.width).Render(m.list.View()),
)
Expand Down
67 changes: 67 additions & 0 deletions ui/components/tracker/helpKeys.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
package tracker

import (
"fmt"

"github.com/charmbracelet/bubbles/key"
"github.com/dece2183/yamusic-tui/config"
)

type helpKeyMap struct {
PlayPause key.Binding
PrevTrack key.Binding
NextTrack key.Binding
LikeUnlike key.Binding
Forward key.Binding
Backward key.Binding
VolUp key.Binding
VolDown key.Binding
}

var helpMap = helpKeyMap{
PlayPause: key.NewBinding(
config.Current.Controls.PlayerPause.Binding(),
config.Current.Controls.PlayerPause.Help("play/pause"),
),
PrevTrack: key.NewBinding(
config.Current.Controls.PlayerPrevious.Binding(),
config.Current.Controls.PlayerPrevious.Help("previous track"),
),
NextTrack: key.NewBinding(
config.Current.Controls.PlayerNext.Binding(),
config.Current.Controls.PlayerNext.Help("next track"),
),
LikeUnlike: key.NewBinding(
config.Current.Controls.PlayerLike.Binding(),
config.Current.Controls.PlayerLike.Help("like/unlike"),
),
Backward: key.NewBinding(
config.Current.Controls.PlayerRewindBackward.Binding(),
config.Current.Controls.PlayerRewindBackward.Help(fmt.Sprintf("-%d sec", int(config.Current.RewindDuration))),
),
Forward: key.NewBinding(
config.Current.Controls.PlayerRewindForward.Binding(),
config.Current.Controls.PlayerRewindForward.Help(fmt.Sprintf("+%d sec", int(config.Current.RewindDuration))),
),
VolUp: key.NewBinding(
config.Current.Controls.PlayerVolUp.Binding(),
config.Current.Controls.PlayerVolUp.Help("vol up"),
),
VolDown: key.NewBinding(
config.Current.Controls.PlayerVolDown.Binding(),
config.Current.Controls.PlayerVolDown.Help("vol down"),
),
}

func (k helpKeyMap) ShortHelp() []key.Binding {
return []key.Binding{k.PlayPause, k.NextTrack, k.PrevTrack, k.LikeUnlike}
}

func (k helpKeyMap) FullHelp() [][]key.Binding {
return [][]key.Binding{
{k.PlayPause, k.LikeUnlike},
{k.NextTrack, k.PrevTrack},
{k.Forward, k.Backward},
{k.VolUp, k.VolDown},
}
}
60 changes: 0 additions & 60 deletions ui/components/tracker/tracker.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ import (
"github.com/dece2183/yamusic-tui/ui/style"

"github.com/charmbracelet/bubbles/help"
"github.com/charmbracelet/bubbles/key"
"github.com/charmbracelet/bubbles/progress"
tea "github.com/charmbracelet/bubbletea"
"github.com/charmbracelet/lipgloss"
Expand All @@ -40,65 +39,6 @@ func (p ProgressControl) Value() float64 {
return float64(p)
}

type helpKeyMap struct {
PlayPause key.Binding
PrevTrack key.Binding
NextTrack key.Binding
LikeUnlike key.Binding
Forward key.Binding
Backward key.Binding
VolUp key.Binding
VolDown key.Binding
}

var helpMap = helpKeyMap{
PlayPause: key.NewBinding(
config.Current.Controls.PlayerPause.Binding(),
config.Current.Controls.PlayerPause.Help("play/pause"),
),
PrevTrack: key.NewBinding(
config.Current.Controls.PlayerPrevious.Binding(),
config.Current.Controls.PlayerPrevious.Help("previous track"),
),
NextTrack: key.NewBinding(
config.Current.Controls.PlayerNext.Binding(),
config.Current.Controls.PlayerNext.Help("next track"),
),
LikeUnlike: key.NewBinding(
config.Current.Controls.PlayerLike.Binding(),
config.Current.Controls.PlayerLike.Help("like/unlike"),
),
Backward: key.NewBinding(
config.Current.Controls.PlayerRewindBackward.Binding(),
config.Current.Controls.PlayerRewindBackward.Help(fmt.Sprintf("-%d sec", int(config.Current.RewindDuration))),
),
Forward: key.NewBinding(
config.Current.Controls.PlayerRewindForward.Binding(),
config.Current.Controls.PlayerRewindForward.Help(fmt.Sprintf("+%d sec", int(config.Current.RewindDuration))),
),
VolUp: key.NewBinding(
config.Current.Controls.PlayerVolUp.Binding(),
config.Current.Controls.PlayerVolUp.Help("vol up"),
),
VolDown: key.NewBinding(
config.Current.Controls.PlayerVolDown.Binding(),
config.Current.Controls.PlayerVolDown.Help("vol down"),
),
}

func (k helpKeyMap) ShortHelp() []key.Binding {
return []key.Binding{k.PlayPause, k.NextTrack, k.PrevTrack, k.LikeUnlike}
}

func (k helpKeyMap) FullHelp() [][]key.Binding {
return [][]key.Binding{
{k.PlayPause, k.LikeUnlike},
{k.NextTrack, k.PrevTrack},
{k.Forward, k.Backward},
{k.VolUp, k.VolDown},
}
}

var rewindAmount = time.Duration(config.Current.RewindDuration) * time.Second

type Model struct {
Expand Down
Loading

0 comments on commit 9171745

Please sign in to comment.