Add notification support
[bloat] / renderer / model.go
1 package renderer
2
3 import (
4         "mastodon"
5 )
6
7 type NavbarTemplateData struct {
8         NotificationCount int
9 }
10
11 func NewNavbarTemplateData(notificationCount int) *NavbarTemplateData {
12         return &NavbarTemplateData{
13                 NotificationCount: notificationCount,
14         }
15 }
16
17 type TimelinePageTemplateData struct {
18         Statuses   []*mastodon.Status
19         HasNext    bool
20         NextLink   string
21         HasPrev    bool
22         PrevLink   string
23         NavbarData *NavbarTemplateData
24 }
25
26 func NewTimelinePageTemplateData(statuses []*mastodon.Status, hasNext bool, nextLink string, hasPrev bool,
27         prevLink string, navbarData *NavbarTemplateData) *TimelinePageTemplateData {
28         return &TimelinePageTemplateData{
29                 Statuses:   statuses,
30                 HasNext:    hasNext,
31                 NextLink:   nextLink,
32                 HasPrev:    hasPrev,
33                 PrevLink:   prevLink,
34                 NavbarData: navbarData,
35         }
36 }
37
38 type ThreadPageTemplateData struct {
39         Status       *mastodon.Status
40         Context      *mastodon.Context
41         PostReply    bool
42         ReplyToID    string
43         ReplyContent string
44         NavbarData   *NavbarTemplateData
45 }
46
47 func NewThreadPageTemplateData(status *mastodon.Status, context *mastodon.Context, postReply bool, replyToID string, replyContent string, navbarData *NavbarTemplateData) *ThreadPageTemplateData {
48         return &ThreadPageTemplateData{
49                 Status:       status,
50                 Context:      context,
51                 PostReply:    postReply,
52                 ReplyToID:    replyToID,
53                 ReplyContent: replyContent,
54                 NavbarData:   navbarData,
55         }
56 }
57
58 type NotificationPageTemplateData struct {
59         Notifications []*mastodon.Notification
60         HasNext       bool
61         NextLink      string
62         NavbarData    *NavbarTemplateData
63 }
64
65 func NewNotificationPageTemplateData(notifications []*mastodon.Notification, hasNext bool, nextLink string, navbarData *NavbarTemplateData) *NotificationPageTemplateData {
66         return &NotificationPageTemplateData{
67                 Notifications: notifications,
68                 HasNext:       hasNext,
69                 NextLink:      nextLink,
70                 NavbarData:    navbarData,
71         }
72 }