This repository has been archived on 2024-02-08. You can view files and clone it, but cannot push or open issues or pull requests.
frontend/src/composables/useDaytimeSalutation.ts

26 lines
951 B
TypeScript
Raw Permalink Normal View History

2023-03-24 19:06:08 +00:00
import {computed, onActivated, ref} from 'vue'
2022-10-16 13:26:02 +00:00
import {useI18n} from 'vue-i18n'
2022-10-16 17:36:04 +00:00
import {useAuthStore} from '@/stores/auth'
import {hourToDaytime} from '@/helpers/hourToDaytime'
export type Daytime = 'night' | 'morning' | 'day' | 'evening'
2021-12-30 16:14:43 +00:00
export function useDaytimeSalutation() {
2022-10-16 13:26:02 +00:00
const {t} = useI18n({useScope: 'global'})
const now = ref(new Date())
2023-03-24 19:06:08 +00:00
onActivated(() => now.value = new Date())
2022-10-16 17:36:04 +00:00
const authStore = useAuthStore()
const name = computed(() => authStore.userDisplayName)
2022-10-16 13:26:02 +00:00
const daytime = computed(() => hourToDaytime(now.value))
const salutations = {
'night': () => t('home.welcomeNight', {username: name.value}),
'morning': () => t('home.welcomeMorning', {username: name.value}),
'day': () => t('home.welcomeDay', {username: name.value}),
'evening': () => t('home.welcomeEvening', {username: name.value}),
} as Record<Daytime, () => string>
2022-10-16 17:36:04 +00:00
return computed(() => name.value ? salutations[daytime.value]() : undefined)
}