Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 | 1x 1x 3x 3x 3x 3x 3x 3x 3x 2x 2x 1x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 1x 3x 3x 3x 3x 3x 3x 3x 3x 3x | // region Dependency Injection
import {computed} from 'vue'
import {useAuth} from '@/composables/useAuth'
// endregion Dependency Injection
// region Component Import
// endregion Component Import
// region interface
// endregion interface
// region constants
// endregion constants
// region props
// endregion props
// region variable
// endregion variable
// region properties
// endregion properties
// region emits
// endregion emits
// region validator
// endregion validator
// region methods
function getDisplayName() {
const { firebaseUser, appUser } = useAuth()
return computed(() => {
const au = appUser
const fb = firebaseUser
return (
// au?.display_name ||
au?.name ||
fb?.displayName ||
(fb?.email ? fb.email.split('@')[0] : '') ||
'User'
)
})
}
function getEmail() {
const { firebaseUser, appUser } = useAuth()
return computed(() => appUser?.email ?? firebaseUser?.email ?? '')
}
function getPhotoURL() {
const { firebaseUser } = useAuth()
return computed(() => firebaseUser?.photoURL || '')
}
function getRole() {
const { appUser } = useAuth()
return computed(() => appUser?.role ?? '—')
}
function getUid() {
const { firebaseUser } = useAuth()
return computed(() => firebaseUser?.uid ?? '')
}
function getProviders() {
const { firebaseUser } = useAuth()
return computed(() => (firebaseUser?.providerData ?? []).map(p => p.providerId))
}
// endregion methods
// region export
export const useUserProfile = () => {
return {
displayName: getDisplayName(),
email: getEmail(),
photoURL: getPhotoURL(),
role: getRole(),
uid: getUid(),
providers: getProviders(),
}
}
// endregion export
|