bubbles icon indicating copy to clipboard operation
bubbles copied to clipboard

List's `setSize` method should also call `updateKeybindings`

Open michaelriri opened this issue 1 year ago • 0 comments

Describe the bug

Keybindings are not updated (enabled/disabled) after resizing the height of a list.

To Reproduce

You can see this behavior by calling SetHeight in the list-simple example.

func (m model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
	switch msg := msg.(type) {
	case tea.WindowSizeMsg:
		m.list.SetWidth(msg.Width)
		m.list.SetHeight(msg.Height - 1)
...

Expected behavior

The keybindings should update according to the List's height. For example, if there is only one page, then disable next page and prev page bindings.

Screenshots

image

[!NOTE] The next page & prev page keybindings are still enabled, even though there is only one page.

Additional context

As a workaround, you can force the keybindings to update by calling SetFilteringEnabled which will, in turn, call updateKeybindings, but this is hacky. It seems like the straightforward fix is to also call updateKeybindings in setSize.

michaelriri avatar Aug 30 '24 05:08 michaelriri