Skip to content

Commit 675feb2

Browse files
committed
feat: 밈 꾸미기 기능 추가
- MemeDetailPage의 액션 버튼에서 '밈 꾸미기' 기능을 구현하여, 사용자가 선택한 밈의 제목과 이미지를 기반으로 커스텀 밈을 생성할 수 있도록 함 - 새로운 COMMAND_TYPE인 CUSTOM_MEME을 추가하고, 관련 데이터 타입을 정의하여 코드의 가독성을 향상시킴
1 parent 9f064e8 commit 675feb2

File tree

3 files changed

+17
-1
lines changed

3 files changed

+17
-1
lines changed

apps/web/src/pages/MemeDetailPage/index.tsx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,10 @@ const MemeDetailPage = () => {
6464
</S.ActionButton>
6565
<S.ActionButton
6666
onClick={() => {
67-
alert('밈 꾸미기');
67+
nativeBridge.customMeme({
68+
title: memeDetail?.success.title ?? '',
69+
image: memeDetail?.success.imgUrl ?? '',
70+
});
6871
}}
6972
>
7073
<MemeDesignPenIcon />

apps/web/src/types/bridge.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
export const COMMAND_TYPE = {
22
SHARE_MEME: 'SHARE_MEME',
3+
CUSTOM_MEME: 'CUSTOM_MEME',
34
} as const;
45

56
export type CommandType = (typeof COMMAND_TYPE)[keyof typeof COMMAND_TYPE];
@@ -9,8 +10,14 @@ export interface ShareMemeData {
910
image: string;
1011
}
1112

13+
export interface CustomMemeData {
14+
title: string;
15+
image: string;
16+
}
17+
1218
export type CommandDataMap = {
1319
[COMMAND_TYPE.SHARE_MEME]: ShareMemeData;
20+
[COMMAND_TYPE.CUSTOM_MEME]: CustomMemeData;
1421
};
1522

1623
export interface BridgeCommand<T extends CommandType> {

apps/web/src/utils/bridge.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import {
33
COMMAND_TYPE,
44
CommandDataMap,
55
CommandType,
6+
CustomMemeData,
67
ShareMemeData,
78
} from '../types/bridge';
89

@@ -91,6 +92,11 @@ class NativeBridge {
9192
shareMeme(data: ShareMemeData) {
9293
this.sendCommand(COMMAND_TYPE.SHARE_MEME, data);
9394
}
95+
96+
// 밈 꾸미기
97+
customMeme(data: CustomMemeData) {
98+
this.sendCommand(COMMAND_TYPE.CUSTOM_MEME, data);
99+
}
94100
}
95101

96102
export const nativeBridge = NativeBridge.getInstance();

0 commit comments

Comments
 (0)