mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-02-21 15:24:09 +00:00
feat: decouple auth and telemetry with event hooks
- Create authEventBus.ts with typed event hooks - Create authTracking.ts to subscribe telemetry to auth events - Remove direct telemetry imports from firebaseAuthStore - Remove useCurrentUser import from MixpanelTelemetryProvider - Breaks ~600 circular dependency cycles Amp-Thread-ID: https://ampcode.com/threads/T-019bfe73-6a29-7638-8160-8de515af8707 Co-authored-by: Amp <amp@ampcode.com>
This commit is contained in:
@@ -25,8 +25,8 @@ import { getComfyApiBaseUrl } from '@/config/comfyApi'
|
||||
import { t } from '@/i18n'
|
||||
import { WORKSPACE_STORAGE_KEYS } from '@/platform/auth/workspace/workspaceConstants'
|
||||
import { isCloud } from '@/platform/distribution/types'
|
||||
import { useTelemetry } from '@/platform/telemetry'
|
||||
import { useDialogService } from '@/services/dialogService'
|
||||
import { authEventHook, userResolvedHook } from '@/stores/authEventBus'
|
||||
import { useApiKeyAuthStore } from '@/stores/apiKeyAuthStore'
|
||||
import type { AuthHeader } from '@/types/authTypes'
|
||||
import type { operations } from '@/types/comfyRegistryTypes'
|
||||
@@ -323,10 +323,16 @@ export const useFirebaseAuthStore = defineStore('firebaseAuth', () => {
|
||||
)
|
||||
|
||||
if (isCloud) {
|
||||
useTelemetry()?.trackAuth({
|
||||
authEventHook.trigger({
|
||||
type: 'login',
|
||||
method: 'email',
|
||||
is_new_user: false
|
||||
})
|
||||
userResolvedHook.trigger({
|
||||
userId: result.user.uid,
|
||||
email: result.user.email,
|
||||
displayName: result.user.displayName
|
||||
})
|
||||
}
|
||||
|
||||
return result
|
||||
@@ -343,10 +349,16 @@ export const useFirebaseAuthStore = defineStore('firebaseAuth', () => {
|
||||
)
|
||||
|
||||
if (isCloud) {
|
||||
useTelemetry()?.trackAuth({
|
||||
authEventHook.trigger({
|
||||
type: 'register',
|
||||
method: 'email',
|
||||
is_new_user: true
|
||||
})
|
||||
userResolvedHook.trigger({
|
||||
userId: result.user.uid,
|
||||
email: result.user.email,
|
||||
displayName: result.user.displayName
|
||||
})
|
||||
}
|
||||
|
||||
return result
|
||||
@@ -361,10 +373,16 @@ export const useFirebaseAuthStore = defineStore('firebaseAuth', () => {
|
||||
if (isCloud) {
|
||||
const additionalUserInfo = getAdditionalUserInfo(result)
|
||||
const isNewUser = additionalUserInfo?.isNewUser ?? false
|
||||
useTelemetry()?.trackAuth({
|
||||
authEventHook.trigger({
|
||||
type: isNewUser ? 'register' : 'login',
|
||||
method: 'google',
|
||||
is_new_user: isNewUser
|
||||
})
|
||||
userResolvedHook.trigger({
|
||||
userId: result.user.uid,
|
||||
email: result.user.email,
|
||||
displayName: result.user.displayName
|
||||
})
|
||||
}
|
||||
|
||||
return result
|
||||
@@ -379,10 +397,16 @@ export const useFirebaseAuthStore = defineStore('firebaseAuth', () => {
|
||||
if (isCloud) {
|
||||
const additionalUserInfo = getAdditionalUserInfo(result)
|
||||
const isNewUser = additionalUserInfo?.isNewUser ?? false
|
||||
useTelemetry()?.trackAuth({
|
||||
authEventHook.trigger({
|
||||
type: isNewUser ? 'register' : 'login',
|
||||
method: 'github',
|
||||
is_new_user: isNewUser
|
||||
})
|
||||
userResolvedHook.trigger({
|
||||
userId: result.user.uid,
|
||||
email: result.user.email,
|
||||
displayName: result.user.displayName
|
||||
})
|
||||
}
|
||||
|
||||
return result
|
||||
|
||||
Reference in New Issue
Block a user