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"), ), ), ), } }