42 lines
899 B
Go
42 lines
899 B
Go
package screens
|
|
|
|
import (
|
|
tea "github.com/charmbracelet/bubbletea"
|
|
)
|
|
|
|
// TransitionType defines the type of transition animation
|
|
type TransitionType int
|
|
|
|
const (
|
|
TransitionNone TransitionType = iota
|
|
TransitionFade
|
|
TransitionSlideLeft
|
|
TransitionSlideRight
|
|
)
|
|
|
|
// Screen represents a UI screen (list, add, detail, etc.)
|
|
type Screen interface {
|
|
Init() tea.Cmd
|
|
Update(tea.Msg) (Screen, tea.Cmd)
|
|
View() string
|
|
}
|
|
|
|
// ClientSelectedMsg is sent when a client is selected from the list
|
|
type ClientSelectedMsg struct {
|
|
Client ClientWithStatus
|
|
}
|
|
|
|
// ClientDeletedMsg is sent when a client is successfully deleted
|
|
type ClientDeletedMsg struct {
|
|
Name string
|
|
}
|
|
|
|
// CloseDetailScreenMsg signals to close detail screen
|
|
type CloseDetailScreenMsg struct{}
|
|
|
|
// RestoreCompletedMsg is sent when a restore operation completes
|
|
type RestoreCompletedMsg struct {
|
|
Err error
|
|
SafetyBackupPath string
|
|
}
|