116 lines
3.0 KiB
Go
116 lines
3.0 KiB
Go
package renderer
|
|
|
|
import (
|
|
"mastodon"
|
|
"web/model"
|
|
)
|
|
|
|
type NavbarTemplateData struct {
|
|
User *mastodon.Account
|
|
NotificationCount int
|
|
}
|
|
|
|
func NewNavbarTemplateData(notificationCount int, user *mastodon.Account) *NavbarTemplateData {
|
|
return &NavbarTemplateData{
|
|
NotificationCount: notificationCount,
|
|
User: user,
|
|
}
|
|
}
|
|
|
|
type TimelinePageTemplateData struct {
|
|
Title string
|
|
Statuses []*mastodon.Status
|
|
HasNext bool
|
|
NextLink string
|
|
HasPrev bool
|
|
PrevLink string
|
|
PostContext model.PostContext
|
|
NavbarData *NavbarTemplateData
|
|
}
|
|
|
|
func NewTimelinePageTemplateData(title string, statuses []*mastodon.Status, hasNext bool, nextLink string, hasPrev bool,
|
|
prevLink string, postContext model.PostContext, navbarData *NavbarTemplateData) *TimelinePageTemplateData {
|
|
return &TimelinePageTemplateData{
|
|
Title: title,
|
|
Statuses: statuses,
|
|
HasNext: hasNext,
|
|
NextLink: nextLink,
|
|
HasPrev: hasPrev,
|
|
PrevLink: prevLink,
|
|
PostContext: postContext,
|
|
NavbarData: navbarData,
|
|
}
|
|
}
|
|
|
|
type ThreadPageTemplateData struct {
|
|
Statuses []*mastodon.Status
|
|
PostContext model.PostContext
|
|
ReplyMap map[string][]mastodon.ReplyInfo
|
|
NavbarData *NavbarTemplateData
|
|
}
|
|
|
|
func NewThreadPageTemplateData(statuses []*mastodon.Status, postContext model.PostContext, replyMap map[string][]mastodon.ReplyInfo, navbarData *NavbarTemplateData) *ThreadPageTemplateData {
|
|
return &ThreadPageTemplateData{
|
|
Statuses: statuses,
|
|
PostContext: postContext,
|
|
ReplyMap: replyMap,
|
|
NavbarData: navbarData,
|
|
}
|
|
}
|
|
|
|
type NotificationPageTemplateData struct {
|
|
Notifications []*mastodon.Notification
|
|
HasNext bool
|
|
NextLink string
|
|
NavbarData *NavbarTemplateData
|
|
}
|
|
|
|
func NewNotificationPageTemplateData(notifications []*mastodon.Notification, hasNext bool, nextLink string, navbarData *NavbarTemplateData) *NotificationPageTemplateData {
|
|
return &NotificationPageTemplateData{
|
|
Notifications: notifications,
|
|
HasNext: hasNext,
|
|
NextLink: nextLink,
|
|
NavbarData: navbarData,
|
|
}
|
|
}
|
|
|
|
type UserPageTemplateData struct {
|
|
User *mastodon.Account
|
|
Statuses []*mastodon.Status
|
|
HasNext bool
|
|
NextLink string
|
|
NavbarData *NavbarTemplateData
|
|
}
|
|
|
|
func NewUserPageTemplateData(user *mastodon.Account, statuses []*mastodon.Status, hasNext bool, nextLink string, navbarData *NavbarTemplateData) *UserPageTemplateData {
|
|
return &UserPageTemplateData{
|
|
User: user,
|
|
Statuses: statuses,
|
|
HasNext: hasNext,
|
|
NextLink: nextLink,
|
|
NavbarData: navbarData,
|
|
}
|
|
}
|
|
|
|
type AboutPageTemplateData struct {
|
|
NavbarData *NavbarTemplateData
|
|
}
|
|
|
|
func NewAboutPageTemplateData(navbarData *NavbarTemplateData) *AboutPageTemplateData {
|
|
return &AboutPageTemplateData{
|
|
NavbarData: navbarData,
|
|
}
|
|
}
|
|
|
|
type EmojiPageTemplateData struct {
|
|
NavbarData *NavbarTemplateData
|
|
Emojis []*mastodon.Emoji
|
|
}
|
|
|
|
func NewEmojiPageTemplateData(navbarData *NavbarTemplateData, emojis []*mastodon.Emoji) *EmojiPageTemplateData {
|
|
return &EmojiPageTemplateData{
|
|
NavbarData: navbarData,
|
|
Emojis: emojis,
|
|
}
|
|
}
|