From 554db4fe3190cc6c9a46d28e6742c9ffdc3e2132 Mon Sep 17 00:00:00 2001 From: Albin Henriksson <albhe428@student.liu.se> Date: Tue, 18 May 2021 08:43:11 +0000 Subject: [PATCH] Resolve "Disable timer when info slide" --- .../components/SlideSettings.tsx | 4 +++- .../slideSettingsComponents/SlideType.tsx | 23 ++++++------------- 2 files changed, 10 insertions(+), 17 deletions(-) diff --git a/client/src/pages/presentationEditor/components/SlideSettings.tsx b/client/src/pages/presentationEditor/components/SlideSettings.tsx index 029187f4..6b4a8d5e 100644 --- a/client/src/pages/presentationEditor/components/SlideSettings.tsx +++ b/client/src/pages/presentationEditor/components/SlideSettings.tsx @@ -33,7 +33,9 @@ const SlideSettings: React.FC = () => { <SettingsList> {activeSlide && <SlideType activeSlide={activeSlide} competitionId={competitionId} />} <Divider /> - {activeSlide && <Timer activeSlide={activeSlide} competitionId={competitionId} />} + {activeSlide && Boolean(activeSlide.questions[0]) && ( + <Timer activeSlide={activeSlide} competitionId={competitionId} /> + )} </SettingsList> {activeSlide?.questions[0] && <QuestionSettings activeSlide={activeSlide} competitionId={competitionId} />} diff --git a/client/src/pages/presentationEditor/components/slideSettingsComponents/SlideType.tsx b/client/src/pages/presentationEditor/components/slideSettingsComponents/SlideType.tsx index d611380e..e9c3cd43 100644 --- a/client/src/pages/presentationEditor/components/slideSettingsComponents/SlideType.tsx +++ b/client/src/pages/presentationEditor/components/slideSettingsComponents/SlideType.tsx @@ -53,7 +53,6 @@ const SlideType = ({ activeSlide, competitionId }: SlideTypeProps) => { closeSlideTypeDialog() if (activeSlide) { if (activeSlide.questions?.[0] && activeSlide.questions[0].type_id !== selectedSlideType) { - deleteQuestionComponent(questionComponentId) if (selectedSlideType === 0) { // Change slide type from a question type to information await axios @@ -78,13 +77,13 @@ const SlideType = ({ activeSlide, competitionId }: SlideTypeProps) => { total_score: 0, type_id: selectedSlideType, }) - .then(() => { + .then(({ data }) => { dispatch(getEditorCompetition(competitionId)) - removeQuestionComponent().then(() => createQuestionComponent()) + removeQuestionComponent().then(() => createQuestionComponent(data.id)) }) .catch(console.log) } - } else if (activeSlide.questions[0].type_id === 0 && selectedSlideType !== 0) { + } else if (!activeSlide.questions[0] && selectedSlideType !== 0) { // Change slide type from information to a question type await axios .post(`/api/competitions/${competitionId}/slides/${activeSlide.id}/questions`, { @@ -92,16 +91,16 @@ const SlideType = ({ activeSlide, competitionId }: SlideTypeProps) => { total_score: 0, type_id: selectedSlideType, }) - .then(() => { + .then(({ data }) => { dispatch(getEditorCompetition(competitionId)) - createQuestionComponent() + createQuestionComponent(data.id) }) .catch(console.log) } } } - const createQuestionComponent = async () => { + const createQuestionComponent = async (question_id: number) => { await axios .post(`/api/competitions/${competitionId}/slides/${activeSlide.id}/components`, { x: 0, @@ -110,7 +109,7 @@ const SlideType = ({ activeSlide, competitionId }: SlideTypeProps) => { h: 250, type_id: 3, view_type_id: 1, - question_id: activeSlide.questions[0].id, + question_id, }) .then(() => { dispatch(getEditorCompetition(competitionId)) @@ -127,14 +126,6 @@ const SlideType = ({ activeSlide, competitionId }: SlideTypeProps) => { } } - const deleteQuestionComponent = (componentId: number | undefined) => { - if (componentId) { - axios - .delete(`/api/competitions/${competitionId}/slides/${activeSlide.id}/components/${componentId}`) - .catch(console.log) - } - } - return ( <FirstItem> <ListItem> -- GitLab