const EDIT_ROLES = Object.freeze(['admin', 'leader'])

export function useUser() {
  const requestFetch = useRequestFetch()
  const { data: user, refresh, status } = useAsyncData(
    'user',
    () => (requestFetch ?? $fetch)('/api/me').catch(() => null),
    { default: () => null },
  )
  const authPending = computed(() => status.value === 'pending')
  const canEditPois = computed(() => EDIT_ROLES.includes(user.value?.role))
  const isAdmin = computed(() => user.value?.role === 'admin')
  return Object.freeze({ user, authPending, canEditPois, isAdmin, refresh })
}
