From 11c063fc886495ba804dc7d05e9b3b2feb6f492e Mon Sep 17 00:00:00 2001 From: Albin Henriksson <albhe428@student.liu.se> Date: Wed, 21 Apr 2021 11:15:01 +0000 Subject: [PATCH] Resolve "Use duplicate api" --- .../admin/competitions/CompetitionManager.tsx | 16 +++++++++++++++- client/src/pages/login/components/AdminLogin.tsx | 4 +--- .../PresentationEditorPage.tsx | 7 ++----- 3 files changed, 18 insertions(+), 9 deletions(-) diff --git a/client/src/pages/admin/competitions/CompetitionManager.tsx b/client/src/pages/admin/competitions/CompetitionManager.tsx index 6c7da5db..81e644ad 100644 --- a/client/src/pages/admin/competitions/CompetitionManager.tsx +++ b/client/src/pages/admin/competitions/CompetitionManager.tsx @@ -83,6 +83,20 @@ const CompetitionManager: React.FC = (props: any) => { } } + const handleDuplicateCompetition = async () => { + if (activeId) { + await axios + .post(`/competitions/${activeId}/copy`) + .then(() => { + setAnchorEl(null) + dispatch(getCompetitions()) + }) + .catch(({ response }) => { + console.warn(response.data) + }) + } + } + const handleFilterChange = (newParams: CompetitionFilterParams) => { dispatch(setFilterParams(newParams)) dispatch(getCompetitions()) @@ -177,7 +191,7 @@ const CompetitionManager: React.FC = (props: any) => { /> <Menu id="simple-menu" anchorEl={anchorEl} keepMounted open={Boolean(anchorEl)} onClose={handleClose}> <MenuItem onClick={() => history.push(`/presenter/id=${activeId}&code=123123`)}>Starta</MenuItem> - <MenuItem onClick={handleClose}>Duplicera</MenuItem> + <MenuItem onClick={handleDuplicateCompetition}>Duplicera</MenuItem> <RemoveMenuItem onClick={handleDeleteCompetition}>Ta bort</RemoveMenuItem> </Menu> </div> diff --git a/client/src/pages/login/components/AdminLogin.tsx b/client/src/pages/login/components/AdminLogin.tsx index aaaa92f4..7f478caf 100644 --- a/client/src/pages/login/components/AdminLogin.tsx +++ b/client/src/pages/login/components/AdminLogin.tsx @@ -76,9 +76,7 @@ const AdminLogin: React.FC = () => { fullWidth variant="contained" color="secondary" - disabled={ - !formik.isValid || formik.values.model?.email === '' || formik.values.model?.email === '' || loading - } + disabled={!!formik.errors.model?.password || !!formik.errors.model?.email || loading} > Logga in </Button> diff --git a/client/src/pages/presentationEditor/PresentationEditorPage.tsx b/client/src/pages/presentationEditor/PresentationEditorPage.tsx index 7b6f2eba..bd854980 100644 --- a/client/src/pages/presentationEditor/PresentationEditorPage.tsx +++ b/client/src/pages/presentationEditor/PresentationEditorPage.tsx @@ -128,16 +128,13 @@ const PresentationEditorPage: React.FC = () => { } const handleDuplicateSlide = async () => { - const response = await axios.post(`/competitions/${id}/slides`) - const newOrder = response.data.items[response.data.total_count - 1].order - const oldSlide = competition.slides.find((slide) => slide.order === contextState.slideOrder) - await axios.put(`/competitions/${id}/slides/${newOrder}`, { timer: oldSlide?.timer, title: oldSlide?.title }) + await axios.post(`/competitions/${id}/slides/${contextState.slideOrder}/copy`) dispatch(getEditorCompetition(id)) setContextState(initialState) } const renderSlideIcon = (slide: RichSlide) => { - switch (slide.questions[0].type_id) { + switch (slide.questions && slide.questions[0].type_id) { case 0: return <InfoOutlinedIcon></InfoOutlinedIcon> // information slide case 1: -- GitLab