diff options
| author | Dax Raad <[email protected]> | 2025-05-30 20:47:56 -0400 |
|---|---|---|
| committer | Dax Raad <[email protected]> | 2025-05-30 20:48:36 -0400 |
| commit | f3da73553c45f17e04b1e77cb13eb0fca714d1bd (patch) | |
| tree | a24317a19e1ab2a89da50db669dc6894f15d00d1 /internal/tui/components/qr | |
| parent | 9a26b3058ffc1023e5c7e54b6d571c903d15888e (diff) | |
| download | opencode-f3da73553c45f17e04b1e77cb13eb0fca714d1bd.tar.gz opencode-f3da73553c45f17e04b1e77cb13eb0fca714d1bd.zip | |
sync
Diffstat (limited to 'internal/tui/components/qr')
| -rw-r--r-- | internal/tui/components/qr/qr.go | 58 |
1 files changed, 0 insertions, 58 deletions
diff --git a/internal/tui/components/qr/qr.go b/internal/tui/components/qr/qr.go deleted file mode 100644 index 42a60bb5e..000000000 --- a/internal/tui/components/qr/qr.go +++ /dev/null @@ -1,58 +0,0 @@ -package qr - -import ( - "strings" - - "github.com/charmbracelet/lipgloss" - "github.com/sst/opencode/internal/tui/theme" - "rsc.io/qr" -) - -var tops_bottoms = []rune{' ', '▀', '▄', '█'} - -// Generate a text string to a QR code, which you can write to a terminal or file. -func Generate(text string) (string, int, error) { - code, err := qr.Encode(text, qr.Level(0)) - if err != nil { - return "", 0, err - } - - t := theme.CurrentTheme() - if t == nil { - return "", 0, err - } - - // Create lipgloss style for QR code with theme colors - qrStyle := lipgloss.NewStyle(). - Foreground(t.Text()). - Background(t.Background()) - - var result strings.Builder - - // content - for y := 0; y < code.Size-1; y += 2 { - var line strings.Builder - for x := 0; x < code.Size; x += 1 { - var num int8 - if code.Black(x, y) { - num += 1 - } - if code.Black(x, y+1) { - num += 2 - } - line.WriteRune(tops_bottoms[num]) - } - result.WriteString(qrStyle.Render(line.String()) + "\n") - } - - // add lower border when required (only required when QR size is odd) - if code.Size%2 == 1 { - var borderLine strings.Builder - for range code.Size { - borderLine.WriteRune('▀') - } - result.WriteString(qrStyle.Render(borderLine.String()) + "\n") - } - - return result.String(), code.Size, nil -} |
