From 7c0ce0db0c57dd71061cce84980405014887e8c5 Mon Sep 17 00:00:00 2001 From: jhj2713 Date: Tue, 20 Aug 2024 13:52:20 +0900 Subject: [PATCH 1/4] =?UTF-8?q?refactor:=20sticker=20=EC=9D=B4=EB=AF=B8?= =?UTF-8?q?=EC=A7=80png=20->=20svg?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../casper-custom/sticker/charge-max.png | Bin 11574 -> 0 bytes .../casper-custom/sticker/charge-max.svg | 8 + .../casper-custom/sticker/charge-none.png | Bin 4522 -> 0 bytes .../casper-custom/sticker/charge-none.svg | 22 + .../assets/casper-custom/sticker/electric.png | Bin 16869 -> 0 bytes .../assets/casper-custom/sticker/electric.svg | 462 +++++++ .../assets/casper-custom/sticker/lovely.png | Bin 8288 -> 0 bytes .../assets/casper-custom/sticker/lovely.svg | 716 +++++++++++ .../assets/casper-custom/sticker/twinkle.png | Bin 11383 -> 0 bytes .../assets/casper-custom/sticker/twinkle.svg | 1081 +++++++++++++++++ client/src/constants/CasperCustom/casper.ts | 2 +- .../CasperCard/CasperCardFrontUI.tsx | 54 +- .../CasperCustom/getCasperEyesComponent.tsx | 7 +- .../CasperCustom/getCasperMouthComponent.tsx | 17 +- .../getCasperStickerComponent.tsx | 28 + 15 files changed, 2356 insertions(+), 41 deletions(-) delete mode 100644 client/public/assets/casper-custom/sticker/charge-max.png create mode 100644 client/public/assets/casper-custom/sticker/charge-max.svg delete mode 100644 client/public/assets/casper-custom/sticker/charge-none.png create mode 100644 client/public/assets/casper-custom/sticker/charge-none.svg delete mode 100644 client/public/assets/casper-custom/sticker/electric.png create mode 100644 client/public/assets/casper-custom/sticker/electric.svg delete mode 100644 client/public/assets/casper-custom/sticker/lovely.png create mode 100644 client/public/assets/casper-custom/sticker/lovely.svg delete mode 100644 client/public/assets/casper-custom/sticker/twinkle.png create mode 100644 client/public/assets/casper-custom/sticker/twinkle.svg create mode 100644 client/src/utils/CasperCustom/getCasperStickerComponent.tsx diff --git a/client/public/assets/casper-custom/sticker/charge-max.png b/client/public/assets/casper-custom/sticker/charge-max.png deleted file mode 100644 index 4e5e13a8ab86a9a57c97168412ec40c43bbabdd0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11574 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 Rs}me-TyJZUz1HpIe*qnmeUktH diff --git a/client/public/assets/casper-custom/sticker/charge-max.svg b/client/public/assets/casper-custom/sticker/charge-max.svg new file mode 100644 index 00000000..59f69fff --- /dev/null +++ b/client/public/assets/casper-custom/sticker/charge-max.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/client/public/assets/casper-custom/sticker/charge-none.png b/client/public/assets/casper-custom/sticker/charge-none.png deleted file mode 100644 index 9da6e528cc6b4d23d15b22466417050252945211..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4522 zcmeAS@N?(olHy`uVBq!ia0y~yUVM%xNb!1@J*w6hZk(Gf#(B9LT{z3R%$@1l){JijO=jjFvz z>E7?eoc3AynQL`TZ+1Q3DgAus%9F<`Jd%LwKzwQ3(yY}(lh~=~LSC-B> zwrkzbX;H@?KYy_5+3wY+KUK`D7ugWGwn6-Q`!1d1*KUE*a`JP7ZMSFTOMZS3aUg9c z6U%^QJRa}0j{{y?e7VPMk=-7Z{!NE9CrUeE^RDeh5B!0dFoNNH0V@XsLlY1)a3}!@ zg$^Lmpuhwq=_2@>Y1qUhv39S1!e$l*9|NWZ*HbO~^#3ev*lc?2Tw>04 z)B8rx4sL8XTQty>kA?91`hVY#XZ;O5yX|&ttwmjJ?Bu=we#S4)di#0S`_=sQ|G&lh ze)~0D|9mdKI;Vst07&i~LI3~& diff --git a/client/public/assets/casper-custom/sticker/charge-none.svg b/client/public/assets/casper-custom/sticker/charge-none.svg new file mode 100644 index 00000000..2f980a0e --- /dev/null +++ b/client/public/assets/casper-custom/sticker/charge-none.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/assets/casper-custom/sticker/electric.png b/client/public/assets/casper-custom/sticker/electric.png deleted file mode 100644 index 1f770fa768d0a8f5d90dfb0d5fba2b857d0452b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16869 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 Hef|FdH>>%H diff --git a/client/public/assets/casper-custom/sticker/electric.svg b/client/public/assets/casper-custom/sticker/electric.svg new file mode 100644 index 00000000..9a7e5786 --- /dev/null +++ b/client/public/assets/casper-custom/sticker/electric.svg @@ -0,0 +1,462 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/assets/casper-custom/sticker/lovely.png b/client/public/assets/casper-custom/sticker/lovely.png deleted file mode 100644 index 0c8213d744a270a109a3d587ff68af95f2b3ee21..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8288 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 diff --git a/client/public/assets/casper-custom/sticker/lovely.svg b/client/public/assets/casper-custom/sticker/lovely.svg new file mode 100644 index 00000000..07dce138 --- /dev/null +++ b/client/public/assets/casper-custom/sticker/lovely.svg @@ -0,0 +1,716 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/assets/casper-custom/sticker/twinkle.png b/client/public/assets/casper-custom/sticker/twinkle.png deleted file mode 100644 index 1cadd1ced50bfbb61b15a8210998ebc7b2dc8b31..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11383 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 EFXepXO#lD@ diff --git a/client/public/assets/casper-custom/sticker/twinkle.svg b/client/public/assets/casper-custom/sticker/twinkle.svg new file mode 100644 index 00000000..dd5c0ee4 --- /dev/null +++ b/client/public/assets/casper-custom/sticker/twinkle.svg @@ -0,0 +1,1081 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/src/constants/CasperCustom/casper.ts b/client/src/constants/CasperCustom/casper.ts index 6194326d..803d6207 100644 --- a/client/src/constants/CasperCustom/casper.ts +++ b/client/src/constants/CasperCustom/casper.ts @@ -47,7 +47,7 @@ export const COLOR_OPTION = { R_AMBER: "#FFD96B", R_YELLOW: "#FEFF78", } as const; -const STICKER_OPTION = { +export const STICKER_OPTION = { ELECTRIC: "electric", CHARGE_MAX: "charge-max", CHARGE_NONE: "charge-none", diff --git a/client/src/features/CasperCustom/CasperCard/CasperCardFrontUI.tsx b/client/src/features/CasperCustom/CasperCard/CasperCardFrontUI.tsx index b4a242e1..b8d57c2f 100644 --- a/client/src/features/CasperCustom/CasperCard/CasperCardFrontUI.tsx +++ b/client/src/features/CasperCustom/CasperCard/CasperCardFrontUI.tsx @@ -13,6 +13,7 @@ import { import { SelectedCasperIdxType } from "@/types/casperCustom"; import { getCasperEyesComponent } from "@/utils/CasperCustom/getCasperEyesComponent"; import { getCasperMouthComponent } from "@/utils/CasperCustom/getCasperMouthComponent"; +import { getCasperStickerComponent } from "@/utils/CasperCustom/getCasperStickerComponent"; import CasperEyesLayout from "/public/assets/casper-custom/eyes/layout.svg?react"; import CasperFace from "/public/assets/casper-custom/face.svg?react"; @@ -67,6 +68,10 @@ function CasperCardFrontUI({ CASPER_OPTION[CUSTOM_OPTION.EYES_DIRECTION][selectedEyesDirectionIdx]; const selectedMouth = CASPER_OPTION[CUSTOM_OPTION.MOUTH][selectedMouthIdx]; const selectedColor = CASPER_OPTION[CUSTOM_OPTION.COLOR][selectedColorIdx]; + const selectedSticker = + selectedStickerIdx !== null + ? CASPER_OPTION[CUSTOM_OPTION.STICKER][selectedStickerIdx] + : null; const { CARD_WIDTH, CARD_HEIGHT } = CASPER_CARD_SIZE[size]; const { @@ -85,6 +90,9 @@ function CasperCardFrontUI({ selectedEyesDirection.id ); const CasperMouthSvgComponent = getCasperMouthComponent(selectedMouth.id); + const CasperStickerSvgComponent = getCasperStickerComponent( + selectedSticker !== null ? selectedSticker.id : null + ); return (
- {CasperEyesSvgComponent && ( - - )} - {CasperMouthSvgComponent && ( - - )} + +
- {selectedStickerIdx !== null && ( - 캐스퍼 일렉트릭 봇 스티커 )} diff --git a/client/src/utils/CasperCustom/getCasperEyesComponent.tsx b/client/src/utils/CasperCustom/getCasperEyesComponent.tsx index bf1fbdb8..8b3674f9 100644 --- a/client/src/utils/CasperCustom/getCasperEyesComponent.tsx +++ b/client/src/utils/CasperCustom/getCasperEyesComponent.tsx @@ -27,10 +27,7 @@ import VacantRight from "/public/assets/casper-custom/eyes/vacant-right.svg?reac type EyesOptionType = (typeof EYES_OPTION)[keyof typeof EYES_OPTION]; type EyesDirectionOptionType = (typeof POSITION_OPTION)[keyof typeof POSITION_OPTION]; -const EYES_COMPONENT_MAP: Record< - string, - React.ComponentType> | null -> = { +const EYES_COMPONENT_MAP: Record>> = { "15inch-alloy-center": Alloy15Center, "15inch-alloy-left": Alloy15Left, "15inch-alloy-right": Alloy15Right, @@ -60,7 +57,7 @@ const EYES_COMPONENT_MAP: Record< export function getCasperEyesComponent( eyesOption: EyesOptionType, eyesDirectionOption: EyesDirectionOptionType -): React.ComponentType> | null { +): React.ComponentType> { const componentKey = `${eyesOption}-${eyesDirectionOption}`; return EYES_COMPONENT_MAP[componentKey]; } diff --git a/client/src/utils/CasperCustom/getCasperMouthComponent.tsx b/client/src/utils/CasperCustom/getCasperMouthComponent.tsx index cd56ac04..cbcee6f6 100644 --- a/client/src/utils/CasperCustom/getCasperMouthComponent.tsx +++ b/client/src/utils/CasperCustom/getCasperMouthComponent.tsx @@ -7,17 +7,16 @@ import Smile from "/public/assets/casper-custom/mouth/smile.svg?react"; type MouthOptionType = (typeof MOUTH_OPTION)[keyof typeof MOUTH_OPTION]; -const mouthComponentMap: Record> | null> = - { - cloudy: Cloudy, - expressionless: Expressionsless, - laugh: Laugh, - mocking: Mocking, - smile: Smile, - }; +const mouthComponentMap: Record>> = { + cloudy: Cloudy, + expressionless: Expressionsless, + laugh: Laugh, + mocking: Mocking, + smile: Smile, +}; export function getCasperMouthComponent( mouth: MouthOptionType -): React.ComponentType> | null { +): React.ComponentType> { return mouthComponentMap[mouth]; } diff --git a/client/src/utils/CasperCustom/getCasperStickerComponent.tsx b/client/src/utils/CasperCustom/getCasperStickerComponent.tsx new file mode 100644 index 00000000..371701ee --- /dev/null +++ b/client/src/utils/CasperCustom/getCasperStickerComponent.tsx @@ -0,0 +1,28 @@ +import { STICKER_OPTION } from "@/constants/CasperCustom/casper"; +import ChargeMax from "/public/assets/casper-custom/sticker/charge-max.svg?react"; +import ChargeNone from "/public/assets/casper-custom/sticker/charge-none.svg?react"; +import Electric from "/public/assets/casper-custom/sticker/electric.svg?react"; +import Lovely from "/public/assets/casper-custom/sticker/lovely.svg?react"; +import Twinkle from "/public/assets/casper-custom/sticker/twinkle.svg?react"; + +type StickerOptionType = (typeof STICKER_OPTION)[keyof typeof STICKER_OPTION]; + +const STICKER_COMPONENT_MAP: Record< + string, + React.ComponentType> | null +> = { + "charge-max": ChargeMax, + "charge-none": ChargeNone, + electric: Electric, + lovely: Lovely, + twinkle: Twinkle, +}; + +export function getCasperStickerComponent( + sticker: StickerOptionType | null +): React.ComponentType> | null { + if (sticker === null) { + return null; + } + return STICKER_COMPONENT_MAP[sticker]; +} From ee4bf54fec856695549589417dfbe4597fe20b0c Mon Sep 17 00:00:00 2001 From: jhj2713 Date: Tue, 20 Aug 2024 14:38:42 +0900 Subject: [PATCH 2/4] =?UTF-8?q?fix:=20=EC=83=89=EC=83=81=20=EC=98=88?= =?UTF-8?q?=EC=99=B8=EC=B2=98=EB=A6=AC=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../casper-custom/sticker/charge-max.svg | 12 +- .../casper-custom/sticker/charge-none.svg | 14 +- .../assets/casper-custom/sticker/electric.svg | 920 +++---- .../assets/casper-custom/sticker/lovely.svg | 1428 +++++------ .../assets/casper-custom/sticker/twinkle.svg | 2158 ++++++++--------- client/src/constants/CasperCustom/casper.ts | 39 + .../CasperCard/CasperCardFrontUI.tsx | 14 + client/src/types/casperCustom.ts | 5 +- 8 files changed, 2323 insertions(+), 2267 deletions(-) diff --git a/client/public/assets/casper-custom/sticker/charge-max.svg b/client/public/assets/casper-custom/sticker/charge-max.svg index 59f69fff..5635c085 100644 --- a/client/public/assets/casper-custom/sticker/charge-max.svg +++ b/client/public/assets/casper-custom/sticker/charge-max.svg @@ -1,8 +1,8 @@ - - - - - - + + + + + + diff --git a/client/public/assets/casper-custom/sticker/charge-none.svg b/client/public/assets/casper-custom/sticker/charge-none.svg index 2f980a0e..f77b3507 100644 --- a/client/public/assets/casper-custom/sticker/charge-none.svg +++ b/client/public/assets/casper-custom/sticker/charge-none.svg @@ -1,8 +1,8 @@ - - - - + + + + @@ -14,9 +14,9 @@ - - - + + + diff --git a/client/public/assets/casper-custom/sticker/electric.svg b/client/public/assets/casper-custom/sticker/electric.svg index 9a7e5786..7effe3b5 100644 --- a/client/public/assets/casper-custom/sticker/electric.svg +++ b/client/public/assets/casper-custom/sticker/electric.svg @@ -1,462 +1,462 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/assets/casper-custom/sticker/lovely.svg b/client/public/assets/casper-custom/sticker/lovely.svg index 07dce138..a9868378 100644 --- a/client/public/assets/casper-custom/sticker/lovely.svg +++ b/client/public/assets/casper-custom/sticker/lovely.svg @@ -1,716 +1,716 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/assets/casper-custom/sticker/twinkle.svg b/client/public/assets/casper-custom/sticker/twinkle.svg index dd5c0ee4..e7eb5f0c 100644 --- a/client/public/assets/casper-custom/sticker/twinkle.svg +++ b/client/public/assets/casper-custom/sticker/twinkle.svg @@ -1,1081 +1,1081 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/src/constants/CasperCustom/casper.ts b/client/src/constants/CasperCustom/casper.ts index 803d6207..d7bba833 100644 --- a/client/src/constants/CasperCustom/casper.ts +++ b/client/src/constants/CasperCustom/casper.ts @@ -1,3 +1,5 @@ +import { SelectedColorType, SelectedStickerType } from "@/types/casperCustom"; + export const CUSTOM_OPTION = { EYES: "eyes", EYES_DIRECTION: "eyesDirection", @@ -80,6 +82,43 @@ export const COLOR_BACKGROUND_MAP = [ COLOR_OPTION.R_LIGHTBLUE, ] as const; +export const STICKER_COLOR_MAP = { + [STICKER_OPTION.CHARGE_MAX]: { + default: "#515867", + exception: "#333741", + }, + [STICKER_OPTION.CHARGE_NONE]: { + default: "#5CDD6A", + exception: "#FEFF78", + }, + [STICKER_OPTION.ELECTRIC]: { + default: "#FEFF78", + exception: "#FEFF78", + }, + [STICKER_OPTION.LOVELY]: { + default: "#FF6EB0", + exception: "#11CCF2", + }, + [STICKER_OPTION.TWINKLE]: { + default: "#11CCF2", + exception: "#FEFF78", + }, +} as const; + +export const COLOR_STICKER_EXCEPTION: Partial> = { + [COLOR_OPTION.C_SILVER]: STICKER_OPTION.CHARGE_MAX, + [COLOR_OPTION.R_PURPLE]: STICKER_OPTION.CHARGE_MAX, + [COLOR_OPTION.R_ORANGE]: STICKER_OPTION.CHARGE_NONE, + [COLOR_OPTION.R_INDIGO]: STICKER_OPTION.CHARGE_NONE, + [COLOR_OPTION.R_LIGHTBLUE]: STICKER_OPTION.LOVELY, + [COLOR_OPTION.R_AMBER]: STICKER_OPTION.LOVELY, + [COLOR_OPTION.R_MAGENTA]: STICKER_OPTION.TWINKLE, + [COLOR_OPTION.R_YELLOW]: STICKER_OPTION.TWINKLE, + [COLOR_OPTION.C_BLACK]: STICKER_OPTION.TWINKLE, + [COLOR_OPTION.R_DEEPPURPLE]: STICKER_OPTION.TWINKLE, + [COLOR_OPTION.C_ORANGE]: STICKER_OPTION.TWINKLE, +}; + export const CASPER_Z_INDEX = { CASPER: 2, UNDER_CASPER: 1, diff --git a/client/src/features/CasperCustom/CasperCard/CasperCardFrontUI.tsx b/client/src/features/CasperCustom/CasperCard/CasperCardFrontUI.tsx index b8d57c2f..375c1469 100644 --- a/client/src/features/CasperCustom/CasperCard/CasperCardFrontUI.tsx +++ b/client/src/features/CasperCustom/CasperCard/CasperCardFrontUI.tsx @@ -8,7 +8,9 @@ import { CASPER_SIZE_OPTION, CASPER_Z_INDEX, COLOR_BACKGROUND_MAP, + COLOR_STICKER_EXCEPTION, CUSTOM_OPTION, + STICKER_COLOR_MAP, } from "@/constants/CasperCustom/casper"; import { SelectedCasperIdxType } from "@/types/casperCustom"; import { getCasperEyesComponent } from "@/utils/CasperCustom/getCasperEyesComponent"; @@ -94,6 +96,17 @@ function CasperCardFrontUI({ selectedSticker !== null ? selectedSticker.id : null ); + const getStickerColor = () => { + if (!selectedSticker) { + return ""; + } + + const isException = COLOR_STICKER_EXCEPTION[selectedColor.id] === selectedSticker?.id; + return isException + ? STICKER_COLOR_MAP[selectedSticker.id].exception + : STICKER_COLOR_MAP[selectedSticker.id].default; + }; + return (
; From 572a08785df13cec9df3e9c091d6264d71c52e90 Mon Sep 17 00:00:00 2001 From: jhj2713 Date: Tue, 20 Aug 2024 14:51:22 +0900 Subject: [PATCH 3/4] =?UTF-8?q?chore:=20=EB=B6=88=ED=95=84=EC=9A=94?= =?UTF-8?q?=ED=95=9C=20optional=20=EC=84=A0=EC=96=B8=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/features/CasperCustom/CasperCard/CasperCardFrontUI.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/src/features/CasperCustom/CasperCard/CasperCardFrontUI.tsx b/client/src/features/CasperCustom/CasperCard/CasperCardFrontUI.tsx index 375c1469..bef524d2 100644 --- a/client/src/features/CasperCustom/CasperCard/CasperCardFrontUI.tsx +++ b/client/src/features/CasperCustom/CasperCard/CasperCardFrontUI.tsx @@ -101,7 +101,7 @@ function CasperCardFrontUI({ return ""; } - const isException = COLOR_STICKER_EXCEPTION[selectedColor.id] === selectedSticker?.id; + const isException = COLOR_STICKER_EXCEPTION[selectedColor.id] === selectedSticker.id; return isException ? STICKER_COLOR_MAP[selectedSticker.id].exception : STICKER_COLOR_MAP[selectedSticker.id].default; From 46073b7a975e2b634bd9ef78874d573414e4db1c Mon Sep 17 00:00:00 2001 From: jhj2713 Date: Tue, 20 Aug 2024 14:55:35 +0900 Subject: [PATCH 4/4] =?UTF-8?q?refactor:=20=ED=83=80=EC=9E=85=20=EC=84=A0?= =?UTF-8?q?=EC=96=B8=20=EC=9C=84=EC=B9=98=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- client/src/constants/CasperCustom/casper.ts | 4 ++-- client/src/types/casperCustom.ts | 16 +++++++++++++--- .../CasperCustom/getCasperEyesComponent.tsx | 5 +---- .../CasperCustom/getCasperMouthComponent.tsx | 4 +--- .../CasperCustom/getCasperStickerComponent.tsx | 4 +--- 5 files changed, 18 insertions(+), 15 deletions(-) diff --git a/client/src/constants/CasperCustom/casper.ts b/client/src/constants/CasperCustom/casper.ts index d7bba833..0adfae47 100644 --- a/client/src/constants/CasperCustom/casper.ts +++ b/client/src/constants/CasperCustom/casper.ts @@ -1,4 +1,4 @@ -import { SelectedColorType, SelectedStickerType } from "@/types/casperCustom"; +import { ColorOptionType, StickerOptionType } from "@/types/casperCustom"; export const CUSTOM_OPTION = { EYES: "eyes", @@ -105,7 +105,7 @@ export const STICKER_COLOR_MAP = { }, } as const; -export const COLOR_STICKER_EXCEPTION: Partial> = { +export const COLOR_STICKER_EXCEPTION: Partial> = { [COLOR_OPTION.C_SILVER]: STICKER_OPTION.CHARGE_MAX, [COLOR_OPTION.R_PURPLE]: STICKER_OPTION.CHARGE_MAX, [COLOR_OPTION.R_ORANGE]: STICKER_OPTION.CHARGE_NONE, diff --git a/client/src/types/casperCustom.ts b/client/src/types/casperCustom.ts index be651ad8..945e4369 100644 --- a/client/src/types/casperCustom.ts +++ b/client/src/types/casperCustom.ts @@ -1,8 +1,18 @@ import { Dispatch } from "react"; -import { COLOR_OPTION, CUSTOM_OPTION, STICKER_OPTION } from "@/constants/CasperCustom/casper"; +import { + COLOR_OPTION, + CUSTOM_OPTION, + EYES_OPTION, + MOUTH_OPTION, + POSITION_OPTION, + STICKER_OPTION, +} from "@/constants/CasperCustom/casper"; -export type SelectedColorType = (typeof COLOR_OPTION)[keyof typeof COLOR_OPTION]; -export type SelectedStickerType = (typeof STICKER_OPTION)[keyof typeof STICKER_OPTION]; +export type ColorOptionType = (typeof COLOR_OPTION)[keyof typeof COLOR_OPTION]; +export type StickerOptionType = (typeof STICKER_OPTION)[keyof typeof STICKER_OPTION]; +export type EyesOptionType = (typeof EYES_OPTION)[keyof typeof EYES_OPTION]; +export type EyesDirectionOptionType = (typeof POSITION_OPTION)[keyof typeof POSITION_OPTION]; +export type MouthOptionType = (typeof MOUTH_OPTION)[keyof typeof MOUTH_OPTION]; export type CustomOptionType = (typeof CUSTOM_OPTION)[keyof typeof CUSTOM_OPTION]; type CasperFaceKeys = Exclude; diff --git a/client/src/utils/CasperCustom/getCasperEyesComponent.tsx b/client/src/utils/CasperCustom/getCasperEyesComponent.tsx index 8b3674f9..a0338402 100644 --- a/client/src/utils/CasperCustom/getCasperEyesComponent.tsx +++ b/client/src/utils/CasperCustom/getCasperEyesComponent.tsx @@ -1,4 +1,4 @@ -import { EYES_OPTION, POSITION_OPTION } from "@/constants/CasperCustom/casper"; +import { EyesDirectionOptionType, EyesOptionType } from "@/types/casperCustom"; import Alloy15Center from "/public/assets/casper-custom/eyes/15inch-alloy-center.svg?react"; import Alloy15Left from "/public/assets/casper-custom/eyes/15inch-alloy-left.svg?react"; import Alloy15Right from "/public/assets/casper-custom/eyes/15inch-alloy-right.svg?react"; @@ -24,9 +24,6 @@ import VacantCenter from "/public/assets/casper-custom/eyes/vacant-center.svg?re import VacantLeft from "/public/assets/casper-custom/eyes/vacant-left.svg?react"; import VacantRight from "/public/assets/casper-custom/eyes/vacant-right.svg?react"; -type EyesOptionType = (typeof EYES_OPTION)[keyof typeof EYES_OPTION]; -type EyesDirectionOptionType = (typeof POSITION_OPTION)[keyof typeof POSITION_OPTION]; - const EYES_COMPONENT_MAP: Record>> = { "15inch-alloy-center": Alloy15Center, "15inch-alloy-left": Alloy15Left, diff --git a/client/src/utils/CasperCustom/getCasperMouthComponent.tsx b/client/src/utils/CasperCustom/getCasperMouthComponent.tsx index cbcee6f6..85a31df6 100644 --- a/client/src/utils/CasperCustom/getCasperMouthComponent.tsx +++ b/client/src/utils/CasperCustom/getCasperMouthComponent.tsx @@ -1,12 +1,10 @@ -import { MOUTH_OPTION } from "@/constants/CasperCustom/casper"; +import { MouthOptionType } from "@/types/casperCustom"; import Cloudy from "/public/assets/casper-custom/mouth/cloudy.svg?react"; import Expressionsless from "/public/assets/casper-custom/mouth/expressionless.svg?react"; import Laugh from "/public/assets/casper-custom/mouth/laugh.svg?react"; import Mocking from "/public/assets/casper-custom/mouth/mocking.svg?react"; import Smile from "/public/assets/casper-custom/mouth/smile.svg?react"; -type MouthOptionType = (typeof MOUTH_OPTION)[keyof typeof MOUTH_OPTION]; - const mouthComponentMap: Record>> = { cloudy: Cloudy, expressionless: Expressionsless, diff --git a/client/src/utils/CasperCustom/getCasperStickerComponent.tsx b/client/src/utils/CasperCustom/getCasperStickerComponent.tsx index 371701ee..3e1732d1 100644 --- a/client/src/utils/CasperCustom/getCasperStickerComponent.tsx +++ b/client/src/utils/CasperCustom/getCasperStickerComponent.tsx @@ -1,12 +1,10 @@ -import { STICKER_OPTION } from "@/constants/CasperCustom/casper"; +import { StickerOptionType } from "@/types/casperCustom"; import ChargeMax from "/public/assets/casper-custom/sticker/charge-max.svg?react"; import ChargeNone from "/public/assets/casper-custom/sticker/charge-none.svg?react"; import Electric from "/public/assets/casper-custom/sticker/electric.svg?react"; import Lovely from "/public/assets/casper-custom/sticker/lovely.svg?react"; import Twinkle from "/public/assets/casper-custom/sticker/twinkle.svg?react"; -type StickerOptionType = (typeof STICKER_OPTION)[keyof typeof STICKER_OPTION]; - const STICKER_COMPONENT_MAP: Record< string, React.ComponentType> | null