diff --git a/src/layouts/MainLayout.vue b/src/layouts/MainLayout.vue index c09effed..29e106bc 100644 --- a/src/layouts/MainLayout.vue +++ b/src/layouts/MainLayout.vue @@ -2,7 +2,7 @@ import { ref, onMounted, computed, reactive } from 'vue'; import { storeToRefs } from 'pinia'; import { useQuasar } from 'quasar'; -import { getUserId, getUsername, logout, getRole } from 'src/services/keycloak'; +import { getUserId, getUsername, getName, logout, getRole } from 'src/services/keycloak'; import { Icon } from '@iconify/vue'; import { useI18n } from 'vue-i18n'; import moment from 'moment'; @@ -39,7 +39,7 @@ const configStore = useConfigStore(); const { data: notificationData } = storeToRefs(notificationStore); const { visible } = storeToRefs(loaderStore); -const { t } = useI18n({ useScope: 'global' }); +const { t, locale } = useI18n({ useScope: 'global' }); const userStore = useUserStore(); const canvasModal = ref(false); @@ -52,8 +52,14 @@ const unread = computed( ); const userImage = ref(); const userGender = ref(''); +const userName = ref({ th: '', en: '' }); const canvasRef = ref(); +const displayName = computed(() => { + if (!userName.value.th && !userName.value.en) return getName() || 'Guest'; + return locale.value === 'eng' ? userName.value.en : userName.value.th; +}); + const language: { value: Lang; label: string; @@ -161,9 +167,14 @@ onMounted(async () => { if (user === 'admin') return; if (uid) { const res = await userStore.fetchById(uid); - if (res && res.gender) { - userGender.value = res.gender; - userImage.value = `${baseUrl}/user/${uid}/profile-image/${res.selectedImage}`; + if (res) { + if (res.gender) { + userGender.value = res.gender; + userImage.value = `${baseUrl}/user/${uid}/profile-image/${res.selectedImage}`; + } + // เก็บชื่อทั้งสองภาษา + userName.value.th = `${res.firstName || ''} ${res.lastName || ''}`.trim(); + userName.value.en = `${res.firstNameEN || ''} ${res.lastNameEN || ''}`.trim(); } } }); @@ -484,6 +495,7 @@ onMounted(async () => { - {{ getName() }} + {{ userName || getName() }} - {{ getName() }} + {{ userName || getName() }} { style="margin-top: 58px" > - {{ getName() }} + {{ userName || getName() }} {{ 'Guest' }} - {{ getName() }} + {{ userName || getName() }} {{ 'Guest' }}