Skip to content

Commit 2449b9f

Browse files
committed
fix: 수정 심사 시 이미지가 노출되지 않는 문제 수정
1 parent 77e78b2 commit 2449b9f

File tree

3 files changed

+36
-7
lines changed

3 files changed

+36
-7
lines changed

apps/pyconkr-admin/src/components/pages/modification_audit/components.tsx

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ import {
1717
} from "@mui/material";
1818
import * as React from "react";
1919

20+
import { usePreviewImageData } from "./hooks";
21+
2022
type SharedPreviewFieldProps = {
2123
originalDataset: Record<string, unknown>;
2224
previewDataset: Record<string, unknown>;
@@ -109,27 +111,40 @@ const WidthSpecifiedFallbackImage = styled(Common.Components.FallbackImage)({
109111
});
110112

111113
export const PreviewImageField: React.FC<SharedPreviewFieldProps> = ({ originalDataset, previewDataset, name, label }) => {
112-
const originalImage = originalDataset[name] as string;
113-
const previewImage = previewDataset[name] as string;
114+
const { originalImage, previewImage } = usePreviewImageData(originalDataset, previewDataset, name) || {};
114115

115-
return originalImage === previewImage ? (
116+
return originalImage?.id === previewImage?.id ? (
116117
<Common.Components.Fieldset legend={label} style={{ width: "100%" }}>
117-
<WidthSpecifiedFallbackImage src={previewImage} alt={label} errorFallback={<ImageFallback />} />
118+
<Stack alignItems="center" justifyContent="center">
119+
{previewImage?.file ? (
120+
<WidthSpecifiedFallbackImage src={previewImage?.file || ""} alt={label} errorFallback={<ImageFallback />} />
121+
) : (
122+
<Typography variant="caption" children="이미지를 지정하지 않았습니다." />
123+
)}
124+
</Stack>
118125
</Common.Components.Fieldset>
119126
) : (
120127
<Box sx={{ my: 1 }}>
121128
<Accordion>
122129
<AccordionSummary>
123130
<Stack sx={{ width: "100%" }} direction="column" alignItems="flex-start" justifyContent="space-between">
124131
<Common.Components.Fieldset legend={label} style={{ width: "100%", backgroundColor: "rgba(255, 255, 0, 0.1)" }}>
125-
<WidthSpecifiedFallbackImage src={previewImage} alt={label} errorFallback={<ImageFallback />} />
132+
<Stack alignItems="center" justifyContent="center">
133+
<WidthSpecifiedFallbackImage src={previewImage?.file || ""} alt={label} errorFallback={<ImageFallback />} />
134+
</Stack>
126135
</Common.Components.Fieldset>
127136
<Typography variant="caption">기존 이미지를 보려면 여기를 클릭해주세요.</Typography>
128137
</Stack>
129138
</AccordionSummary>
130139
<AccordionDetails>
131140
<Common.Components.Fieldset legend={label} style={{ backgroundColor: "rgba(0, 64, 64, 0.1)" }}>
132-
<WidthSpecifiedFallbackImage src={originalImage} alt={label} errorFallback={<ImageFallback />} />
141+
<Stack alignItems="center" justifyContent="center">
142+
{originalImage?.file ? (
143+
<WidthSpecifiedFallbackImage src={originalImage?.file || ""} alt={label} errorFallback={<ImageFallback />} />
144+
) : (
145+
<Typography variant="caption" children="기존 이미지를 지정하지 않았습니다." />
146+
)}
147+
</Stack>
133148
</Common.Components.Fieldset>
134149
</AccordionDetails>
135150
</Accordion>

apps/pyconkr-admin/src/components/pages/modification_audit/hooks.tsx

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
import * as Common from "@frontend/common";
22

3+
import BackendAdminAPISchemas from "../../../../../../packages/common/src/schemas/backendAdminAPI";
4+
35
const AdminAPIHooks = Common.Hooks.BackendAdminAPI;
46

57
export const useModificationAuditData = <T extends Record<string, string>>(auditId: string) => {
@@ -14,3 +16,15 @@ export const useModificationAuditData = <T extends Record<string, string>>(audit
1416

1517
return !audit || !originalData || !previewData ? null : { audit, originalData, previewData };
1618
};
19+
20+
export const usePreviewImageData = (originalData: Record<string, unknown>, previewData: Record<string, unknown>, name: string) => {
21+
const backendAdminClient = AdminAPIHooks.useBackendAdminClient();
22+
const commonArgs = [backendAdminClient, "file", "publicfile"] as const;
23+
const originalImageId = (originalData[name] as string) || "";
24+
const previewImageId = (previewData[name] as string) || "";
25+
26+
const { data: originalImage } = AdminAPIHooks.useRetrieveQuery<BackendAdminAPISchemas.PublicFileSchema>(...commonArgs, originalImageId);
27+
const { data: previewImage } = AdminAPIHooks.useRetrieveQuery<BackendAdminAPISchemas.PublicFileSchema>(...commonArgs, previewImageId);
28+
29+
return { originalImage, previewImage };
30+
};

apps/pyconkr-admin/src/components/pages/modification_audit/sub_pages/userext_preview.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ export const UserExtPreviewSubPage: SubModificationAuditPageType = ({ originalDa
1313
<PreviewTextField originalDataset={originalData} previewDataset={previewData} name="username" label="계정 ID" />
1414
<PreviewTextField originalDataset={originalData} previewDataset={previewData} name="email" label="계정 이메일" />
1515
</Common.Components.Fieldset>
16-
<PreviewImageField originalDataset={originalData} previewDataset={previewData} name="image" label="발표 이미지" />
16+
<PreviewImageField originalDataset={originalData} previewDataset={previewData} name="image" label="프로필 이미지" />
1717
<Common.Components.Fieldset legend="별칭">
1818
<PreviewTextField originalDataset={originalData} previewDataset={previewData} multiline name="nickname_ko" label="별칭 (한국어)" />
1919
<PreviewTextField originalDataset={originalData} previewDataset={previewData} multiline name="nickname_en" label="별칭 (영어)" />

0 commit comments

Comments
 (0)