From fe31d4197b66cced9ca84779fac4fe69242d844b Mon Sep 17 00:00:00 2001 From: r Date: Tue, 18 Feb 2020 22:15:37 +0000 Subject: Add frame based navigation --- renderer/model.go | 46 ++++++++++++++++++---------------------------- renderer/renderer.go | 12 ++++++++++++ 2 files changed, 30 insertions(+), 28 deletions(-) (limited to 'renderer') 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)) -- cgit v1.2.3