import type { MetaFunction } from "@remix-run/node" import { Link, useLocation } from "@remix-run/react" import { z } from "zod" import { Button } from "~/components/ui/button" import logoPng from "~/images/lume-logo.png?url" import lumeColorLogoPng from "~/images/lume-color-logo.png?url" import discordLogoPng from "~/images/discord-logo.png?url" import lumeBgPng from "~/images/lume-bg-image.png?url" import { Field, FieldCheckbox } from "~/components/forms" import { getFormProps, useForm } from "@conform-to/react" import { getZodConstraint, parseWithZod } from "@conform-to/zod" export const meta: MetaFunction = () => { return [ { title: "Login" }, { name: "description", content: "Welcome to Lume!" } ] } export default function Login() { const location = useLocation() const hash = location.hash return (
Lume logo
Lume background
{hash === "" && } {hash === "#otp" && }
) } const LoginSchema = z.object({ email: z.string().email(), password: z.string(), rememberMe: z.boolean() }) const LoginForm = () => { const [form, fields] = useForm({ id: "login", constraint: getZodConstraint(LoginSchema), onValidate({ formData }) { return parseWithZod(formData, { schema: LoginSchema }) }, shouldValidate: "onSubmit" }) return (

Welcome back! 🎉

Forgot your password?{" "} Reset Password

) } const OtpSchema = z.object({ otp: z.string().length(6, { message: "OTP must be 6 characters" }) }) const OtpForm = () => { // TODO: Add support for resending the OTP const [form, fields] = useForm({ id: "otp", constraint: getZodConstraint(OtpSchema), onValidate({ formData }) { return parseWithZod(formData, { schema: OtpSchema }) }, shouldValidate: "onSubmit" }) const valid = false // TODO: some sort of logic to verify user is on OTP state validly if (!valid) { location.hash = "" return null } return (

Check your inbox

We will need the six digit confirmation code you received in your email in order to verify your account and get started. Didn’t receive a code?{" "}

← Back to Login

) }