diff --git a/internal/domain/context.go b/internal/domain/context.go new file mode 100644 index 0000000..c61859e --- /dev/null +++ b/internal/domain/context.go @@ -0,0 +1,5 @@ +package domain + +type contextKey string + +var UserNameContext contextKey = "username" \ No newline at end of file diff --git a/internal/handlers/articles.go b/internal/handlers/articles.go index 0643350..89e3cde 100644 --- a/internal/handlers/articles.go +++ b/internal/handlers/articles.go @@ -13,7 +13,7 @@ import ( func (h *Handler) ArticlesList(c echo.Context) error { _, err := ValidateJwt(c, h.config.JwtSecret, h.config.ServerAddress) if err != nil { - return Render(c, http.StatusBadRequest, layout.Error(err)) + return Render(c, http.StatusOK, layout.Error(err)) } userToken, err := c.Cookie(domain.CookieToken) diff --git a/internal/handlers/users.go b/internal/handlers/users.go index 5ce8a34..2571e27 100644 --- a/internal/handlers/users.go +++ b/internal/handlers/users.go @@ -46,4 +46,4 @@ func (h *Handler) UserAfterSignUp(c echo.Context) error { return Render(c, http.StatusBadRequest, users.AfterLogin(msg, false)) } return Render(c, http.StatusOK, users.AfterSignUp("Registration Successful!", true)) -} +} \ No newline at end of file diff --git a/internal/handlers/util.go b/internal/handlers/util.go index e619ef7..91a8aff 100644 --- a/internal/handlers/util.go +++ b/internal/handlers/util.go @@ -1,6 +1,7 @@ package handlers import ( + "context" "errors" "net/http" "time" @@ -68,11 +69,14 @@ func Render(ctx echo.Context, statusCode int, t templ.Component) error { // take the request context and make it a var request := ctx.Request().Context() + //Check to see if we the echo context has the cookie we are looking for, if so, create a new context based on what we had and add the value - //darkMode, err := ctx.Cookie(domain.CookieSettingsDarkMode) - //if err == nil { - // request = context.WithValue(request, domain.CookieSettingsDarkMode, darkMode.Value) - //} + username, err := ctx.Cookie(domain.CookieUser) + if err == nil { + request = context.WithValue(request, domain.UserNameContext, username.Value) + } else { + request = context.WithValue(request, domain.UserNameContext, "") + } return t.Render(request, ctx.Response().Writer) } diff --git a/internal/models/layout.go b/internal/models/layout.go new file mode 100644 index 0000000..efdc03d --- /dev/null +++ b/internal/models/layout.go @@ -0,0 +1,6 @@ +package models + +type LayoutIsLoggedInViewModel struct { + IsLoggedIn bool + Username string +} diff --git a/internal/views/layout/navbar.templ b/internal/views/layout/navbar.templ index f7a29d9..b333da7 100644 --- a/internal/views/layout/navbar.templ +++ b/internal/views/layout/navbar.templ @@ -19,39 +19,24 @@ templ navBar() {