main
vue 69 lines 1.22 KB
Raw
1 <template>
2 <footer class="footer py-4" :class="{ boxed }">
3 <div class="wrap flex items-center justify-end gap-3">
4 <div class="copy">
5 <template v-if="portalTitle">© Copyright {{ year }} {{ portalTitle }}</template>
6 <template v-else>© Copyright {{ year }}</template>
7 </div>
8 </div>
9 </footer>
10 </template>
11
12 <script lang="ts" setup>
13 import { computed, ref } from "vue"
14 import { usePortalSettingsStore } from "@/stores/portalSettings"
15
16 const { boxed } = defineProps<{
17 boxed: boolean
18 }>()
19
20 const portalSettingsStore = usePortalSettingsStore()
21 const portalTitle = computed(() => portalSettingsStore.portalTitle)
22 const year = ref(new Date().getFullYear())
23 </script>
24
25 <style lang="scss" scoped>
26 .footer {
27 width: 100%;
28 max-width: 100%;
29 overflow: hidden;
30 font-size: 13px;
31
32 .wrap {
33 overflow: hidden;
34 width: 100%;
35 max-width: 100%;
36 margin: 0 auto;
37 padding: 0 var(--view-padding);
38
39 .copy {
40 line-height: 1.6;
41
42 a {
43 font-weight: bold;
44 text-decoration: none;
45 }
46 * {
47 display: inline;
48 }
49 i {
50 display: inline-block;
51 }
52 }
53 }
54
55 &.boxed {
56 .wrap {
57 max-width: var(--boxed-width);
58 }
59 }
60
61 @media (max-width: 700px) {
62 font-size: 10px;
63
64 i.n-icon {
65 font-size: 18px !important;
66 }
67 }
68 }
69 </style>