main
vue 36 lines 1015 Bytes
Raw
1 <template>
2 <div class="page-wrapper flex flex-col gap-6 p-6">
3 <div class="flex items-center justify-between">
4 <h1 class="text-2xl font-bold">Snapshot & Restore</h1>
5 </div>
6
7 <n-tabs v-model:value="activeTab" type="line" animated>
8 <n-tab-pane name="repositories" tab="Repositories">
9 <SnapshotRepositories />
10 </n-tab-pane>
11 <n-tab-pane name="snapshots" tab="Snapshots">
12 <SnapshotList />
13 </n-tab-pane>
14 <n-tab-pane name="schedules" tab="Scheduled Snapshots">
15 <SnapshotSchedules />
16 </n-tab-pane>
17 </n-tabs>
18 </div>
19 </template>
20
21 <script setup lang="ts">
22 // TODO-FE: refactor
23 import { NTabPane, NTabs } from "naive-ui"
24 import { ref } from "vue"
25 import SnapshotList from "@/components/snapshots/SnapshotList.vue"
26 import SnapshotRepositories from "@/components/snapshots/SnapshotRepositories.vue"
27 import SnapshotSchedules from "@/components/snapshots/SnapshotSchedules.vue"
28
29 const activeTab = ref("repositories")
30 </script>
31
32 <style scoped>
33 .page-wrapper {
34 min-height: 100%;
35 }
36 </style>