diff options
| author | Ed Zynda <[email protected]> | 2025-05-17 16:23:13 +0300 |
|---|---|---|
| committer | GitHub <[email protected]> | 2025-05-17 08:23:13 -0500 |
| commit | 307982a0990f597608258b7de053fbf852d8dee3 (patch) | |
| tree | af22a0953f9c88c0a972e715c27520cd0fbf169e /internal | |
| parent | ba416e787b651ea045ff955eb32c0e7109a169e8 (diff) | |
| download | opencode-307982a0990f597608258b7de053fbf852d8dee3.tar.gz opencode-307982a0990f597608258b7de053fbf852d8dee3.zip | |
feat: Add tool restriction flags for non-interactive mode (#29)
Diffstat (limited to 'internal')
| -rw-r--r-- | internal/tui/components/spinner/spinner.go | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/internal/tui/components/spinner/spinner.go b/internal/tui/components/spinner/spinner.go index 42b98810a..5e1af8771 100644 --- a/internal/tui/components/spinner/spinner.go +++ b/internal/tui/components/spinner/spinner.go @@ -7,6 +7,7 @@ import ( "github.com/charmbracelet/bubbles/spinner" tea "github.com/charmbracelet/bubbletea" + "github.com/charmbracelet/lipgloss" ) // Spinner wraps the bubbles spinner for both interactive and non-interactive mode @@ -80,6 +81,30 @@ func NewSpinner(message string) *Spinner { } } +// NewThemedSpinner creates a new spinner with the given message and color +func NewThemedSpinner(message string, color lipgloss.AdaptiveColor) *Spinner { + s := spinner.New() + s.Spinner = spinner.Dot + s.Style = s.Style.Foreground(color) + + ctx, cancel := context.WithCancel(context.Background()) + + model := spinnerModel{ + spinner: s, + message: message, + } + + prog := tea.NewProgram(model, tea.WithOutput(os.Stderr), tea.WithoutCatchPanics()) + + return &Spinner{ + model: s, + done: make(chan struct{}), + prog: prog, + ctx: ctx, + cancel: cancel, + } +} + // Start begins the spinner animation func (s *Spinner) Start() { go func() { |
