aboutsummaryrefslogtreecommitdiff
path: root/renderer/model.go
blob: 842dd71db3d88ee518604d7eb267ef333509ab88 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
package renderer

import (
	"bloat/mastodon"
	"bloat/model"
)

type Context struct {
	MaskNSFW       bool
	FluorideMode   bool
	ThreadInNewTab bool
	DarkMode       bool
	CSRFToken      string
	UserID         string
}

type HeaderData struct {
	Title             string
	NotificationCount int
	CustomCSS         string
	CSRFToken         string
}

type NavbarData struct {
	User              *mastodon.Account
	NotificationCount int
}

type CommonData struct {
	HeaderData *HeaderData
	NavbarData *NavbarData
}

func (c CommonData) IsCurrentUser(id string) bool {
	if c.NavbarData != nil &&
		c.NavbarData.User != nil &&
		c.NavbarData.User.ID == id {
		return true
	}
	return false
}

type ErrorData struct {
	*CommonData
	Error string
}

type HomePageData struct {
	*CommonData
}

type SigninData struct {
	*CommonData
}

type TimelineData struct {
	*CommonData
	Title       string
	Statuses    []*mastodon.Status
	NextLink    string
	PrevLink    string
	PostContext model.PostContext
}

type ThreadData struct {
	*CommonData
	Statuses    []*mastodon.Status
	PostContext model.PostContext
	ReplyMap    map[string][]mastodon.ReplyInfo
}

type NotificationData struct {
	*CommonData
	Notifications []*mastodon.Notification
	NextLink      string
	DarkMode      bool
}

type UserData struct {
	*CommonData
	User      *mastodon.Account
	IsCurrent bool
	Type      string
	Users     []*mastodon.Account
	Statuses  []*mastodon.Status
	NextLink  string
	DarkMode  bool
}

type UserSearchData struct {
	*CommonData
	User     *mastodon.Account
	Q        string
	Statuses []*mastodon.Status
	NextLink string
}

type AboutData struct {
	*CommonData
}

type EmojiData struct {
	*CommonData
	Emojis []*mastodon.Emoji
}

type LikedByData struct {
	*CommonData
	Users    []*mastodon.Account
	NextLink string
}

type RetweetedByData struct {
	*CommonData
	Users    []*mastodon.Account
	NextLink string
}

type SearchData struct {
	*CommonData
	Q        string
	Type     string
	Users    []*mastodon.Account
	Statuses []*mastodon.Status
	NextLink string
}

type SettingsData struct {
	*CommonData
	Settings *model.Settings
}