Files
2024-05-05 19:54:18 +02:00

65 lines
1.2 KiB
Go

package auth
import (
"github.com/badoux/checkmail"
huh "github.com/charmbracelet/huh"
)
type Model struct {
LoginForm *huh.Form
RegisterForm *huh.Form
Jwt *string
}
func getLoginForm() *huh.Form {
return huh.NewForm(
huh.NewGroup(
huh.NewInput().
Title("Email").
Key("email").Validate(
func(s string) error {
err := checkmail.ValidateFormat(s)
if err != nil {
return err
}
return nil
}),
huh.NewInput().
Title("Password").
Key("password").
Password(true),
)).WithWidth(40)
}
func getRegisterForm() *huh.Form {
return huh.NewForm(
huh.NewGroup(
huh.NewInput().
Title("Email").
Key("email").Validate(
func(s string) error {
err := checkmail.ValidateFormat(s)
if err != nil {
return err
}
return nil
}),
huh.NewInput().
Title("Username").
Key("username"),
huh.NewInput().
Title("Password").
Key("password").
Password(true),
huh.NewInput().
Title("Repeat Password").
Key("password_repeat").
Password(true),
)).WithWidth(40)
}
func New() Model {
return Model{RegisterForm: getRegisterForm(), LoginForm: getLoginForm(), Jwt: new(string)}
}