Skip to content

Commit d5e5cfc

Browse files
committed
feat: UT용 결과 페이지 로직 수정 (reviewStyle 객체로 변경)
1 parent dea2ba5 commit d5e5cfc

File tree

4 files changed

+45
-17
lines changed

4 files changed

+45
-17
lines changed

src/components/ReviewResult/ReviewResult.tsx

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import HomeNavigateConfirmModal from "@/components/HomeNavigateConfirmModal/Home
66
import { AppBridgeMessageType } from "@/components/provider/AppBridgeProvider/AppBridgeMessage.types";
77
import { useAppBridge } from "@/components/provider/AppBridgeProvider/AppBridgeProvider";
88
import styles from "@/components/ReviewResult/ReviewResult.module.scss";
9+
import { IMG_STYLE_DATA } from "@/components/SelectStyle/SelectStyle";
910
import Button from "@/components/ui/Button/Button";
1011
import IconButton from "@/components/ui/IconButton/IconButton";
1112
import Text from "@/components/ui/Text/Text";
@@ -14,6 +15,8 @@ import Toast from "@/components/ui/Toast/Toast";
1415
import { useOverlay } from "@/hooks/common/useOverlay";
1516
import useToast from "@/hooks/common/useToast";
1617

18+
import { useCreateReviewStore } from "@/store/useReviewStore";
19+
1720
import type { Options as ConfettiOptions } from "canvas-confetti";
1821

1922
const ReviewResult = () => {
@@ -22,8 +25,19 @@ const ReviewResult = () => {
2225
const { isOpen, handleClose, handleOpen } = useOverlay();
2326
const { isToast } = useToast(1000);
2427

25-
const reviewText = `오늘 처음으로 청담커피 앤 토스트에서 주문했어요.. 매장도 깔끔하고 직원들도 친절해요!
26-
음료랑 토스트 세트 시켰는데 가성비가 좋네요… 맛도 좋고 양도 많아요!! 다음에도 또 시켜먹을 거예요.`;
28+
const { createReviewData } = useCreateReviewStore();
29+
30+
const { reviewStyle } = createReviewData;
31+
const dummyDataMap: Record<string, string> = {
32+
[IMG_STYLE_DATA[1].name]: "1",
33+
[IMG_STYLE_DATA[2].name]: "2",
34+
[IMG_STYLE_DATA[3].name]: "3",
35+
};
36+
37+
const getDummyText = (reviewStyle: string): string => {
38+
return dummyDataMap[reviewStyle];
39+
};
40+
const reviewText = getDummyText(reviewStyle.name);
2741

2842
const handleConfetti = () => {
2943
const setting: ConfettiOptions = {
@@ -45,7 +59,10 @@ const ReviewResult = () => {
4559
<div className={styles.ReviewResult}>
4660
<div className={styles.Top}>
4761
<div className={styles.ReceiptImage}>
48-
<img src="/assets/img/img-style-cute-circle.png" alt="mainLogo" />
62+
<img
63+
src={`/assets/img/img-${reviewStyle.image}-circle.png`}
64+
alt={`${reviewStyle.name}-img`}
65+
/>
4966
</div>
5067
<div className={styles.TitleBox}>
5168
<Text variant="titleM" color="gradient" as="h1" truncated>

src/components/SelectStyle/SelectStyle.tsx

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,23 +9,25 @@ import Button from "@/components/ui/Button/Button";
99
import Icon from "@/components/ui/Icon/Icon";
1010
import Text from "@/components/ui/Text/Text";
1111

12+
import { useRoute } from "@/hooks/common/useRoute";
13+
1214
import { useCreateReviewStore } from "@/store/useReviewStore";
1315

1416
interface StyleProps {
1517
name: string;
1618
image: string;
1719
}
1820

19-
const IMG_STYLE_DATA = [
20-
{ name: "default", image: "/assets/img/img-graphic-logo.png" },
21-
{ name: "친절한 미식가", image: "/assets/img/img-style-friendly.png" },
22-
{ name: "믿음직한 미식가", image: "/assets/img/img-style-trust.png" },
23-
{ name: "귀여운 미식가", image: "/assets/img/img-style-cute.png" },
21+
export const IMG_STYLE_DATA = [
22+
{ name: "default", image: "graphic-logo" },
23+
{ name: "친절한 미식가", image: "style-friendly" },
24+
{ name: "믿음직한 미식가", image: "style-trust" },
25+
{ name: "귀여운 미식가", image: "style-cute" },
2426
];
2527

2628
const SelectStyle = () => {
2729
const { send } = useAppBridge();
28-
30+
const { navigateToReviewResult } = useRoute();
2931
const { createReviewData, setReviewStyle } = useCreateReviewStore();
3032

3133
const [selectedStyle, setSelectedStyle] = useState(IMG_STYLE_DATA[0]);
@@ -38,12 +40,12 @@ const SelectStyle = () => {
3840

3941
const handleCreateReview = () => {
4042
if (selectedStyle.name !== "default") {
41-
setReviewStyle(selectedStyle.name);
43+
setReviewStyle(selectedStyle);
4244
}
43-
45+
navigateToReviewResult();
4446
send({
4547
type: AppBridgeMessageType.CREATE_REVIEW,
46-
payload: { ocrText, hashTag, reviewStyle },
48+
payload: { ocrText, hashTag, reviewStyle: reviewStyle.name },
4749
});
4850
};
4951

@@ -59,7 +61,7 @@ const SelectStyle = () => {
5961
</div>
6062

6163
<div className={styles.Image}>
62-
<img src={selectedStyle.image} alt={`${selectedStyle.name}-img`} />
64+
<img src={`/assets/img/img-${selectedStyle.image}.png`} alt={`${selectedStyle.name}-img`} />
6365
</div>
6466

6567
<div className={styles.StyleButtonList}>

src/hooks/common/useRoute.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ export const useRoute = () => {
1111
navigateToReceiptEdit: () => navigate(PATH.RECEIPT_EDIT),
1212
navigateToSelectStyle: () => navigate(PATH.SELECT_STYLE),
1313
navigateToSelectTag: () => navigate(PATH.SELECT_TAG),
14+
navigateToReviewResult: () => navigate(PATH.REVIEW_RESULT),
1415
};
1516

1617
return routes;

src/store/useReviewStore.ts

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,30 @@
11
import { create } from "zustand";
22

3+
interface ReviewStyle {
4+
name: string;
5+
image: string;
6+
}
7+
38
interface CreateReviewData {
49
ocrText: string;
510
hashTag: string[];
6-
reviewStyle: string;
11+
reviewStyle: ReviewStyle;
712
}
813

914
interface CreateReviewDataStore {
1015
createReviewData: CreateReviewData;
1116
setOcrText: (ocrText: string) => void;
1217
setHashTag: (hashTag: string[]) => void;
13-
setReviewStyle: (reviewStyle: string) => void;
18+
setReviewStyle: (reviewStyle: ReviewStyle) => void;
1419
}
1520

1621
export const CREATE_REVIEW_DATA = {
1722
ocrText: "",
1823
hashTag: [],
19-
reviewStyle: "",
24+
reviewStyle: {
25+
name: "",
26+
image: "",
27+
},
2028
};
2129

2230
export const useCreateReviewStore = create<CreateReviewDataStore>((set) => ({
@@ -29,7 +37,7 @@ export const useCreateReviewStore = create<CreateReviewDataStore>((set) => ({
2937
set((state) => ({
3038
createReviewData: { ...state.createReviewData, hashTag },
3139
})),
32-
setReviewStyle: (reviewStyle: string) =>
40+
setReviewStyle: (reviewStyle: ReviewStyle) =>
3341
set((state) => ({
3442
createReviewData: { ...state.createReviewData, reviewStyle },
3543
})),

0 commit comments

Comments
 (0)