diff --git a/client/src/pages/presentationEditor/PresentationEditorPage.tsx b/client/src/pages/presentationEditor/PresentationEditorPage.tsx index 09ef5181b566f919365cb499202ce6ec2e114c24..4087d6c798d17522dbaffe3f8c7041b57795338f 100644 --- a/client/src/pages/presentationEditor/PresentationEditorPage.tsx +++ b/client/src/pages/presentationEditor/PresentationEditorPage.tsx @@ -36,7 +36,7 @@ import { const initialState = { mouseX: null, mouseY: null, - slideOrder: null, + slideId: null, } const leftDrawerWidth = 150 @@ -111,15 +111,15 @@ const PresentationEditorPage: React.FC = () => { const [contextState, setContextState] = React.useState<{ mouseX: null | number mouseY: null | number - slideOrder: null | number + slideId: null | number }>(initialState) - const handleRightClick = (event: React.MouseEvent<HTMLDivElement>, slideOrder: number) => { + const handleRightClick = (event: React.MouseEvent<HTMLDivElement>, slideId: number) => { event.preventDefault() setContextState({ mouseX: event.clientX - 2, mouseY: event.clientY - 4, - slideOrder: slideOrder, + slideId: slideId, }) } @@ -128,13 +128,13 @@ const PresentationEditorPage: React.FC = () => { } const handleRemoveSlide = async () => { - await axios.delete(`/competitions/${id}/slides/${contextState.slideOrder}`) + await axios.delete(`/competitions/${id}/slides/${contextState.slideId}`) dispatch(getEditorCompetition(id)) setContextState(initialState) } const handleDuplicateSlide = async () => { - await axios.post(`/competitions/${id}/slides/${contextState.slideOrder}/copy`) + await axios.post(`/competitions/${id}/slides/${contextState.slideId}/copy`) dispatch(getEditorCompetition(id)) setContextState(initialState) } @@ -214,7 +214,7 @@ const PresentationEditorPage: React.FC = () => { key={slide.id} selected={slide.id === activeSlideId} onClick={() => setActiveSlideId(slide.id)} - onContextMenu={(event) => handleRightClick(event, slide.order)} + onContextMenu={(event) => handleRightClick(event, slide.id)} > {renderSlideIcon(slide)} <ListItemText primary={`Sida ${slide.order + 1}`} /> diff --git a/client/src/pages/presentationEditor/components/RndComponent.tsx b/client/src/pages/presentationEditor/components/RndComponent.tsx index b1b586ffb54c4e746956c5da8795748c1fa5b687..890e51601ec20901e66ad76b199719478d6c53e3 100644 --- a/client/src/pages/presentationEditor/components/RndComponent.tsx +++ b/client/src/pages/presentationEditor/components/RndComponent.tsx @@ -20,15 +20,13 @@ const RndComponent = ({ component }: ImageComponentProps) => { const competitionId = useAppSelector((state) => state.editor.competition.id) const slideId = useAppSelector((state) => state.editor.activeSlideId) const handleUpdatePos = (pos: Position) => { - // TODO: change path to /slides/${slideId} - axios.put(`/competitions/${competitionId}/slides/0/components/${component.id}`, { + axios.put(`/competitions/${competitionId}/slides/${slideId}/components/${component.id}`, { x: pos.x, y: pos.y, }) } const handleUpdateSize = (size: Size) => { - // TODO: change path to /slides/${slideId} - axios.put(`/competitions/${competitionId}/slides/0/components/${component.id}`, { + axios.put(`/competitions/${competitionId}/slides/${slideId}/components/${component.id}`, { w: size.w, h: size.h, }) diff --git a/client/src/pages/presentationEditor/components/SlideSettings.tsx b/client/src/pages/presentationEditor/components/SlideSettings.tsx index e6be5c15a3a6ed77103cf6dddfad7c6572833987..7cc78b34330cf571d0270093c70b811e276a0dd0 100644 --- a/client/src/pages/presentationEditor/components/SlideSettings.tsx +++ b/client/src/pages/presentationEditor/components/SlideSettings.tsx @@ -133,7 +133,7 @@ const SlideSettings: React.FC = () => { if (selectedSlideType === 0) { // Change slide type from a question type to information await axios - .delete(`/competitions/${id}/slides/${activeSlide.order}/questions/${activeSlide.questions[0].id}`) + .delete(`/competitions/${id}/slides/${activeSlide.id}/questions/${activeSlide.questions[0].id}`) .then(() => { dispatch(getEditorCompetition(id)) }) @@ -141,10 +141,10 @@ const SlideSettings: React.FC = () => { } else { // Change slide type from question type to another question type await axios - .delete(`/competitions/${id}/slides/${activeSlide.order}/questions/${activeSlide.questions[0].id}`) + .delete(`/competitions/${id}/slides/${activeSlide.id}/questions/${activeSlide.questions[0].id}`) .catch(console.log) await axios - .post(`/competitions/${id}/slides/${activeSlide.order}/questions`, { + .post(`/competitions/${id}/slides/${activeSlide.id}/questions`, { name: 'Ny fråga', total_score: 0, type_id: selectedSlideType, @@ -158,7 +158,7 @@ const SlideSettings: React.FC = () => { } else if (selectedSlideType !== 0) { // Change slide type from information to a question type await axios - .post(`/competitions/${id}/slides/${activeSlide.order}/questions`, { + .post(`/competitions/${id}/slides/${activeSlide.id}/questions`, { name: 'Ny fråga', total_score: 0, type_id: selectedSlideType, @@ -208,10 +208,10 @@ const SlideSettings: React.FC = () => { const addAlternative = async () => { if (activeSlide && activeSlide.questions[0]) { await axios - .post( - `/competitions/${id}/slides/${activeSlide?.order}/questions/${activeSlide?.questions[0].id}/alternatives`, - { text: '', value: 0 } - ) + .post(`/competitions/${id}/slides/${activeSlide?.id}/questions/${activeSlide?.questions[0].id}/alternatives`, { + text: '', + value: 0, + }) .then(() => { dispatch(getEditorCompetition(id)) }) @@ -237,7 +237,7 @@ const SlideSettings: React.FC = () => { const handleAddText = async () => { if (activeSlide) { - await axios.post(`/competitions/${id}/slides/${activeSlide?.order}/components`, { + await axios.post(`/competitions/${id}/slides/${activeSlide?.id}/components`, { type_id: 1, data: { text: 'Ny text' }, w: 315, @@ -261,7 +261,7 @@ const SlideSettings: React.FC = () => { setTimer(+event.target.value) if (activeSlide) { await axios - .put(`/competitions/${id}/slides/${activeSlide.order}`, { timer: event.target.value }) + .put(`/competitions/${id}/slides/${activeSlide.id}`, { timer: event.target.value }) .then(() => { dispatch(getEditorCompetition(id)) }) diff --git a/client/src/pages/presentationEditor/components/TextComponentEdit.tsx b/client/src/pages/presentationEditor/components/TextComponentEdit.tsx index 92202993cce03c11875dfc049a98c9d692c3c958..e0f0d5b475b87f2db7f71337c1c4978716fdb5e1 100644 --- a/client/src/pages/presentationEditor/components/TextComponentEdit.tsx +++ b/client/src/pages/presentationEditor/components/TextComponentEdit.tsx @@ -20,6 +20,7 @@ const TextComponentEdit = ({ component }: ImageComponentProps) => { const competitionId = useAppSelector((state) => state.editor.competition.id) const [content, setContent] = useState('') const [timerHandle, setTimerHandle] = React.useState<number | undefined>(undefined) + const activeSlideId = useAppSelector((state) => state.editor.activeSlideId) const dispatch = useAppDispatch() useEffect(() => { @@ -36,7 +37,7 @@ const TextComponentEdit = ({ component }: ImageComponentProps) => { setTimerHandle( window.setTimeout(async () => { console.log('Content was updated on server. id: ', component.id) - await axios.put(`/competitions/${competitionId}/slides/0/components/${component.id}`, { + await axios.put(`/competitions/${competitionId}/slides/${activeSlideId}/components/${component.id}`, { data: { ...component.data, text: a }, }) dispatch(getEditorCompetition(id)) @@ -45,7 +46,7 @@ const TextComponentEdit = ({ component }: ImageComponentProps) => { } const handleDeleteText = async (componentId: number) => { - await axios.delete(`/competitions/${id}/slides/0/components/${componentId}`) + await axios.delete(`/competitions/${id}/slides/${activeSlideId}/components/${componentId}`) dispatch(getEditorCompetition(id)) }