@@ -20,6 +20,7 @@ import { STORAGE_KEYS } from "@Constant/storageKeys";
2020import MotionJson from "@Assets/motion/motion.json" ;
2121import { download } from "@Utils/download" ;
2222import getCurrentDate from "@Utils/dateExtension" ;
23+ import { twMerge } from "tailwind-merge" ;
2324
2425interface CheatLayoutProps {
2526 children : ReactNode ;
@@ -29,7 +30,7 @@ export default function CheatLayout({ children }: CheatLayoutProps) {
2930 return (
3031 < >
3132 { createPortal (
32- < div className = "absolute top-1 right-5 py-3 flex w-fit" >
33+ < div className = { twMerge ( "absolute top-1 right-5 py-3 flex w-fit" ) } >
3334 < MotionSettingButton />
3435 </ div > ,
3536 document . body
@@ -76,10 +77,18 @@ function MotionSettingModal({ isOpen, onClose }: MotionSettingModalProps) {
7677 < >
7778 { createPortal (
7879 < FormProvider { ...form } >
79- < div className = "absolute bg-[rgb(209,213,219)] top-1 flex w-[calc(100%-16px)] left-0 right-0 m-auto py-4 px-2 rounded-lg flex-col gap-2 z-10" >
80- < div className = "flex justify-between w-full items-center" >
81- < p className = "font-yClover text-base font-bold" > 모션 설정</ p >
82- < div className = "flex gap-2" >
80+ < div
81+ className = { twMerge (
82+ "absolute bg-[rgb(209,213,219)] top-1 flex w-[calc(100%-16px)] left-0 right-0 m-auto py-4 px-2 rounded-lg flex-col gap-2 z-10"
83+ ) }
84+ >
85+ < div
86+ className = { twMerge ( "flex justify-between w-full items-center" ) }
87+ >
88+ < p className = { twMerge ( "font-yClover text-base font-bold" ) } >
89+ 모션 설정
90+ </ p >
91+ < div className = { twMerge ( "flex gap-2" ) } >
8392 < Button variant = { "primary" } onClick = { form . handleSubmit ( store ) } >
8493 저장
8594 </ Button >
@@ -97,7 +106,9 @@ function MotionSettingModal({ isOpen, onClose }: MotionSettingModalProps) {
97106 </ Button >
98107 </ div >
99108 </ div >
100- < form className = "flex flex-col h-[500px] overflow-auto gap-1" >
109+ < form
110+ className = { twMerge ( "flex flex-col h-[500px] overflow-auto gap-1" ) }
111+ >
101112 { Object . entries ( motionJson ) . map ( ( [ key , value ] ) => {
102113 return (
103114 < SettingArea
@@ -129,9 +140,15 @@ function SettingArea<T extends MotionJsonKeyType>({
129140 } ) ;
130141
131142 return (
132- < div className = "flex flex-col gap-2 rounded-sm border border-sky-100 border-solid py-2 px-1" >
133- < div className = "flex flex-row items-center w-full gap-4" >
134- < p className = "font-yClover font-normal text-[14px] w-[180px]" >
143+ < div
144+ className = { twMerge (
145+ "flex flex-col gap-2 rounded-sm border border-sky-100 border-solid py-2 px-1"
146+ ) }
147+ >
148+ < div className = { twMerge ( "flex flex-row items-center w-full gap-4" ) } >
149+ < p
150+ className = { twMerge ( "font-yClover font-normal text-[14px] w-[180px]" ) }
151+ >
135152 { keyName }
136153 </ p >
137154 < Button variant = { "primary" } onClick = { ( ) => append ( { } ) } >
@@ -152,11 +169,13 @@ function SettingArea<T extends MotionJsonKeyType>({
152169 />
153170 < SettingInput label = "originX" { ...register ( `${ keyName } .originX` ) } />
154171 < SettingInput label = "originY" { ...register ( `${ keyName } .originY` ) } />
155- < div className = "border-sky-100 border-solid flex flex-col gap-2" >
172+ < div
173+ className = { twMerge ( "border-sky-100 border-solid flex flex-col gap-2" ) }
174+ >
156175 { fields . map ( ( item , idx ) => {
157176 return (
158- < div key = { item . id } className = "flex flex-row gap-2" >
159- < div className = "flex flex-col" >
177+ < div key = { item . id } className = { twMerge ( "flex flex-row gap-2" ) } >
178+ < div className = { twMerge ( "flex flex-col" ) } >
160179 { [ "x" , "y" , "rotate" , "opacity" , "ease" , "scale" ] . map ( ( key ) => {
161180 const formName = `${ keyName } .to[${ idx } ].${ key } ` as const ;
162181 return (
@@ -186,9 +205,14 @@ interface SettingInputProps extends ComponentProps<"input"> {
186205const SettingInput = forwardRef < HTMLInputElement , SettingInputProps > (
187206 ( { label, ...props } , ref ) => {
188207 return (
189- < div className = "flex gap-2 items-center" >
190- < label className = "w-[80px] font-yClover" > { label } </ label >
191- < input ref = { ref } className = "p-1" placeholder = "입력" { ...props } />
208+ < div className = { twMerge ( "flex gap-2 items-center" ) } >
209+ < label className = { twMerge ( "w-[80px] font-yClover" ) } > { label } </ label >
210+ < input
211+ ref = { ref }
212+ className = { twMerge ( "p-1" ) }
213+ placeholder = "입력"
214+ { ...props }
215+ />
192216 </ div >
193217 ) ;
194218 }
0 commit comments