From d005507d551bb8ff324fbefcdcf4717e9fcdfeba Mon Sep 17 00:00:00 2001 From: shuai Date: Mon, 13 Feb 2023 15:23:20 +0800 Subject: [PATCH] fix: cancel the front-end verification on the question page --- ui/src/pages/Questions/Ask/index.tsx | 58 ++++------------------------ ui/src/utils/common.ts | 7 ++++ 2 files changed, 14 insertions(+), 51 deletions(-) diff --git a/ui/src/pages/Questions/Ask/index.tsx b/ui/src/pages/Questions/Ask/index.tsx index b5cce8db..da0897f3 100644 --- a/ui/src/pages/Questions/Ask/index.tsx +++ b/ui/src/pages/Questions/Ask/index.tsx @@ -110,25 +110,25 @@ const Ask = () => { const handleTitleChange = (e: React.ChangeEvent) => { setFormData({ ...formData, - title: { ...formData.title, value: e.currentTarget.value }, + title: { ...formData.title, value: e.currentTarget.value, errorMsg: '' }, }); }; const handleContentChange = (value: string) => { setFormData({ ...formData, - content: { ...formData.content, value }, + content: { ...formData.content, value, errorMsg: '' }, }); }; const handleTagsChange = (value) => setFormData({ ...formData, - tags: { ...formData.tags, value }, + tags: { ...formData.tags, value, errorMsg: '' }, }); const handleAnswerChange = (value: string) => setFormData({ ...formData, - answer: { ...formData.answer, value }, + answer: { ...formData.answer, value, errorMsg: '' }, }); const handleSummaryChange = (evt: React.ChangeEvent) => @@ -140,55 +140,9 @@ const Ask = () => { }, }); - const checkValidated = (): boolean => { - const bol = true; - const { title, content, tags, answer } = formData; - if (title.value && Array.from(title.value).length <= 150) { - formData.title = { - value: title.value, - isInvalid: false, - errorMsg: '', - }; - } - - if (content.value) { - formData.content = { - value: content.value, - isInvalid: false, - errorMsg: '', - }; - } - - if (Array.isArray(tags.value) && tags.value.length > 0) { - formData.tags = { - value: tags.value, - isInvalid: false, - errorMsg: '', - }; - } - - if (checked) { - if (answer.value) { - formData.answer = { - value: answer.value, - isInvalid: false, - errorMsg: '', - }; - } - } - - setFormData({ - ...formData, - }); - return bol; - }; - const handleSubmit = async (event: React.FormEvent) => { event.preventDefault(); event.stopPropagation(); - if (!checkValidated()) { - return; - } const params: Type.QuestionParams = { title: formData.title.value, @@ -232,7 +186,9 @@ const Ask = () => { }) .catch((err) => { if (err.isError) { - const data = handleFormError(err, formData); + const data = handleFormError(err, formData, [ + { from: 'content', to: 'answer' }, + ]); setFormData({ ...data }); } }); diff --git a/ui/src/utils/common.ts b/ui/src/utils/common.ts index c48c01bd..6cd8f8ec 100644 --- a/ui/src/utils/common.ts +++ b/ui/src/utils/common.ts @@ -168,9 +168,16 @@ function labelStyle(color, hover) { function handleFormError( error: { list: Array<{ error_field: string; error_msg: string }> }, data: any, + keymap?: Array<{ from: string; to: string }>, ) { if (error.list?.length > 0) { error.list.forEach((item) => { + if (keymap?.length) { + const key = keymap.find((k) => k.from === item.error_field); + if (key) { + item.error_field = key.to; + } + } const errorFieldObject = data[item.error_field]; if (errorFieldObject) { errorFieldObject.isInvalid = true;