main
vue 42 lines 961 Bytes
Raw
1 <template>
2 <div class="logo">
3 <img :src="portalLogo || portalLogoInitials" :alt="portalTitle" :aria-label="portalTitle" class="logo-image" />
4 </div>
5 </template>
6
7 <script lang="ts" setup>
8 import { computed } from "vue"
9 import { usePortalSettingsStore } from "@/stores/portalSettings"
10
11 interface Props {
12 maxHeight?: string
13 }
14
15 withDefaults(defineProps<Props>(), {
16 maxHeight: "32px"
17 })
18
19 const portalSettingsStore = usePortalSettingsStore()
20
21 const portalTitle = computed(() => portalSettingsStore.portalTitle || "Customer Portal")
22 const portalLogo = computed(() => portalSettingsStore.portalLogo)
23 const portalLogoInitials = computed(() => portalSettingsStore.portalLogoInitials)
24 </script>
25
26 <style lang="scss" scoped>
27 .logo {
28 height: 100%;
29 display: flex;
30 align-items: center;
31 justify-content: center;
32 position: relative;
33
34 .logo-image {
35 max-height: v-bind(maxHeight);
36 height: 100%;
37 width: auto;
38 display: block;
39 object-fit: contain;
40 }
41 }
42 </style>