From b5a390a6896b2167f6650e56477ec5d602dba49f Mon Sep 17 00:00:00 2001
From: cv <34649812+cpvalente@users.noreply.github.com>
Date: Tue, 23 Mar 2021 22:52:58 +0100
Subject: [PATCH] default view
temp changes to default view
- countdown setup
- prepare to create a separate preview window
---
src/common/components/countdown/Countdown.jsx | 20 +++++++-
src/features/editors/Editor.jsx | 2 +-
src/features/viewers/DefaultPresenter.jsx | 50 +++++++++++++------
src/features/viewers/PreviewContainer.jsx | 25 +++++++---
4 files changed, 72 insertions(+), 25 deletions(-)
diff --git a/src/common/components/countdown/Countdown.jsx b/src/common/components/countdown/Countdown.jsx
index 728210fad..49ce8fa58 100644
--- a/src/common/components/countdown/Countdown.jsx
+++ b/src/common/components/countdown/Countdown.jsx
@@ -1,5 +1,21 @@
-import styles from './Countdown.module.css'
+import { useEffect, useState } from 'react';
+import styles from './Countdown.module.css';
+
+function display(seconds) {
+ const format = (val) => `0${Math.floor(val)}`.slice(-2);
+ const hours = seconds / 3600;
+ const minutes = (seconds % 3600) / 60;
+
+ if (hours < 1) return [minutes, seconds % 60].map(format).join(':');
+ else return [hours, minutes, seconds % 60].map(format).join(':');
+}
export default function Countdown({ time }) {
- return
{time}
;
+ const [counter, setCounter] = useState(time);
+
+ useEffect(() => {
+ counter > 0 && setTimeout(() => setCounter(counter - 1), 1000);
+ }, [counter]);
+
+ return {display(counter)}
;
}
diff --git a/src/features/editors/Editor.jsx b/src/features/editors/Editor.jsx
index 207e175b2..e99f64dfa 100644
--- a/src/features/editors/Editor.jsx
+++ b/src/features/editors/Editor.jsx
@@ -78,7 +78,7 @@ export default function Editor() {
List Events
diff --git a/src/features/viewers/DefaultPresenter.jsx b/src/features/viewers/DefaultPresenter.jsx
index ae0c91799..a32b06b23 100644
--- a/src/features/viewers/DefaultPresenter.jsx
+++ b/src/features/viewers/DefaultPresenter.jsx
@@ -1,33 +1,55 @@
-import { format } from 'date-fns';
-import { useState } from 'react';
+import { differenceInSeconds, format, subMinutes } from 'date-fns';
+import addMinutes from 'date-fns/addMinutes';
import { sampleData } from '../../app/sampleData';
import Countdown from '../../common/components/countdown/Countdown';
import MyProgressBar from '../../common/components/myProgressBar/MyProgressBar';
import SmallTimer from '../../common/components/smallTimer/SmallTimer';
import './viewers.css';
-export default function DefaultPresenter() {
- const [data, setData] = useState(sampleData);
- const [timer, setTimer] = useState(sampleData.timerDuration);
- const [elapsed, setElapsed] = useState(0);
+export default function DefaultPresenter(props) {
+ const data = sampleData;
+ const now = new Date();
+ const values = props.data ?? {
+ title: 'Presentation Title',
+ subtitle: 'Presentation Subtitle',
+ presenter: 'Presenter Name',
+ timerDuration: 10,
+ timeStart: now,
+ timeEnd: now,
+ };
- const timeNow = new Date();
+ // NITE: test only
+ const clockStarted = addMinutes(now, 6);
+
+ const timer = differenceInSeconds(
+ now,
+ subMinutes(clockStarted, values.timerDuration)
+ );
+
+ const timeStart = format(values.timeStart, 'HH:mm');
+ const currentTime = format(now, 'HH:mm');
+ const timeEnd = format(values.timeEnd, 'HH:mm');
+ const elapsed = timer / (values.timerDuration * 60);
+
+ console.log('timers', timer, timeStart, currentTime, timeEnd, elapsed);
+
+ if (props?.preview) return Preview
;
return (
-
{data.title}
-
{data.subtitle}
-
- {!data.message.active &&
}
+
{values.title}
+
{values.subtitle}
+
+ {!data.message.active &&
}
{data.message.text}
-
-
-
+
+
+
);
diff --git a/src/features/viewers/PreviewContainer.jsx b/src/features/viewers/PreviewContainer.jsx
index c5f5657c2..d2dda4aac 100644
--- a/src/features/viewers/PreviewContainer.jsx
+++ b/src/features/viewers/PreviewContainer.jsx
@@ -1,18 +1,27 @@
import DefaultPresenter from './DefaultPresenter';
import styles from './PreviewContainer.module.css';
-export default function PreviewContainer() {
+export default function PreviewContainer(props) {
return (
-
-
- {/*
*/}
+
+
+
+
+
Default Presenter
-
Default Presenter
-
-
);
}