VueTube/NUXT/pages/index.vue

96 lines
2.4 KiB
Vue
Raw Normal View History

2022-01-24 22:56:57 +00:00
<template>
2022-03-31 04:22:24 +00:00
<center v-show="themeFetched" class="container">
<v-img
src="/icon.svg"
2022-03-31 04:22:24 +00:00
width="10rem"
height="10rem"
class="youspinmerightround"
:class="$vuetify.theme.dark ? '' : 'invert'"
/>
2022-03-31 04:22:24 +00:00
<div style="height: 5rem" />
<v-progress-linear rounded height="8" indeterminate color="primary" />
</center>
2022-01-24 22:56:57 +00:00
</template>
2022-03-16 00:31:03 +00:00
<script>
export default {
layout: "empty",
2022-03-28 19:59:08 +00:00
data: () => ({
2022-03-31 04:22:24 +00:00
themeFetched: false,
2022-03-28 19:59:08 +00:00
}),
2022-03-31 04:22:24 +00:00
beforeCreate() {
2022-03-28 19:59:08 +00:00
this.$store.commit("tweaks/initTweaks");
2022-03-31 04:22:24 +00:00
// This has to be imported here,otherwise NUXT won't import the package because its so early in the lifecycle -Front
// const { SplashScreen } = await require("@capacitor/splash-screen");
2022-03-28 19:59:08 +00:00
// await SplashScreen.hide();
},
async mounted() {
2022-03-31 04:22:24 +00:00
// Set timeout is required for $vuetify.theme... dont ask me why -Front
const theming = new Promise((resolve) =>
setTimeout(() => {
const dark = localStorage.getItem("darkTheme");
let bg = null;
let pr = null;
if (dark !== null) {
bg = dark
? localStorage.getItem("backgroundDark")
: localStorage.getItem("backgroundLight");
pr = dark
? localStorage.getItem("primaryDark")
: localStorage.getItem("primaryLight");
this.$vuetify.theme.dark = dark === "true";
if (pr !== null) this.$vuetify.theme.currentTheme.primary = pr;
if (bg !== null) this.$vuetify.theme.currentTheme.background = bg;
2022-03-19 23:17:26 +00:00
}
2022-03-31 04:22:24 +00:00
this.themeFetched = true;
this.$vuetube.navigationBar.setTheme(
this.$vuetify.theme.currentTheme.background,
!dark
);
2022-03-31 04:22:24 +00:00
this.$vuetube.statusBar.setTheme(
this.$vuetify.theme.currentTheme.background,
dark
);
resolve();
}, 0)
);
2022-03-19 23:17:26 +00:00
2022-03-31 04:22:24 +00:00
await theming;
await this.$youtube.getAPI();
this.$router.push(`/${localStorage.getItem("startPage") || "home"}`);
},
};
</script>
<style scoped>
.container {
padding-top: 3em;
display: block;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -80%);
}
2022-03-31 04:22:24 +00:00
.youspinmerightround {
opacity: 0;
transform: scale(0.5);
transition-property: opacity, transform;
animation: likearecord 0.66s ease infinite alternate;
}
/* triangles aren't very good at spinning :c */
@keyframes likearecord {
0% {
opacity: 0;
transform: scale(0.5);
}
100% {
opacity: 1;
transform: scale(1);
}
}
</style>