11<template >
22 <div class =" flex flex-col gap-y-6" >
33 <ModalView
4- :isOpen =" isModalVisible "
4+ :isOpen =" isSuccessModalVisible "
55 :type =" 'successType'"
6- @close =" isModalVisible = !isModalVisible " >
6+ @close =" isSuccessModalVisible = !isSuccessModalVisible " >
77 <template #header >정보가 수정되었습니다</template >
88 </ModalView >
99
1717 </ModalView >
1818
1919 <ModalView
20- :isOpen =" isFailModalVisible "
21- :type =" 'failType' "
22- @click =" failModalToggle "
23- @close =" failModalToggle " >
24- <template #header >{{ failHeader }}</template >
25- <template #body >{{ failBody }}</template >
20+ :isOpen =" isModalVisible "
21+ :type =" modalType "
22+ @click =" modalToggle "
23+ @close =" modalToggle " >
24+ <template #header >{{ modalHeader }}</template >
25+ <template #body >{{ modalBody }}</template >
2626 </ModalView >
2727
2828 <div class =" profile" >
@@ -154,12 +154,14 @@ const isInvalid = ref(false)
154154const isFull = ref (false )
155155const nameInput = ref <HTMLInputElement | null >(null )
156156
157- const isModalVisible = ref (false )
157+ const isSuccessModalVisible = ref (false )
158158const isWarnningModalVisible = ref (false )
159- const isFailModalVisible = ref (false )
159+ const isModalVisible = ref (false )
160+
161+ const modalType = ref (' ' )
160162
161- const failHeader = ref (' ' )
162- const failBody = ref (' ' )
163+ const modalHeader = ref (' ' )
164+ const modalBody = ref (' ' )
163165
164166const nameError = ref (' ' )
165167
@@ -215,8 +217,8 @@ const warningModalToggle = () => {
215217 isWarnningModalVisible .value = ! isWarnningModalVisible .value
216218}
217219
218- const failModalToggle = () => {
219- isFailModalVisible .value = ! isFailModalVisible .value
220+ const modalToggle = () => {
221+ isModalVisible .value = ! isModalVisible .value
220222}
221223
222224const handleFileUpload = (event : Event ) => {
@@ -228,23 +230,26 @@ const handleFileUpload = (event: Event) => {
228230 const fileExtension = fileName .split (' .' ).pop ()
229231
230232 if (! fileExtension || ! ALLOWED_FILE_EXTENSIONS .includes (fileExtension )) {
231- failHeader .value = ' 지원하지 않는 파일입니다'
232- failBody .value = ' jpg, jpeg, png, gif, bmp 파일만 업로드 가능합니다'
233- failModalToggle ()
233+ modalHeader .value = ' 지원하지 않는 파일입니다'
234+ modalBody .value = ' jpg, jpeg, png, gif, bmp 파일만 업로드 가능합니다'
235+ modalType .value = ' failType'
236+ modalToggle ()
234237 return
235238 }
236239 if (! ALLOWED_FILE_EXTENSIONS_IMAGE .includes (file .type )) {
237- failHeader .value = ' 파일 타입을 확인해주세요'
238- failBody .value = ' 파일 타입과 확장자명이 일치해야합니다'
239- failModalToggle ()
240+ modalHeader .value = ' 파일 타입을 확인해주세요'
241+ modalBody .value = ' 파일 타입과 확장자명이 일치해야합니다'
242+ modalType .value = ' failType'
243+ modalToggle ()
240244 return
241245 }
242246
243247 const newFiles = Array .from (target .files ).filter (file => file .size <= 5 * 1024 * 1024 )
244248 if (newFiles .length !== target .files .length ) {
245- failHeader .value = ' 이미지 용량을 확인해주세요'
246- failBody .value = ' 이미지 용량은 5mb까지 가능합니다'
247- failModalToggle ()
249+ modalHeader .value = ' 이미지 용량을 확인해주세요'
250+ modalBody .value = ' 이미지 용량은 5mb까지 가능합니다'
251+ modalType .value = ' failType'
252+ modalToggle ()
248253 return
249254 }
250255
@@ -261,6 +266,11 @@ const handleFileDelete = () => {
261266}
262267
263268const handleSubmit = async () => {
269+ modalHeader .value = ' 정보 수정 중 입니다...'
270+ modalBody .value = ' 잠시만 기다려주세요'
271+ modalType .value = ' loadingType'
272+ isModalVisible .value = true
273+
264274 if (isInvalid .value == false && isFull .value == false ) {
265275 const formData = new FormData ()
266276 const memberInfo = {
@@ -281,7 +291,8 @@ const handleSubmit = async () => {
281291 }
282292
283293 await patchEditInfo (formData )
284- isModalVisible .value = true
294+ isModalVisible .value = false
295+ isSuccessModalVisible .value = true
285296 await memberStore .updateMemberInfoWithToken ()
286297 }
287298}
0 commit comments