|
@@ -8,12 +8,10 @@ const message = document.querySelector('.message');
|
|
|
const heading = document.querySelector('h1');
|
|
|
|
|
|
const api = new fetchObject("http://localhost:8000/counter", app.dataset.id);
|
|
|
-const counter = await api.getCounter();
|
|
|
-
|
|
|
-heading.innerText = counter.name;
|
|
|
+constcheckCounter();
|
|
|
|
|
|
|
|
|
-const getEndTime = () => {
|
|
|
+const getEndTime = (counter) => {
|
|
|
return new Date(Date.parse(counter.endTime));
|
|
|
};
|
|
|
|
|
@@ -58,12 +56,31 @@ const hideMessage = () => {
|
|
|
};
|
|
|
|
|
|
const complete = () => {
|
|
|
- console.log("Fonction complete() du main")
|
|
|
showMessage();
|
|
|
+ console.log("Ne doit pas se voir avant fin de compteur")
|
|
|
+ constcheckCounter();
|
|
|
};
|
|
|
|
|
|
-const countdownTimer = new Countdown(
|
|
|
- getEndTime(),
|
|
|
- render,
|
|
|
- complete
|
|
|
-);
|
|
|
+
|
|
|
+function constcheckCounter () {
|
|
|
+ const intervalId = setInterval(async () => {
|
|
|
+ const counter = await api.getCounter();
|
|
|
+ heading.innerText = counter.name;
|
|
|
+ if (counter.state === 'ready') {
|
|
|
+ hideMessage();
|
|
|
+ const period = new Date(counter.minutes * 1000 * 60);
|
|
|
+ render(Countdown.getTime(period));
|
|
|
+ } else if (counter.state === 'completed') {
|
|
|
+ const zero = new Date(0);
|
|
|
+ showMessage();
|
|
|
+ render(Countdown.getTime(zero));
|
|
|
+ } else {
|
|
|
+ clearInterval(intervalId);
|
|
|
+ const countdownTimer = new Countdown(
|
|
|
+ getEndTime(counter),
|
|
|
+ render,
|
|
|
+ complete
|
|
|
+ )
|
|
|
+ }
|
|
|
+ }, 1000)
|
|
|
+}
|