package chat import ( "github.com/ayn2op/tview/help" "github.com/ayn2op/tview/keybind" ) var _ help.KeyMap = (*Model)(nil) func (v *Model) ShortHelp() []keybind.Keybind { short := make([]keybind.Keybind, 0, 16) if active := v.activeKeyMap(); active != nil { short = append(short, active.ShortHelp()...) } short = append(short, v.baseShortHelp()...) return short } func (v *Model) FullHelp() [][]keybind.Keybind { full := make([][]keybind.Keybind, 0, 8) if active := v.activeKeyMap(); active != nil { full = append(full, active.FullHelp()...) } full = append(full, v.baseFullHelp()...) return full } func (v *Model) activeKeyMap() help.KeyMap { if v.GetVisible(channelsPickerLayerName) { return v.channelsPicker } if v.app == nil { return nil } switch v.app.Focused() { case v.guildsTree: return v.guildsTree case v.messagesList: return v.messagesList case v.messageInput: return v.messageInput default: return nil } } func (v *Model) baseShortHelp() []keybind.Keybind { cfg := v.cfg.Keybinds short := []keybind.Keybind{cfg.FocusGuildsTree.Keybind, cfg.FocusMessagesList.Keybind} if !v.messageInput.GetDisabled() { short = append(short, cfg.FocusMessageInput.Keybind) } short = append(short, cfg.ToggleGuildsTree.Keybind, cfg.ToggleChannelsPicker.Keybind) return short } func (v *Model) baseFullHelp() [][]keybind.Keybind { cfg := v.cfg.Keybinds focus := []keybind.Keybind{cfg.FocusGuildsTree.Keybind, cfg.FocusMessagesList.Keybind} if !v.messageInput.GetDisabled() { focus = append(focus, cfg.FocusMessageInput.Keybind) } return [][]keybind.Keybind{ focus, {cfg.FocusPrevious.Keybind, cfg.FocusNext.Keybind}, {cfg.ToggleGuildsTree.Keybind, cfg.ToggleChannelsPicker.Keybind}, {cfg.Logout.Keybind}, } }