Skip to content

Commit d0db7c6

Browse files
Refactor: Use middleware instead of unstable_middleware
Refactor: Use `prisma.$queryRawTyped` for user search Co-authored-by: me <[email protected]>
1 parent 1e86901 commit d0db7c6

File tree

9 files changed

+9
-18
lines changed

9 files changed

+9
-18
lines changed

app/routes/_auth+/login.server.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import { verifySessionStorage } from '#app/utils/verification.server.ts'
1111
import { getRedirectToUrl, type VerifyFunctionArgs } from './verify.server.ts'
1212
import { requireAnonymousMiddleware } from '#app/middleware.server.ts'
1313

14-
export const unstable_middleware = [requireAnonymousMiddleware]
14+
export const middleware = [requireAnonymousMiddleware]
1515

1616
const verifiedTimeKey = 'verified-time'
1717
const unverifiedSessionIdKey = 'unverified-session-id'

app/routes/_auth+/onboarding.server.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { onboardingEmailSessionKey } from './onboarding.tsx'
55
import { type VerifyFunctionArgs } from './verify.server.ts'
66
import { requireAnonymousMiddleware } from '#app/middleware.server.ts'
77

8-
export const unstable_middleware = [requireAnonymousMiddleware]
8+
export const middleware = [requireAnonymousMiddleware]
99

1010
export async function handleVerification({ submission }: VerifyFunctionArgs) {
1111
invariant(

app/routes/_auth+/onboarding.tsx

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,6 @@ import { CheckboxField, ErrorList, Field } from '#app/components/forms.tsx'
88
import { Spacer } from '#app/components/spacer.tsx'
99
import { StatusButton } from '#app/components/ui/status-button.tsx'
1010
import { checkIsCommonPassword, sessionKey, signup } from '#app/utils/auth.server.ts'
11-
export const unstable_middleware = [
12-
(await import('#app/middleware.server.ts')).requireAnonymousMiddleware,
13-
]
1411
import { prisma } from '#app/utils/db.server.ts'
1512
import { checkHoneypot } from '#app/utils/honeypot.server.ts'
1613
import { useIsPending } from '#app/utils/misc.tsx'
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
import { requireAnonymousMiddleware } from '#app/middleware.server.ts'
22

3-
export const unstable_middleware = [requireAnonymousMiddleware]
3+
export const middleware = [requireAnonymousMiddleware]

app/routes/_auth+/reset-password.server.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import { resetPasswordUsernameSessionKey } from './reset-password.tsx'
66
import { type VerifyFunctionArgs } from './verify.server.ts'
77
import { requireAnonymousMiddleware } from '#app/middleware.server.ts'
88

9-
export const unstable_middleware = [requireAnonymousMiddleware]
9+
export const middleware = [requireAnonymousMiddleware]
1010

1111
export async function handleVerification({ submission }: VerifyFunctionArgs) {
1212
invariant(

app/routes/_auth+/reset-password.tsx

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,6 @@ import { GeneralErrorBoundary } from '#app/components/error-boundary.tsx'
66
import { ErrorList, Field } from '#app/components/forms.tsx'
77
import { StatusButton } from '#app/components/ui/status-button.tsx'
88
import { checkIsCommonPassword, resetUserPassword } from '#app/utils/auth.server.ts'
9-
export const unstable_middleware = [
10-
(await import('#app/middleware.server.ts')).requireAnonymousMiddleware,
11-
]
129
import { useIsPending } from '#app/utils/misc.tsx'
1310
import { PasswordAndConfirmPasswordSchema } from '#app/utils/user-validation.ts'
1411
import { verifySessionStorage } from '#app/utils/verification.server.ts'

app/routes/_auth+/signup.server.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
import { requireAnonymousMiddleware } from '#app/middleware.server.ts'
22

3-
export const unstable_middleware = [requireAnonymousMiddleware]
3+
export const middleware = [requireAnonymousMiddleware]
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
import { requireUserMiddleware } from '#app/middleware.server.ts'
22

3-
export const unstable_middleware = [requireUserMiddleware]
3+
export const middleware = [requireUserMiddleware]

app/routes/users+/index.tsx

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// using $queryRawUnsafe for LIKE query construction
1+
import { searchUsers } from '@prisma/client/sql'
22
import { Img } from 'openimg/react'
33
import { redirect, Link } from 'react-router'
44
import { GeneralErrorBoundary } from '#app/components/error-boundary.tsx'
@@ -15,10 +15,7 @@ export async function loader({ request }: Route.LoaderArgs) {
1515
}
1616

1717
const like = `%${searchTerm ?? ''}%`
18-
const users = await prisma.$queryRawUnsafe<{ id: string; username: string; name: string | null; imageObjectKey: string | null }[]>(
19-
`SELECT id, username, name, (SELECT "objectKey" FROM "Image" WHERE "userId" = "User"."id" LIMIT 1) as "imageObjectKey" FROM "User" WHERE username ILIKE $1 OR name ILIKE $1 ORDER BY username ASC`,
20-
like,
21-
)
18+
const users = await prisma.$queryRawTyped(searchUsers(like))
2219
return { status: 'idle', users } as const
2320
}
2421

@@ -52,7 +49,7 @@ export default function UsersRoute({ loaderData }: Route.ComponentProps) {
5249
>
5350
<Img
5451
alt={user.name ?? user.username}
55-
src={getUserImgSrc(user.imageObjectKey ?? undefined)}
52+
src={getUserImgSrc(user.imageObjectKey)}
5653
className="size-16 rounded-full"
5754
width={256}
5855
height={256}

0 commit comments

Comments
 (0)