views

package
v0.4.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 11, 2026 License: MIT Imports: 32 Imported by: 0

Documentation

Overview

Package views provides the individual screens for the workspace TUI.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Activity

type Activity struct {
	// contains filtered or unexported fields
}

Activity is the timeline feed view showing rich activity events across all accounts. Uses the Timeline.Progress() API for action-level detail.

func NewActivity

func NewActivity(session *workspace.Session) *Activity

NewActivity creates the Activity timeline feed view.

func (*Activity) FocusedItem

func (v *Activity) FocusedItem() workspace.FocusedItemScope

FocusedItem implements workspace.FocusedRecording.

func (*Activity) FullHelp

func (v *Activity) FullHelp() [][]key.Binding

func (*Activity) Init

func (v *Activity) Init() tea.Cmd

func (*Activity) InputActive

func (v *Activity) InputActive() bool

InputActive implements workspace.InputCapturer.

func (*Activity) SetSize

func (v *Activity) SetSize(w, h int)

func (*Activity) ShortHelp

func (v *Activity) ShortHelp() []key.Binding

func (*Activity) StartFilter

func (v *Activity) StartFilter()

StartFilter implements workspace.Filterable.

func (*Activity) Title

func (v *Activity) Title() string

func (*Activity) Update

func (v *Activity) Update(msg tea.Msg) (workspace.View, tea.Cmd)

func (*Activity) View

func (v *Activity) View() string

type Assignments

type Assignments struct {
	// contains filtered or unexported fields
}

Assignments shows cross-account todo assignments for the current user, grouped by due date (overdue, this week, later).

func NewAssignments

func NewAssignments(session *workspace.Session) *Assignments

NewAssignments creates the cross-account assignments view.

func (*Assignments) FocusedItem

func (v *Assignments) FocusedItem() workspace.FocusedItemScope

FocusedItem implements workspace.FocusedRecording.

func (*Assignments) FullHelp

func (v *Assignments) FullHelp() [][]key.Binding

func (*Assignments) Init

func (v *Assignments) Init() tea.Cmd

func (*Assignments) InputActive

func (v *Assignments) InputActive() bool

InputActive implements workspace.InputCapturer.

func (*Assignments) SetSize

func (v *Assignments) SetSize(w, h int)

func (*Assignments) ShortHelp

func (v *Assignments) ShortHelp() []key.Binding

func (*Assignments) StartFilter

func (v *Assignments) StartFilter()

StartFilter implements workspace.Filterable.

func (*Assignments) Title

func (v *Assignments) Title() string

func (*Assignments) Update

func (v *Assignments) Update(msg tea.Msg) (workspace.View, tea.Cmd)

func (*Assignments) View

func (v *Assignments) View() string

type BonfireSidebar added in v0.3.0

type BonfireSidebar struct {
	// contains filtered or unexported fields
}

BonfireSidebar is a compact live chat/ping panel designed for the sidebar. Shows campfire rooms with activity and 1:1 pings, grouped and sorted by recency. Replaces the single-line ticker with a scannable, interactive list.

func NewBonfireSidebar added in v0.3.0

func NewBonfireSidebar(session *workspace.Session) *BonfireSidebar

NewBonfireSidebar creates a new sidebar view.

func (*BonfireSidebar) FullHelp added in v0.3.0

func (b *BonfireSidebar) FullHelp() [][]key.Binding

func (*BonfireSidebar) Init added in v0.3.0

func (b *BonfireSidebar) Init() tea.Cmd

func (*BonfireSidebar) SetSize added in v0.3.0

func (b *BonfireSidebar) SetSize(w, h int)

func (*BonfireSidebar) ShortHelp added in v0.3.0

func (b *BonfireSidebar) ShortHelp() []key.Binding

func (*BonfireSidebar) Title added in v0.3.0

func (b *BonfireSidebar) Title() string

func (*BonfireSidebar) Update added in v0.3.0

func (b *BonfireSidebar) Update(msg tea.Msg) (workspace.View, tea.Cmd)

func (*BonfireSidebar) View added in v0.3.0

func (b *BonfireSidebar) View() string

type Campfire

type Campfire struct {
	// contains filtered or unexported fields
}

Campfire is the chat stream view for a project campfire.

func NewCampfire

func NewCampfire(session *workspace.Session) *Campfire

NewCampfire creates the campfire chat view.

func (*Campfire) FocusedItem

func (v *Campfire) FocusedItem() workspace.FocusedItemScope

FocusedItem implements workspace.FocusedRecording.

func (*Campfire) FullHelp

func (v *Campfire) FullHelp() [][]key.Binding

FullHelp implements View.

func (*Campfire) Init

func (v *Campfire) Init() tea.Cmd

Init implements tea.Model.

func (*Campfire) InputActive

func (v *Campfire) InputActive() bool

InputActive implements workspace.InputCapturer.

func (*Campfire) SetSize

func (v *Campfire) SetSize(w, h int)

SetSize implements View.

func (*Campfire) ShortHelp

func (v *Campfire) ShortHelp() []key.Binding

ShortHelp implements View.

func (*Campfire) Title

func (v *Campfire) Title() string

Title implements View.

func (*Campfire) Update

func (v *Campfire) Update(msg tea.Msg) (workspace.View, tea.Cmd)

Update implements tea.Model.

func (*Campfire) View

func (v *Campfire) View() string

View implements tea.Model.

type Cards

type Cards struct {
	// contains filtered or unexported fields
}

Cards is the kanban board view for a card table.

func NewCards

func NewCards(session *workspace.Session) *Cards

NewCards creates the kanban board cards view.

func (*Cards) FullHelp

func (v *Cards) FullHelp() [][]key.Binding

FullHelp implements View.

func (*Cards) Init

func (v *Cards) Init() tea.Cmd

Init implements tea.Model.

func (*Cards) InputActive

func (v *Cards) InputActive() bool

InputActive implements workspace.InputCapturer.

func (*Cards) IsModal

func (v *Cards) IsModal() bool

IsModal implements workspace.ModalActive.

func (*Cards) SetSize

func (v *Cards) SetSize(w, h int)

SetSize implements View.

func (*Cards) ShortHelp

func (v *Cards) ShortHelp() []key.Binding

ShortHelp implements View.

func (*Cards) Title

func (v *Cards) Title() string

Title implements View.

func (*Cards) Update

func (v *Cards) Update(msg tea.Msg) (workspace.View, tea.Cmd)

Update implements tea.Model.

func (*Cards) View

func (v *Cards) View() string

View implements tea.Model.

type Checkins

type Checkins struct {
	// contains filtered or unexported fields
}

Checkins is the split-pane view for check-in questions and their answers.

func NewCheckins

func NewCheckins(session *workspace.Session) *Checkins

NewCheckins creates the check-ins view.

func (*Checkins) FullHelp

func (v *Checkins) FullHelp() [][]key.Binding

FullHelp implements View.

func (*Checkins) HasSplitPane

func (v *Checkins) HasSplitPane() bool

HasSplitPane implements workspace.SplitPaneFocuser.

func (*Checkins) Init

func (v *Checkins) Init() tea.Cmd

Init implements tea.Model.

func (*Checkins) InputActive

func (v *Checkins) InputActive() bool

InputActive implements workspace.InputCapturer.

func (*Checkins) IsModal

func (v *Checkins) IsModal() bool

IsModal implements workspace.ModalActive.

func (*Checkins) SetSize

func (v *Checkins) SetSize(w, h int)

SetSize implements View.

func (*Checkins) ShortHelp

func (v *Checkins) ShortHelp() []key.Binding

ShortHelp implements View.

func (*Checkins) StartFilter

func (v *Checkins) StartFilter()

StartFilter implements workspace.Filterable.

func (*Checkins) Title

func (v *Checkins) Title() string

Title implements View.

func (*Checkins) Update

func (v *Checkins) Update(msg tea.Msg) (workspace.View, tea.Cmd)

Update implements tea.Model.

func (*Checkins) View

func (v *Checkins) View() string

View implements tea.Model.

type Compose

type Compose struct {
	// contains filtered or unexported fields
}

Compose is a general-purpose compose view for creating messages.

func NewCompose

func NewCompose(session *workspace.Session) *Compose

NewCompose creates a new compose view.

func (*Compose) FullHelp

func (v *Compose) FullHelp() [][]key.Binding

FullHelp implements View.

func (*Compose) Init

func (v *Compose) Init() tea.Cmd

Init implements tea.Model.

func (*Compose) InputActive

func (v *Compose) InputActive() bool

InputActive implements workspace.InputCapturer.

func (*Compose) IsModal

func (v *Compose) IsModal() bool

IsModal implements workspace.ModalActive.

func (*Compose) SetSize

func (v *Compose) SetSize(w, h int)

SetSize implements View.

func (*Compose) ShortHelp

func (v *Compose) ShortHelp() []key.Binding

ShortHelp implements View.

func (*Compose) Title

func (v *Compose) Title() string

Title implements View.

func (*Compose) Update

func (v *Compose) Update(msg tea.Msg) (workspace.View, tea.Cmd)

Update implements tea.Model.

func (*Compose) View

func (v *Compose) View() string

View implements tea.Model.

type Detail

type Detail struct {
	// contains filtered or unexported fields
}

Detail shows a single recording with its content and metadata.

func NewDetail

func NewDetail(session *workspace.Session, recordingID int64, recordingType, originView, originHint string) *Detail

NewDetail creates a detail view for a specific recording.

func (*Detail) FullHelp

func (v *Detail) FullHelp() [][]key.Binding

func (*Detail) Init

func (v *Detail) Init() tea.Cmd

func (*Detail) InputActive

func (v *Detail) InputActive() bool

InputActive implements workspace.InputCapturer.

func (*Detail) IsModal

func (v *Detail) IsModal() bool

IsModal implements workspace.ModalActive.

func (*Detail) SetSize

func (v *Detail) SetSize(w, h int)

func (*Detail) ShortHelp

func (v *Detail) ShortHelp() []key.Binding

func (*Detail) Title

func (v *Detail) Title() string

func (*Detail) Update

func (v *Detail) Update(msg tea.Msg) (workspace.View, tea.Cmd)

func (*Detail) View

func (v *Detail) View() string

type Dock

type Dock struct {
	// contains filtered or unexported fields
}

Dock shows a project's tool grid with peek previews.

func NewDock

func NewDock(session *workspace.Session, projectID int64) *Dock

NewDock creates the project dock view.

func (*Dock) FullHelp

func (v *Dock) FullHelp() [][]key.Binding

FullHelp implements View.

func (*Dock) Init

func (v *Dock) Init() tea.Cmd

Init implements tea.Model.

func (*Dock) InputActive

func (v *Dock) InputActive() bool

InputActive implements workspace.InputCapturer.

func (*Dock) SetSize

func (v *Dock) SetSize(w, h int)

SetSize implements View.

func (*Dock) ShortHelp

func (v *Dock) ShortHelp() []key.Binding

ShortHelp implements View.

func (*Dock) StartFilter

func (v *Dock) StartFilter()

StartFilter implements workspace.Filterable.

func (*Dock) Title

func (v *Dock) Title() string

Title implements View.

func (*Dock) Update

func (v *Dock) Update(msg tea.Msg) (workspace.View, tea.Cmd)

Update implements tea.Model.

func (*Dock) View

func (v *Dock) View() string

View implements tea.Model.

type DocsFiles

type DocsFiles struct {
	// contains filtered or unexported fields
}

DocsFiles is the list view for a project's vault (Docs & Files).

func NewDocsFiles

func NewDocsFiles(session *workspace.Session) *DocsFiles

NewDocsFiles creates the docs & files view.

func (*DocsFiles) FullHelp

func (v *DocsFiles) FullHelp() [][]key.Binding

FullHelp implements View.

func (*DocsFiles) Init

func (v *DocsFiles) Init() tea.Cmd

Init implements tea.Model.

func (*DocsFiles) InputActive

func (v *DocsFiles) InputActive() bool

InputActive implements workspace.InputCapturer.

func (*DocsFiles) IsModal

func (v *DocsFiles) IsModal() bool

IsModal implements workspace.ModalActive. Modal when inside a sub-folder (Esc should pop the folder, not navigate back).

func (*DocsFiles) SetSize

func (v *DocsFiles) SetSize(w, h int)

SetSize implements View.

func (*DocsFiles) ShortHelp

func (v *DocsFiles) ShortHelp() []key.Binding

ShortHelp implements View.

func (*DocsFiles) StartFilter

func (v *DocsFiles) StartFilter()

StartFilter implements workspace.Filterable.

func (*DocsFiles) Title

func (v *DocsFiles) Title() string

Title implements View.

func (*DocsFiles) Update

func (v *DocsFiles) Update(msg tea.Msg) (workspace.View, tea.Cmd)

Update implements tea.Model.

func (*DocsFiles) View

func (v *DocsFiles) View() string

View implements tea.Model.

type Forwards

type Forwards struct {
	// contains filtered or unexported fields
}

Forwards shows email forwards in the project inbox.

func NewForwards

func NewForwards(session *workspace.Session) *Forwards

NewForwards creates the email forwards view.

func (*Forwards) FullHelp

func (v *Forwards) FullHelp() [][]key.Binding

func (*Forwards) Init

func (v *Forwards) Init() tea.Cmd

func (*Forwards) InputActive

func (v *Forwards) InputActive() bool

InputActive implements workspace.InputCapturer.

func (*Forwards) SetSize

func (v *Forwards) SetSize(w, h int)

func (*Forwards) ShortHelp

func (v *Forwards) ShortHelp() []key.Binding

func (*Forwards) StartFilter

func (v *Forwards) StartFilter()

StartFilter implements workspace.Filterable.

func (*Forwards) Title

func (v *Forwards) Title() string

func (*Forwards) Update

func (v *Forwards) Update(msg tea.Msg) (workspace.View, tea.Cmd)

func (*Forwards) View

func (v *Forwards) View() string

type FrontPage added in v0.3.0

type FrontPage struct {
	// contains filtered or unexported fields
}

FrontPage is the campfire overview view showing all campfire rooms with burst tiers (Hot/Warm/Cold) based on recent activity.

func NewFrontPage added in v0.3.0

func NewFrontPage(session *workspace.Session) *FrontPage

NewFrontPage creates a new FrontPage view.

func (*FrontPage) FullHelp added in v0.3.0

func (f *FrontPage) FullHelp() [][]key.Binding

func (*FrontPage) Init added in v0.3.0

func (f *FrontPage) Init() tea.Cmd

func (*FrontPage) InputActive added in v0.3.0

func (f *FrontPage) InputActive() bool

InputActive implements InputCapturer.

func (*FrontPage) SetSize added in v0.3.0

func (f *FrontPage) SetSize(w, h int)

func (*FrontPage) ShortHelp added in v0.3.0

func (f *FrontPage) ShortHelp() []key.Binding

func (*FrontPage) StartFilter added in v0.3.0

func (f *FrontPage) StartFilter()

StartFilter implements Filterable.

func (*FrontPage) Title added in v0.3.0

func (f *FrontPage) Title() string

func (*FrontPage) Update added in v0.3.0

func (f *FrontPage) Update(msg tea.Msg) (workspace.View, tea.Cmd)

func (*FrontPage) View added in v0.3.0

func (f *FrontPage) View() string

type Hey

type Hey struct {
	// contains filtered or unexported fields
}

Hey is the activity feed view showing recently updated recordings across all accounts. It replaces the empty notifications stub with real data from Recordings().List() fan-out.

func NewHey

func NewHey(session *workspace.Session) *Hey

NewHey creates the Hey! activity feed view.

func (*Hey) FocusedItem

func (v *Hey) FocusedItem() workspace.FocusedItemScope

FocusedItem implements workspace.FocusedRecording.

func (*Hey) FullHelp

func (v *Hey) FullHelp() [][]key.Binding

func (*Hey) Init

func (v *Hey) Init() tea.Cmd

func (*Hey) InputActive

func (v *Hey) InputActive() bool

InputActive implements workspace.InputCapturer.

func (*Hey) SetSize

func (v *Hey) SetSize(w, h int)

func (*Hey) ShortHelp

func (v *Hey) ShortHelp() []key.Binding

func (*Hey) StartFilter

func (v *Hey) StartFilter()

StartFilter implements workspace.Filterable.

func (*Hey) Title

func (v *Hey) Title() string

func (*Hey) Update

func (v *Hey) Update(msg tea.Msg) (workspace.View, tea.Cmd)

func (*Hey) View

func (v *Hey) View() string

type Home

type Home struct {
	// contains filtered or unexported fields
}

Home is a combined dashboard view that shows recents, activity, assignments, and bookmarked projects in a single scrollable list with section headers. It renders instantly with local recents data, then progressively fills in API-sourced sections via shared Hub pools.

func NewHome

func NewHome(session *workspace.Session) *Home

NewHome creates the home dashboard view.

func (*Home) FullHelp

func (v *Home) FullHelp() [][]key.Binding

func (*Home) Init

func (v *Home) Init() tea.Cmd

func (*Home) InputActive

func (v *Home) InputActive() bool

InputActive implements InputCapturer.

func (*Home) SetSize

func (v *Home) SetSize(w, h int)

func (*Home) ShortHelp

func (v *Home) ShortHelp() []key.Binding

func (*Home) StartFilter

func (v *Home) StartFilter()

StartFilter implements Filterable.

func (*Home) Title

func (v *Home) Title() string

func (*Home) Update

func (v *Home) Update(msg tea.Msg) (workspace.View, tea.Cmd)

func (*Home) View

func (v *Home) View() string

type Messages

type Messages struct {
	// contains filtered or unexported fields
}

Messages is the split-pane view for a project's message board.

func NewMessages

func NewMessages(session *workspace.Session) *Messages

NewMessages creates the split-pane messages view.

func (*Messages) FocusedItem

func (v *Messages) FocusedItem() workspace.FocusedItemScope

FocusedItem implements workspace.FocusedRecording.

func (*Messages) FullHelp

func (v *Messages) FullHelp() [][]key.Binding

FullHelp implements View.

func (*Messages) Init

func (v *Messages) Init() tea.Cmd

Init implements tea.Model.

func (*Messages) InputActive

func (v *Messages) InputActive() bool

InputActive implements workspace.InputCapturer.

func (*Messages) SetSize

func (v *Messages) SetSize(w, h int)

SetSize implements View.

func (*Messages) ShortHelp

func (v *Messages) ShortHelp() []key.Binding

ShortHelp implements View.

func (*Messages) StartFilter

func (v *Messages) StartFilter()

StartFilter implements workspace.Filterable.

func (*Messages) Title

func (v *Messages) Title() string

Title implements View.

func (*Messages) Update

func (v *Messages) Update(msg tea.Msg) (workspace.View, tea.Cmd)

Update implements tea.Model.

func (*Messages) View

func (v *Messages) View() string

View implements tea.Model.

type MyStuff

type MyStuff struct {
	// contains filtered or unexported fields
}

MyStuff is the personal dashboard view showing recent projects and items.

func NewMyStuff

func NewMyStuff(session *workspace.Session) *MyStuff

NewMyStuff creates the My Stuff personal dashboard view.

func (*MyStuff) FullHelp

func (v *MyStuff) FullHelp() [][]key.Binding

FullHelp implements View.

func (*MyStuff) Init

func (v *MyStuff) Init() tea.Cmd

Init implements tea.Model.

func (*MyStuff) InputActive

func (v *MyStuff) InputActive() bool

InputActive implements workspace.InputCapturer.

func (*MyStuff) SetSize

func (v *MyStuff) SetSize(w, h int)

SetSize implements View.

func (*MyStuff) ShortHelp

func (v *MyStuff) ShortHelp() []key.Binding

ShortHelp implements View.

func (*MyStuff) StartFilter

func (v *MyStuff) StartFilter()

StartFilter implements workspace.Filterable.

func (*MyStuff) Title

func (v *MyStuff) Title() string

Title implements View.

func (*MyStuff) Update

func (v *MyStuff) Update(msg tea.Msg) (workspace.View, tea.Cmd)

Update implements tea.Model.

func (*MyStuff) View

func (v *MyStuff) View() string

View implements tea.Model.

type People

type People struct {
	// contains filtered or unexported fields
}

People is the people directory view showing all account members.

func NewPeople

func NewPeople(session *workspace.Session) *People

NewPeople creates the people directory view.

func (*People) FullHelp

func (v *People) FullHelp() [][]key.Binding

FullHelp implements View.

func (*People) Init

func (v *People) Init() tea.Cmd

Init implements tea.Model.

func (*People) InputActive

func (v *People) InputActive() bool

InputActive implements workspace.InputCapturer.

func (*People) SetSize

func (v *People) SetSize(w, h int)

SetSize implements View.

func (*People) ShortHelp

func (v *People) ShortHelp() []key.Binding

ShortHelp implements View.

func (*People) StartFilter

func (v *People) StartFilter()

StartFilter implements workspace.Filterable.

func (*People) Title

func (v *People) Title() string

Title implements View.

func (*People) Update

func (v *People) Update(msg tea.Msg) (workspace.View, tea.Cmd)

Update implements tea.Model.

func (*People) View

func (v *People) View() string

View implements tea.Model.

type Pings

type Pings struct {
	// contains filtered or unexported fields
}

Pings shows 1:1 campfire threads across all accounts. Discovery: list all campfires per account, identify 1:1 rooms, fetch the latest line from each.

func NewPings

func NewPings(session *workspace.Session) *Pings

NewPings creates the pings view.

func (*Pings) FullHelp

func (v *Pings) FullHelp() [][]key.Binding

func (*Pings) Init

func (v *Pings) Init() tea.Cmd

func (*Pings) InputActive

func (v *Pings) InputActive() bool

InputActive implements workspace.InputCapturer.

func (*Pings) SetSize

func (v *Pings) SetSize(w, h int)

func (*Pings) ShortHelp

func (v *Pings) ShortHelp() []key.Binding

func (*Pings) StartFilter

func (v *Pings) StartFilter()

StartFilter implements workspace.Filterable.

func (*Pings) Title

func (v *Pings) Title() string

func (*Pings) Update

func (v *Pings) Update(msg tea.Msg) (workspace.View, tea.Cmd)

func (*Pings) View

func (v *Pings) View() string

type PoolMonitor added in v0.3.0

type PoolMonitor struct {
	// contains filtered or unexported fields
}

PoolMonitor is an interactive, focusable view showing pool health and activity in a right sidebar. The bottom section shows a global activity feed that is independent of the pool list cursor position.

func NewPoolMonitor added in v0.3.0

func NewPoolMonitor(
	styles *tui.Styles,
	statsFn func() []data.PoolStatus,
	apdexFn func() float64,
	eventsFn func(int) []data.PoolEvent,
) *PoolMonitor

NewPoolMonitor creates a pool monitor view.

func (*PoolMonitor) FullHelp added in v0.3.0

func (v *PoolMonitor) FullHelp() [][]key.Binding

func (*PoolMonitor) Init added in v0.3.0

func (v *PoolMonitor) Init() tea.Cmd

func (*PoolMonitor) SetSize added in v0.3.0

func (v *PoolMonitor) SetSize(w, h int)

func (*PoolMonitor) ShortHelp added in v0.3.0

func (v *PoolMonitor) ShortHelp() []key.Binding

func (*PoolMonitor) Title added in v0.3.0

func (v *PoolMonitor) Title() string

func (*PoolMonitor) Update added in v0.3.0

func (v *PoolMonitor) Update(msg tea.Msg) (workspace.View, tea.Cmd)

func (*PoolMonitor) View added in v0.3.0

func (v *PoolMonitor) View() string

type Projects

type Projects struct {
	// contains filtered or unexported fields
}

Projects is the dashboard view showing all projects with an inline dock. When multiple accounts are available, projects are grouped by account with section headers.

The view has two focus phases:

  • Left panel (default): navigate projects with j/k, Enter/l opens inline dock
  • Right panel (inline dock): navigate tools with j/k, Enter opens tool view

func NewProjects

func NewProjects(session *workspace.Session) *Projects

NewProjects creates the projects dashboard view.

func (*Projects) FullHelp

func (v *Projects) FullHelp() [][]key.Binding

FullHelp implements View.

func (*Projects) Init

func (v *Projects) Init() tea.Cmd

Init implements tea.Model.

func (*Projects) InputActive

func (v *Projects) InputActive() bool

InputActive implements workspace.InputCapturer.

func (*Projects) IsModal

func (v *Projects) IsModal() bool

IsModal implements workspace.ModalActive. When the right panel (inline dock) is focused, Esc returns to the project list instead of triggering global back navigation.

func (*Projects) SetSize

func (v *Projects) SetSize(w, h int)

SetSize implements View.

func (*Projects) ShortHelp

func (v *Projects) ShortHelp() []key.Binding

ShortHelp implements View.

func (*Projects) StartFilter

func (v *Projects) StartFilter()

StartFilter implements workspace.Filterable.

func (*Projects) Title

func (v *Projects) Title() string

Title implements View.

func (*Projects) Update

func (v *Projects) Update(msg tea.Msg) (workspace.View, tea.Cmd)

Update implements tea.Model.

func (*Projects) View

func (v *Projects) View() string

View implements tea.Model.

type Pulse

type Pulse struct {
	// contains filtered or unexported fields
}

Pulse shows recent activity across all accounts — a unified timeline of recently updated recordings grouped by time bucket.

func NewPulse

func NewPulse(session *workspace.Session) *Pulse

NewPulse creates the activity pulse view.

func (*Pulse) FocusedItem

func (v *Pulse) FocusedItem() workspace.FocusedItemScope

FocusedItem implements workspace.FocusedRecording.

func (*Pulse) FullHelp

func (v *Pulse) FullHelp() [][]key.Binding

func (*Pulse) Init

func (v *Pulse) Init() tea.Cmd

func (*Pulse) InputActive

func (v *Pulse) InputActive() bool

InputActive implements workspace.InputCapturer.

func (*Pulse) SetSize

func (v *Pulse) SetSize(w, h int)

func (*Pulse) ShortHelp

func (v *Pulse) ShortHelp() []key.Binding

func (*Pulse) StartFilter

func (v *Pulse) StartFilter()

StartFilter implements workspace.Filterable.

func (*Pulse) Title

func (v *Pulse) Title() string

func (*Pulse) Update

func (v *Pulse) Update(msg tea.Msg) (workspace.View, tea.Cmd)

func (*Pulse) View

func (v *Pulse) View() string

type River added in v0.3.0

type River struct {
	// contains filtered or unexported fields
}

River is the multi-campfire river view.

func NewRiver added in v0.3.0

func NewRiver(session *workspace.Session) *River

NewRiver creates a new River view.

func (*River) FullHelp added in v0.3.0

func (r *River) FullHelp() [][]key.Binding

func (*River) Init added in v0.3.0

func (r *River) Init() tea.Cmd

func (*River) InputActive added in v0.3.0

func (r *River) InputActive() bool

InputActive implements workspace.InputCapturer.

func (*River) SetSize added in v0.3.0

func (r *River) SetSize(w, h int)

func (*River) ShortHelp added in v0.3.0

func (r *River) ShortHelp() []key.Binding

func (*River) Title added in v0.3.0

func (r *River) Title() string

func (*River) Update added in v0.3.0

func (r *River) Update(msg tea.Msg) (workspace.View, tea.Cmd)

func (*River) View added in v0.3.0

func (r *River) View() string

type Schedule

type Schedule struct {
	// contains filtered or unexported fields
}

Schedule is the list view for a project's schedule entries.

func NewSchedule

func NewSchedule(session *workspace.Session) *Schedule

NewSchedule creates the schedule view.

func (*Schedule) FullHelp

func (v *Schedule) FullHelp() [][]key.Binding

FullHelp implements View.

func (*Schedule) Init

func (v *Schedule) Init() tea.Cmd

Init implements tea.Model.

func (*Schedule) InputActive

func (v *Schedule) InputActive() bool

InputActive implements workspace.InputCapturer.

func (*Schedule) IsModal

func (v *Schedule) IsModal() bool

IsModal implements workspace.ModalActive.

func (*Schedule) SetSize

func (v *Schedule) SetSize(w, h int)

SetSize implements View.

func (*Schedule) ShortHelp

func (v *Schedule) ShortHelp() []key.Binding

ShortHelp implements View.

func (*Schedule) StartFilter

func (v *Schedule) StartFilter()

StartFilter implements workspace.Filterable.

func (*Schedule) Title

func (v *Schedule) Title() string

Title implements View.

func (*Schedule) Update

func (v *Schedule) Update(msg tea.Msg) (workspace.View, tea.Cmd)

Update implements tea.Model.

func (*Schedule) View

func (v *Schedule) View() string

View implements tea.Model.

type Search struct {
	// contains filtered or unexported fields
}

Search is the full-screen search view with text input and results list. When multiple accounts are available, search fans out across all accounts.

func NewSearch

func NewSearch(session *workspace.Session) *Search

NewSearch creates the search view.

func (*Search) FocusedItem

func (v *Search) FocusedItem() workspace.FocusedItemScope

FocusedItem implements workspace.FocusedRecording.

func (*Search) FullHelp

func (v *Search) FullHelp() [][]key.Binding

FullHelp implements View.

func (*Search) Init

func (v *Search) Init() tea.Cmd

Init implements tea.Model.

func (*Search) InputActive

func (v *Search) InputActive() bool

InputActive implements workspace.InputCapturer. Active only when the text input has focus (not the results list), or the results list is in filter mode.

func (*Search) IsModal

func (v *Search) IsModal() bool

IsModal implements workspace.ModalActive.

func (*Search) SetSize

func (v *Search) SetSize(w, h int)

SetSize implements View.

func (*Search) ShortHelp

func (v *Search) ShortHelp() []key.Binding

ShortHelp implements View.

func (*Search) StartFilter

func (v *Search) StartFilter()

StartFilter implements workspace.Filterable.

func (*Search) Title

func (v *Search) Title() string

Title implements View.

func (*Search) Update

func (v *Search) Update(msg tea.Msg) (workspace.View, tea.Cmd)

Update implements tea.Model.

func (*Search) View

func (v *Search) View() string

View implements tea.Model.

type Timeline

type Timeline struct {
	// contains filtered or unexported fields
}

Timeline is a project-scoped timeline view showing activity events for a single project. Structurally similar to Activity but uses the project-realm pool and project context.

func NewTimeline

func NewTimeline(session *workspace.Session, projectID int64) *Timeline

NewTimeline creates a project-scoped timeline view.

func (*Timeline) FocusedItem

func (v *Timeline) FocusedItem() workspace.FocusedItemScope

FocusedItem implements workspace.FocusedRecording.

func (*Timeline) FullHelp

func (v *Timeline) FullHelp() [][]key.Binding

func (*Timeline) Init

func (v *Timeline) Init() tea.Cmd

func (*Timeline) InputActive

func (v *Timeline) InputActive() bool

InputActive implements workspace.InputCapturer.

func (*Timeline) SetSize

func (v *Timeline) SetSize(w, h int)

func (*Timeline) ShortHelp

func (v *Timeline) ShortHelp() []key.Binding

func (*Timeline) StartFilter

func (v *Timeline) StartFilter()

StartFilter implements workspace.Filterable.

func (*Timeline) Title

func (v *Timeline) Title() string

func (*Timeline) Update

func (v *Timeline) Update(msg tea.Msg) (workspace.View, tea.Cmd)

func (*Timeline) View

func (v *Timeline) View() string

type Todos

type Todos struct {
	// contains filtered or unexported fields
}

Todos is the split-pane view for todolists and their todos.

func NewTodos

func NewTodos(session *workspace.Session) *Todos

NewTodos creates the split-pane todos view.

func (*Todos) FocusedItem

func (v *Todos) FocusedItem() workspace.FocusedItemScope

FocusedItem implements workspace.FocusedRecording.

func (*Todos) FullHelp

func (v *Todos) FullHelp() [][]key.Binding

FullHelp implements View.

func (*Todos) HasSplitPane

func (v *Todos) HasSplitPane() bool

HasSplitPane implements workspace.SplitPaneFocuser.

func (*Todos) Init

func (v *Todos) Init() tea.Cmd

Init implements tea.Model.

func (*Todos) InputActive

func (v *Todos) InputActive() bool

InputActive implements workspace.InputCapturer.

func (*Todos) IsModal

func (v *Todos) IsModal() bool

IsModal implements workspace.ModalActive.

func (*Todos) SetSize

func (v *Todos) SetSize(w, h int)

SetSize implements View.

func (*Todos) ShortHelp

func (v *Todos) ShortHelp() []key.Binding

ShortHelp implements View.

func (*Todos) StartFilter

func (v *Todos) StartFilter()

StartFilter implements workspace.Filterable.

func (*Todos) Title

func (v *Todos) Title() string

Title implements View.

func (*Todos) Update

func (v *Todos) Update(msg tea.Msg) (workspace.View, tea.Cmd)

Update implements tea.Model.

func (*Todos) View

func (v *Todos) View() string

View implements tea.Model.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL