This commit is contained in:
Jordi Enric
2024-10-27 12:25:06 +01:00
parent 8a653b0f87
commit a035886eda
4 changed files with 79 additions and 109 deletions
+3 -2
View File
@@ -6,7 +6,8 @@
"typecheck": "tsc --noEmit",
"build": "next build",
"build:web": "next build",
"dev": "next dev -p 8082",
"dev": "concurrently \"next dev -p 8082\" \"npm run stripe:webhook\"",
"stripe:webhook": "stripe listen --forward-to localhost:8082/api/stripe/webhook",
"lint": "next lint",
"start": "next start",
"db:typegen": "npx supabase gen types typescript --local --schema public > src/types/supabase.ts"
@@ -48,7 +49,6 @@
"@t3-oss/env-nextjs": "^0.2.1",
"@tailwindcss/typography": "^0.5.9",
"@tanstack/react-query": "^5.40.0",
"@tanstack/react-query-devtools": "^4.36.1",
"@tippyjs/react": "^4.2.6",
"@tiptap/extension-code-block-lowlight": "^2.1.13",
"@tiptap/extension-heading": "^2.0.3",
@@ -133,6 +133,7 @@
"@typescript-eslint/eslint-plugin": "^5.56.0",
"@typescript-eslint/parser": "^5.56.0",
"autoprefixer": "^10.4.14",
"concurrently": "^9.0.1",
"eslint": "^8.36.0",
"eslint-config-next": "^13.4.1",
"postcss": "^8.4.21",
+31 -25
View File
@@ -80,38 +80,44 @@ export default function SignIn() {
return (
<div className="mx-auto my-32 flex max-w-sm flex-col gap-4 px-4">
<div>
<Link className="text-zinc-400" href="/">
<Link title="Back to home" className="text-zinc-400" href="/">
<CornerUpLeft size={18} />
</Link>
</div>
{loading && (
{loading ? (
<div className="flex h-[600px] items-center justify-center">
<Loader className="animate-spin text-orange-500" size={24} />
</div>
) : (
<form className="mt-4 flex flex-col gap-2" onSubmit={onSubmit}>
<h1 className="text-2xl font-medium">Sign in</h1>
<p className="text-slate-500">
Don&apos;t have an account?{" "}
<Link className="text-slate-800 underline" href="/sign-up">
Sign up
</Link>
</p>
<div className="mt-4">
<Label htmlFor="email">Email</Label>
<Input required type="email" name="email" />
</div>
<div>
<Label
htmlFor="password"
className="flex items-center justify-between gap-2 py-2"
>
Password
<Link className="text-zinc-500" href="/reset-password">
Forgot your password?
</Link>
</Label>
<Input required type="password" name="password" />
</div>
<div className="mt-2 flex flex-col">
<Button type="submit">Sign in</Button>
</div>
</form>
)}
<form className="mt-4 flex flex-col gap-2" onSubmit={onSubmit}>
<h1 className="text-2xl font-medium">Sign in with Password</h1>
<div className="mt-4">
<Label htmlFor="email">Email</Label>
<Input required type="email" name="email" />
</div>
<div>
<Label htmlFor="password">Password</Label>
<Input required type="password" name="password" />
</div>
<div className="mt-2 flex flex-col">
<Button type="submit">Sign in</Button>
</div>
</form>
<div className="grid gap-4">
<Link className="text-zinc-500" href="/reset-password">
Forgot your password?
</Link>
<Link className="text-zinc-500" href="/sign-up">
Don&apos;t have an account?
</Link>
</div>
</div>
);
}
+43 -81
View File
@@ -20,7 +20,8 @@
"sugar-high": "^0.6.1",
"tsx": "^4.7.1",
"web": "^0.1.0",
"zenblog": "^0.2.1"
"zenblog": "^0.2.1",
"zod": "^3.23.8"
},
"devDependencies": {
"@turbo/gen": "^1.9.7",
@@ -179,7 +180,6 @@
"@t3-oss/env-nextjs": "^0.2.1",
"@tailwindcss/typography": "^0.5.9",
"@tanstack/react-query": "^5.40.0",
"@tanstack/react-query-devtools": "^4.36.1",
"@tippyjs/react": "^4.2.6",
"@tiptap/extension-code-block-lowlight": "^2.1.13",
"@tiptap/extension-heading": "^2.0.3",
@@ -264,6 +264,7 @@
"@typescript-eslint/eslint-plugin": "^5.56.0",
"@typescript-eslint/parser": "^5.56.0",
"autoprefixer": "^10.4.14",
"concurrently": "^9.0.1",
"eslint": "^8.36.0",
"eslint-config-next": "^13.4.1",
"postcss": "^8.4.21",
@@ -751,6 +752,31 @@
"node": ">= 0.8"
}
},
"apps/web/node_modules/concurrently": {
"version": "9.0.1",
"resolved": "https://registry.npmjs.org/concurrently/-/concurrently-9.0.1.tgz",
"integrity": "sha512-wYKvCd/f54sTXJMSfV6Ln/B8UrfLBKOYa+lzc6CHay3Qek+LorVSBdMVfyewFhRbH0Rbabsk4D+3PL/VjQ5gzg==",
"dev": true,
"dependencies": {
"chalk": "^4.1.2",
"lodash": "^4.17.21",
"rxjs": "^7.8.1",
"shell-quote": "^1.8.1",
"supports-color": "^8.1.1",
"tree-kill": "^1.2.2",
"yargs": "^17.7.2"
},
"bin": {
"conc": "dist/bin/concurrently.js",
"concurrently": "dist/bin/concurrently.js"
},
"engines": {
"node": ">=18"
},
"funding": {
"url": "https://github.com/open-cli-tools/concurrently?sponsor=1"
}
},
"apps/web/node_modules/depd": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
@@ -889,6 +915,21 @@
"node": ">= 0.8"
}
},
"apps/web/node_modules/supports-color": {
"version": "8.1.1",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
"integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
"dev": true,
"dependencies": {
"has-flag": "^4.0.0"
},
"engines": {
"node": ">=10"
},
"funding": {
"url": "https://github.com/chalk/supports-color?sponsor=1"
}
},
"apps/web/node_modules/toidentifier": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
@@ -897,14 +938,6 @@
"node": ">=0.6"
}
},
"apps/web/node_modules/zod": {
"version": "3.22.5",
"resolved": "https://registry.npmjs.org/zod/-/zod-3.22.5.tgz",
"integrity": "sha512-HqnGsCdVZ2xc0qWPLdO25WnseXThh0kEYKIdV5F/hTHO75hNZFp8thxSeHhiPrHZKrFTo1SOgkAj9po5bexZlw==",
"funding": {
"url": "https://github.com/sponsors/colinhacks"
}
},
"apps/website": {
"name": "@zendo/website",
"version": "0.1.0",
@@ -8289,77 +8322,6 @@
"tailwindcss": ">=3.0.0 || insiders"
}
},
"node_modules/@tanstack/match-sorter-utils": {
"version": "8.8.4",
"resolved": "https://registry.npmjs.org/@tanstack/match-sorter-utils/-/match-sorter-utils-8.8.4.tgz",
"integrity": "sha512-rKH8LjZiszWEvmi01NR72QWZ8m4xmXre0OOwlRGnjU01Eqz/QnN+cqpty2PJ0efHblq09+KilvyR7lsbzmXVEw==",
"dependencies": {
"remove-accents": "0.4.2"
},
"engines": {
"node": ">=12"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/kentcdodds"
}
},
"node_modules/@tanstack/query-core": {
"version": "4.36.1",
"resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-4.36.1.tgz",
"integrity": "sha512-DJSilV5+ytBP1FbFcEJovv4rnnm/CokuVvrBEtW/Va9DvuJ3HksbXUJEpI0aV1KtuL4ZoO9AVE6PyNLzF7tLeA==",
"peer": true,
"funding": {
"type": "github",
"url": "https://github.com/sponsors/tannerlinsley"
}
},
"node_modules/@tanstack/react-query": {
"version": "4.36.1",
"resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-4.36.1.tgz",
"integrity": "sha512-y7ySVHFyyQblPl3J3eQBWpXZkliroki3ARnBKsdJchlgt7yJLRDUcf4B8soufgiYt3pEQIkBWBx1N9/ZPIeUWw==",
"peer": true,
"dependencies": {
"@tanstack/query-core": "4.36.1",
"use-sync-external-store": "^1.2.0"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/tannerlinsley"
},
"peerDependencies": {
"react": "^16.8.0 || ^17.0.0 || ^18.0.0",
"react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0",
"react-native": "*"
},
"peerDependenciesMeta": {
"react-dom": {
"optional": true
},
"react-native": {
"optional": true
}
}
},
"node_modules/@tanstack/react-query-devtools": {
"version": "4.36.1",
"resolved": "https://registry.npmjs.org/@tanstack/react-query-devtools/-/react-query-devtools-4.36.1.tgz",
"integrity": "sha512-WYku83CKP3OevnYSG8Y/QO9g0rT75v1om5IvcWUwiUZJ4LanYGLVCZ8TdFG5jfsq4Ej/lu2wwDAULEUnRIMBSw==",
"dependencies": {
"@tanstack/match-sorter-utils": "^8.7.0",
"superjson": "^1.10.0",
"use-sync-external-store": "^1.2.0"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/tannerlinsley"
},
"peerDependencies": {
"@tanstack/react-query": "^4.36.1",
"react": "^16.8.0 || ^17.0.0 || ^18.0.0",
"react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
}
},
"node_modules/@tanstack/react-virtual": {
"version": "3.8.3",
"resolved": "https://registry.npmjs.org/@tanstack/react-virtual/-/react-virtual-3.8.3.tgz",
+2 -1
View File
@@ -48,7 +48,8 @@
"sugar-high": "^0.6.1",
"tsx": "^4.7.1",
"web": "^0.1.0",
"zenblog": "^0.2.1"
"zenblog": "^0.2.1",
"zod": "^3.23.8"
},
"engines": {
"node": ">=18.0.0",