Files
Hadi 59b31e5ca3 init
Signed-off-by: Hadi <[email protected]>
2026-08-13 00:58:37 +02:00

64 lines
2.3 KiB
Go

package network
import (
"charm.land/bubbles/v2/key"
"github.com/anotherhadi/settuings/internal/keys"
)
// networkKeyMap renders the bottom help bar, adapting to the active tab and
// whether a sub-view (password prompt, device info, known-network detail)
// is open.
type networkKeyMap struct {
m Model
width int
}
func (k networkKeyMap) ShortHelp() []key.Binding {
g := keys.Keys.Global
n := keys.Keys.Network
switch {
case k.m.wifi.connecting:
return []key.Binding{n.Select, g.Escape, g.Help}
case k.m.deviceDetail.open && k.m.deviceDetail.kind == tabWifi:
return []key.Binding{g.Up, g.Down, n.RevealSecret, n.Disconnect, g.Escape, g.Help}
case k.m.deviceDetail.open:
return []key.Binding{g.Up, g.Down, n.Disconnect, g.Escape, g.Help}
case k.m.active == tabKnown && k.m.known.detail:
return []key.Binding{n.RevealSecret, n.ToggleAuto, n.Forget, g.Escape, g.Help}
case k.m.active == tabKnown:
return []key.Binding{g.Up, g.Down, n.Select, n.Known, g.Help}
case k.m.active == tabWifi:
return []key.Binding{g.Up, g.Down, n.Select, n.Disconnect, n.ToggleRadio, g.Help}
default:
return []key.Binding{g.Up, g.Down, n.Select, g.CycleFocus, n.Known, g.Help}
}
}
func (k networkKeyMap) FullHelp() [][]key.Binding {
g := keys.Keys.Global
n := keys.Keys.Network
var bindings []key.Binding
switch {
case k.m.wifi.connecting:
bindings = []key.Binding{n.Select, g.Escape}
case k.m.deviceDetail.open && k.m.deviceDetail.kind == tabWifi:
bindings = []key.Binding{g.Up, g.Down, g.ScrollUp, g.ScrollDown, n.RevealSecret, n.Disconnect, g.Escape}
case k.m.deviceDetail.open:
bindings = []key.Binding{g.Up, g.Down, g.ScrollUp, g.ScrollDown, n.Disconnect, g.Escape}
case k.m.active == tabKnown && k.m.known.detail:
bindings = []key.Binding{n.RevealSecret, n.ToggleAuto, n.Forget, g.Escape}
case k.m.active == tabKnown:
bindings = []key.Binding{g.Up, g.Down, n.Select, n.Refresh, n.Known}
case k.m.active == tabWifi:
bindings = []key.Binding{g.Up, g.Down, n.Select, n.Refresh, n.Info, n.Disconnect, n.ToggleRadio, g.CycleFocus, n.Known}
case k.m.active == tabEthernet:
bindings = []key.Binding{g.Up, g.Down, n.Select, n.Refresh, n.Info, g.CycleFocus, n.Known}
default:
bindings = []key.Binding{g.Up, g.Down, n.Select, n.Refresh, g.CycleFocus, n.Known}
}
bindings = append(bindings, g.CommonBindings()...)
return keys.ChunkByWidth(bindings, k.width)
}