diff --git a/src/components/infobar/infobar.vue b/src/components/infobar/infobar.vue index de1cf28ff1ff258459d83e62a78953cb11e70fc9..326e911789999c0d61d2bb77884f4982b66ae60c 100644 --- a/src/components/infobar/infobar.vue +++ b/src/components/infobar/infobar.vue @@ -17,9 +17,17 @@
{{ formattedCountdown }} +
-
+
{{ infobar.titleReady }}
@@ -41,17 +49,41 @@ export default defineComponent({ props: {}, setup() { + const infobar = ref(INFOBAR) + + const getInitialCountdown = () => { + const then = moment.utc(INFOBAR.date).valueOf() + const now = moment.utc().valueOf() + if (then - now < 0) { + return {d: '0', h: '0', m: '0', s: '0'} + } + const countdown = moment(then - now) + const dNum = Number(countdown.utc().format('DD')) - 1 + const hNum = Number(countdown.utc().format('HH')) + const mNum = Number(countdown.utc().format('mm')) + const sNum = Number(countdown.utc().format('ss')) + + return { + d: String(dNum), + h: dNum > 0 ? (hNum < 10 ? '0' : '') + String(hNum) : String(hNum), + m: + dNum > 0 || hNum > 0 + ? (mNum < 10 ? '0' : '') + String(mNum) + : String(mNum), + s: (sNum < 10 ? '0' : '') + String(sNum), + } + } + + const initial = getInitialCountdown() const state = reactive({ - d: '0', - h: '0', - m: '0', - s: '00', + d: initial.d, + h: initial.h, + m: initial.m, + s: initial.s, interval: null as any, - setInterval: false, + setInterval: true, }) - const infobar = ref(INFOBAR) - const setCountdown = () => { const then = moment.utc(INFOBAR.date).valueOf() const now = moment.utc().valueOf() @@ -72,14 +104,15 @@ export default defineComponent({ // Only show leading zeros when needed state.d = String(dNum) state.h = dNum > 0 ? (hNum < 10 ? '0' : '') + String(hNum) : String(hNum) - state.m = (dNum > 0 || hNum > 0) ? (mNum < 10 ? '0' : '') + String(mNum) : String(mNum) + state.m = + dNum > 0 || hNum > 0 + ? (mNum < 10 ? '0' : '') + String(mNum) + : String(mNum) state.s = (sNum < 10 ? '0' : '') + String(sNum) } onMounted(() => { - setCountdown() state.interval = setInterval(() => { - state.setInterval = true setCountdown() }, 1000) }) @@ -121,12 +154,8 @@ export default defineComponent({