@@ -8,13 +8,8 @@ import { getZodConstraint, parseWithZod } from '@conform-to/zod'
8
8
import {
9
9
redirect ,
10
10
data ,
11
- type ActionFunctionArgs ,
12
- type LoaderFunctionArgs ,
13
- type MetaFunction ,
14
11
type Params ,
15
12
Form ,
16
- useActionData ,
17
- useLoaderData ,
18
13
useSearchParams ,
19
14
} from 'react-router'
20
15
import { safeRedirect } from 'remix-utils/safe-redirect'
@@ -36,6 +31,7 @@ import { authSessionStorage } from '#app/utils/session.server.ts'
36
31
import { redirectWithToast } from '#app/utils/toast.server.ts'
37
32
import { NameSchema , UsernameSchema } from '#app/utils/user-validation.ts'
38
33
import { verifySessionStorage } from '#app/utils/verification.server.ts'
34
+ import { type Route } from './+types/onboarding_.$provider.ts'
39
35
import { onboardingEmailSessionKey } from './onboarding'
40
36
41
37
export const providerIdKey = 'providerId'
@@ -80,7 +76,7 @@ async function requireData({
80
76
}
81
77
}
82
78
83
- export async function loader ( { request, params } : LoaderFunctionArgs ) {
79
+ export async function loader ( { request, params } : Route . LoaderArgs ) {
84
80
const { email } = await requireData ( { request, params } )
85
81
const connectionSession = await connectionSessionStorage . getSession (
86
82
request . headers . get ( 'cookie' ) ,
@@ -104,7 +100,7 @@ export async function loader({ request, params }: LoaderFunctionArgs) {
104
100
}
105
101
}
106
102
107
- export async function action ( { request, params } : ActionFunctionArgs ) {
103
+ export async function action ( { request, params } : Route . ActionArgs ) {
108
104
const { email, providerId, providerName } = await requireData ( {
109
105
request,
110
106
params,
@@ -172,21 +168,22 @@ export async function action({ request, params }: ActionFunctionArgs) {
172
168
)
173
169
}
174
170
175
- export const meta : MetaFunction = ( ) => {
171
+ export const meta : Route . MetaFunction = ( ) => {
176
172
return [ { title : 'Setup Epic Notes Account' } ]
177
173
}
178
174
179
- export default function OnboardingProviderRoute ( ) {
180
- const data = useLoaderData < typeof loader > ( )
181
- const actionData = useActionData < typeof action > ( )
175
+ export default function OnboardingProviderRoute ( {
176
+ loaderData,
177
+ actionData,
178
+ } : Route . ComponentProps ) {
182
179
const isPending = useIsPending ( )
183
180
const [ searchParams ] = useSearchParams ( )
184
181
const redirectTo = searchParams . get ( 'redirectTo' )
185
182
186
183
const [ form , fields ] = useForm ( {
187
184
id : 'onboarding-provider-form' ,
188
185
constraint : getZodConstraint ( SignupFormSchema ) ,
189
- lastResult : actionData ?. result ?? data . submission ,
186
+ lastResult : actionData ?. result ?? loaderData . submission ,
190
187
onValidate ( { formData } ) {
191
188
return parseWithZod ( formData , { schema : SignupFormSchema } )
192
189
} ,
@@ -197,7 +194,7 @@ export default function OnboardingProviderRoute() {
197
194
< div className = "container flex min-h-full flex-col justify-center pb-32 pt-20" >
198
195
< div className = "mx-auto w-full max-w-lg" >
199
196
< div className = "flex flex-col gap-3 text-center" >
200
- < h1 className = "text-h1" > Welcome aboard { data . email } !</ h1 >
197
+ < h1 className = "text-h1" > Welcome aboard { loaderData . email } !</ h1 >
201
198
< p className = "text-body-md text-muted-foreground" >
202
199
Please enter your details.
203
200
</ p >
0 commit comments