2024-10-20 12:48:58 +00:00
|
|
|
package pages
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"github.com/maddalax/htmgo/framework/h"
|
|
|
|
|
"simpleauth/internal/db"
|
|
|
|
|
"simpleauth/internal/user"
|
|
|
|
|
"simpleauth/partials"
|
|
|
|
|
"simpleauth/ui"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
func IndexPage(ctx *h.RequestContext) *h.Page {
|
|
|
|
|
u, ok := user.GetUserOrRedirect(ctx)
|
|
|
|
|
if !ok {
|
|
|
|
|
return nil
|
|
|
|
|
}
|
|
|
|
|
return h.NewPage(
|
|
|
|
|
RootPage(UserProfilePage(u)),
|
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func UserProfilePage(u db.User) *h.Element {
|
|
|
|
|
|
|
|
|
|
meta := user.ParseMeta(u.Metadata)
|
|
|
|
|
|
|
|
|
|
return h.Div(
|
|
|
|
|
h.Class("flex flex-col gap-6 items-center pt-10 min-h-screen bg-neutral-100"),
|
2024-10-25 15:33:48 +00:00
|
|
|
h.H3F(
|
|
|
|
|
"User Profile",
|
|
|
|
|
h.Class("text-2xl font-bold"),
|
|
|
|
|
),
|
2024-10-20 12:48:58 +00:00
|
|
|
h.Pf("Welcome, %s!", u.Email),
|
|
|
|
|
h.Form(
|
|
|
|
|
h.Attribute("hx-swap", "none"),
|
|
|
|
|
h.PostPartial(partials.UpdateProfile),
|
|
|
|
|
h.TriggerChildren(),
|
|
|
|
|
h.Class("flex flex-col gap-4 w-full max-w-md p-6 bg-white rounded-md shadow-md"),
|
|
|
|
|
ui.Input(ui.InputProps{
|
|
|
|
|
Id: "email",
|
|
|
|
|
Name: "email",
|
|
|
|
|
Label: "Email Address",
|
|
|
|
|
Type: "email",
|
|
|
|
|
DefaultValue: u.Email,
|
|
|
|
|
Children: []h.Ren{
|
|
|
|
|
h.Disabled(),
|
|
|
|
|
},
|
|
|
|
|
}),
|
|
|
|
|
ui.Input(ui.InputProps{
|
|
|
|
|
Name: "birth-date",
|
|
|
|
|
Label: "Birth Date",
|
|
|
|
|
DefaultValue: user.GetMetaKey(meta, "birthDate"),
|
|
|
|
|
Type: "date",
|
|
|
|
|
}),
|
|
|
|
|
ui.Input(ui.InputProps{
|
|
|
|
|
Name: "favorite-color",
|
|
|
|
|
Label: "Favorite Color",
|
|
|
|
|
DefaultValue: user.GetMetaKey(meta, "favoriteColor"),
|
|
|
|
|
}),
|
|
|
|
|
ui.Input(ui.InputProps{
|
|
|
|
|
Name: "occupation",
|
|
|
|
|
Label: "Occupation",
|
|
|
|
|
DefaultValue: user.GetMetaKey(meta, "occupation"),
|
|
|
|
|
}),
|
|
|
|
|
ui.FormError(""),
|
|
|
|
|
ui.SubmitButton("Save Changes"),
|
|
|
|
|
),
|
|
|
|
|
h.A(
|
|
|
|
|
h.Text("Log out"),
|
|
|
|
|
h.Href("/logout"),
|
|
|
|
|
h.Class("text-blue-400"),
|
|
|
|
|
),
|
|
|
|
|
)
|
|
|
|
|
}
|