Skip to content

Commit 2dc20d5

Browse files
committed
this is what I want
1 parent bc2f913 commit 2dc20d5

File tree

6 files changed

+46
-55
lines changed

6 files changed

+46
-55
lines changed

app/routes/resources+/images.tsx

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
1+
import { invariantResponse } from '@epic-web/invariant'
12
import { getImgResponse } from 'openimg/node'
3+
import { prisma } from '#app/utils/db.server.ts'
24
import { getDomainUrl } from '#app/utils/misc.tsx'
5+
import { getSignedGetRequestInfo } from '#app/utils/storage.server.ts'
36
import { type Route } from './+types/images.ts'
47

58
export async function loader({ request }: Route.LoaderArgs) {
@@ -17,6 +20,16 @@ export async function loader({ request }: Route.LoaderArgs) {
1720
: './tests/fixtures/openimg',
1821
getImgSource: ({ params }) => {
1922
if (params.src.startsWith('/resources')) {
23+
const searchParams = new URLSearchParams(params.src.split('?')[1])
24+
const userImageId = searchParams.get('userImageId')
25+
if (userImageId) {
26+
return handleUserImage(userImageId)
27+
}
28+
const noteImageId = searchParams.get('noteImageId')
29+
if (noteImageId) {
30+
return handleNoteImage(noteImageId)
31+
}
32+
2033
// Fetch image from resource endpoint
2134
return {
2235
type: 'fetch',
@@ -46,3 +59,33 @@ export async function loader({ request }: Route.LoaderArgs) {
4659
},
4760
})
4861
}
62+
63+
async function handleUserImage(userImageId: string) {
64+
const userImage = await prisma.userImage.findUnique({
65+
where: { id: userImageId },
66+
select: { objectKey: true },
67+
})
68+
invariantResponse(userImage, 'User image not found', { status: 404 })
69+
70+
const { url, headers } = getSignedGetRequestInfo(userImage.objectKey)
71+
return {
72+
type: 'fetch',
73+
url,
74+
headers,
75+
}
76+
}
77+
78+
async function handleNoteImage(noteImageId: string) {
79+
const noteImage = await prisma.noteImage.findUnique({
80+
where: { id: noteImageId },
81+
select: { objectKey: true },
82+
})
83+
invariantResponse(noteImage, 'Note image not found', { status: 404 })
84+
85+
const { url, headers } = getSignedGetRequestInfo(noteImage.objectKey)
86+
return {
87+
type: 'fetch',
88+
url,
89+
headers,
90+
}
91+
}

app/routes/resources+/note-images.$imageId.tsx

Lines changed: 0 additions & 24 deletions
This file was deleted.

app/routes/resources+/user-images.$imageId.tsx

Lines changed: 0 additions & 24 deletions
This file was deleted.

app/routes/settings+/profile.index.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@ import { getFormProps, getInputProps, useForm } from '@conform-to/react'
22
import { getZodConstraint, parseWithZod } from '@conform-to/zod'
33
import { invariantResponse } from '@epic-web/invariant'
44
import { type SEOHandle } from '@nasa-gcn/remix-seo'
5+
import { Img } from 'openimg/react'
56
import { data, Link, useFetcher } from 'react-router'
67
import { z } from 'zod'
7-
import { Img } from 'openimg/react'
88
import { ErrorList, Field } from '#app/components/forms.tsx'
99
import { Button } from '#app/components/ui/button.tsx'
1010
import { Icon } from '#app/components/ui/icon.tsx'

app/utils/misc.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@ import { extendTailwindMerge } from 'tailwind-merge'
66
import { extendedTheme } from './extended-theme.ts'
77

88
export function getUserImgSrc(imageId?: string | null) {
9-
return imageId ? `/resources/user-images/${imageId}` : '/img/user.png'
9+
return imageId ? `/resources/images?userImageId=${imageId}` : '/img/user.png'
1010
}
1111

1212
export function getNoteImgSrc(imageId: string) {
13-
return `/resources/note-images/${imageId}`
13+
return `/resources/images?noteImageId=${imageId}`
1414
}
1515

1616
export function getErrorMessage(error: unknown) {

tests/mocks/index.ts

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,6 @@ server.listen({
1919
if (request.url.includes('.sentry.io')) {
2020
return
2121
}
22-
// Do not print warnings on unhandled requests to ourselves
23-
if (request.url.includes(`localhost:${process.env.PORT}`)) {
24-
return
25-
}
2622
// Print the regular MSW unhandled request warning otherwise.
2723
print.warning()
2824
},

0 commit comments

Comments
 (0)