summaryrefslogtreecommitdiffhomepage
path: root/internal
diff options
context:
space:
mode:
authorEd Zynda <[email protected]>2025-05-17 16:23:13 +0300
committerGitHub <[email protected]>2025-05-17 08:23:13 -0500
commit307982a0990f597608258b7de053fbf852d8dee3 (patch)
treeaf22a0953f9c88c0a972e715c27520cd0fbf169e /internal
parentba416e787b651ea045ff955eb32c0e7109a169e8 (diff)
downloadopencode-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.go25
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() {