diff --git a/src/App.vue b/src/App.vue index d142640..cdc5f4e 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,6 +1,6 @@ @@ -11,11 +11,12 @@ #app { display: flex; flex-direction: column; + justify-content: space-between; align-items: center; min-height: 100vh; } -svg { - margin: 0.1rem; +img.logo { + margin-top: 1rem; } diff --git a/src/assets/loader.svg b/src/assets/loader.svg new file mode 100755 index 0000000..c571bf0 --- /dev/null +++ b/src/assets/loader.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/components/ChilledMusic.vue b/src/components/ChilledMusic.vue index 100c0c1..e97e407 100644 --- a/src/components/ChilledMusic.vue +++ b/src/components/ChilledMusic.vue @@ -1,14 +1,17 @@ @@ -20,7 +23,8 @@ import { onMounted, watchEffect, reactive, - onUnmounted + onUnmounted, + ref } from '@vue/composition-api' export default defineComponent({ @@ -32,6 +36,7 @@ export default defineComponent({ } }, setup(props, { emit }) { + const ready = ref(false) const chilledcow = reactive<{ video: Plyr | null }>({ video: null }) @@ -48,7 +53,7 @@ export default defineComponent({ } } - onMounted(() => { + const init = () => { chilledcow.video = new Plyr('#player', { youtube: { noCookie: true, @@ -62,16 +67,21 @@ export default defineComponent({ options: [240] } }) + chilledcow.video.on('error', init) chilledcow.video.on('play', onPlay) chilledcow.video.on('pause', onPause) chilledcow.video.on('ready', () => { + ready.value = true if (props.play) { chilledcow.video?.play() } }) - }) + } + + onMounted(init) onUnmounted(() => { + chilledcow.video?.off('error', init) chilledcow.video?.off('play', onPlay) chilledcow.video?.off('pause', onPause) chilledcow.video?.destroy() @@ -80,6 +90,25 @@ export default defineComponent({ watchEffect(() => { props.play ? chilledcow.video?.play() : chilledcow.video?.pause() }) + + return { + ready + } } }) + + diff --git a/src/components/ZoneMusic.vue b/src/components/ZoneMusic.vue index 0c5b1bd..13cc03e 100644 --- a/src/components/ZoneMusic.vue +++ b/src/components/ZoneMusic.vue @@ -2,7 +2,9 @@
-
@@ -52,7 +65,13 @@ export default defineComponent({