nfx-ui 0.28.0 → 0.30.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","names":[],"sources":["../../src/hooks/auth.ts"],"sourcesContent":["/**\n * Auth hooks — 组件勿直接调 apis/auth\n */\nimport type { AxiosError } from \"axios\";\nimport type { CurrentProfileResult, Login, Profile, Signup } from \"nfx-ui/types\";\n\nimport { useEffect } from \"react\";\nimport { useMutation } from \"@tanstack/react-query\";\nimport { useAuthRepository } from \"nfx-ui/apis/repositories\";\nimport { AUTH_EMAILS, AUTH_ME, AUTH_OWNER_AUTHORITIES, AUTH_OWNER_FORGERS, AUTH_PHONES, AUTH_PROFILE_SEARCH, AUTH_PROFILES, AUTH_PUBLIC_CARD } from \"nfx-ui/constants\";\nimport { AuthSignupPlatformEnum, LanguageEnum, ProfileKindEnum } from \"nfx-ui/enums\";\nimport { authEventEmitter, authEvents } from \"nfx-ui/events/auth\";\nimport { systemEventEmitter } from \"nfx-ui/events/system\";\nimport {\n AuthStore,\n clearAuth,\n EMPTY_PROFILE_ID,\n hasSelectedProfile,\n setCurrentAccountId,\n setCurrentProfileId,\n setCurrentProfileKind,\n setIsAuthValid,\n setTokens,\n useAuthStore,\n} from \"nfx-ui/stores/auth\";\nimport { ensureDeviceIdStorage } from \"nfx-ui/stores/system\";\nimport { getApiErrorMessage } from \"nfx-ui/utils/apiError\";\nimport { pickProfile } from \"nfx-ui/utils/domain/account\";\nimport { useUnifiedQuery } from \"nfx-ui/utils/factory\";\nimport { safeOr, safeStringable } from \"nfx-ui/utils/safe\";\nimport { useTranslation } from \"react-i18next\";\n\nexport function useAuthQueryScope() {\n const aID = useAuthStore((s) => s.currentAccountId);\n const pID = useAuthStore((s) => s.currentProfileId);\n const isAuthValid = useAuthStore((s) => s.isAuthValid);\n const kind = useAuthStore((s) => s.currentProfileKind);\n return { aID, pID, isAuthValid, kind, profileScope: kind };\n}\n\nfunction useLogoutOnAuthError(isError: boolean, aID: string) {\n useEffect(() => {\n if (!isError || !AuthStore.getState().isAuthValid) return;\n if (!hasSelectedProfile(AuthStore.getState().currentProfileId)) return;\n authEventEmitter.emit(authEvents.LOGOUT, aID);\n clearAuth();\n }, [isError, aID]);\n}\n\nexport function useCurrentProfile(): CurrentProfileResult {\n const auth = useAuthRepository();\n const { aID, pID, isAuthValid, kind } = useAuthQueryScope();\n const result = useUnifiedQuery(\n ({ kind }: { kind: ProfileKindEnum }) => auth.GetCurrentFullAccountInformationWithProfile(kind),\n AUTH_ME(aID, pID),\n { kind },\n { enabled: isAuthValid && hasSelectedProfile(pID) },\n );\n useLogoutOnAuthError(result.isError, aID);\n return {\n kind,\n data: result.data,\n profile: pickProfile(kind, result.data),\n isLoading: result.isLoading,\n isError: result.isError,\n refetch: result.refetch,\n } as CurrentProfileResult;\n}\n\nexport const useSendVerificationCode = () => {\n const auth = useAuthRepository();\n const { t } = useTranslation(\"hooks\", { keyPrefix: \"account\" });\n return useMutation({\n mutationFn: (params: Signup.Request.SendVerificationCode) => auth.SendVerificationCode(params),\n onSuccess: () => {\n systemEventEmitter.showSuccess(t(\"sendVerificationCodeSuccess\", { defaultValue: \"Code sent\" }));\n },\n onError: (error: AxiosError) => {\n systemEventEmitter.showError(getApiErrorMessage(error, \"[useSendVerificationCode] error\"));\n },\n });\n};\n\nexport const useSignupWithEmail = () => {\n const auth = useAuthRepository();\n return useMutation({\n mutationFn: async ({\n rememberMe,\n ...params\n }: {\n rememberMe: boolean;\n } & Omit<Signup.Request.SignupWithEmail, \"deviceId\">): Promise<Signup.Response.SignupWithEmail & { profileId?: string }> => {\n const deviceId = await ensureDeviceIdStorage();\n const result = await auth.SignupWithEmail({\n ...params,\n deviceId,\n });\n const first = result.profiles?.find((p) => p.kind === ProfileKindEnum.FORGER) ?? result.profiles?.[0];\n if (!first) return result;\n const selected = await auth.SelectProfile({\n profileId: first.profileId,\n kind: first.kind,\n deviceId,\n });\n return { ...result, accessToken: selected.accessToken, refreshToken: selected.refreshToken, profileId: selected.profileId };\n },\n onSuccess: (result, variables) => {\n if (!result?.accessToken) return;\n setTokens(\n {\n accessToken: result.accessToken,\n refreshToken: safeStringable(result.refreshToken),\n },\n { rememberMe: variables.rememberMe },\n );\n setIsAuthValid(true);\n if (result.accountId) setCurrentAccountId(result.accountId);\n if (result.profileId) {\n setCurrentProfileId(result.profileId);\n setCurrentProfileKind(ProfileKindEnum.FORGER);\n authEventEmitter.emit(authEvents.LOGIN_SUCCESS, result.accountId);\n } else {\n setCurrentProfileId(EMPTY_PROFILE_ID);\n }\n },\n onError: (error: AxiosError) => {\n systemEventEmitter.showError(getApiErrorMessage(error, \"[useSignup] error\"));\n },\n });\n};\n\nexport const useLoginWithEmail = () => {\n const auth = useAuthRepository();\n return useMutation({\n mutationFn: async ({ rememberMe, ...params }: { email: string; password: string; rememberMe: boolean }) =>\n auth.LoginWithEmail({\n ...params,\n deviceId: await ensureDeviceIdStorage(),\n }),\n onSuccess: (result, variables) => {\n if (!result?.accessToken) return;\n setCurrentProfileId(EMPTY_PROFILE_ID);\n setTokens(\n {\n accessToken: result.accessToken,\n refreshToken: safeStringable(result.refreshToken),\n },\n { rememberMe: variables.rememberMe },\n );\n setIsAuthValid(true);\n if (result.accountId) setCurrentAccountId(result.accountId);\n },\n onError: (error: AxiosError) => {\n systemEventEmitter.showError(getApiErrorMessage(error, \"[useLogin] error\"));\n },\n });\n};\n\nexport const useLoginWithPhone = () => {\n const auth = useAuthRepository();\n return useMutation({\n mutationFn: async ({ rememberMe, ...params }: { phone: string; password: string; rememberMe: boolean }) =>\n auth.LoginWithPhone({\n ...params,\n deviceId: await ensureDeviceIdStorage(),\n }),\n onSuccess: (result, variables) => {\n if (!result?.accessToken) return;\n setCurrentProfileId(EMPTY_PROFILE_ID);\n setTokens(\n {\n accessToken: result.accessToken,\n refreshToken: safeStringable(result.refreshToken),\n },\n { rememberMe: variables.rememberMe },\n );\n setIsAuthValid(true);\n if (result.accountId) setCurrentAccountId(result.accountId);\n },\n onError: (error: AxiosError) => {\n systemEventEmitter.showError(getApiErrorMessage(error, \"[useLoginWithPhone] error\"));\n },\n });\n};\n\nexport const useSelectProfile = () => {\n const auth = useAuthRepository();\n return useMutation({\n mutationFn: async ({ profileId, kind }: { profileId: string; kind: Login.ProfileKind }) =>\n auth.SelectProfile({\n profileId,\n kind,\n deviceId: await ensureDeviceIdStorage(),\n }),\n onSuccess: (result, variables) => {\n if (result?.accessToken) {\n setTokens({\n accessToken: result.accessToken,\n refreshToken: safeStringable(result.refreshToken),\n });\n setCurrentProfileKind(variables.kind);\n if (result.profileId) setCurrentProfileId(result.profileId);\n authEventEmitter.emit(authEvents.LOGIN_SUCCESS, result.accountId);\n }\n },\n onError: (error: AxiosError) => {\n systemEventEmitter.showError(getApiErrorMessage(error, \"[useSelectProfile] error\"));\n },\n });\n};\n\nexport const usePatchProfile = (options?: { silent?: boolean }) => {\n const auth = useAuthRepository();\n const { kind } = useAuthQueryScope();\n const silent = safeOr(options?.silent, false);\n const { t } = useTranslation(\"pages.User.Profile.Edit\");\n return useMutation({\n mutationFn: (body: Profile.Request.PatchProfile) => auth.PatchProfile(kind, body),\n onSuccess: () => {\n if (!silent) systemEventEmitter.showSuccess(t(\"saveSuccess\", { defaultValue: \"Saved\" }));\n const aID = AuthStore.getState().currentAccountId;\n authEventEmitter.invalidateProfiles({ aID, kind });\n },\n onError: (error: AxiosError) => {\n if (!silent) systemEventEmitter.showError(getApiErrorMessage(error, \"[usePatchProfile] error\"));\n },\n });\n};\n\nexport const useUpdateProfileSettings = () => {\n const auth = useAuthRepository();\n const { kind } = useAuthQueryScope();\n const { t } = useTranslation(\"hooks\", { keyPrefix: \"account\" });\n return useMutation({\n mutationFn: (body: Profile.Request.PatchProfileSettings) => auth.PatchProfileSettings(kind, body),\n onSuccess: () => {\n const aID = AuthStore.getState().currentAccountId;\n authEventEmitter.emit(authEvents.UPDATE_ACCOUNT_SUCCESS, aID);\n systemEventEmitter.showSuccess(t(\"updateSettingsSuccess\", { defaultValue: \"Settings updated.\" }));\n },\n onError: (error: AxiosError) => {\n systemEventEmitter.showError(getApiErrorMessage(error, \"[useUpdateProfileSettings] error\"));\n },\n });\n};\n\nexport const useUpdatePreference = () => {\n const auth = useAuthRepository();\n const { kind } = useAuthQueryScope();\n return useMutation({\n mutationFn: (preference: string) => auth.UpdatePreference(kind, preference),\n onError: (error: AxiosError) => {\n systemEventEmitter.showError(getApiErrorMessage(error, \"[useUpdatePreference] error\"));\n },\n });\n};\n\nexport const useListProfiles = <K extends ProfileKindEnum>(kind: K) => {\n const auth = useAuthRepository();\n const { aID, isAuthValid } = useAuthQueryScope();\n return useUnifiedQuery(\n () => auth.ListProfiles(kind, { limit: 50, offset: 0 }),\n AUTH_PROFILES(aID, kind),\n undefined,\n { enabled: isAuthValid && Boolean(aID) },\n );\n};\n\nexport const useCreateForgerProfile = () => {\n const auth = useAuthRepository();\n return useMutation({\n mutationFn: (body: Login.Request.CreateForgerProfile) => auth.CreateForgerProfile(body),\n onSuccess: () => {\n const aID = AuthStore.getState().currentAccountId;\n authEventEmitter.invalidateProfiles({ aID, kind: ProfileKindEnum.FORGER });\n },\n onError: (error: AxiosError) => {\n systemEventEmitter.showError(getApiErrorMessage(error, \"[useCreateForgerProfile] error\"));\n },\n });\n};\n\nexport const useCreateAuthorityProfile = () => {\n const auth = useAuthRepository();\n return useMutation({\n mutationFn: (body: Login.Request.CreateAuthorityProfile) => auth.CreateAuthorityProfile(body),\n onSuccess: () => {\n const aID = AuthStore.getState().currentAccountId;\n authEventEmitter.invalidateProfiles({ aID, kind: ProfileKindEnum.AUTHORITY });\n },\n onError: (error: AxiosError) => {\n systemEventEmitter.showError(getApiErrorMessage(error, \"[useCreateAuthorityProfile] error\"));\n },\n });\n};\n\nexport const useDeleteProfile = () => {\n const auth = useAuthRepository();\n return useMutation({\n mutationFn: ({ kind, profileId }: { kind: ProfileKindEnum; profileId: string }) => auth.DeleteProfile(kind, profileId),\n onSuccess: (_void, variables) => {\n const aID = AuthStore.getState().currentAccountId;\n authEventEmitter.invalidateProfiles({ aID, kind: variables.kind });\n },\n onError: (error: AxiosError) => {\n systemEventEmitter.showError(getApiErrorMessage(error, \"[useDeleteProfile] error\"));\n },\n });\n};\n\nexport const useConfirmProfileAvatar = () => {\n const auth = useAuthRepository();\n const { kind } = useAuthQueryScope();\n return useMutation({\n mutationFn: (body: Profile.Request.ConfirmProfileAvatar) => auth.ConfirmProfileAvatar(kind, body),\n onSuccess: () => {\n const aID = AuthStore.getState().currentAccountId;\n authEventEmitter.emit(authEvents.UPDATE_ACCOUNT_SUCCESS, aID);\n },\n onError: (error: AxiosError) => {\n systemEventEmitter.showError(getApiErrorMessage(error, \"[useConfirmProfileAvatar] error\"));\n },\n });\n};\n\nexport const useClearProfileAvatar = () => {\n const auth = useAuthRepository();\n const { kind } = useAuthQueryScope();\n const { t } = useTranslation(\"hooks\", { keyPrefix: \"account\" });\n return useMutation({\n mutationFn: () => auth.ClearProfileAvatar(kind),\n onSuccess: () => {\n const aID = AuthStore.getState().currentAccountId;\n authEventEmitter.emit(authEvents.UPDATE_ACCOUNT_SUCCESS, aID);\n systemEventEmitter.showSuccess(t(\"clearAvatarSuccess\", { defaultValue: \"Avatar removed.\" }));\n },\n onError: (error: AxiosError) => {\n systemEventEmitter.showError(getApiErrorMessage(error, \"[useClearProfileAvatar] error\"));\n },\n });\n};\n\nexport const useListEmails = () => {\n const auth = useAuthRepository();\n const { aID, isAuthValid } = useAuthQueryScope();\n return useUnifiedQuery(() => auth.ListEmails({ limit: 50, offset: 0 }), AUTH_EMAILS(aID), undefined, {\n enabled: isAuthValid && Boolean(aID),\n });\n};\n\nexport const useListPhones = () => {\n const auth = useAuthRepository();\n const { aID, isAuthValid } = useAuthQueryScope();\n return useUnifiedQuery(() => auth.ListPhones({ limit: 50, offset: 0 }), AUTH_PHONES(aID), undefined, {\n enabled: isAuthValid && Boolean(aID),\n });\n};\n\nexport const useCreateEmail = () => {\n const auth = useAuthRepository();\n const accountId = AuthStore.getState().currentAccountId;\n const { t } = useTranslation(\"hooks\", { keyPrefix: \"account\" });\n return useMutation({\n mutationFn: (body: Login.Request.CreateEmail) => auth.CreateEmail(body),\n onSuccess: () => {\n authEventEmitter.invalidateEmails(accountId);\n systemEventEmitter.showSuccess(t(\"createEmailSuccess\", { defaultValue: \"Email added.\" }));\n },\n onError: (error: AxiosError) => {\n systemEventEmitter.showError(getApiErrorMessage(error, \"[useCreateEmail] error\"));\n },\n });\n};\n\nexport const useSendEmailVerificationCode = () => {\n const auth = useAuthRepository();\n const { t } = useTranslation(\"hooks\", { keyPrefix: \"account\" });\n return useMutation({\n mutationFn: ({ emailId, lang }: { emailId: string; lang?: LanguageEnum }) => auth.SendEmailVerificationCode(emailId, { lang }),\n onSuccess: () => {\n systemEventEmitter.showSuccess(t(\"sendVerificationCodeSuccess\", { defaultValue: \"Code sent\" }));\n },\n onError: (error: AxiosError) => {\n systemEventEmitter.showError(getApiErrorMessage(error, \"[useSendEmailVerificationCode] error\"));\n },\n });\n};\n\nexport const useVerifyEmail = () => {\n const auth = useAuthRepository();\n const accountId = AuthStore.getState().currentAccountId;\n const { t } = useTranslation(\"hooks\", { keyPrefix: \"account\" });\n return useMutation({\n mutationFn: ({ emailId, verificationCode }: { emailId: string; verificationCode: string }) =>\n auth.VerifyEmail(emailId, { verificationCode }),\n onSuccess: () => {\n authEventEmitter.invalidateEmails(accountId);\n systemEventEmitter.showSuccess(t(\"verifyEmailSuccess\", { defaultValue: \"Email verified.\" }));\n },\n onError: (error: AxiosError) => {\n systemEventEmitter.showError(getApiErrorMessage(error, \"[useVerifyEmail] error\"));\n },\n });\n};\n\nexport const useUpdateEmail = () => {\n const auth = useAuthRepository();\n const accountId = AuthStore.getState().currentAccountId;\n const { t } = useTranslation(\"hooks\", { keyPrefix: \"account\" });\n return useMutation({\n mutationFn: ({ emailId, email }: { emailId: string; email: string }) => auth.UpdateEmail(emailId, { email }),\n onSuccess: () => {\n authEventEmitter.invalidateEmails(accountId);\n systemEventEmitter.showSuccess(t(\"updateEmailSuccess\", { defaultValue: \"Email updated.\" }));\n },\n onError: (error: AxiosError) => {\n systemEventEmitter.showError(getApiErrorMessage(error, \"[useUpdateEmail] error\"));\n },\n });\n};\n\nexport const useSetPrimaryEmail = () => {\n const auth = useAuthRepository();\n const accountId = AuthStore.getState().currentAccountId;\n const { t } = useTranslation(\"hooks\", { keyPrefix: \"account\" });\n return useMutation({\n mutationFn: (emailId: string) => auth.SetPrimaryEmail(emailId),\n onSuccess: () => {\n authEventEmitter.invalidateEmails(accountId);\n authEventEmitter.emit(authEvents.UPDATE_ACCOUNT_SUCCESS, accountId);\n systemEventEmitter.showSuccess(t(\"setPrimaryEmailSuccess\", { defaultValue: \"Primary email updated.\" }));\n },\n onError: (error: AxiosError) => {\n systemEventEmitter.showError(getApiErrorMessage(error, \"[useSetPrimaryEmail] error\"));\n },\n });\n};\n\nexport const useDeleteEmail = () => {\n const auth = useAuthRepository();\n const accountId = AuthStore.getState().currentAccountId;\n const { t } = useTranslation(\"hooks\", { keyPrefix: \"account\" });\n return useMutation({\n mutationFn: (emailId: string) => auth.DeleteEmail(emailId),\n onSuccess: () => {\n authEventEmitter.invalidateEmails(accountId);\n systemEventEmitter.showSuccess(t(\"deleteEmailSuccess\", { defaultValue: \"Email removed.\" }));\n },\n onError: (error: AxiosError) => {\n systemEventEmitter.showError(getApiErrorMessage(error, \"[useDeleteEmail] error\"));\n },\n });\n};\n\nexport const useSendChangePasswordVerificationCode = () => {\n const auth = useAuthRepository();\n const { t } = useTranslation(\"hooks\", { keyPrefix: \"account\" });\n return useMutation({\n mutationFn: (body: Login.Request.SendChangePasswordVerificationCode = {}) => auth.SendChangePasswordVerificationCode(body),\n onSuccess: () => {\n systemEventEmitter.showSuccess(t(\"sendVerificationCodeSuccess\", { defaultValue: \"Code sent\" }));\n },\n onError: (error: AxiosError) => {\n systemEventEmitter.showError(getApiErrorMessage(error, \"[useSendChangePasswordVerificationCode] error\"));\n },\n });\n};\n\nexport const useChangePassword = () => {\n const auth = useAuthRepository();\n const { t } = useTranslation(\"hooks\", { keyPrefix: \"account\" });\n return useMutation({\n mutationFn: (body: Login.Request.ChangePassword) => auth.ChangePassword(body),\n onSuccess: () => {\n systemEventEmitter.showSuccess(t(\"changePasswordSuccess\", { defaultValue: \"Password updated.\" }));\n },\n onError: (error: AxiosError) => {\n systemEventEmitter.showError(getApiErrorMessage(error, \"[useChangePassword] error\"));\n },\n });\n};\n\nexport const useConfirmProfileBackgrounds = () => {\n const auth = useAuthRepository();\n const { kind } = useAuthQueryScope();\n return useMutation({\n mutationFn: (body: Profile.Request.ConfirmProfileBackgrounds) => auth.ConfirmProfileBackgrounds(kind, body),\n onSuccess: () => {\n const aID = AuthStore.getState().currentAccountId;\n authEventEmitter.emit(authEvents.UPDATE_ACCOUNT_SUCCESS, aID);\n },\n onError: (error: AxiosError) => {\n systemEventEmitter.showError(getApiErrorMessage(error, \"[useConfirmProfileBackgrounds] error\"));\n },\n });\n};\n\nexport const useCreatePhone = () => {\n const auth = useAuthRepository();\n const accountId = AuthStore.getState().currentAccountId;\n const { t } = useTranslation(\"hooks\", { keyPrefix: \"account\" });\n return useMutation({\n mutationFn: (body: Login.Request.CreatePhone) => auth.CreatePhone(body),\n onSuccess: () => {\n authEventEmitter.invalidatePhones(accountId);\n systemEventEmitter.showSuccess(t(\"createPhoneSuccess\", { defaultValue: \"Phone added.\" }));\n },\n onError: (error: AxiosError) => {\n systemEventEmitter.showError(getApiErrorMessage(error, \"[useCreatePhone] error\"));\n },\n });\n};\n\nexport const useSendPhoneVerificationCode = () => {\n const auth = useAuthRepository();\n const { t } = useTranslation(\"hooks\", { keyPrefix: \"account\" });\n return useMutation({\n mutationFn: (phoneId: string) => auth.SendPhoneVerificationCode(phoneId),\n onSuccess: () => {\n systemEventEmitter.showSuccess(t(\"sendVerificationCodeSuccess\", { defaultValue: \"Code sent\" }));\n },\n onError: (error: AxiosError) => {\n systemEventEmitter.showError(getApiErrorMessage(error, \"[useSendPhoneVerificationCode] error\"));\n },\n });\n};\n\nexport const useVerifyPhone = () => {\n const auth = useAuthRepository();\n const accountId = AuthStore.getState().currentAccountId;\n const { t } = useTranslation(\"hooks\", { keyPrefix: \"account\" });\n return useMutation({\n mutationFn: ({ phoneId, verificationCode }: { phoneId: string; verificationCode: string }) =>\n auth.VerifyPhone(phoneId, { verificationCode }),\n onSuccess: () => {\n authEventEmitter.invalidatePhones(accountId);\n systemEventEmitter.showSuccess(t(\"verifyPhoneSuccess\", { defaultValue: \"Phone verified.\" }));\n },\n onError: (error: AxiosError) => {\n systemEventEmitter.showError(getApiErrorMessage(error, \"[useVerifyPhone] error\"));\n },\n });\n};\n\nexport const useUpdatePhone = () => {\n const auth = useAuthRepository();\n const accountId = AuthStore.getState().currentAccountId;\n const { t } = useTranslation(\"hooks\", { keyPrefix: \"account\" });\n return useMutation({\n mutationFn: ({ phoneId, phone }: { phoneId: string; phone: string }) => auth.UpdatePhone(phoneId, { phone }),\n onSuccess: () => {\n authEventEmitter.invalidatePhones(accountId);\n systemEventEmitter.showSuccess(t(\"updatePhoneSuccess\", { defaultValue: \"Phone updated.\" }));\n },\n onError: (error: AxiosError) => {\n systemEventEmitter.showError(getApiErrorMessage(error, \"[useUpdatePhone] error\"));\n },\n });\n};\n\nexport const useSetPrimaryPhone = () => {\n const auth = useAuthRepository();\n const accountId = AuthStore.getState().currentAccountId;\n const { t } = useTranslation(\"hooks\", { keyPrefix: \"account\" });\n return useMutation({\n mutationFn: (phoneId: string) => auth.SetPrimaryPhone(phoneId),\n onSuccess: () => {\n authEventEmitter.invalidatePhones(accountId);\n authEventEmitter.emit(authEvents.UPDATE_ACCOUNT_SUCCESS, accountId);\n systemEventEmitter.showSuccess(t(\"setPrimaryPhoneSuccess\", { defaultValue: \"Primary phone updated.\" }));\n },\n onError: (error: AxiosError) => {\n systemEventEmitter.showError(getApiErrorMessage(error, \"[useSetPrimaryPhone] error\"));\n },\n });\n};\n\nexport const useDeletePhone = () => {\n const auth = useAuthRepository();\n const accountId = AuthStore.getState().currentAccountId;\n const { t } = useTranslation(\"hooks\", { keyPrefix: \"account\" });\n return useMutation({\n mutationFn: (phoneId: string) => auth.DeletePhone(phoneId),\n onSuccess: () => {\n authEventEmitter.invalidatePhones(accountId);\n systemEventEmitter.showSuccess(t(\"deletePhoneSuccess\", { defaultValue: \"Phone removed.\" }));\n },\n onError: (error: AxiosError) => {\n systemEventEmitter.showError(getApiErrorMessage(error, \"[useDeletePhone] error\"));\n },\n });\n};\n\nexport const useSearchForgerProfiles = (query: string) => {\n const auth = useAuthRepository();\n const { aID, isAuthValid } = useAuthQueryScope();\n const trimmed = query.trim();\n return useUnifiedQuery(\n ({ query: q }) => auth.SearchForgerProfiles({ query: q, limit: 50, offset: 0 }),\n AUTH_PROFILE_SEARCH(aID, ProfileKindEnum.FORGER, trimmed),\n { query: trimmed },\n { enabled: isAuthValid && Boolean(aID) && trimmed.length > 0 },\n );\n};\n\nexport const useSearchAuthorityProfiles = (query: string) => {\n const auth = useAuthRepository();\n const { aID, isAuthValid } = useAuthQueryScope();\n const trimmed = query.trim();\n return useUnifiedQuery(\n ({ query: q }) => auth.SearchAuthorityProfiles({ query: q, limit: 50, offset: 0 }),\n AUTH_PROFILE_SEARCH(aID, ProfileKindEnum.AUTHORITY, trimmed),\n { query: trimmed },\n { enabled: isAuthValid && Boolean(aID) && trimmed.length > 0 },\n );\n};\n\nexport const useGetPublicProfileCard = (profileId: string) => {\n const auth = useAuthRepository();\n const { isAuthValid } = useAuthQueryScope();\n return useUnifiedQuery(\n () => auth.GetPublicProfileCard(profileId),\n AUTH_PUBLIC_CARD(profileId),\n undefined,\n { enabled: isAuthValid && Boolean(profileId) },\n );\n};\n\nexport const useListOwnerForgerProfiles = (query = \"\") => {\n const auth = useAuthRepository();\n const { aID, isAuthValid } = useAuthQueryScope();\n const trimmed = query.trim();\n return useUnifiedQuery(\n ({ query: q }) => auth.ListOwnerForgerProfiles({ limit: 50, offset: 0, query: q || undefined }),\n [...AUTH_OWNER_FORGERS(aID), trimmed],\n { query: trimmed },\n { enabled: isAuthValid && Boolean(aID) },\n );\n};\n\nexport const useListOwnerAuthorityProfiles = (query = \"\") => {\n const auth = useAuthRepository();\n const { aID, isAuthValid } = useAuthQueryScope();\n const trimmed = query.trim();\n return useUnifiedQuery(\n ({ query: q }) => auth.ListOwnerAuthorityProfiles({ limit: 50, offset: 0, query: q || undefined }),\n [...AUTH_OWNER_AUTHORITIES(aID), trimmed],\n { query: trimmed },\n { enabled: isAuthValid && Boolean(aID) },\n );\n};\n\nexport const useUpdateAuthorityProfileRoles = () => {\n const auth = useAuthRepository();\n const accountId = AuthStore.getState().currentAccountId;\n const { t } = useTranslation(\"hooks\", { keyPrefix: \"account\" });\n return useMutation({\n mutationFn: ({ profileId, authorityRoles }: { profileId: string; authorityRoles: Profile.Request.UpdateAuthorityProfileRoles[\"authorityRoles\"] }) =>\n auth.UpdateAuthorityProfileRoles(profileId, { authorityRoles }),\n onSuccess: () => {\n authEventEmitter.invalidateOwner(accountId);\n systemEventEmitter.showSuccess(t(\"updateRolesSuccess\", { defaultValue: \"Roles updated.\" }));\n },\n onError: (error: AxiosError) => {\n systemEventEmitter.showError(getApiErrorMessage(error, \"[useUpdateAuthorityProfileRoles] error\"));\n },\n });\n};\n\nexport { hasSelectedProfile, AuthStore, useAuthStore };\nexport { LanguageEnum, AuthSignupPlatformEnum };\n"],"mappings":"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"}
1
+ {"version":3,"file":"auth.js","names":[],"sources":["../../src/hooks/auth.ts"],"sourcesContent":["/**\n * Auth hooks — 组件勿直接调 apis/auth\n */\nimport type { AxiosError } from \"axios\";\nimport type { CurrentProfileResult, Login, Profile, Signup } from \"nfx-ui/types\";\n\nimport { useEffect } from \"react\";\nimport { useMutation } from \"@tanstack/react-query\";\nimport { useAuthRepository } from \"nfx-ui/apis/repositories\";\nimport { AUTH_EMAILS, AUTH_ME, AUTH_OWNER_AUTHORITIES, AUTH_OWNER_FORGERS, AUTH_PHONES, AUTH_PROFILE_SEARCH, AUTH_PROFILES, AUTH_PUBLIC_CARD } from \"nfx-ui/constants\";\nimport { AuthSignupPlatformEnum, LanguageEnum, ProfileKindEnum } from \"nfx-ui/enums\";\nimport { authEventEmitter, authEvents } from \"nfx-ui/events/auth\";\nimport { systemEventEmitter } from \"nfx-ui/events/system\";\nimport {\n AuthStore,\n clearAuth,\n EMPTY_PROFILE_ID,\n hasSelectedProfile,\n setCurrentAccountId,\n setCurrentProfileId,\n setCurrentProfileKind,\n setIsAuthValid,\n setTokens,\n useAuthStore,\n} from \"nfx-ui/stores/auth\";\nimport { ensureDeviceIdStorage } from \"nfx-ui/stores/system\";\nimport { getApiErrorMessage } from \"nfx-ui/utils/apiError\";\nimport { pickProfile } from \"nfx-ui/utils/domain/account\";\nimport { useUnifiedQuery } from \"nfx-ui/utils/factory\";\nimport { safeOr, safeStringable } from \"nfx-ui/utils/safe\";\nimport { useTranslation } from \"react-i18next\";\n\nexport function useAuthQueryScope() {\n const aID = useAuthStore((s) => s.currentAccountId);\n const pID = useAuthStore((s) => s.currentProfileId);\n const isAuthValid = useAuthStore((s) => s.isAuthValid);\n const kind = useAuthStore((s) => s.currentProfileKind);\n return { aID, pID, isAuthValid, kind, profileScope: kind };\n}\n\nfunction useLogoutOnAuthError(isError: boolean, aID: string) {\n useEffect(() => {\n if (!isError || !AuthStore.getState().isAuthValid) return;\n if (!hasSelectedProfile(AuthStore.getState().currentProfileId)) return;\n authEventEmitter.emit(authEvents.LOGOUT, aID);\n clearAuth();\n }, [isError, aID]);\n}\n\nexport function useCurrentProfile(): CurrentProfileResult {\n const auth = useAuthRepository();\n const { aID, pID, isAuthValid, kind } = useAuthQueryScope();\n const result = useUnifiedQuery(\n ({ kind }: { kind: ProfileKindEnum }) => auth.GetCurrentFullAccountInformationWithProfile(kind),\n AUTH_ME(aID, pID),\n { kind },\n { enabled: isAuthValid && hasSelectedProfile(pID) },\n );\n useLogoutOnAuthError(result.isError, aID);\n return {\n kind,\n data: result.data,\n profile: pickProfile(kind, result.data),\n isLoading: result.isLoading,\n isError: result.isError,\n refetch: result.refetch,\n } as CurrentProfileResult;\n}\n\nexport const useSendVerificationCode = () => {\n const auth = useAuthRepository();\n const { t } = useTranslation(\"hooks\", { keyPrefix: \"account\" });\n return useMutation({\n mutationFn: (params: Signup.Request.SendVerificationCode) => auth.SendVerificationCode(params),\n onSuccess: () => {\n systemEventEmitter.showSuccess(t(\"sendVerificationCodeSuccess\", { defaultValue: \"Code sent\" }));\n },\n onError: (error: AxiosError) => {\n systemEventEmitter.showError(getApiErrorMessage(error, \"[useSendVerificationCode] error\"));\n },\n });\n};\n\nexport const useSignupWithEmail = () => {\n const auth = useAuthRepository();\n return useMutation({\n mutationFn: async ({\n rememberMe,\n ...params\n }: {\n rememberMe: boolean;\n } & Omit<Signup.Request.SignupWithEmail, \"deviceId\">): Promise<Signup.Response.SignupWithEmail> => {\n const deviceId = await ensureDeviceIdStorage();\n return auth.SignupWithEmail({\n ...params,\n deviceId,\n });\n },\n onSuccess: (result, variables) => {\n if (!result?.accessToken) return;\n setTokens(\n {\n accessToken: result.accessToken,\n refreshToken: safeStringable(result.refreshToken),\n },\n { rememberMe: variables.rememberMe },\n );\n setIsAuthValid(true);\n if (result.accountId) setCurrentAccountId(result.accountId);\n if (result.profileId) {\n setCurrentProfileId(result.profileId);\n setCurrentProfileKind(ProfileKindEnum.COMMUNITY);\n authEventEmitter.emit(authEvents.LOGIN_SUCCESS, result.accountId);\n } else {\n setCurrentProfileId(EMPTY_PROFILE_ID);\n }\n },\n onError: (error: AxiosError) => {\n systemEventEmitter.showError(getApiErrorMessage(error, \"[useSignup] error\"));\n },\n });\n};\n\nexport const useLoginWithEmail = () => {\n const auth = useAuthRepository();\n return useMutation({\n mutationFn: async ({ rememberMe, ...params }: { email: string; password: string; rememberMe: boolean }) =>\n auth.LoginWithEmail({\n ...params,\n deviceId: await ensureDeviceIdStorage(),\n }),\n onSuccess: (result, variables) => {\n if (!result?.accessToken) return;\n setCurrentProfileId(EMPTY_PROFILE_ID);\n setTokens(\n {\n accessToken: result.accessToken,\n refreshToken: safeStringable(result.refreshToken),\n },\n { rememberMe: variables.rememberMe },\n );\n setIsAuthValid(true);\n if (result.accountId) setCurrentAccountId(result.accountId);\n },\n onError: (error: AxiosError) => {\n systemEventEmitter.showError(getApiErrorMessage(error, \"[useLogin] error\"));\n },\n });\n};\n\nexport const useLoginWithPhone = () => {\n const auth = useAuthRepository();\n return useMutation({\n mutationFn: async ({ rememberMe, ...params }: { phone: string; password: string; rememberMe: boolean }) =>\n auth.LoginWithPhone({\n ...params,\n deviceId: await ensureDeviceIdStorage(),\n }),\n onSuccess: (result, variables) => {\n if (!result?.accessToken) return;\n setCurrentProfileId(EMPTY_PROFILE_ID);\n setTokens(\n {\n accessToken: result.accessToken,\n refreshToken: safeStringable(result.refreshToken),\n },\n { rememberMe: variables.rememberMe },\n );\n setIsAuthValid(true);\n if (result.accountId) setCurrentAccountId(result.accountId);\n },\n onError: (error: AxiosError) => {\n systemEventEmitter.showError(getApiErrorMessage(error, \"[useLoginWithPhone] error\"));\n },\n });\n};\n\nexport const useSelectProfile = () => {\n const auth = useAuthRepository();\n return useMutation({\n mutationFn: async ({ profileId, kind }: { profileId: string; kind: Login.ProfileKind }) =>\n auth.SelectProfile({\n profileId,\n kind,\n deviceId: await ensureDeviceIdStorage(),\n }),\n onSuccess: (result, variables) => {\n if (result?.accessToken) {\n setTokens({\n accessToken: result.accessToken,\n refreshToken: safeStringable(result.refreshToken),\n });\n setCurrentProfileKind(variables.kind);\n if (result.profileId) setCurrentProfileId(result.profileId);\n authEventEmitter.emit(authEvents.LOGIN_SUCCESS, result.accountId);\n }\n },\n onError: (error: AxiosError) => {\n systemEventEmitter.showError(getApiErrorMessage(error, \"[useSelectProfile] error\"));\n },\n });\n};\n\nexport const usePatchProfile = (options?: { silent?: boolean }) => {\n const auth = useAuthRepository();\n const { kind } = useAuthQueryScope();\n const silent = safeOr(options?.silent, false);\n const { t } = useTranslation(\"pages.User.Profile.Edit\");\n return useMutation({\n mutationFn: (body: Profile.Request.PatchProfile) => auth.PatchProfile(kind, body),\n onSuccess: () => {\n if (!silent) systemEventEmitter.showSuccess(t(\"saveSuccess\", { defaultValue: \"Saved\" }));\n const aID = AuthStore.getState().currentAccountId;\n authEventEmitter.invalidateProfiles({ aID, kind });\n },\n onError: (error: AxiosError) => {\n if (!silent) systemEventEmitter.showError(getApiErrorMessage(error, \"[usePatchProfile] error\"));\n },\n });\n};\n\nexport const useUpdateProfileSettings = () => {\n const auth = useAuthRepository();\n const { kind } = useAuthQueryScope();\n const { t } = useTranslation(\"hooks\", { keyPrefix: \"account\" });\n return useMutation({\n mutationFn: (body: Profile.Request.PatchProfileSettings) => auth.PatchProfileSettings(kind, body),\n onSuccess: () => {\n const aID = AuthStore.getState().currentAccountId;\n authEventEmitter.emit(authEvents.UPDATE_ACCOUNT_SUCCESS, aID);\n systemEventEmitter.showSuccess(t(\"updateSettingsSuccess\", { defaultValue: \"Settings updated.\" }));\n },\n onError: (error: AxiosError) => {\n systemEventEmitter.showError(getApiErrorMessage(error, \"[useUpdateProfileSettings] error\"));\n },\n });\n};\n\nexport const useUpdatePreference = () => {\n const auth = useAuthRepository();\n const { kind } = useAuthQueryScope();\n return useMutation({\n mutationFn: (preference: string) => auth.UpdatePreference(kind, preference),\n onError: (error: AxiosError) => {\n systemEventEmitter.showError(getApiErrorMessage(error, \"[useUpdatePreference] error\"));\n },\n });\n};\n\nexport const useListProfiles = <K extends ProfileKindEnum>(kind: K) => {\n const auth = useAuthRepository();\n const { aID, isAuthValid } = useAuthQueryScope();\n return useUnifiedQuery(\n () => auth.ListProfiles(kind, { limit: 50, offset: 0 }),\n AUTH_PROFILES(aID, kind),\n undefined,\n { enabled: isAuthValid && Boolean(aID) },\n );\n};\n\nexport const useCreateForgerProfile = () => {\n const auth = useAuthRepository();\n return useMutation({\n mutationFn: (body: Login.Request.CreateForgerProfile) => auth.CreateForgerProfile(body),\n onSuccess: () => {\n const aID = AuthStore.getState().currentAccountId;\n authEventEmitter.invalidateProfiles({ aID, kind: ProfileKindEnum.COMMUNITY });\n },\n onError: (error: AxiosError) => {\n systemEventEmitter.showError(getApiErrorMessage(error, \"[useCreateForgerProfile] error\"));\n },\n });\n};\n\nexport const useCreateAuthorityProfile = () => {\n const auth = useAuthRepository();\n return useMutation({\n mutationFn: (body: Login.Request.CreateAuthorityProfile) => auth.CreateAuthorityProfile(body),\n onSuccess: () => {\n const aID = AuthStore.getState().currentAccountId;\n authEventEmitter.invalidateProfiles({ aID, kind: ProfileKindEnum.AUTHORITY });\n },\n onError: (error: AxiosError) => {\n systemEventEmitter.showError(getApiErrorMessage(error, \"[useCreateAuthorityProfile] error\"));\n },\n });\n};\n\nexport const useDeleteProfile = () => {\n const auth = useAuthRepository();\n return useMutation({\n mutationFn: ({ kind, profileId }: { kind: ProfileKindEnum; profileId: string }) => auth.DeleteProfile(kind, profileId),\n onSuccess: (_void, variables) => {\n const aID = AuthStore.getState().currentAccountId;\n authEventEmitter.invalidateProfiles({ aID, kind: variables.kind });\n },\n onError: (error: AxiosError) => {\n systemEventEmitter.showError(getApiErrorMessage(error, \"[useDeleteProfile] error\"));\n },\n });\n};\n\nexport const useConfirmProfileAvatar = () => {\n const auth = useAuthRepository();\n const { kind } = useAuthQueryScope();\n return useMutation({\n mutationFn: (body: Profile.Request.ConfirmProfileAvatar) => auth.ConfirmProfileAvatar(kind, body),\n onSuccess: () => {\n const aID = AuthStore.getState().currentAccountId;\n authEventEmitter.emit(authEvents.UPDATE_ACCOUNT_SUCCESS, aID);\n },\n onError: (error: AxiosError) => {\n systemEventEmitter.showError(getApiErrorMessage(error, \"[useConfirmProfileAvatar] error\"));\n },\n });\n};\n\nexport const useClearProfileAvatar = () => {\n const auth = useAuthRepository();\n const { kind } = useAuthQueryScope();\n const { t } = useTranslation(\"hooks\", { keyPrefix: \"account\" });\n return useMutation({\n mutationFn: () => auth.ClearProfileAvatar(kind),\n onSuccess: () => {\n const aID = AuthStore.getState().currentAccountId;\n authEventEmitter.emit(authEvents.UPDATE_ACCOUNT_SUCCESS, aID);\n systemEventEmitter.showSuccess(t(\"clearAvatarSuccess\", { defaultValue: \"Avatar removed.\" }));\n },\n onError: (error: AxiosError) => {\n systemEventEmitter.showError(getApiErrorMessage(error, \"[useClearProfileAvatar] error\"));\n },\n });\n};\n\nexport const useListEmails = () => {\n const auth = useAuthRepository();\n const { aID, isAuthValid } = useAuthQueryScope();\n return useUnifiedQuery(() => auth.ListEmails({ limit: 50, offset: 0 }), AUTH_EMAILS(aID), undefined, {\n enabled: isAuthValid && Boolean(aID),\n });\n};\n\nexport const useListPhones = () => {\n const auth = useAuthRepository();\n const { aID, isAuthValid } = useAuthQueryScope();\n return useUnifiedQuery(() => auth.ListPhones({ limit: 50, offset: 0 }), AUTH_PHONES(aID), undefined, {\n enabled: isAuthValid && Boolean(aID),\n });\n};\n\nexport const useCreateEmail = () => {\n const auth = useAuthRepository();\n const accountId = AuthStore.getState().currentAccountId;\n const { t } = useTranslation(\"hooks\", { keyPrefix: \"account\" });\n return useMutation({\n mutationFn: (body: Login.Request.CreateEmail) => auth.CreateEmail(body),\n onSuccess: () => {\n authEventEmitter.invalidateEmails(accountId);\n systemEventEmitter.showSuccess(t(\"createEmailSuccess\", { defaultValue: \"Email added.\" }));\n },\n onError: (error: AxiosError) => {\n systemEventEmitter.showError(getApiErrorMessage(error, \"[useCreateEmail] error\"));\n },\n });\n};\n\nexport const useSendEmailVerificationCode = () => {\n const auth = useAuthRepository();\n const { t } = useTranslation(\"hooks\", { keyPrefix: \"account\" });\n return useMutation({\n mutationFn: ({ emailId, lang }: { emailId: string; lang?: LanguageEnum }) => auth.SendEmailVerificationCode(emailId, { lang }),\n onSuccess: () => {\n systemEventEmitter.showSuccess(t(\"sendVerificationCodeSuccess\", { defaultValue: \"Code sent\" }));\n },\n onError: (error: AxiosError) => {\n systemEventEmitter.showError(getApiErrorMessage(error, \"[useSendEmailVerificationCode] error\"));\n },\n });\n};\n\nexport const useVerifyEmail = () => {\n const auth = useAuthRepository();\n const accountId = AuthStore.getState().currentAccountId;\n const { t } = useTranslation(\"hooks\", { keyPrefix: \"account\" });\n return useMutation({\n mutationFn: ({ emailId, verificationCode }: { emailId: string; verificationCode: string }) =>\n auth.VerifyEmail(emailId, { verificationCode }),\n onSuccess: () => {\n authEventEmitter.invalidateEmails(accountId);\n systemEventEmitter.showSuccess(t(\"verifyEmailSuccess\", { defaultValue: \"Email verified.\" }));\n },\n onError: (error: AxiosError) => {\n systemEventEmitter.showError(getApiErrorMessage(error, \"[useVerifyEmail] error\"));\n },\n });\n};\n\nexport const useUpdateEmail = () => {\n const auth = useAuthRepository();\n const accountId = AuthStore.getState().currentAccountId;\n const { t } = useTranslation(\"hooks\", { keyPrefix: \"account\" });\n return useMutation({\n mutationFn: ({ emailId, email }: { emailId: string; email: string }) => auth.UpdateEmail(emailId, { email }),\n onSuccess: () => {\n authEventEmitter.invalidateEmails(accountId);\n systemEventEmitter.showSuccess(t(\"updateEmailSuccess\", { defaultValue: \"Email updated.\" }));\n },\n onError: (error: AxiosError) => {\n systemEventEmitter.showError(getApiErrorMessage(error, \"[useUpdateEmail] error\"));\n },\n });\n};\n\nexport const useSetPrimaryEmail = () => {\n const auth = useAuthRepository();\n const accountId = AuthStore.getState().currentAccountId;\n const { t } = useTranslation(\"hooks\", { keyPrefix: \"account\" });\n return useMutation({\n mutationFn: (emailId: string) => auth.SetPrimaryEmail(emailId),\n onSuccess: () => {\n authEventEmitter.invalidateEmails(accountId);\n authEventEmitter.emit(authEvents.UPDATE_ACCOUNT_SUCCESS, accountId);\n systemEventEmitter.showSuccess(t(\"setPrimaryEmailSuccess\", { defaultValue: \"Primary email updated.\" }));\n },\n onError: (error: AxiosError) => {\n systemEventEmitter.showError(getApiErrorMessage(error, \"[useSetPrimaryEmail] error\"));\n },\n });\n};\n\nexport const useDeleteEmail = () => {\n const auth = useAuthRepository();\n const accountId = AuthStore.getState().currentAccountId;\n const { t } = useTranslation(\"hooks\", { keyPrefix: \"account\" });\n return useMutation({\n mutationFn: (emailId: string) => auth.DeleteEmail(emailId),\n onSuccess: () => {\n authEventEmitter.invalidateEmails(accountId);\n systemEventEmitter.showSuccess(t(\"deleteEmailSuccess\", { defaultValue: \"Email removed.\" }));\n },\n onError: (error: AxiosError) => {\n systemEventEmitter.showError(getApiErrorMessage(error, \"[useDeleteEmail] error\"));\n },\n });\n};\n\nexport const useSendChangePasswordVerificationCode = () => {\n const auth = useAuthRepository();\n const { t } = useTranslation(\"hooks\", { keyPrefix: \"account\" });\n return useMutation({\n mutationFn: (body: Login.Request.SendChangePasswordVerificationCode = {}) => auth.SendChangePasswordVerificationCode(body),\n onSuccess: () => {\n systemEventEmitter.showSuccess(t(\"sendVerificationCodeSuccess\", { defaultValue: \"Code sent\" }));\n },\n onError: (error: AxiosError) => {\n systemEventEmitter.showError(getApiErrorMessage(error, \"[useSendChangePasswordVerificationCode] error\"));\n },\n });\n};\n\nexport const useChangePassword = () => {\n const auth = useAuthRepository();\n const { t } = useTranslation(\"hooks\", { keyPrefix: \"account\" });\n return useMutation({\n mutationFn: (body: Login.Request.ChangePassword) => auth.ChangePassword(body),\n onSuccess: () => {\n systemEventEmitter.showSuccess(t(\"changePasswordSuccess\", { defaultValue: \"Password updated.\" }));\n },\n onError: (error: AxiosError) => {\n systemEventEmitter.showError(getApiErrorMessage(error, \"[useChangePassword] error\"));\n },\n });\n};\n\nexport const useConfirmProfileBackgrounds = () => {\n const auth = useAuthRepository();\n const { kind } = useAuthQueryScope();\n return useMutation({\n mutationFn: (body: Profile.Request.ConfirmProfileBackgrounds) => auth.ConfirmProfileBackgrounds(kind, body),\n onSuccess: () => {\n const aID = AuthStore.getState().currentAccountId;\n authEventEmitter.emit(authEvents.UPDATE_ACCOUNT_SUCCESS, aID);\n },\n onError: (error: AxiosError) => {\n systemEventEmitter.showError(getApiErrorMessage(error, \"[useConfirmProfileBackgrounds] error\"));\n },\n });\n};\n\nexport const useCreatePhone = () => {\n const auth = useAuthRepository();\n const accountId = AuthStore.getState().currentAccountId;\n const { t } = useTranslation(\"hooks\", { keyPrefix: \"account\" });\n return useMutation({\n mutationFn: (body: Login.Request.CreatePhone) => auth.CreatePhone(body),\n onSuccess: () => {\n authEventEmitter.invalidatePhones(accountId);\n systemEventEmitter.showSuccess(t(\"createPhoneSuccess\", { defaultValue: \"Phone added.\" }));\n },\n onError: (error: AxiosError) => {\n systemEventEmitter.showError(getApiErrorMessage(error, \"[useCreatePhone] error\"));\n },\n });\n};\n\nexport const useSendPhoneVerificationCode = () => {\n const auth = useAuthRepository();\n const { t } = useTranslation(\"hooks\", { keyPrefix: \"account\" });\n return useMutation({\n mutationFn: (phoneId: string) => auth.SendPhoneVerificationCode(phoneId),\n onSuccess: () => {\n systemEventEmitter.showSuccess(t(\"sendVerificationCodeSuccess\", { defaultValue: \"Code sent\" }));\n },\n onError: (error: AxiosError) => {\n systemEventEmitter.showError(getApiErrorMessage(error, \"[useSendPhoneVerificationCode] error\"));\n },\n });\n};\n\nexport const useVerifyPhone = () => {\n const auth = useAuthRepository();\n const accountId = AuthStore.getState().currentAccountId;\n const { t } = useTranslation(\"hooks\", { keyPrefix: \"account\" });\n return useMutation({\n mutationFn: ({ phoneId, verificationCode }: { phoneId: string; verificationCode: string }) =>\n auth.VerifyPhone(phoneId, { verificationCode }),\n onSuccess: () => {\n authEventEmitter.invalidatePhones(accountId);\n systemEventEmitter.showSuccess(t(\"verifyPhoneSuccess\", { defaultValue: \"Phone verified.\" }));\n },\n onError: (error: AxiosError) => {\n systemEventEmitter.showError(getApiErrorMessage(error, \"[useVerifyPhone] error\"));\n },\n });\n};\n\nexport const useUpdatePhone = () => {\n const auth = useAuthRepository();\n const accountId = AuthStore.getState().currentAccountId;\n const { t } = useTranslation(\"hooks\", { keyPrefix: \"account\" });\n return useMutation({\n mutationFn: ({ phoneId, phone }: { phoneId: string; phone: string }) => auth.UpdatePhone(phoneId, { phone }),\n onSuccess: () => {\n authEventEmitter.invalidatePhones(accountId);\n systemEventEmitter.showSuccess(t(\"updatePhoneSuccess\", { defaultValue: \"Phone updated.\" }));\n },\n onError: (error: AxiosError) => {\n systemEventEmitter.showError(getApiErrorMessage(error, \"[useUpdatePhone] error\"));\n },\n });\n};\n\nexport const useSetPrimaryPhone = () => {\n const auth = useAuthRepository();\n const accountId = AuthStore.getState().currentAccountId;\n const { t } = useTranslation(\"hooks\", { keyPrefix: \"account\" });\n return useMutation({\n mutationFn: (phoneId: string) => auth.SetPrimaryPhone(phoneId),\n onSuccess: () => {\n authEventEmitter.invalidatePhones(accountId);\n authEventEmitter.emit(authEvents.UPDATE_ACCOUNT_SUCCESS, accountId);\n systemEventEmitter.showSuccess(t(\"setPrimaryPhoneSuccess\", { defaultValue: \"Primary phone updated.\" }));\n },\n onError: (error: AxiosError) => {\n systemEventEmitter.showError(getApiErrorMessage(error, \"[useSetPrimaryPhone] error\"));\n },\n });\n};\n\nexport const useDeletePhone = () => {\n const auth = useAuthRepository();\n const accountId = AuthStore.getState().currentAccountId;\n const { t } = useTranslation(\"hooks\", { keyPrefix: \"account\" });\n return useMutation({\n mutationFn: (phoneId: string) => auth.DeletePhone(phoneId),\n onSuccess: () => {\n authEventEmitter.invalidatePhones(accountId);\n systemEventEmitter.showSuccess(t(\"deletePhoneSuccess\", { defaultValue: \"Phone removed.\" }));\n },\n onError: (error: AxiosError) => {\n systemEventEmitter.showError(getApiErrorMessage(error, \"[useDeletePhone] error\"));\n },\n });\n};\n\nexport const useSearchForgerProfiles = (query: string) => {\n const auth = useAuthRepository();\n const { aID, isAuthValid } = useAuthQueryScope();\n const trimmed = query.trim();\n return useUnifiedQuery(\n ({ query: q }) => auth.SearchForgerProfiles({ query: q, limit: 50, offset: 0 }),\n AUTH_PROFILE_SEARCH(aID, ProfileKindEnum.COMMUNITY, trimmed),\n { query: trimmed },\n { enabled: isAuthValid && Boolean(aID) && trimmed.length > 0 },\n );\n};\n\nexport const useSearchAuthorityProfiles = (query: string) => {\n const auth = useAuthRepository();\n const { aID, isAuthValid } = useAuthQueryScope();\n const trimmed = query.trim();\n return useUnifiedQuery(\n ({ query: q }) => auth.SearchAuthorityProfiles({ query: q, limit: 50, offset: 0 }),\n AUTH_PROFILE_SEARCH(aID, ProfileKindEnum.AUTHORITY, trimmed),\n { query: trimmed },\n { enabled: isAuthValid && Boolean(aID) && trimmed.length > 0 },\n );\n};\n\nexport const useGetPublicProfileCard = (profileId: string) => {\n const auth = useAuthRepository();\n const { isAuthValid } = useAuthQueryScope();\n return useUnifiedQuery(\n () => auth.GetPublicProfileCard(profileId),\n AUTH_PUBLIC_CARD(profileId),\n undefined,\n { enabled: isAuthValid && Boolean(profileId) },\n );\n};\n\nexport const useListOwnerForgerProfiles = (query = \"\") => {\n const auth = useAuthRepository();\n const { aID, isAuthValid } = useAuthQueryScope();\n const trimmed = query.trim();\n return useUnifiedQuery(\n ({ query: q }) => auth.ListOwnerForgerProfiles({ limit: 50, offset: 0, query: q || undefined }),\n [...AUTH_OWNER_FORGERS(aID), trimmed],\n { query: trimmed },\n { enabled: isAuthValid && Boolean(aID) },\n );\n};\n\nexport const useListOwnerAuthorityProfiles = (query = \"\") => {\n const auth = useAuthRepository();\n const { aID, isAuthValid } = useAuthQueryScope();\n const trimmed = query.trim();\n return useUnifiedQuery(\n ({ query: q }) => auth.ListOwnerAuthorityProfiles({ limit: 50, offset: 0, query: q || undefined }),\n [...AUTH_OWNER_AUTHORITIES(aID), trimmed],\n { query: trimmed },\n { enabled: isAuthValid && Boolean(aID) },\n );\n};\n\nexport const useUpdateAuthorityProfileRoles = () => {\n const auth = useAuthRepository();\n const accountId = AuthStore.getState().currentAccountId;\n const { t } = useTranslation(\"hooks\", { keyPrefix: \"account\" });\n return useMutation({\n mutationFn: ({ profileId, authorityRoles }: { profileId: string; authorityRoles: Profile.Request.UpdateAuthorityProfileRoles[\"authorityRoles\"] }) =>\n auth.UpdateAuthorityProfileRoles(profileId, { authorityRoles }),\n onSuccess: () => {\n authEventEmitter.invalidateOwner(accountId);\n systemEventEmitter.showSuccess(t(\"updateRolesSuccess\", { defaultValue: \"Roles updated.\" }));\n },\n onError: (error: AxiosError) => {\n systemEventEmitter.showError(getApiErrorMessage(error, \"[useUpdateAuthorityProfileRoles] error\"));\n },\n });\n};\n\nexport { hasSelectedProfile, AuthStore, useAuthStore };\nexport { LanguageEnum, AuthSignupPlatformEnum };\n"],"mappings":"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"}
@@ -1 +1 @@
1
- *,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth;scrollbar-gutter:stable;width:100%;min-height:100%}body{text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;width:100%;min-height:100vh;margin:0}#root{min-height:100vh}main,section,article,aside,header,footer,nav{display:block}main{min-height:100%}h1,h2,h3,h4,h5,h6,p{margin:0}em,i{font-style:italic}abbr[title]{cursor:help;text-underline-offset:.18em;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}address{font-style:normal}blockquote{margin:0}sub,sup{vertical-align:baseline;position:relative}sub{bottom:-.25em}sup{top:-.5em}code,kbd,samp{padding:.12em .32em}pre{margin:0;overflow:auto}pre code{color:inherit;background:0 0;padding:0}a{text-decoration:none;transition:color .12s cubic-bezier(.2,0,0,1),opacity .12s cubic-bezier(.2,0,0,1)}a:focus-visible{outline:none}ul,ol,li,dl,dd{margin:0}img,picture,video,canvas,svg{max-width:100%;display:block}img{-webkit-user-select:none;user-select:none}svg{flex-shrink:0}audio{width:100%}iframe{border:0;max-width:100%;display:block}figure{margin:0}button,input,textarea,select{font:inherit;color:inherit}dialog:not(.rt-DialogContent){border:none}table{border-collapse:collapse;border-spacing:0;width:100%}caption,th,td{text-align:left}hr{border:none;height:1px;margin:0}fieldset{border:0;min-width:0;margin:0;padding:0}legend{padding:0}summary{cursor:pointer}progress,meter{width:100%}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{border-radius:999px}[hidden]{display:none!important}:focus-visible{outline:none}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.radix-themes{--heading-font-family:var(--default-font-family);--strong-font-family:var(--default-font-family);--em-font-family:var(--default-font-family);--quote-font-family:var(--default-font-family);--radius-chip:max(var(--radius-3), var(--radius-full));--radius-icon:max(var(--radius-4), var(--radius-full))}.radix-themes .rt-BaseTabListTriggerInner,.radix-themes .rt-BaseTabListTriggerInnerHidden,.radix-themes .rt-TabsTriggerInner{border-radius:max(var(--tab-inner-border-radius), var(--radius-full))!important}.radix-themes[data-radius=full] .rt-Card{--card-border-radius:var(--radius-6)}.radix-themes,.radix-themes[data-font-family=system]{--default-font-family:system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}.radix-themes[data-font-family=ibm-plex]{--default-font-family:"IBM Plex Sans", "IBM Plex Sans SC", "Noto Sans SC", "Noto Sans TC", system-ui, sans-serif}.radix-themes[data-font-family=noto]{--default-font-family:"Noto Sans", "Noto Sans SC", "Noto Sans TC", sans-serif}.radix-themes[data-font-family=source-sans]{--default-font-family:"Source Sans 3", "Source Han Sans SC", "Noto Sans SC", "Noto Sans TC", sans-serif}.radix-themes{--color-primary:var(--accent-9);--color-primary-hover:var(--accent-10);--color-primary-light:var(--accent-4);--color-primary-bg:var(--accent-3);--color-primary-fg:var(--accent-contrast);--color-success:var(--green-9);--color-success-light:var(--green-4);--color-info:var(--blue-9);--color-info-light:var(--blue-4);--color-warning:var(--amber-9);--color-warning-light:var(--amber-4);--color-danger:var(--red-9);--color-error:var(--red-9);--color-danger-light:var(--red-4);--color-bg:var(--color-background);--color-bg-1:var(--color-background);--color-bg-2:var(--color-panel-solid);--color-bg-3:var(--gray-3);--color-bg-4:var(--gray-4);--color-bg-secondary:var(--gray-2);--color-border:var(--gray-6);--color-border-2:var(--gray-5);--color-border-3:var(--gray-6);--color-border-4:var(--gray-7);--color-border-5:var(--gray-8);--color-border-hover:var(--gray-8);--color-fg:var(--gray-11);--color-fg-text:var(--gray-12);--color-fg-heading:var(--gray-12);--color-fg-highlight:var(--accent-11);--color-fg-muted:var(--gray-10);--color-fg-on-primary:var(--accent-contrast);--color-separator:var(--gray-6);--color-overlay:var(--black-a6);--color-shadow:var(--gray-a4);--color-ring:var(--accent-8)}
1
+ *,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth;scrollbar-gutter:stable;width:100%;min-height:100%}body{text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;width:100%;min-height:100vh;margin:0}#root{min-height:100vh}main,section,article,aside,header,footer,nav{display:block}main{min-height:100%}h1,h2,h3,h4,h5,h6,p{margin:0}em,i{font-style:italic}abbr[title]{cursor:help;text-underline-offset:.18em;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}address{font-style:normal}blockquote{margin:0}sub,sup{vertical-align:baseline;position:relative}sub{bottom:-.25em}sup{top:-.5em}code,kbd,samp{padding:.12em .32em}pre{margin:0;overflow:auto}pre code{color:inherit;background:0 0;padding:0}a{text-decoration:none;transition:color .12s cubic-bezier(.2,0,0,1),opacity .12s cubic-bezier(.2,0,0,1)}a:focus-visible{outline:none}ul,ol,li,dl,dd{margin:0}img,picture,video,canvas,svg{max-width:100%;display:block}img{-webkit-user-select:none;user-select:none}svg{flex-shrink:0}audio{width:100%}iframe{border:0;max-width:100%;display:block}figure{margin:0}button,input,textarea,select{font:inherit;color:inherit}dialog:not(.rt-DialogContent){border:none}table{border-collapse:collapse;border-spacing:0;width:100%}caption,th,td{text-align:left}hr{border:none;height:1px;margin:0}fieldset{border:0;min-width:0;margin:0;padding:0}legend{padding:0}summary{cursor:pointer}progress,meter{width:100%}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{border-radius:999px}[hidden]{display:none!important}:focus-visible{outline:none}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.radix-themes{--heading-font-family:var(--default-font-family);--strong-font-family:var(--default-font-family);--em-font-family:var(--default-font-family);--quote-font-family:var(--default-font-family);--radius-chip:max(var(--radius-3), var(--radius-full));--radius-icon:max(var(--radius-4), var(--radius-full))}.radix-themes .rt-BaseTabListTriggerInner,.radix-themes .rt-BaseTabListTriggerInnerHidden,.radix-themes .rt-TabsTriggerInner{border-radius:max(var(--tab-inner-border-radius), var(--radius-full))!important}.radix-themes .rt-BaseTabListTrigger:before{content:"";background-color:var(--accent-indicator);transform-origin:50%;pointer-events:none;height:2px;transition:transform .22s cubic-bezier(.22,1,.36,1);position:absolute;bottom:0;left:0;right:0;transform:scaleX(0)}.radix-themes .rt-BaseTabListTrigger[data-state=active]:before,.radix-themes .rt-BaseTabListTrigger[data-active]:before{transform:scaleX(1)}.radix-themes .rt-BaseTabListTrigger[data-state=active] .rt-BaseTabListTriggerInner,.radix-themes .rt-BaseTabListTrigger[data-active] .rt-BaseTabListTriggerInner{font-weight:var(--font-weight-bold);background-color:#0000}@media (hover:hover){.radix-themes .rt-BaseTabListTrigger:hover:before{transform:scaleX(1)}.radix-themes :where(.rt-BaseTabListTrigger:hover:not([data-state=active]):not([data-active])) :where(.rt-BaseTabListTriggerInner){background-color:var(--accent-a3);color:var(--accent-11)}.radix-themes .rt-BaseTabListTrigger[data-state=active]:hover .rt-BaseTabListTriggerInner,.radix-themes .rt-BaseTabListTrigger[data-active]:hover .rt-BaseTabListTriggerInner{background-color:#0000}}@media (prefers-reduced-motion:reduce){.radix-themes .rt-BaseTabListTrigger:before{transition:none}}.radix-themes[data-radius=full] .rt-Card{--card-border-radius:var(--radius-6)}.radix-themes,.radix-themes[data-font-family=system]{--default-font-family:system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}.radix-themes[data-font-family=ibm-plex]{--default-font-family:"IBM Plex Sans", "IBM Plex Sans SC", "Noto Sans SC", "Noto Sans TC", system-ui, sans-serif}.radix-themes[data-font-family=noto]{--default-font-family:"Noto Sans", "Noto Sans SC", "Noto Sans TC", sans-serif}.radix-themes[data-font-family=source-sans]{--default-font-family:"Source Sans 3", "Source Han Sans SC", "Noto Sans SC", "Noto Sans TC", sans-serif}.radix-themes{--color-primary:var(--accent-9);--color-primary-hover:var(--accent-10);--color-primary-light:var(--accent-4);--color-primary-bg:var(--accent-3);--color-primary-fg:var(--accent-contrast);--color-success:var(--green-9);--color-success-light:var(--green-4);--color-info:var(--blue-9);--color-info-light:var(--blue-4);--color-warning:var(--amber-9);--color-warning-light:var(--amber-4);--color-danger:var(--red-9);--color-error:var(--red-9);--color-danger-light:var(--red-4);--color-bg:var(--color-background);--color-bg-1:var(--color-background);--color-bg-2:var(--color-panel-solid);--color-bg-3:var(--gray-3);--color-bg-4:var(--gray-4);--color-bg-secondary:var(--gray-2);--color-border:var(--gray-6);--color-border-2:var(--gray-5);--color-border-3:var(--gray-6);--color-border-4:var(--gray-7);--color-border-5:var(--gray-8);--color-border-hover:var(--gray-8);--color-fg:var(--gray-11);--color-fg-text:var(--gray-12);--color-fg-heading:var(--gray-12);--color-fg-highlight:var(--accent-11);--color-fg-muted:var(--gray-10);--color-fg-on-primary:var(--accent-contrast);--color-separator:var(--gray-6);--color-overlay:var(--black-a6);--color-shadow:var(--gray-a4);--color-ring:var(--accent-8)}
@@ -140,12 +140,12 @@ export declare namespace Profile {
140
140
  forgerProfiles: ForgerProfile[];
141
141
  authorityProfiles: AuthorityProfile[];
142
142
  }
143
- interface FullAccountInformationWithForgerProfile {
143
+ interface FullAccountInformationWithCommunityProfile {
144
144
  account: Account;
145
145
  emails: Email[];
146
146
  phones: Phone[];
147
147
  identities: IdentityLink[];
148
- forgerProfile: Nullable<ForgerProfile>;
148
+ communityProfile: Nullable<ForgerProfile>;
149
149
  }
150
150
  interface FullAccountInformationWithAuthorityProfile {
151
151
  account: Account;
@@ -176,8 +176,8 @@ export declare namespace Profile {
176
176
  }
177
177
  }
178
178
  }
179
- export type FullAccountInfoByKind<K extends ProfileKindEnum> = K extends ProfileKindEnum.FORGER ? Profile.Response.FullAccountInformationWithForgerProfile : K extends ProfileKindEnum.AUTHORITY ? Profile.Response.FullAccountInformationWithAuthorityProfile : never;
180
- export type ProfileItemsByKind<K extends ProfileKindEnum> = K extends ProfileKindEnum.FORGER ? Profile.Response.ForgerProfileItem[] : K extends ProfileKindEnum.AUTHORITY ? Profile.Response.AuthorityProfileItem[] : never;
179
+ export type FullAccountInfoByKind<K extends ProfileKindEnum> = K extends ProfileKindEnum.COMMUNITY ? Profile.Response.FullAccountInformationWithCommunityProfile : K extends ProfileKindEnum.AUTHORITY ? Profile.Response.FullAccountInformationWithAuthorityProfile : never;
180
+ export type ProfileItemsByKind<K extends ProfileKindEnum> = K extends ProfileKindEnum.COMMUNITY ? Profile.Response.ForgerProfileItem[] : K extends ProfileKindEnum.AUTHORITY ? Profile.Response.AuthorityProfileItem[] : never;
181
181
  export type CurrentProfileResult = {
182
182
  [K in ProfileKindEnum]: {
183
183
  kind: K;
@@ -1 +1 @@
1
- {"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../../../src/types/domain/auth/profile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../../../src/types/domain/auth/profile.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,4 @@
1
1
  import { AuthSignupPlatformEnum, LanguageEnum } from '../../../enums';
2
- import { Login } from './login';
3
2
  export declare namespace Signup {
4
3
  namespace Request {
5
4
  interface SendVerificationCode {
@@ -16,7 +15,12 @@ export declare namespace Signup {
16
15
  }
17
16
  }
18
17
  namespace Response {
19
- type SignupWithEmail = Login.Response.LoginWithEmail;
18
+ interface SignupWithEmail {
19
+ accountId: string;
20
+ profileId: Maybe<string>;
21
+ accessToken: string;
22
+ refreshToken: string;
23
+ }
20
24
  }
21
25
  }
22
26
  //# sourceMappingURL=signup.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"signup.d.ts","sourceRoot":"","sources":["../../../../src/types/domain/auth/signup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEzE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAErC,yBAAiB,MAAM,CAAC;IACtB,UAAiB,OAAO,CAAC;QACvB,UAAiB,oBAAoB;YACnC,KAAK,EAAE,MAAM,CAAC;YACd,IAAI,EAAE,YAAY,CAAC;SACpB;QAED,UAAiB,eAAe;YAC9B,KAAK,EAAE,MAAM,CAAC;YACd,QAAQ,EAAE,MAAM,CAAC;YACjB,gBAAgB,EAAE,MAAM,CAAC;YACzB,IAAI,EAAE,YAAY,CAAC;YACnB,QAAQ,EAAE,MAAM,CAAC;YACjB,cAAc,EAAE,sBAAsB,CAAC;SACxC;KACF;IAED,UAAiB,QAAQ,CAAC;QACxB,KAAY,eAAe,GAAG,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC;KAC7D;CACF"}
1
+ {"version":3,"file":"signup.d.ts","sourceRoot":"","sources":["../../../../src/types/domain/auth/signup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEzE,yBAAiB,MAAM,CAAC;IACtB,UAAiB,OAAO,CAAC;QACvB,UAAiB,oBAAoB;YACnC,KAAK,EAAE,MAAM,CAAC;YACd,IAAI,EAAE,YAAY,CAAC;SACpB;QAED,UAAiB,eAAe;YAC9B,KAAK,EAAE,MAAM,CAAC;YACd,QAAQ,EAAE,MAAM,CAAC;YACjB,gBAAgB,EAAE,MAAM,CAAC;YACzB,IAAI,EAAE,YAAY,CAAC;YACnB,QAAQ,EAAE,MAAM,CAAC;YACjB,cAAc,EAAE,sBAAsB,CAAC;SACxC;KACF;IAED,UAAiB,QAAQ,CAAC;QACxB,UAAiB,eAAe;YAC9B,SAAS,EAAE,MAAM,CAAC;YAClB,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;YACzB,WAAW,EAAE,MAAM,CAAC;YACpB,YAAY,EAAE,MAAM,CAAC;SACtB;KACF;CACF"}
@@ -1,6 +1,6 @@
1
1
  import { Profile } from '../../types';
2
2
  import { ProfileKindEnum } from '../../enums';
3
- export declare function pickProfile(kind: ProfileKindEnum, data: Nilable<Profile.Response.FullAccountInformationWithForgerProfile | Profile.Response.FullAccountInformationWithAuthorityProfile>): Nullable<Profile.Response.ProfileBase>;
3
+ export declare function pickProfile(kind: ProfileKindEnum, data: Nilable<Profile.Response.FullAccountInformationWithCommunityProfile | Profile.Response.FullAccountInformationWithAuthorityProfile>): Nullable<Profile.Response.ProfileBase>;
4
4
  export declare function resolveAccountDisplayName(...candidates: Nilable<string>[]): string;
5
5
  export declare function resolveAccountInitial(...candidates: Nilable<string>[]): string;
6
6
  //# sourceMappingURL=account.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../../../src/utils/domain/account.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,wBAAgB,WAAW,CACzB,IAAI,EAAE,eAAe,EACrB,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,uCAAuC,GAAG,OAAO,CAAC,QAAQ,CAAC,0CAA0C,CAAC,GACpI,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAKxC;AAMD,wBAAgB,yBAAyB,CAAC,GAAG,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,CAQlF;AAED,wBAAgB,qBAAqB,CAAC,GAAG,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,CAQ9E"}
1
+ {"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../../../src/utils/domain/account.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,wBAAgB,WAAW,CACzB,IAAI,EAAE,eAAe,EACrB,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,0CAA0C,GAAG,OAAO,CAAC,QAAQ,CAAC,0CAA0C,CAAC,GACvI,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAKxC;AAMD,wBAAgB,yBAAyB,CAAC,GAAG,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,CAQlF;AAED,wBAAgB,qBAAqB,CAAC,GAAG,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,CAQ9E"}
@@ -1,7 +1,7 @@
1
1
  import { ProfileKindEnum as e } from "../../enums/auth.js";
2
2
  //#region src/utils/domain/account.ts
3
3
  function t(t, n) {
4
- return n ? t === e.AUTHORITY ? n.authorityProfile : n.forgerProfile : null;
4
+ return n ? t === e.AUTHORITY ? n.authorityProfile : n.communityProfile : null;
5
5
  }
6
6
  function n(e) {
7
7
  return /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(e);
@@ -1 +1 @@
1
- {"version":3,"file":"account.js","names":[],"sources":["../../../src/utils/domain/account.ts"],"sourcesContent":["import type { Profile } from \"nfx-ui/types\";\n\nimport { ProfileKindEnum } from \"nfx-ui/enums\";\n\nexport function pickProfile(\n kind: ProfileKindEnum,\n data: Nilable<Profile.Response.FullAccountInformationWithForgerProfile | Profile.Response.FullAccountInformationWithAuthorityProfile>,\n): Nullable<Profile.Response.ProfileBase> {\n if (!data) return null;\n return kind === ProfileKindEnum.AUTHORITY\n ? (data as Profile.Response.FullAccountInformationWithAuthorityProfile).authorityProfile\n : (data as Profile.Response.FullAccountInformationWithForgerProfile).forgerProfile;\n}\n\nfunction isUuidLike(value: string): boolean {\n return /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(value);\n}\n\nexport function resolveAccountDisplayName(...candidates: Nilable<string>[]): string {\n for (const candidate of candidates) {\n const value = candidate?.trim();\n if (!value) continue;\n if (isUuidLike(value)) return `Account ${value.slice(0, 8)}`;\n return value;\n }\n return \"User\";\n}\n\nexport function resolveAccountInitial(...candidates: Nilable<string>[]): string {\n for (const candidate of candidates) {\n const value = candidate?.trim();\n if (!value) continue;\n const match = value.match(/[A-Za-z0-9]/);\n if (match) return match[0].toUpperCase();\n }\n return \"U\";\n}\n"],"mappings":";;AAIA,SAAgB,EACd,GACA,GACwC;CAExC,OADK,IACE,MAAS,EAAgB,YAC3B,EAAqE,mBACrE,EAAkE,gBAHrD;AAIpB;AAEA,SAAS,EAAW,GAAwB;CAC1C,OAAO,kEAAkE,KAAK,CAAK;AACrF;AAEA,SAAgB,EAA0B,GAAG,GAAuC;CAClF,KAAK,IAAM,KAAa,GAAY;EAClC,IAAM,IAAQ,GAAW,KAAK;EACzB,OAEL,OADI,EAAW,CAAK,IAAU,WAAW,EAAM,MAAM,GAAG,CAAC,MAClD;CACT;CACA,OAAO;AACT;AAEA,SAAgB,EAAsB,GAAG,GAAuC;CAC9E,KAAK,IAAM,KAAa,GAAY;EAClC,IAAM,IAAQ,GAAW,KAAK;EAC9B,IAAI,CAAC,GAAO;EACZ,IAAM,IAAQ,EAAM,MAAM,aAAa;EACvC,IAAI,GAAO,OAAO,EAAM,EAAE,CAAC,YAAY;CACzC;CACA,OAAO;AACT"}
1
+ {"version":3,"file":"account.js","names":[],"sources":["../../../src/utils/domain/account.ts"],"sourcesContent":["import type { Profile } from \"nfx-ui/types\";\n\nimport { ProfileKindEnum } from \"nfx-ui/enums\";\n\nexport function pickProfile(\n kind: ProfileKindEnum,\n data: Nilable<Profile.Response.FullAccountInformationWithCommunityProfile | Profile.Response.FullAccountInformationWithAuthorityProfile>,\n): Nullable<Profile.Response.ProfileBase> {\n if (!data) return null;\n return kind === ProfileKindEnum.AUTHORITY\n ? (data as Profile.Response.FullAccountInformationWithAuthorityProfile).authorityProfile\n : (data as Profile.Response.FullAccountInformationWithCommunityProfile).communityProfile;\n}\n\nfunction isUuidLike(value: string): boolean {\n return /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(value);\n}\n\nexport function resolveAccountDisplayName(...candidates: Nilable<string>[]): string {\n for (const candidate of candidates) {\n const value = candidate?.trim();\n if (!value) continue;\n if (isUuidLike(value)) return `Account ${value.slice(0, 8)}`;\n return value;\n }\n return \"User\";\n}\n\nexport function resolveAccountInitial(...candidates: Nilable<string>[]): string {\n for (const candidate of candidates) {\n const value = candidate?.trim();\n if (!value) continue;\n const match = value.match(/[A-Za-z0-9]/);\n if (match) return match[0].toUpperCase();\n }\n return \"U\";\n}\n"],"mappings":";;AAIA,SAAgB,EACd,GACA,GACwC;CAExC,OADK,IACE,MAAS,EAAgB,YAC3B,EAAqE,mBACrE,EAAqE,mBAHxD;AAIpB;AAEA,SAAS,EAAW,GAAwB;CAC1C,OAAO,kEAAkE,KAAK,CAAK;AACrF;AAEA,SAAgB,EAA0B,GAAG,GAAuC;CAClF,KAAK,IAAM,KAAa,GAAY;EAClC,IAAM,IAAQ,GAAW,KAAK;EACzB,OAEL,OADI,EAAW,CAAK,IAAU,WAAW,EAAM,MAAM,GAAG,CAAC,MAClD;CACT;CACA,OAAO;AACT;AAEA,SAAgB,EAAsB,GAAG,GAAuC;CAC9E,KAAK,IAAM,KAAa,GAAY;EAClC,IAAM,IAAQ,GAAW,KAAK;EAC9B,IAAI,CAAC,GAAO;EACZ,IAAM,IAAQ,EAAM,MAAM,aAAa;EACvC,IAAI,GAAO,OAAO,EAAM,EAAE,CAAC,YAAY;CACzC;CACA,OAAO;AACT"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nfx-ui",
3
- "version": "0.28.0",
3
+ "version": "0.30.0",
4
4
  "type": "module",
5
5
  "sideEffects": [
6
6
  "**/*.css",
@@ -87,8 +87,8 @@ export class ApiAuthRepository implements AuthRepository {
87
87
 
88
88
  async GetCurrentFullAccountInformationWithProfile<K extends ProfileKindEnum>(kind: K): Promise<FullAccountInfoByKind<K>> {
89
89
  switch (kind) {
90
- case ProfileKindEnum.FORGER: {
91
- const { data } = await protectedClient.get<DataResponse<Profile.Response.FullAccountInformationWithForgerProfile>>(
90
+ case ProfileKindEnum.COMMUNITY: {
91
+ const { data } = await protectedClient.get<DataResponse<Profile.Response.FullAccountInformationWithCommunityProfile>>(
92
92
  URL_PATHS.AUTH.Me.FullAccountInformationWithForgerProfile,
93
93
  );
94
94
  return dataFromResponse(data, "GetCurrentFullAccountInformationWithProfile") as FullAccountInfoByKind<K>;
@@ -106,7 +106,7 @@ export class ApiAuthRepository implements AuthRepository {
106
106
 
107
107
  async PatchProfile(kind: ProfileKindEnum, body: Profile.Request.PatchProfile): Promise<void> {
108
108
  switch (kind) {
109
- case ProfileKindEnum.FORGER:
109
+ case ProfileKindEnum.COMMUNITY:
110
110
  await protectedClient.patch<DataResponse<null>>(URL_PATHS.AUTH.Me.ForgerProfile, body);
111
111
  return;
112
112
  case ProfileKindEnum.AUTHORITY:
@@ -119,7 +119,7 @@ export class ApiAuthRepository implements AuthRepository {
119
119
 
120
120
  async PatchProfileSettings(kind: ProfileKindEnum, body: Profile.Request.PatchProfileSettings): Promise<void> {
121
121
  switch (kind) {
122
- case ProfileKindEnum.FORGER:
122
+ case ProfileKindEnum.COMMUNITY:
123
123
  await protectedClient.patch<DataResponse<null>>(URL_PATHS.AUTH.Me.ForgerProfileSettings, body);
124
124
  return;
125
125
  case ProfileKindEnum.AUTHORITY:
@@ -132,7 +132,7 @@ export class ApiAuthRepository implements AuthRepository {
132
132
 
133
133
  async ConfirmProfileAvatar(kind: ProfileKindEnum, body: Profile.Request.ConfirmProfileAvatar): Promise<void> {
134
134
  switch (kind) {
135
- case ProfileKindEnum.FORGER:
135
+ case ProfileKindEnum.COMMUNITY:
136
136
  await protectedClient.put<DataResponse<null>>(URL_PATHS.AUTH.Me.ForgerProfileAvatars, body);
137
137
  return;
138
138
  case ProfileKindEnum.AUTHORITY:
@@ -145,7 +145,7 @@ export class ApiAuthRepository implements AuthRepository {
145
145
 
146
146
  async ClearProfileAvatar(kind: ProfileKindEnum): Promise<void> {
147
147
  switch (kind) {
148
- case ProfileKindEnum.FORGER:
148
+ case ProfileKindEnum.COMMUNITY:
149
149
  await protectedClient.delete<DataResponse<null>>(URL_PATHS.AUTH.Me.ForgerProfileAvatars);
150
150
  return;
151
151
  case ProfileKindEnum.AUTHORITY:
@@ -158,7 +158,7 @@ export class ApiAuthRepository implements AuthRepository {
158
158
 
159
159
  async ConfirmProfileBackgrounds(kind: ProfileKindEnum, body: Profile.Request.ConfirmProfileBackgrounds): Promise<void> {
160
160
  switch (kind) {
161
- case ProfileKindEnum.FORGER:
161
+ case ProfileKindEnum.COMMUNITY:
162
162
  await protectedClient.put<DataResponse<null>>(URL_PATHS.AUTH.Me.ForgerProfileBackgrounds, body);
163
163
  return;
164
164
  case ProfileKindEnum.AUTHORITY:
@@ -171,7 +171,7 @@ export class ApiAuthRepository implements AuthRepository {
171
171
 
172
172
  async ListProfiles<K extends ProfileKindEnum>(kind: K, params: { limit?: number; offset?: number } = {}): Promise<ListDTOWithTotalNumber<ProfileItemsByKind<K>[number]>> {
173
173
  switch (kind) {
174
- case ProfileKindEnum.FORGER: {
174
+ case ProfileKindEnum.COMMUNITY: {
175
175
  const { data } = await protectedClient.get<DataResponse<ListDTOWithTotalNumber<Profile.Response.ForgerProfileItem>>>(URL_PATHS.AUTH.Me.Profiles, { params });
176
176
  return dataFromResponse(data, "ListProfiles") as ListDTOWithTotalNumber<ProfileItemsByKind<K>[number]>;
177
177
  }
@@ -186,7 +186,7 @@ export class ApiAuthRepository implements AuthRepository {
186
186
 
187
187
  async DeleteProfile(kind: ProfileKindEnum, profileId: string): Promise<void> {
188
188
  switch (kind) {
189
- case ProfileKindEnum.FORGER:
189
+ case ProfileKindEnum.COMMUNITY:
190
190
  await protectedClient.delete<DataResponse<null>>(URL_PATHS.AUTH.Me.ProfileById(profileId));
191
191
  return;
192
192
  case ProfileKindEnum.AUTHORITY:
@@ -199,7 +199,7 @@ export class ApiAuthRepository implements AuthRepository {
199
199
 
200
200
  async UpdatePreference(kind: ProfileKindEnum, preference: string): Promise<void> {
201
201
  switch (kind) {
202
- case ProfileKindEnum.FORGER:
202
+ case ProfileKindEnum.COMMUNITY:
203
203
  await protectedClient.put<DataResponse<null>>(URL_PATHS.AUTH.Me.ForgerProfilePreference, { preference });
204
204
  return;
205
205
  case ProfileKindEnum.AUTHORITY:
package/src/enums/auth.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * Auth 枚举,镜像 Identity 后端。
3
- * ProfileKindEnum 与 JWT profile_scope 共用 wire 值 "forger" | "authority"。
3
+ * ProfileKindEnum 与 JWT profile_scope 共用 wire 值 "community" | "authority"。
4
+ * forger 是 community 档上的角色(AuthForgerRoleEnum),不是 kind。
4
5
  * 角色不在 JWT;能力门控按纯成员判定(hasRole / hasAnyRole)。
5
6
  */
6
7
 
@@ -16,13 +17,13 @@ export function hasAnyRole<T>(roles: Nilable<readonly T[]>, ...candidates: T[]):
16
17
  return candidates.some((role) => hasRole(role, roles));
17
18
  }
18
19
 
19
- /** 与后端 ProfileKind / profile_scope 一致。 */
20
+ /** 与后端 ProfileKind / profile_scope 一致("community" | "authority")。forger 是 community 档上的角色,不是 kind。 */
20
21
  export enum ProfileKindEnum {
21
- FORGER = "forger",
22
+ COMMUNITY = "community",
22
23
  AUTHORITY = "authority",
23
24
  }
24
25
 
25
- export const DEFAULT_PROFILE_KIND = ProfileKindEnum.FORGER;
26
+ export const DEFAULT_PROFILE_KIND = ProfileKindEnum.COMMUNITY;
26
27
  export const PROFILE_KIND_VALUES = Object.values(ProfileKindEnum);
27
28
  export const ProfileKind = (value: Nilable<string>) => safeEnum(value, PROFILE_KIND_VALUES, DEFAULT_PROFILE_KIND);
28
29
 
package/src/hooks/auth.ts CHANGED
@@ -89,20 +89,12 @@ export const useSignupWithEmail = () => {
89
89
  ...params
90
90
  }: {
91
91
  rememberMe: boolean;
92
- } & Omit<Signup.Request.SignupWithEmail, "deviceId">): Promise<Signup.Response.SignupWithEmail & { profileId?: string }> => {
92
+ } & Omit<Signup.Request.SignupWithEmail, "deviceId">): Promise<Signup.Response.SignupWithEmail> => {
93
93
  const deviceId = await ensureDeviceIdStorage();
94
- const result = await auth.SignupWithEmail({
94
+ return auth.SignupWithEmail({
95
95
  ...params,
96
96
  deviceId,
97
97
  });
98
- const first = result.profiles?.find((p) => p.kind === ProfileKindEnum.FORGER) ?? result.profiles?.[0];
99
- if (!first) return result;
100
- const selected = await auth.SelectProfile({
101
- profileId: first.profileId,
102
- kind: first.kind,
103
- deviceId,
104
- });
105
- return { ...result, accessToken: selected.accessToken, refreshToken: selected.refreshToken, profileId: selected.profileId };
106
98
  },
107
99
  onSuccess: (result, variables) => {
108
100
  if (!result?.accessToken) return;
@@ -117,7 +109,7 @@ export const useSignupWithEmail = () => {
117
109
  if (result.accountId) setCurrentAccountId(result.accountId);
118
110
  if (result.profileId) {
119
111
  setCurrentProfileId(result.profileId);
120
- setCurrentProfileKind(ProfileKindEnum.FORGER);
112
+ setCurrentProfileKind(ProfileKindEnum.COMMUNITY);
121
113
  authEventEmitter.emit(authEvents.LOGIN_SUCCESS, result.accountId);
122
114
  } else {
123
115
  setCurrentProfileId(EMPTY_PROFILE_ID);
@@ -272,7 +264,7 @@ export const useCreateForgerProfile = () => {
272
264
  mutationFn: (body: Login.Request.CreateForgerProfile) => auth.CreateForgerProfile(body),
273
265
  onSuccess: () => {
274
266
  const aID = AuthStore.getState().currentAccountId;
275
- authEventEmitter.invalidateProfiles({ aID, kind: ProfileKindEnum.FORGER });
267
+ authEventEmitter.invalidateProfiles({ aID, kind: ProfileKindEnum.COMMUNITY });
276
268
  },
277
269
  onError: (error: AxiosError) => {
278
270
  systemEventEmitter.showError(getApiErrorMessage(error, "[useCreateForgerProfile] error"));
@@ -597,7 +589,7 @@ export const useSearchForgerProfiles = (query: string) => {
597
589
  const trimmed = query.trim();
598
590
  return useUnifiedQuery(
599
591
  ({ query: q }) => auth.SearchForgerProfiles({ query: q, limit: 50, offset: 0 }),
600
- AUTH_PROFILE_SEARCH(aID, ProfileKindEnum.FORGER, trimmed),
592
+ AUTH_PROFILE_SEARCH(aID, ProfileKindEnum.COMMUNITY, trimmed),
601
593
  { query: trimmed },
602
594
  { enabled: isAuthValid && Boolean(aID) && trimmed.length > 0 },
603
595
  );
@@ -319,6 +319,58 @@ meter {
319
319
  border-radius: max(var(--tab-inner-border-radius), var(--radius-full)) !important;
320
320
  }
321
321
 
322
+ /*
323
+ * Tabs hover: PulsoLink-WEB pattern. Radix paints both the active underline
324
+ * (::before) and TabsTriggerInner, which reads as two color layers. Keep the
325
+ * bar; only fill the inner on inactive hover. Active hover stays underline-only.
326
+ */
327
+ .radix-themes .rt-BaseTabListTrigger::before {
328
+ content: "";
329
+ height: 2px;
330
+ position: absolute;
331
+ bottom: 0;
332
+ left: 0;
333
+ right: 0;
334
+ background-color: var(--accent-indicator);
335
+ transform: scaleX(0);
336
+ transform-origin: center;
337
+ transition: transform 0.22s cubic-bezier(0.22, 1, 0.36, 1);
338
+ pointer-events: none;
339
+ }
340
+
341
+ .radix-themes .rt-BaseTabListTrigger[data-state="active"]::before,
342
+ .radix-themes .rt-BaseTabListTrigger[data-active]::before {
343
+ transform: scaleX(1);
344
+ }
345
+
346
+ .radix-themes .rt-BaseTabListTrigger[data-state="active"] .rt-BaseTabListTriggerInner,
347
+ .radix-themes .rt-BaseTabListTrigger[data-active] .rt-BaseTabListTriggerInner {
348
+ font-weight: var(--font-weight-bold);
349
+ background-color: transparent;
350
+ }
351
+
352
+ @media (hover: hover) {
353
+ .radix-themes .rt-BaseTabListTrigger:hover::before {
354
+ transform: scaleX(1);
355
+ }
356
+
357
+ .radix-themes :where(.rt-BaseTabListTrigger:hover:not([data-state="active"]):not([data-active])) :where(.rt-BaseTabListTriggerInner) {
358
+ background-color: var(--accent-a3);
359
+ color: var(--accent-11);
360
+ }
361
+
362
+ .radix-themes .rt-BaseTabListTrigger[data-state="active"]:hover .rt-BaseTabListTriggerInner,
363
+ .radix-themes .rt-BaseTabListTrigger[data-active]:hover .rt-BaseTabListTriggerInner {
364
+ background-color: transparent;
365
+ }
366
+ }
367
+
368
+ @media (prefers-reduced-motion: reduce) {
369
+ .radix-themes .rt-BaseTabListTrigger::before {
370
+ transition: none;
371
+ }
372
+ }
373
+
322
374
  .radix-themes[data-radius="full"] .rt-Card {
323
375
  --card-border-radius: var(--radius-6);
324
376
  }
@@ -174,12 +174,12 @@ export namespace Profile {
174
174
  authorityProfiles: AuthorityProfile[];
175
175
  }
176
176
 
177
- export interface FullAccountInformationWithForgerProfile {
177
+ export interface FullAccountInformationWithCommunityProfile {
178
178
  account: Account;
179
179
  emails: Email[];
180
180
  phones: Phone[];
181
181
  identities: IdentityLink[];
182
- forgerProfile: Nullable<ForgerProfile>;
182
+ communityProfile: Nullable<ForgerProfile>;
183
183
  }
184
184
 
185
185
  export interface FullAccountInformationWithAuthorityProfile {
@@ -215,13 +215,13 @@ export namespace Profile {
215
215
  }
216
216
  }
217
217
 
218
- export type FullAccountInfoByKind<K extends ProfileKindEnum> = K extends ProfileKindEnum.FORGER
219
- ? Profile.Response.FullAccountInformationWithForgerProfile
218
+ export type FullAccountInfoByKind<K extends ProfileKindEnum> = K extends ProfileKindEnum.COMMUNITY
219
+ ? Profile.Response.FullAccountInformationWithCommunityProfile
220
220
  : K extends ProfileKindEnum.AUTHORITY
221
221
  ? Profile.Response.FullAccountInformationWithAuthorityProfile
222
222
  : never;
223
223
 
224
- export type ProfileItemsByKind<K extends ProfileKindEnum> = K extends ProfileKindEnum.FORGER
224
+ export type ProfileItemsByKind<K extends ProfileKindEnum> = K extends ProfileKindEnum.COMMUNITY
225
225
  ? Profile.Response.ForgerProfileItem[]
226
226
  : K extends ProfileKindEnum.AUTHORITY
227
227
  ? Profile.Response.AuthorityProfileItem[]
@@ -1,7 +1,5 @@
1
1
  import type { AuthSignupPlatformEnum, LanguageEnum } from "nfx-ui/enums";
2
2
 
3
- import type { Login } from "./login";
4
-
5
3
  export namespace Signup {
6
4
  export namespace Request {
7
5
  export interface SendVerificationCode {
@@ -20,6 +18,11 @@ export namespace Signup {
20
18
  }
21
19
 
22
20
  export namespace Response {
23
- export type SignupWithEmail = Login.Response.LoginWithEmail;
21
+ export interface SignupWithEmail {
22
+ accountId: string;
23
+ profileId: Maybe<string>;
24
+ accessToken: string;
25
+ refreshToken: string;
26
+ }
24
27
  }
25
28
  }