관리자 글쓰기 슬러그와 미디어 선택 UX 개선
This commit is contained in:
@@ -72,6 +72,14 @@ const showToast = (type, message) => {
|
||||
}, 3200)
|
||||
}
|
||||
|
||||
/**
|
||||
* 저장 오류가 슬러그 중복인지 확인한다.
|
||||
* @param {unknown} error - 저장 오류
|
||||
* @returns {boolean} 슬러그 중복 오류 여부
|
||||
*/
|
||||
const isDuplicateSlugError = (error) => Number(error?.statusCode || error?.status || error?.response?.status) === 409
|
||||
&& String(error?.data?.message || error?.message || '').includes('슬러그')
|
||||
|
||||
/**
|
||||
* 새 게시물 미리보기
|
||||
* @param {Object} payload - 게시물 입력값
|
||||
@@ -111,6 +119,13 @@ const savePost = async (payload) => {
|
||||
}))
|
||||
await navigateTo(`/admin/posts/${post.id}`)
|
||||
} catch (error) {
|
||||
if (isDuplicateSlugError(error)) {
|
||||
window.clearTimeout(toastTimer)
|
||||
toast.value = null
|
||||
errorMessage.value = ''
|
||||
postForm.value?.markSlugError('이미 사용 중인 슬러그입니다.')
|
||||
return
|
||||
}
|
||||
errorMessage.value = error?.data?.message || '글을 저장하지 못했습니다.'
|
||||
showToast('error', errorMessage.value)
|
||||
} finally {
|
||||
@@ -149,6 +164,13 @@ const createDraftAutosave = async (payload, options = {}) => {
|
||||
} catch (error) {
|
||||
const msg = error?.data?.message || error?.message || '자동 저장에 실패했습니다.'
|
||||
postForm.value?.markAutosaveFailed(payload)
|
||||
if (isDuplicateSlugError(error)) {
|
||||
window.clearTimeout(toastTimer)
|
||||
toast.value = null
|
||||
errorMessage.value = ''
|
||||
postForm.value?.markSlugError('이미 사용 중인 슬러그입니다.')
|
||||
return
|
||||
}
|
||||
errorMessage.value = msg
|
||||
showToast('error', msg)
|
||||
} finally {
|
||||
|
||||
Reference in New Issue
Block a user