@@ -42,7 +42,7 @@ const InputWrapper = memo(
4242 />
4343 { ! autoFocus && (
4444 < S . IconWrapper onClick = { ( ) => onFocus ( name ) } >
45- < Icon id = 'pencil' fill = 'none' width = { 13 } height = { 13 } />
45+ < Icon id = 'pencil' fill = 'none' width = { 13 } height = { 13 } />
4646 </ S . IconWrapper >
4747 ) }
4848 </ S . InputBox >
@@ -186,6 +186,15 @@ export default function DetailEditPage() {
186186 }
187187 }
188188 } , [ inputData , badges ] ) ;
189+ useEffect ( ( ) => {
190+ if ( selectedImage . frontImg || selectedImage . backImg ) {
191+ setInfo ( ( prev ) => ( {
192+ ...prev ,
193+ frontImg : selectedImage . frontImg ,
194+ backImg : selectedImage . backImg ,
195+ } ) ) ;
196+ }
197+ } , [ selectedImage ] ) ;
189198
190199 const handleGroupChange = ( updatedBadges ) => {
191200 setBadges ( updatedBadges ) ;
@@ -219,20 +228,21 @@ export default function DetailEditPage() {
219228 const handleImageUpload = async ( e , target ) => {
220229 const file = e . target . files [ 0 ] ;
221230 if ( file ) {
222- // 미리보기 이미지 URL 생성
223231 const newImageUrl = URL . createObjectURL ( file ) ;
224232
225- // info 상태를 업데이트하여 미리보기 화면에 반영
226- setInfo ( ( prev ) => ( {
227- ...prev ,
228- [ `${ target } Url` ] : newImageUrl , // frontImgUrl 또는 backImgUrl에 미리보기 URL 추가
229- } ) ) ;
233+ setSelectedImage ( ( prev ) => {
234+ const updated = { ...prev , [ target ] : newImageUrl } ;
235+ return updated ;
236+ } ) ;
230237
231238 const updatedFiles = { ...selectedFiles , [ target ] : file } ;
232239 setSelectedFiles ( updatedFiles ) ;
240+ setInfo ( ( prev ) => ( {
241+ ...prev ,
242+ [ `${ target } Url` ] : newImageUrl ,
243+ } ) ) ;
233244
234245 try {
235- // frontImg와 backImg가 모두 있는 경우에만 API 호출
236246 if ( updatedFiles . frontImg && updatedFiles . backImg ) {
237247 const combinedFormData = new FormData ( ) ;
238248 combinedFormData . append ( 'frontImg' , updatedFiles . frontImg ) ;
@@ -261,12 +271,15 @@ export default function DetailEditPage() {
261271 } ) ;
262272
263273 const handleEditComplete = async ( ) => {
274+ if ( ! selectedFiles . frontImg || ! selectedFiles . backImg ) {
275+ alert ( '두 이미지를 모두 수정해주세요.' ) ;
276+ return ;
277+ }
264278 const updatedData = updatedDataForm ( ) ;
265279 if ( activeBadge ) {
266280 updatedData . categoryName = activeBadge . name ;
267281 }
268282
269- // 이미지 데이터는 각각 따로 관리해서 null로 덮어씌워지지 않도록 처리
270283 if ( selectedFiles . frontImg && selectedFiles . backImg ) {
271284 updatedData . frontImg = selectedFiles . frontImg ;
272285 updatedData . backImg = selectedFiles . backImg ;
@@ -399,14 +412,11 @@ export default function DetailEditPage() {
399412 < S . CardAddImageContainer >
400413 < S . GroupButtonBar > 명함 이미지</ S . GroupButtonBar >
401414 < S . CardImageContainer >
402- { ( info . frontImg && info . backImg ) ||
403- ( selectedImage . frontImg && selectedImage . backImg ) ? (
415+ { ( info . frontImg || info . backImg ) &&
416+ ( selectedImage . frontImg || selectedImage . backImg ) ? (
404417 < >
405418 < S . CardImageBox >
406- < img
407- src = { selectedImage . frontImg || info . frontImg }
408- alt = '사진 1'
409- />
419+ < img src = { selectedImage . frontImg || info . frontImg } alt = '' />
410420 < S . CardGalleryIcon >
411421 < Icon
412422 id = 'gallery'
@@ -425,10 +435,7 @@ export default function DetailEditPage() {
425435 </ S . CardGalleryIcon >
426436 </ S . CardImageBox >
427437 < S . CardImageBox >
428- < img
429- src = { selectedImage . backImg || info . backImg }
430- alt = '사진 2'
431- />
438+ < img src = { selectedImage . backImg || info . backImg } alt = '' />
432439 < S . CardGalleryIcon >
433440 < Icon
434441 id = 'gallery'
0 commit comments