Files
Inventory/app/app.vue
2026-02-11 17:01:28 +01:00

53 lines
1.3 KiB
Vue

<template>
<div class="min-h-screen bg-gradient-to-br from-blue-50 to-indigo-100">
<LayoutAppNavbar
@open-settings="displaySettingsOpen = true"
@logout="handleLogout"
/>
<NuxtPage />
<ToastContainer />
<CommonConfirmModal />
<DisplaySettings
:is-open="displaySettingsOpen"
@close="displaySettingsOpen = false"
@update-settings="handleSettingsUpdate"
/>
<footer class="footer p-4 bg-neutral text-neutral-content">
<div class="items-center grid-flow-col">
<p>
@Malio 2025 · <NuxtLink to="/changelog" class="link link-hover">v{{ appVersion }}</NuxtLink>
</p>
</div>
</footer>
</div>
</template>
<script setup lang="ts">
import { ref, computed, onMounted } from 'vue'
import { navigateTo, useRuntimeConfig } from '#imports'
import { useProfileSession } from '~/composables/useProfileSession'
const displaySettingsOpen = ref(false)
const { ensureSession, logout } = useProfileSession()
const runtimeConfig = useRuntimeConfig()
const appVersion = computed(() => (runtimeConfig.public?.appVersion as string) ?? '0.1.0')
const handleSettingsUpdate = (_settings: unknown) => {
// Placeholder for future persistence
}
const handleLogout = async () => {
await logout()
await navigateTo('/profiles')
}
onMounted(async () => {
await ensureSession()
})
</script>