Newer
Older
gn-synapse / frontend / src / App.vue
<script setup>
// Каркас приложения — GnNavigationShell из gnexus-ui-kit: topbar + drawer + footer.
// Страницы входа/отсечения идут без каркаса (meta.bare в роутере).
import { computed } from "vue";
import { useRoute } from "vue-router";
import { GnNavigationShell } from "gnexus-ui-kit/vue";

const route = useRoute();

// Пока в Synapse одна секция — «Обзор»; новые секции добавляются сюда и в router.js.
const items = [
  { to: "/dashboard", label: "Обзор", icon: "ph-pulse" },
];

const currents = {
  "/dashboard": "Обзор",
};
const current = computed(() => currents[route.path] || "");

const bare = computed(() => Boolean(route.meta.bare));
</script>

<template>
  <GnNavigationShell
    v-if="!bare"
    :items="items"
    brand="Synapse"
    title="Synapse"
    subtitle="Хаб уведомлений Gnexus"
    :current="current"
    footer-left="Gnexus Synapse"
    footer-right="© GNexus"
  >
    <template #content>
      <RouterView />
    </template>
  </GnNavigationShell>
  <RouterView v-else />
</template>