Files
ersteller/authentication/login_page.go
T
2025-07-27 18:25:39 +02:00

60 lines
1.2 KiB
Go

package authentication
import (
"github.com/labstack/echo/v4"
"maragu.dev/gomponents"
. "maragu.dev/gomponents/html"
"salezenify/google"
"salezenify/html_components/components"
"salezenify/html_components/route"
"salezenify/layout"
"salezenify/user"
)
const LoginPath = "/login"
type LoginPage struct {
createPage layout.CreatePageFunc
LoginRoute route.GetRoute
}
func NewLoginPage(e *echo.Echo, createPage layout.CreatePageFunc) *LoginPage {
page := &LoginPage{createPage: createPage}
page.LoginRoute = route.NewGetRoute(LoginPath, page.Render).Add(e)
return page
}
func (l *LoginPage) Render(c echo.Context) error {
return l.createPage(c, layout.PageWebsiteMetaData{
WebsiteMetaData: components.WebsiteMetaData{
Title: "Login",
},
HideNavigation: true,
}, l.getLoginPage())
}
func (l *LoginPage) getLoginPage() gomponents.Group {
return []gomponents.Node{
P(
A(
Href(user.OpenIdConnectPath),
Button(
Class(components.ButtonClass()),
Type("button"),
gomponents.Text("Login"),
),
),
),
P(
A(
Href(google.GoogleLogin),
Button(
Class(components.ButtonClass()),
Type("button"),
gomponents.Text("Google Login"),
),
),
),
}
}