From dea26be498450e5bbf3c4acc9f2bb2408f2a9561 Mon Sep 17 00:00:00 2001
From: Albin Henriksson <albhe428@student.liu.se>
Date: Fri, 14 May 2021 11:09:37 +0200
Subject: [PATCH] refactor timer and slide display

---
 .../components/SlideDisplay.tsx               | 12 ++++++++++
 client/src/pages/views/TeamViewPage.tsx       | 22 +++----------------
 client/src/pages/views/components/Timer.tsx   |  2 +-
 3 files changed, 16 insertions(+), 20 deletions(-)

diff --git a/client/src/pages/presentationEditor/components/SlideDisplay.tsx b/client/src/pages/presentationEditor/components/SlideDisplay.tsx
index 9fd6ed70..8326bf86 100644
--- a/client/src/pages/presentationEditor/components/SlideDisplay.tsx
+++ b/client/src/pages/presentationEditor/components/SlideDisplay.tsx
@@ -3,6 +3,7 @@ import React, { useEffect, useLayoutEffect, useRef, useState } from 'react'
 import { getTypes } from '../../../actions/typesAction'
 import { useAppDispatch, useAppSelector } from '../../../hooks'
 import PresentationComponent from '../../views/components/PresentationComponent'
+import Timer from '../../views/components/Timer'
 import RndComponent from './RndComponent'
 import { Center, SlideEditorContainer, SlideEditorContainerRatio, SlideEditorPaper } from './styled'
 
@@ -22,6 +23,10 @@ const SlideDisplay = ({ variant, activeViewTypeId, currentSlideId }: SlideDispla
       return state.editor.competition.slides.find((slide) => slide.id === state.editor.activeSlideId)
     return state.presentation.competition.slides.find((slide) => slide.id === state.presentation.activeSlideId)
   })
+  const totalSlides = useAppSelector((state) => {
+    if (variant === 'presentation') return state.presentation.competition.slides.length
+    return state.editor.competition.slides.length
+  })
   const components = slide?.components
   const competitionBackgroundImage = useAppSelector((state) => {
     if (variant === 'editor') return state.editor.competition.background_image
@@ -54,6 +59,13 @@ const SlideDisplay = ({ variant, activeViewTypeId, currentSlideId }: SlideDispla
     <SlideEditorContainer>
       <SlideEditorContainerRatio>
         <SlideEditorPaper ref={editorPaperRef}>
+          <Typography variant="h3" style={{ position: 'absolute', left: 5, top: 5 }}>
+            {variant === 'editor' && `Tid kvar: ${slide?.timer}`}
+            {variant === 'presentation' && <Timer />}
+          </Typography>
+          <Typography variant="h3" style={{ position: 'absolute', right: 5, top: 5 }}>
+            {slide && `Sida: ${slide?.order + 1} / ${totalSlides}`}
+          </Typography>
           {(competitionBackgroundImage || slideBackgroundImage) && (
             <img
               src={`/static/images/${
diff --git a/client/src/pages/views/TeamViewPage.tsx b/client/src/pages/views/TeamViewPage.tsx
index 4c3266bc..2ebc0926 100644
--- a/client/src/pages/views/TeamViewPage.tsx
+++ b/client/src/pages/views/TeamViewPage.tsx
@@ -1,17 +1,10 @@
-import { Snackbar, Typography } from '@material-ui/core'
+import { Snackbar } from '@material-ui/core'
 import { Alert } from '@material-ui/lab'
 import React, { useEffect, useState } from 'react'
 import { useAppSelector } from '../../hooks'
 import { socketConnect, socketJoinPresentation } from '../../sockets'
 import SlideDisplay from '../presentationEditor/components/SlideDisplay'
-import Timer from '../views/components/Timer'
-import {
-  OperatorContainer,
-  OperatorHeader,
-  OperatorHeaderItem,
-  PresentationBackground,
-  PresentationContainer,
-} from './styled'
+import { OperatorContainer, OperatorHeader, PresentationBackground, PresentationContainer } from './styled'
 
 const TeamViewPage: React.FC = () => {
   const code = useAppSelector((state) => state.presentation.code)
@@ -36,16 +29,7 @@ const TeamViewPage: React.FC = () => {
   }, [])
   return (
     <OperatorContainer>
-      <OperatorHeader>
-        <Typography variant="h1">
-          <Timer />
-        </Typography>
-        <OperatorHeaderItem>
-          <Typography variant="h3">
-            {activeSlideOrder !== undefined && activeSlideOrder + 1} / {presentation.competition.slides.length}
-          </Typography>
-        </OperatorHeaderItem>
-      </OperatorHeader>
+      <OperatorHeader></OperatorHeader>
       <PresentationBackground>
         <PresentationContainer>
           {activeViewTypeId && <SlideDisplay variant="presentation" activeViewTypeId={activeViewTypeId} />}
diff --git a/client/src/pages/views/components/Timer.tsx b/client/src/pages/views/components/Timer.tsx
index 1bab9968..032effb7 100644
--- a/client/src/pages/views/components/Timer.tsx
+++ b/client/src/pages/views/components/Timer.tsx
@@ -40,7 +40,7 @@ const Timer: React.FC = () => {
     }
   }, [timer.enabled])
 
-  return <div>{timer.value}</div>
+  return <div>{`Tid kvar: ${timer.value}`}</div>
 }
 
 export default Timer
-- 
GitLab