Chamilo is a learning management system focused on ease of use and accessibility
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
chamilo-lms/assets/vue/components/layout/PlatformLogo.vue

40 lines
1.1 KiB

<script setup>
import { ref } from "vue"
import { usePlatformConfig } from "../../store/platformConfig"
import { useSecurityStore } from "../../store/securityStore"
import { useVisualTheme } from "../../composables/theme"
const platformConfigStore = usePlatformConfig()
const securityStore = useSecurityStore()
const { getThemeAssetUrl } = useVisualTheme()
const siteName = platformConfigStore.getSetting("platform.site_name")
const sources = [getThemeAssetUrl("images/header-logo.svg"), getThemeAssetUrl("images/header-logo.png")]
const currentSrc = ref(sources[0])
const onError = () => {
const currentIndex = sources.indexOf(currentSrc.value)
if (currentIndex < sources.length - 1) {
currentSrc.value = sources[currentIndex + 1]
} else {
console.error("All image sources failed to load.")
}
}
</script>
<template>
<div class="platform-logo">
<BaseAppLink :to="securityStore.user ? { name: 'Home' } : { name: 'Index' }">
<img
:alt="siteName"
:src="currentSrc"
:title="siteName"
@error="onError"
/>
</BaseAppLink>
</div>
</template>