package ui import ( "github.com/ryanhamamura/via/h" ) func LobbyView(nicknameBind, createGameKeyDown, createGameClick h.H, isLoggedIn bool, username string, logoutClick h.H, userGames []GameListItem, deleteGameClick func(id string) h.H) h.H { var authSection h.H if isLoggedIn { authSection = AuthHeader(username, logoutClick) } else { authSection = GuestBanner() } return h.Main(h.Class("max-w-sm mx-auto mt-8 text-center"), authSection, h.H1(h.Class("text-3xl font-bold"), h.Text("Connect 4")), h.P(h.Class("mb-4"), h.Text("Challenge a friend to a game of Connect 4!")), h.Form( h.FieldSet(h.Class("fieldset"), h.Label(h.Class("label"), h.Text("Your Nickname"), h.Attr("for", "nickname")), h.Input( h.Class("input input-bordered w-full"), h.ID("nickname"), h.Type("text"), h.Placeholder("Enter your nickname"), nicknameBind, h.Attr("required"), createGameKeyDown, ), ), h.Button( h.Class("btn btn-primary w-full"), h.Type("button"), h.Text("Create Game"), createGameClick, ), ), GameList(userGames, deleteGameClick), ) } func NicknamePrompt(nicknameBind, setNicknameKeyDown, setNicknameClick h.H) h.H { return h.Main(h.Class("max-w-sm mx-auto mt-8 text-center"), h.H1(h.Class("text-3xl font-bold"), h.Text("Join Game")), h.P(h.Class("mb-4"), h.Text("Enter your nickname to join the game.")), h.Form( h.FieldSet(h.Class("fieldset"), h.Label(h.Class("label"), h.Text("Your Nickname"), h.Attr("for", "nickname")), h.Input( h.Class("input input-bordered w-full"), h.ID("nickname"), h.Type("text"), h.Placeholder("Enter your nickname"), nicknameBind, h.Attr("required"), h.Attr("autofocus"), setNicknameKeyDown, ), ), h.Button( h.Class("btn btn-primary w-full"), h.Type("button"), h.Text("Join"), setNicknameClick, ), ), ) } func GameJoinPrompt(loginClick, guestClick, registerClick h.H) h.H { return h.Main(h.Class("max-w-sm mx-auto mt-8 text-center"), h.H1(h.Class("text-3xl font-bold"), h.Text("Join Game")), h.P(h.Class("mb-4"), h.Text("Log in to track your game history, or continue as a guest.")), h.Div(h.Class("flex flex-col gap-2 my-4"), h.Button( h.Class("btn btn-primary w-full"), h.Type("button"), h.Text("Login"), loginClick, ), h.Button( h.Class("btn btn-secondary w-full"), h.Type("button"), h.Text("Continue as Guest"), guestClick, ), ), h.P(h.Class("text-sm opacity-60"), h.Text("Don't have an account? "), h.A(h.Class("link"), h.Href("#"), h.Text("Register"), registerClick), ), ) }