fix(question): add field summary for question edit

This commit is contained in:
haitao(lj) 2022-11-23 14:13:03 +08:00
parent d9d4e6a204
commit f3b00e8f0f
3 changed files with 42 additions and 3 deletions

View File

@ -497,6 +497,11 @@ ui:
label: Answer
msg:
empty: Answer cannot be empty.
edit_summary:
label: Edit Summary
placeholder: >-
Briefly explain your changes (corrected spelling, fixed grammar,
improved formatting)
btn_post_question: Post your question
btn_save_edits: Save edits
answer_question: Answer your own question

View File

@ -25,6 +25,7 @@ interface FormDataItem {
tags: Type.FormValue<Type.Tag[]>;
content: Type.FormValue<string>;
answer: Type.FormValue<string>;
edit_summary: Type.FormValue<string>;
}
const initFormData = {
title: {
@ -47,9 +48,15 @@ const initFormData = {
isInvalid: false,
errorMsg: '',
},
edit_summary: {
value: '',
isInvalid: false,
errorMsg: '',
},
};
const Ask = () => {
const { t } = useTranslation('translation', { keyPrefix: 'ask' });
const [formData, setFormData] = useState<FormDataItem>(initFormData);
const [checked, setCheckState] = useState(false);
const [focusType, setForceType] = useState('');
@ -63,7 +70,6 @@ const Ask = () => {
const { qid } = useParams();
const navigate = useNavigate();
const { t } = useTranslation('translation', { keyPrefix: 'ask' });
const isEdit = qid !== undefined;
const { data: similarQuestions = { list: [] } } = useQueryQuestionByTitle(
@ -114,6 +120,15 @@ const Ask = () => {
answer: { ...formData.answer, value },
});
const handleSummaryChange = (evt: React.ChangeEvent<HTMLInputElement>) =>
setFormData({
...formData,
edit_summary: {
...formData.edit_summary,
value: evt.currentTarget.value,
},
});
const checkValidated = (): boolean => {
let bol = true;
const { title, content, tags, answer } = formData;
@ -205,7 +220,11 @@ const Ask = () => {
tags: formData.tags.value,
};
if (isEdit) {
modifyQuestion({ ...params, id: qid })
modifyQuestion({
...params,
id: qid,
edit_summary: formData.edit_summary.value,
})
.then(() => {
navigate(`/questions/${qid}`);
})
@ -354,6 +373,21 @@ const Ask = () => {
{formData.tags.errorMsg}
</Form.Control.Feedback>
</Form.Group>
{isEdit && (
<Form.Group controlId="edit_summary" className="my-3">
<Form.Label>{t('form.fields.edit_summary.label')}</Form.Label>
<Form.Control
type="text"
defaultValue={formData.edit_summary.value}
isInvalid={formData.edit_summary.isInvalid}
placeholder={t('form.fields.edit_summary.placeholder')}
onChange={handleSummaryChange}
/>
<Form.Control.Feedback type="invalid">
{formData.edit_summary.errorMsg}
</Form.Control.Feedback>
</Form.Group>
)}
{!checked && (
<div className="mt-3">
<Button type="submit" className="me-2">

View File

@ -73,7 +73,7 @@ export const useQueryAnswerInfo = (id: string) => {
};
export const modifyQuestion = (
params: Type.QuestionParams & { id: string },
params: Type.QuestionParams & { id: string; edit_summary: string },
) => {
return request.put(`/answer/api/v1/question`, params);
};