aboutsummaryrefslogtreecommitdiff
path: root/renderer
diff options
context:
space:
mode:
authorr <r@freesoftwareextremist.com>2020-02-18 22:15:37 +0000
committerr <r@freesoftwareextremist.com>2020-02-18 22:15:37 +0000
commitfe31d4197b66cced9ca84779fac4fe69242d844b (patch)
tree775e8e76eddb3e86d4515369b9615d3c3a5bc762 /renderer
parent39a3bb7f3566ca0b7020d10abd5d5815096b49cb (diff)
downloadbloat-fe31d4197b66cced9ca84779fac4fe69242d844b.tar.gz
bloat-fe31d4197b66cced9ca84779fac4fe69242d844b.zip
Add frame based navigation
Diffstat (limited to 'renderer')
-rw-r--r--renderer/model.go46
-rw-r--r--renderer/renderer.go12
2 files changed, 30 insertions, 28 deletions
diff --git a/renderer/model.go b/renderer/model.go
index 842dd71..45d3117 100644
--- a/renderer/model.go
+++ b/renderer/model.go
@@ -14,30 +14,17 @@ type Context struct {
UserID string
}
-type HeaderData struct {
- Title string
- NotificationCount int
- CustomCSS string
- CSRFToken string
-}
-
-type NavbarData struct {
- User *mastodon.Account
- NotificationCount int
+type NavData struct {
+ CommonData *CommonData
+ User *mastodon.Account
+ PostContext model.PostContext
}
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
+ Title string
+ CustomCSS string
+ CSRFToken string
+ AutoRefresh bool
}
type ErrorData struct {
@@ -53,13 +40,16 @@ type SigninData struct {
*CommonData
}
+type RootData struct {
+ Title string
+}
+
type TimelineData struct {
*CommonData
- Title string
- Statuses []*mastodon.Status
- NextLink string
- PrevLink string
- PostContext model.PostContext
+ Title string
+ Statuses []*mastodon.Status
+ NextLink string
+ PrevLink string
}
type ThreadData struct {
@@ -72,8 +62,9 @@ type ThreadData struct {
type NotificationData struct {
*CommonData
Notifications []*mastodon.Notification
+ UnreadCount int
+ ReadID string
NextLink string
- DarkMode bool
}
type UserData struct {
@@ -84,7 +75,6 @@ type UserData struct {
Users []*mastodon.Account
Statuses []*mastodon.Status
NextLink string
- DarkMode bool
}
type UserSearchData struct {
diff --git a/renderer/renderer.go b/renderer/renderer.go
index bd9ccd8..293a6c6 100644
--- a/renderer/renderer.go
+++ b/renderer/renderer.go
@@ -19,6 +19,8 @@ type TemplateData struct {
type Renderer interface {
RenderSigninPage(ctx *Context, writer io.Writer, data *SigninData) (err error)
RenderErrorPage(ctx *Context, writer io.Writer, data *ErrorData)
+ RenderRootPage(ctx *Context, writer io.Writer, data *RootData) (err error)
+ RenderNavPage(ctx *Context, writer io.Writer, data *NavData) (err error)
RenderTimelinePage(ctx *Context, writer io.Writer, data *TimelineData) (err error)
RenderThreadPage(ctx *Context, writer io.Writer, data *ThreadData) (err error)
RenderNotificationPage(ctx *Context, writer io.Writer, data *NotificationData) (err error)
@@ -67,6 +69,16 @@ func (r *renderer) RenderErrorPage(ctx *Context, writer io.Writer,
return
}
+func (r *renderer) RenderNavPage(ctx *Context, writer io.Writer,
+ data *NavData) (err error) {
+ return r.template.ExecuteTemplate(writer, "nav.tmpl", WithContext(data, ctx))
+}
+
+func (r *renderer) RenderRootPage(ctx *Context, writer io.Writer,
+ data *RootData) (err error) {
+ return r.template.ExecuteTemplate(writer, "root.tmpl", WithContext(data, ctx))
+}
+
func (r *renderer) RenderTimelinePage(ctx *Context, writer io.Writer,
data *TimelineData) (err error) {
return r.template.ExecuteTemplate(writer, "timeline.tmpl", WithContext(data, ctx))