fix: onLoggedIn called when id token is not yet resolved for auth users
This commit is contained in:
2
packages/hoppscotch-app/src/components.d.ts
vendored
2
packages/hoppscotch-app/src/components.d.ts
vendored
@@ -55,7 +55,6 @@ declare module '@vue/runtime-core' {
|
|||||||
CollectionsTeamsRequest: typeof import('./components/collections/teams/Request.vue')['default']
|
CollectionsTeamsRequest: typeof import('./components/collections/teams/Request.vue')['default']
|
||||||
Environments: typeof import('./components/environments/index.vue')['default']
|
Environments: typeof import('./components/environments/index.vue')['default']
|
||||||
EnvironmentsChooseType: typeof import('./components/environments/ChooseType.vue')['default']
|
EnvironmentsChooseType: typeof import('./components/environments/ChooseType.vue')['default']
|
||||||
EnvironmentsDetail: typeof import('./components/environments/Detail.vue')['default']
|
|
||||||
EnvironmentsImportExport: typeof import('./components/environments/ImportExport.vue')['default']
|
EnvironmentsImportExport: typeof import('./components/environments/ImportExport.vue')['default']
|
||||||
EnvironmentsMy: typeof import('./components/environments/my/index.vue')['default']
|
EnvironmentsMy: typeof import('./components/environments/my/index.vue')['default']
|
||||||
EnvironmentsMyDetails: typeof import('./components/environments/my/Details.vue')['default']
|
EnvironmentsMyDetails: typeof import('./components/environments/my/Details.vue')['default']
|
||||||
@@ -110,6 +109,7 @@ declare module '@vue/runtime-core' {
|
|||||||
IconLucideSearch: typeof import('~icons/lucide/search')['default']
|
IconLucideSearch: typeof import('~icons/lucide/search')['default']
|
||||||
IconLucideUser: typeof import('~icons/lucide/user')['default']
|
IconLucideUser: typeof import('~icons/lucide/user')['default']
|
||||||
IconLucideUsers: typeof import('~icons/lucide/users')['default']
|
IconLucideUsers: typeof import('~icons/lucide/users')['default']
|
||||||
|
IconLucideVerified: typeof import('~icons/lucide/verified')['default']
|
||||||
LensesHeadersRenderer: typeof import('./components/lenses/HeadersRenderer.vue')['default']
|
LensesHeadersRenderer: typeof import('./components/lenses/HeadersRenderer.vue')['default']
|
||||||
LensesHeadersRendererEntry: typeof import('./components/lenses/HeadersRendererEntry.vue')['default']
|
LensesHeadersRendererEntry: typeof import('./components/lenses/HeadersRendererEntry.vue')['default']
|
||||||
LensesRenderersHTMLLensRenderer: typeof import('./components/lenses/renderers/HTMLLensRenderer.vue')['default']
|
LensesRenderersHTMLLensRenderer: typeof import('./components/lenses/renderers/HTMLLensRenderer.vue')['default']
|
||||||
|
|||||||
@@ -3,8 +3,15 @@ import {
|
|||||||
HoppUser,
|
HoppUser,
|
||||||
AuthEvent,
|
AuthEvent,
|
||||||
authEvents$,
|
authEvents$,
|
||||||
|
authIdToken$,
|
||||||
} from "@helpers/fb/auth"
|
} from "@helpers/fb/auth"
|
||||||
import { map, distinctUntilChanged, filter, Subscription } from "rxjs"
|
import {
|
||||||
|
map,
|
||||||
|
distinctUntilChanged,
|
||||||
|
filter,
|
||||||
|
Subscription,
|
||||||
|
combineLatestWith,
|
||||||
|
} from "rxjs"
|
||||||
import { onBeforeUnmount, onMounted } from "vue"
|
import { onBeforeUnmount, onMounted } from "vue"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -19,6 +26,10 @@ export function onLoggedIn(exec: (user: HoppUser) => void) {
|
|||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
sub = currentUser$
|
sub = currentUser$
|
||||||
.pipe(
|
.pipe(
|
||||||
|
// We don't consider the state as logged in unless we also have an id token
|
||||||
|
combineLatestWith(authIdToken$),
|
||||||
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
||||||
|
filter(([_, token]) => !!token),
|
||||||
map((user) => !!user), // Get a logged in status (true or false)
|
map((user) => !!user), // Get a logged in status (true or false)
|
||||||
distinctUntilChanged(), // Don't propagate unless the status updates
|
distinctUntilChanged(), // Don't propagate unless the status updates
|
||||||
filter((x) => x) // Don't propagate unless it is logged in
|
filter((x) => x) // Don't propagate unless it is logged in
|
||||||
|
|||||||
Reference in New Issue
Block a user