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

76
pnpm-lock.yaml generated
View File

@ -10,10 +10,10 @@ importers:
dependencies:
'@radix-ui/react-checkbox':
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':
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':
specifier: ^1.2.2
version: 1.2.2(@types/react@19.1.4)(react@19.1.0)
@ -36,41 +36,41 @@ importers:
specifier: ^0.510.0
version: 0.510.0(react@19.1.0)
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)
next-themes:
specifier: ^0.4.6
version: 0.4.6(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
react:
specifier: ^19.0.0
specifier: ^19.1.0
version: 19.1.0
react-dom:
specifier: ^19.0.0
specifier: ^19.1.0
version: 19.1.0(react@19.1.0)
zod:
specifier: ^3.24.2
specifier: ^3.24.4
version: 3.24.4
devDependencies:
'@eslint/eslintrc':
specifier: ^3.3.1
version: 3.3.1
'@tailwindcss/postcss':
specifier: ^4.0.15
specifier: ^4.1.6
version: 4.1.6
'@types/node':
specifier: ^20.14.10
specifier: ^20.17.46
version: 20.17.46
'@types/react':
specifier: ^19.0.0
specifier: ^19.1.4
version: 19.1.4
'@types/react-dom':
specifier: ^19.0.0
version: 19.1.4(@types/react@19.1.4)
specifier: ^19.1.5
version: 19.1.5(@types/react@19.1.4)
eslint:
specifier: ^9.23.0
specifier: ^9.26.0
version: 9.26.0(jiti@2.4.2)
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)
postcss:
specifier: ^8.5.3
@ -85,7 +85,7 @@ importers:
specifier: ^3.3.0
version: 3.3.0
tailwindcss:
specifier: ^4.0.15
specifier: ^4.1.6
version: 4.1.6
tailwindcss-animate:
specifier: ^1.0.7
@ -94,10 +94,10 @@ importers:
specifier: ^1.2.9
version: 1.2.9
typescript:
specifier: ^5.8.2
specifier: ^5.8.3
version: 5.8.3
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)
packages:
@ -686,8 +686,8 @@ packages:
'@types/phoenix@1.6.6':
resolution: {integrity: sha512-PIzZZlEppgrpoT2QgbnDU+MMzuR6BbCjllj0bM70lWoejMeNJAxCchxnv7J3XFkI8MpygtRpzXrIlmWUBclP5A==}
'@types/react-dom@19.1.4':
resolution: {integrity: sha512-WxYAszDYgsMV31OVyoG4jbAgJI1Gw0Xq9V19zwhy6+hUUJlJIdZ3r/cbdmTqFv++SktQkZ/X+46yGFxp5XJBEg==}
'@types/react-dom@19.1.5':
resolution: {integrity: sha512-CMCjrWucUBZvohgZxkjd6S9h0nZxXjzus6yDfUb+xLxYM7VvjKNH1tQrE9GWLql1XoOP4/Ds3bwFqShHUYraGg==}
peerDependencies:
'@types/react': ^19.0.0
@ -949,8 +949,8 @@ packages:
resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
engines: {node: '>=6'}
caniuse-lite@1.0.30001717:
resolution: {integrity: sha512-auPpttCq6BDEG8ZAuHJIplGw6GODhjw+/11e7IjpnYCxZcW/ONgPs0KVBJ0d1bY3e2+7PRe5RCLyP+PfwVgkYw==}
caniuse-lite@1.0.30001718:
resolution: {integrity: sha512-AflseV1ahcSunK53NfEs9gFWgOEmzr0f+kaMFA4xiLZlr9Hzt7HxcSpIFcnNCUkz6R6dWKa54rUz3HUmI3nVcw==}
chalk@4.1.2:
resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
@ -1743,8 +1743,8 @@ packages:
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
hasBin: true
napi-postinstall@0.2.3:
resolution: {integrity: sha512-Mi7JISo/4Ij2tDZ2xBE2WH+/KvVlkhA6juEjpEeRAVPNCpN3nxJo/5FhDNKgBcdmcmhaH6JjgST4xY/23ZYK0w==}
napi-postinstall@0.2.4:
resolution: {integrity: sha512-ZEzHJwBhZ8qQSbknHqYcdtQVr8zUgGyM/q6h6qAyhtyVMNrSgDhrC4disf03dYW0e+czXyLnZINnCTEkWy0eJg==}
engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0}
hasBin: true
@ -2592,13 +2592,13 @@ snapshots:
'@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:
'@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-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-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-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.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-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)
@ -2606,7 +2606,7 @@ snapshots:
react-dom: 19.1.0(react@19.1.0)
optionalDependencies:
'@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)':
dependencies:
@ -2620,16 +2620,16 @@ snapshots:
optionalDependencies:
'@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:
'@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-dom: 19.1.0(react@19.1.0)
optionalDependencies:
'@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:
'@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)
@ -2637,16 +2637,16 @@ snapshots:
react-dom: 19.1.0(react@19.1.0)
optionalDependencies:
'@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:
'@radix-ui/react-slot': 1.2.2(@types/react@19.1.4)(react@19.1.0)
react: 19.1.0
react-dom: 19.1.0(react@19.1.0)
optionalDependencies:
'@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)':
dependencies:
@ -2847,7 +2847,7 @@ snapshots:
'@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:
'@types/react': 19.1.4
@ -3146,7 +3146,7 @@ snapshots:
callsites@3.1.0: {}
caniuse-lite@1.0.30001717: {}
caniuse-lite@1.0.30001718: {}
chalk@4.1.2:
dependencies:
@ -4077,7 +4077,7 @@ snapshots:
nanoid@3.3.11: {}
napi-postinstall@0.2.3: {}
napi-postinstall@0.2.4: {}
natural-compare@1.4.0: {}
@ -4094,7 +4094,7 @@ snapshots:
'@swc/counter': 0.1.3
'@swc/helpers': 0.5.15
busboy: 1.6.0
caniuse-lite: 1.0.30001717
caniuse-lite: 1.0.30001718
postcss: 8.4.31
react: 19.1.0
react-dom: 19.1.0(react@19.1.0)
@ -4652,7 +4652,7 @@ snapshots:
unrs-resolver@1.7.2:
dependencies:
napi-postinstall: 0.2.3
napi-postinstall: 0.2.4
optionalDependencies:
'@unrs/resolver-binding-darwin-arm64': 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 { Input, Label } from "@/components/ui";
import { Input, Label } from '@/components/ui';
const ResetPassword = async (props: {
searchParams: Promise<Message>;
}) => {
const ResetPassword = async (props: { searchParams: Promise<Message> }) => {
const searchParams = await props.searchParams;
return (
<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>
<p className="text-sm text-foreground/60">
<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>
<p className='text-sm text-foreground/60'>
Please enter your new password below.
</p>
<Label htmlFor="password">New password</Label>
<Label htmlFor='password'>New password</Label>
<Input
type="password"
name="password"
placeholder="New password"
type='password'
name='password'
placeholder='New password'
required
/>
<Label htmlFor="confirmPassword">Confirm password</Label>
<Label htmlFor='confirmPassword'>Confirm password</Label>
<Input
type="password"
name="confirmPassword"
placeholder="Confirm password"
type='password'
name='confirmPassword'
placeholder='Confirm password'
required
/>
<SubmitButton formAction={resetPassword}>
Reset password
</SubmitButton>
<SubmitButton formAction={resetPassword}>Reset password</SubmitButton>
<FormMessage message={searchParams} />
</form>
);
}
};
export default ResetPassword;