chore: ⬆️ Upgrade to Nuxt 4
Some checks failed
CodeQL / Analyze (javascript) (push) Failing after 1s
Deploy to GitHub Pages / build (push) Failing after 1s
Deploy to GitHub Pages / deploy (push) Has been skipped
Docker / build (push) Failing after 1s
Mirror to Codeberg / Mirror (push) Failing after 1s

This commit is contained in:
Jesse Wierzbinski 2025-07-16 07:48:39 +02:00
parent 8debe97f63
commit 7f7cf20311
386 changed files with 2376 additions and 2332 deletions

52
app/layouts/app.vue Normal file
View 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
View file

@ -0,0 +1,8 @@
<template>
<slot />
<ComposerDialog v-if="identity" />
</template>
<script lang="ts" setup>
import ComposerDialog from "~/components/composer/dialog.vue";
</script>