mirror of
https://github.com/versia-pub/frontend.git
synced 2026-03-13 19:49:16 +01:00
chore: ⬆️ Upgrade to Nuxt 4
Some checks failed
Some checks failed
This commit is contained in:
parent
8debe97f63
commit
7f7cf20311
386 changed files with 2376 additions and 2332 deletions
52
app/layouts/app.vue
Normal file
52
app/layouts/app.vue
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
<template>
|
||||
<SidebarProvider>
|
||||
<AppSidebar>
|
||||
<slot v-if="!route.meta.requiresAuth || identity" />
|
||||
<div class="mx-auto max-w-4xl p-4" v-else>
|
||||
<AuthRequired />
|
||||
</div>
|
||||
</AppSidebar>
|
||||
</SidebarProvider>
|
||||
<MobileNavbar v-if="identity" />
|
||||
<Preferences />
|
||||
<ComposerDialog v-if="identity" />
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import ComposerDialog from "~/components/composer/dialog.vue";
|
||||
import AuthRequired from "~/components/errors/AuthRequired.vue";
|
||||
import MobileNavbar from "~/components/navigation/mobile-navbar.vue";
|
||||
import Preferences from "~/components/preferences/index.vue";
|
||||
import AppSidebar from "~/components/sidebars/sidebar.vue";
|
||||
import { SidebarProvider } from "~/components/ui/sidebar";
|
||||
|
||||
const colorMode = useColorMode();
|
||||
const { n, d } = useMagicKeys();
|
||||
const activeElement = useActiveElement();
|
||||
const notUsingInput = computed(
|
||||
() =>
|
||||
activeElement.value?.tagName !== "INPUT" &&
|
||||
activeElement.value?.tagName !== "TEXTAREA" &&
|
||||
activeElement.value?.contentEditable !== "true",
|
||||
);
|
||||
const route = useRoute();
|
||||
|
||||
watch([n, notUsingInput, d], async () => {
|
||||
if (n?.value && notUsingInput.value) {
|
||||
// Wait 50ms
|
||||
await new Promise((resolve) => setTimeout(resolve, 50));
|
||||
useEvent("composer:open");
|
||||
}
|
||||
|
||||
if (d?.value && notUsingInput.value && !colorMode.forced) {
|
||||
// Swap theme from dark to light or vice versa
|
||||
if (colorMode.value === "dark") {
|
||||
colorMode.preference = "light";
|
||||
preferences.color_theme.value = "light";
|
||||
} else {
|
||||
colorMode.preference = "dark";
|
||||
preferences.color_theme.value = "dark";
|
||||
}
|
||||
}
|
||||
});
|
||||
</script>
|
||||
8
app/layouts/default.vue
Normal file
8
app/layouts/default.vue
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
<template>
|
||||
<slot />
|
||||
<ComposerDialog v-if="identity" />
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import ComposerDialog from "~/components/composer/dialog.vue";
|
||||
</script>
|
||||
Loading…
Add table
Add a link
Reference in a new issue