1package common
 2
 3import (
 4	"errors"
 5
 6	"github.com/charmbracelet/lipgloss"
 7	"github.com/charmbracelet/soft-serve/internal/tui/style"
 8)
 9
10var (
11	ErrDiffTooLong      = errors.New("diff is too long")
12	ErrDiffFilesTooLong = errors.New("diff files are too long")
13	ErrBinaryFile       = errors.New("binary file")
14	ErrFileTooLarge     = errors.New("file is too large")
15	ErrInvalidFile      = errors.New("invalid file")
16)
17
18type ErrMsg struct {
19	Err error
20}
21
22func (e ErrMsg) Error() string {
23	return e.Err.Error()
24}
25
26func (e ErrMsg) View(s *style.Styles) string {
27	return e.ViewWithPrefix(s, "")
28}
29
30func (e ErrMsg) ViewWithPrefix(s *style.Styles, prefix string) string {
31	return lipgloss.JoinHorizontal(
32		lipgloss.Top,
33		s.ErrorTitle.Render(prefix),
34		s.ErrorBody.Render(e.Error()),
35	)
36}