move issue views to dashboard
This commit is contained in:
@@ -1,67 +0,0 @@
|
|||||||
package issue
|
|
||||||
|
|
||||||
import (
|
|
||||||
"fmt"
|
|
||||||
|
|
||||||
"github.com/charmbracelet/bubbles/viewport"
|
|
||||||
tea "github.com/charmbracelet/bubbletea"
|
|
||||||
)
|
|
||||||
|
|
||||||
type Model struct {
|
|
||||||
Viewport viewport.Model
|
|
||||||
ID string
|
|
||||||
Title string
|
|
||||||
Description string
|
|
||||||
Status string
|
|
||||||
IssueType string
|
|
||||||
Width, Height int
|
|
||||||
ready bool
|
|
||||||
}
|
|
||||||
|
|
||||||
func NewIssueView(issue Model) Model {
|
|
||||||
return Model{
|
|
||||||
ID: issue.ID,
|
|
||||||
Title: issue.Title,
|
|
||||||
Description: issue.Description,
|
|
||||||
Status: issue.Status,
|
|
||||||
IssueType: issue.IssueType,
|
|
||||||
Width: issue.Width,
|
|
||||||
Height: issue.Height,
|
|
||||||
Viewport: viewport.New(issue.Width, issue.Height),
|
|
||||||
ready: false,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m *Model) SetSize(width, height int) {
|
|
||||||
m.Width = width
|
|
||||||
m.Height = height
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m Model) Init() tea.Cmd {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
|
|
||||||
switch msg := msg.(type) {
|
|
||||||
|
|
||||||
case tea.WindowSizeMsg:
|
|
||||||
m.SetSize(msg.Width, msg.Height)
|
|
||||||
m.Viewport.Width = m.Width
|
|
||||||
m.Viewport.Height = m.Height
|
|
||||||
m.ready = true
|
|
||||||
}
|
|
||||||
|
|
||||||
if !m.ready {
|
|
||||||
return m, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
content := fmt.Sprintf("ID: %s\nTitle: %s\nDescription: %s\nStatus: %s\nType: %s",
|
|
||||||
m.ID, m.Title, m.Description, m.Status, m.IssueType)
|
|
||||||
|
|
||||||
m.Viewport.SetContent(content)
|
|
||||||
return m, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m Model) View() string {
|
|
||||||
return fmt.Sprintf("%s", m.Viewport.View())
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user