First test

This commit is contained in:
Gabriel Brown 2025-05-13 11:15:32 -05:00
parent eeffb93ab9
commit a542098717
3 changed files with 67 additions and 71 deletions

View File

@ -25,29 +25,29 @@
"class-variance-authority": "^0.7.1", "class-variance-authority": "^0.7.1",
"clsx": "^2.1.1", "clsx": "^2.1.1",
"lucide-react": "^0.510.0", "lucide-react": "^0.510.0",
"next": "^15.2.3", "next": "^15.3.2",
"next-themes": "^0.4.6", "next-themes": "^0.4.6",
"react": "^19.0.0", "react": "^19.1.0",
"react-dom": "^19.0.0", "react-dom": "^19.1.0",
"zod": "^3.24.2" "zod": "^3.24.4"
}, },
"devDependencies": { "devDependencies": {
"@eslint/eslintrc": "^3.3.1", "@eslint/eslintrc": "^3.3.1",
"@tailwindcss/postcss": "^4.0.15", "@tailwindcss/postcss": "^4.1.6",
"@types/node": "^20.14.10", "@types/node": "^20.17.46",
"@types/react": "^19.0.0", "@types/react": "^19.1.4",
"@types/react-dom": "^19.0.0", "@types/react-dom": "^19.1.5",
"eslint": "^9.23.0", "eslint": "^9.26.0",
"eslint-config-next": "^15.2.3", "eslint-config-next": "^15.3.2",
"postcss": "^8.5.3", "postcss": "^8.5.3",
"prettier": "^3.5.3", "prettier": "^3.5.3",
"prettier-plugin-tailwindcss": "^0.6.11", "prettier-plugin-tailwindcss": "^0.6.11",
"tailwind-merge": "^3.3.0", "tailwind-merge": "^3.3.0",
"tailwindcss": "^4.0.15", "tailwindcss": "^4.1.6",
"tailwindcss-animate": "^1.0.7", "tailwindcss-animate": "^1.0.7",
"tw-animate-css": "^1.2.9", "tw-animate-css": "^1.2.9",
"typescript": "^5.8.2", "typescript": "^5.8.3",
"typescript-eslint": "^8.27.0" "typescript-eslint": "^8.32.1"
}, },
"ct3aMetadata": { "ct3aMetadata": {
"initVersion": "7.39.3" "initVersion": "7.39.3"

76
pnpm-lock.yaml generated
View File

@ -10,10 +10,10 @@ importers:
dependencies: dependencies:
'@radix-ui/react-checkbox': '@radix-ui/react-checkbox':
specifier: ^1.3.1 specifier: ^1.3.1
version: 1.3.1(@types/react-dom@19.1.4(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) version: 1.3.1(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-label': '@radix-ui/react-label':
specifier: ^2.1.6 specifier: ^2.1.6
version: 2.1.6(@types/react-dom@19.1.4(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) version: 2.1.6(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-slot': '@radix-ui/react-slot':
specifier: ^1.2.2 specifier: ^1.2.2
version: 1.2.2(@types/react@19.1.4)(react@19.1.0) version: 1.2.2(@types/react@19.1.4)(react@19.1.0)
@ -36,41 +36,41 @@ importers:
specifier: ^0.510.0 specifier: ^0.510.0
version: 0.510.0(react@19.1.0) version: 0.510.0(react@19.1.0)
next: next:
specifier: ^15.2.3 specifier: ^15.3.2
version: 15.3.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) version: 15.3.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
next-themes: next-themes:
specifier: ^0.4.6 specifier: ^0.4.6
version: 0.4.6(react-dom@19.1.0(react@19.1.0))(react@19.1.0) version: 0.4.6(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
react: react:
specifier: ^19.0.0 specifier: ^19.1.0
version: 19.1.0 version: 19.1.0
react-dom: react-dom:
specifier: ^19.0.0 specifier: ^19.1.0
version: 19.1.0(react@19.1.0) version: 19.1.0(react@19.1.0)
zod: zod:
specifier: ^3.24.2 specifier: ^3.24.4
version: 3.24.4 version: 3.24.4
devDependencies: devDependencies:
'@eslint/eslintrc': '@eslint/eslintrc':
specifier: ^3.3.1 specifier: ^3.3.1
version: 3.3.1 version: 3.3.1
'@tailwindcss/postcss': '@tailwindcss/postcss':
specifier: ^4.0.15 specifier: ^4.1.6
version: 4.1.6 version: 4.1.6
'@types/node': '@types/node':
specifier: ^20.14.10 specifier: ^20.17.46
version: 20.17.46 version: 20.17.46
'@types/react': '@types/react':
specifier: ^19.0.0 specifier: ^19.1.4
version: 19.1.4 version: 19.1.4
'@types/react-dom': '@types/react-dom':
specifier: ^19.0.0 specifier: ^19.1.5
version: 19.1.4(@types/react@19.1.4) version: 19.1.5(@types/react@19.1.4)
eslint: eslint:
specifier: ^9.23.0 specifier: ^9.26.0
version: 9.26.0(jiti@2.4.2) version: 9.26.0(jiti@2.4.2)
eslint-config-next: eslint-config-next:
specifier: ^15.2.3 specifier: ^15.3.2
version: 15.3.2(eslint@9.26.0(jiti@2.4.2))(typescript@5.8.3) version: 15.3.2(eslint@9.26.0(jiti@2.4.2))(typescript@5.8.3)
postcss: postcss:
specifier: ^8.5.3 specifier: ^8.5.3
@ -85,7 +85,7 @@ importers:
specifier: ^3.3.0 specifier: ^3.3.0
version: 3.3.0 version: 3.3.0
tailwindcss: tailwindcss:
specifier: ^4.0.15 specifier: ^4.1.6
version: 4.1.6 version: 4.1.6
tailwindcss-animate: tailwindcss-animate:
specifier: ^1.0.7 specifier: ^1.0.7
@ -94,10 +94,10 @@ importers:
specifier: ^1.2.9 specifier: ^1.2.9
version: 1.2.9 version: 1.2.9
typescript: typescript:
specifier: ^5.8.2 specifier: ^5.8.3
version: 5.8.3 version: 5.8.3
typescript-eslint: typescript-eslint:
specifier: ^8.27.0 specifier: ^8.32.1
version: 8.32.1(eslint@9.26.0(jiti@2.4.2))(typescript@5.8.3) version: 8.32.1(eslint@9.26.0(jiti@2.4.2))(typescript@5.8.3)
packages: packages:
@ -686,8 +686,8 @@ packages:
'@types/phoenix@1.6.6': '@types/phoenix@1.6.6':
resolution: {integrity: sha512-PIzZZlEppgrpoT2QgbnDU+MMzuR6BbCjllj0bM70lWoejMeNJAxCchxnv7J3XFkI8MpygtRpzXrIlmWUBclP5A==} resolution: {integrity: sha512-PIzZZlEppgrpoT2QgbnDU+MMzuR6BbCjllj0bM70lWoejMeNJAxCchxnv7J3XFkI8MpygtRpzXrIlmWUBclP5A==}
'@types/react-dom@19.1.4': '@types/react-dom@19.1.5':
resolution: {integrity: sha512-WxYAszDYgsMV31OVyoG4jbAgJI1Gw0Xq9V19zwhy6+hUUJlJIdZ3r/cbdmTqFv++SktQkZ/X+46yGFxp5XJBEg==} resolution: {integrity: sha512-CMCjrWucUBZvohgZxkjd6S9h0nZxXjzus6yDfUb+xLxYM7VvjKNH1tQrE9GWLql1XoOP4/Ds3bwFqShHUYraGg==}
peerDependencies: peerDependencies:
'@types/react': ^19.0.0 '@types/react': ^19.0.0
@ -949,8 +949,8 @@ packages:
resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
engines: {node: '>=6'} engines: {node: '>=6'}
caniuse-lite@1.0.30001717: caniuse-lite@1.0.30001718:
resolution: {integrity: sha512-auPpttCq6BDEG8ZAuHJIplGw6GODhjw+/11e7IjpnYCxZcW/ONgPs0KVBJ0d1bY3e2+7PRe5RCLyP+PfwVgkYw==} resolution: {integrity: sha512-AflseV1ahcSunK53NfEs9gFWgOEmzr0f+kaMFA4xiLZlr9Hzt7HxcSpIFcnNCUkz6R6dWKa54rUz3HUmI3nVcw==}
chalk@4.1.2: chalk@4.1.2:
resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
@ -1743,8 +1743,8 @@ packages:
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
hasBin: true hasBin: true
napi-postinstall@0.2.3: napi-postinstall@0.2.4:
resolution: {integrity: sha512-Mi7JISo/4Ij2tDZ2xBE2WH+/KvVlkhA6juEjpEeRAVPNCpN3nxJo/5FhDNKgBcdmcmhaH6JjgST4xY/23ZYK0w==} resolution: {integrity: sha512-ZEzHJwBhZ8qQSbknHqYcdtQVr8zUgGyM/q6h6qAyhtyVMNrSgDhrC4disf03dYW0e+czXyLnZINnCTEkWy0eJg==}
engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0}
hasBin: true hasBin: true
@ -2592,13 +2592,13 @@ snapshots:
'@radix-ui/primitive@1.1.2': {} '@radix-ui/primitive@1.1.2': {}
'@radix-ui/react-checkbox@1.3.1(@types/react-dom@19.1.4(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': '@radix-ui/react-checkbox@1.3.1(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
dependencies: dependencies:
'@radix-ui/primitive': 1.1.2 '@radix-ui/primitive': 1.1.2
'@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.4)(react@19.1.0) '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.4)(react@19.1.0)
'@radix-ui/react-context': 1.1.2(@types/react@19.1.4)(react@19.1.0) '@radix-ui/react-context': 1.1.2(@types/react@19.1.4)(react@19.1.0)
'@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.4(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.4(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.4)(react@19.1.0) '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.4)(react@19.1.0)
'@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.4)(react@19.1.0) '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.4)(react@19.1.0)
'@radix-ui/react-use-size': 1.1.1(@types/react@19.1.4)(react@19.1.0) '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.4)(react@19.1.0)
@ -2606,7 +2606,7 @@ snapshots:
react-dom: 19.1.0(react@19.1.0) react-dom: 19.1.0(react@19.1.0)
optionalDependencies: optionalDependencies:
'@types/react': 19.1.4 '@types/react': 19.1.4
'@types/react-dom': 19.1.4(@types/react@19.1.4) '@types/react-dom': 19.1.5(@types/react@19.1.4)
'@radix-ui/react-compose-refs@1.1.2(@types/react@19.1.4)(react@19.1.0)': '@radix-ui/react-compose-refs@1.1.2(@types/react@19.1.4)(react@19.1.0)':
dependencies: dependencies:
@ -2620,16 +2620,16 @@ snapshots:
optionalDependencies: optionalDependencies:
'@types/react': 19.1.4 '@types/react': 19.1.4
'@radix-ui/react-label@2.1.6(@types/react-dom@19.1.4(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': '@radix-ui/react-label@2.1.6(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
dependencies: dependencies:
'@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.4(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
react: 19.1.0 react: 19.1.0
react-dom: 19.1.0(react@19.1.0) react-dom: 19.1.0(react@19.1.0)
optionalDependencies: optionalDependencies:
'@types/react': 19.1.4 '@types/react': 19.1.4
'@types/react-dom': 19.1.4(@types/react@19.1.4) '@types/react-dom': 19.1.5(@types/react@19.1.4)
'@radix-ui/react-presence@1.1.4(@types/react-dom@19.1.4(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': '@radix-ui/react-presence@1.1.4(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
dependencies: dependencies:
'@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.4)(react@19.1.0) '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.4)(react@19.1.0)
'@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.4)(react@19.1.0) '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.4)(react@19.1.0)
@ -2637,16 +2637,16 @@ snapshots:
react-dom: 19.1.0(react@19.1.0) react-dom: 19.1.0(react@19.1.0)
optionalDependencies: optionalDependencies:
'@types/react': 19.1.4 '@types/react': 19.1.4
'@types/react-dom': 19.1.4(@types/react@19.1.4) '@types/react-dom': 19.1.5(@types/react@19.1.4)
'@radix-ui/react-primitive@2.1.2(@types/react-dom@19.1.4(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': '@radix-ui/react-primitive@2.1.2(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
dependencies: dependencies:
'@radix-ui/react-slot': 1.2.2(@types/react@19.1.4)(react@19.1.0) '@radix-ui/react-slot': 1.2.2(@types/react@19.1.4)(react@19.1.0)
react: 19.1.0 react: 19.1.0
react-dom: 19.1.0(react@19.1.0) react-dom: 19.1.0(react@19.1.0)
optionalDependencies: optionalDependencies:
'@types/react': 19.1.4 '@types/react': 19.1.4
'@types/react-dom': 19.1.4(@types/react@19.1.4) '@types/react-dom': 19.1.5(@types/react@19.1.4)
'@radix-ui/react-slot@1.2.2(@types/react@19.1.4)(react@19.1.0)': '@radix-ui/react-slot@1.2.2(@types/react@19.1.4)(react@19.1.0)':
dependencies: dependencies:
@ -2847,7 +2847,7 @@ snapshots:
'@types/phoenix@1.6.6': {} '@types/phoenix@1.6.6': {}
'@types/react-dom@19.1.4(@types/react@19.1.4)': '@types/react-dom@19.1.5(@types/react@19.1.4)':
dependencies: dependencies:
'@types/react': 19.1.4 '@types/react': 19.1.4
@ -3146,7 +3146,7 @@ snapshots:
callsites@3.1.0: {} callsites@3.1.0: {}
caniuse-lite@1.0.30001717: {} caniuse-lite@1.0.30001718: {}
chalk@4.1.2: chalk@4.1.2:
dependencies: dependencies:
@ -4077,7 +4077,7 @@ snapshots:
nanoid@3.3.11: {} nanoid@3.3.11: {}
napi-postinstall@0.2.3: {} napi-postinstall@0.2.4: {}
natural-compare@1.4.0: {} natural-compare@1.4.0: {}
@ -4094,7 +4094,7 @@ snapshots:
'@swc/counter': 0.1.3 '@swc/counter': 0.1.3
'@swc/helpers': 0.5.15 '@swc/helpers': 0.5.15
busboy: 1.6.0 busboy: 1.6.0
caniuse-lite: 1.0.30001717 caniuse-lite: 1.0.30001718
postcss: 8.4.31 postcss: 8.4.31
react: 19.1.0 react: 19.1.0
react-dom: 19.1.0(react@19.1.0) react-dom: 19.1.0(react@19.1.0)
@ -4652,7 +4652,7 @@ snapshots:
unrs-resolver@1.7.2: unrs-resolver@1.7.2:
dependencies: dependencies:
napi-postinstall: 0.2.3 napi-postinstall: 0.2.4
optionalDependencies: optionalDependencies:
'@unrs/resolver-binding-darwin-arm64': 1.7.2 '@unrs/resolver-binding-darwin-arm64': 1.7.2
'@unrs/resolver-binding-darwin-x64': 1.7.2 '@unrs/resolver-binding-darwin-x64': 1.7.2

View File

@ -1,36 +1,32 @@
import { resetPassword } from "@/actions/auth"; import { resetPassword } from '@/actions/auth';
import { FormMessage, type Message, SubmitButton } from '@/components/default'; import { FormMessage, type Message, SubmitButton } from '@/components/default';
import { Input, Label } from "@/components/ui"; import { Input, Label } from '@/components/ui';
const ResetPassword = async (props: { const ResetPassword = async (props: { searchParams: Promise<Message> }) => {
searchParams: Promise<Message>;
}) => {
const searchParams = await props.searchParams; const searchParams = await props.searchParams;
return ( return (
<form className="flex flex-col w-full max-w-md p-4 gap-2 [&>input]:mb-4"> <form className='flex flex-col w-full max-w-md p-4 gap-2 [&>input]:mb-4'>
<h1 className="text-2xl font-medium">Reset password</h1> <h1 className='text-2xl font-medium'>Reset password</h1>
<p className="text-sm text-foreground/60"> <p className='text-sm text-foreground/60'>
Please enter your new password below. Please enter your new password below.
</p> </p>
<Label htmlFor="password">New password</Label> <Label htmlFor='password'>New password</Label>
<Input <Input
type="password" type='password'
name="password" name='password'
placeholder="New password" placeholder='New password'
required required
/> />
<Label htmlFor="confirmPassword">Confirm password</Label> <Label htmlFor='confirmPassword'>Confirm password</Label>
<Input <Input
type="password" type='password'
name="confirmPassword" name='confirmPassword'
placeholder="Confirm password" placeholder='Confirm password'
required required
/> />
<SubmitButton formAction={resetPassword}> <SubmitButton formAction={resetPassword}>Reset password</SubmitButton>
Reset password
</SubmitButton>
<FormMessage message={searchParams} /> <FormMessage message={searchParams} />
</form> </form>
); );
} };
export default ResetPassword; export default ResetPassword;