All files / src/composables useUserProfile.ts

0% Statements 0/44
100% Branches 1/1
100% Functions 1/1
0% Lines 0/44

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                                                                                                                                                                       
// 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