Skip to content

Commit e01d4f4

Browse files
fix: hold styles should ensure the hold box height is constant
1 parent 42bc75c commit e01d4f4

File tree

2 files changed

+16
-5
lines changed

2 files changed

+16
-5
lines changed

internal/marathon/model.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@ func InitialModel(level uint) *Model {
3737
Cells: [][]bool{
3838
{false, false, false},
3939
{false, false, false},
40-
{false, false, false},
4140
},
4241
Value: 0,
4342
},
@@ -175,8 +174,10 @@ func (m *Model) informationView() string {
175174
}
176175

177176
func (m *Model) holdView() string {
178-
output := "Hold:\n" + m.renderTetrimino(m.holdTet, 1)
179-
return m.styles.Hold.Render(output)
177+
label := m.styles.Hold.Label.Render("Hold:")
178+
item := m.styles.Hold.Item.Render(m.renderTetrimino(m.holdTet, 1))
179+
output := lipgloss.JoinVertical(lipgloss.Top, label, item)
180+
return m.styles.Hold.View.Render(output)
180181
}
181182

182183
func (m *Model) bagView() string {

internal/marathon/style.go

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,18 @@ type Styles struct {
66
Playfield lipgloss.Style
77
ColIndicator lipgloss.Style
88
TetriminoStyles map[byte]lipgloss.Style
9-
Hold lipgloss.Style
9+
Hold holdStyles
1010
Information lipgloss.Style
1111
RowIndicator lipgloss.Style
1212
Bag lipgloss.Style
1313
}
1414

15+
type holdStyles struct {
16+
View lipgloss.Style
17+
Label lipgloss.Style
18+
Item lipgloss.Style
19+
}
20+
1521
func DefaultStyles() *Styles {
1622
s := Styles{
1723
Playfield: lipgloss.NewStyle().Border(lipgloss.RoundedBorder()).Padding(0),
@@ -25,7 +31,11 @@ func DefaultStyles() *Styles {
2531
'J': lipgloss.NewStyle().Foreground(lipgloss.Color("#5C65A8")),
2632
'L': lipgloss.NewStyle().Foreground(lipgloss.Color("#E07F3A")),
2733
},
28-
Hold: lipgloss.NewStyle().Width(10).Height(5).Border(lipgloss.RoundedBorder(), true, false, true, true).Align(lipgloss.Center, lipgloss.Center),
34+
Hold: holdStyles{
35+
View: lipgloss.NewStyle().Width(10).Height(5).Border(lipgloss.RoundedBorder(), true, false, true, true).Align(lipgloss.Center, lipgloss.Center),
36+
Label: lipgloss.NewStyle().Width(10).PaddingLeft(1).PaddingBottom(1),
37+
Item: lipgloss.NewStyle().Width(10).Height(2).Align(lipgloss.Center, lipgloss.Center),
38+
},
2939
Information: lipgloss.NewStyle().Width(13).Align(lipgloss.Left, lipgloss.Top),
3040
RowIndicator: lipgloss.NewStyle().Foreground(lipgloss.Color("#444049")).Align(lipgloss.Left).Padding(0, 1, 0),
3141
Bag: lipgloss.NewStyle().PaddingTop(1),

0 commit comments

Comments
 (0)