movie-night-web/src/components/LoadingIcon.vue

33 lines
883 B
Vue
Raw Normal View History

2025-04-22 19:32:12 -05:00
<template>
2025-06-19 02:12:17 -05:00
<div
class="flex absolute top-1/2 left-1/2 transform -translate-x-1/2 -translate-y-1/2 flex-col"
2025-04-22 20:22:17 -05:00
>
2025-06-19 02:12:17 -05:00
<video alt="Loading" autoplay class="max-h-52" loop muted playsinline>
<source
v-if="supportsHEVC"
src="/assets/img/movie-loader.mov"
type="video/quicktime"
/>
<source v-else src="/assets/img/movie-loader.webm" type="video/webm" />
</video>
<MovieQuote v-if="props.showQuote" />
</div>
2025-04-22 19:32:12 -05:00
</template>
2025-04-23 13:15:10 -05:00
<script lang="ts" setup>
const supportsHEVC = ref(false);
2025-06-19 02:12:17 -05:00
const props = defineProps(["showQuote"]);
2025-04-23 13:15:10 -05:00
onMounted(() => {
const isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);
// iOS devices also support HEVC
const isIOS =
/iPad|iPhone|iPod/.test(navigator.userAgent) && !(window as any).MSStream;
supportsHEVC.value = isSafari || isIOS;
});
</script>
2025-04-22 19:32:12 -05:00
<style scoped></style>