From db8f78f26a4a315a997d11641021b5186aeabf2b Mon Sep 17 00:00:00 2001 From: zhouhanseng Date: Fri, 13 May 2022 14:59:13 +0800 Subject: [PATCH] fix: check next id verified --- packages/mask/src/components/DataSource/useNextID.ts | 7 ++++++- packages/mask/src/components/shared/ApplicationBoard.tsx | 6 +++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/packages/mask/src/components/DataSource/useNextID.ts b/packages/mask/src/components/DataSource/useNextID.ts index 60ac89484281..7988024e2b59 100644 --- a/packages/mask/src/components/DataSource/useNextID.ts +++ b/packages/mask/src/components/DataSource/useNextID.ts @@ -67,7 +67,11 @@ export function useNextIDConnectStatus() { const lastRecognized = useLastRecognizedIdentity() const [username] = useState(lastState.username || lastRecognized.identifier?.userId || '') - const { value: VerificationStatus = NextIDVerificationStatus.Other, retry } = useAsyncRetry(async () => { + const { + value: VerificationStatus = NextIDVerificationStatus.Other, + retry, + loading, + } = useAsyncRetry(async () => { // Whether in connect to {platform} process if (lastState.status === SetupGuideStep.FindUsername) return NextIDVerificationStatus.WaitingLocalConnect @@ -118,6 +122,7 @@ export function useNextIDConnectStatus() { return { isVerified: VerificationStatus === NextIDVerificationStatus.Verified, status: VerificationStatus, + loading, reset: () => { isOpenedVerifyDialog = false isOpenedFromButton = true diff --git a/packages/mask/src/components/shared/ApplicationBoard.tsx b/packages/mask/src/components/shared/ApplicationBoard.tsx index d2f469ef9d60..9f852a66fc92 100644 --- a/packages/mask/src/components/shared/ApplicationBoard.tsx +++ b/packages/mask/src/components/shared/ApplicationBoard.tsx @@ -198,7 +198,8 @@ function RenderEntryComponent({ application }: { application: Application }) { if (application.entry.nextIdRequired) { return Boolean( - ApplicationEntryStatus.isNextIDVerify === undefined || + ApplicationEntryStatus.isLoading || + ApplicationEntryStatus.isNextIDVerify === undefined || (!ApplicationEntryStatus.isSNSConnectToCurrentPersona && ApplicationEntryStatus.isPersonaConnected), ) } else { @@ -268,6 +269,7 @@ interface ApplicationEntryStatusContextProps { currentPersonaPublicKey: string | undefined currentSNSConnectedPersonaPublicKey: string | undefined personaConnectAction: (() => void) | undefined + isLoading: boolean } const ApplicationEntryStatusContext = createContext({ @@ -280,6 +282,7 @@ const ApplicationEntryStatusContext = createContext) { @@ -308,6 +311,7 @@ function ApplicationEntryStatusProvider(props: PropsWithChildren<{}>) { shouldVerifyNextId: Boolean(!nextIDConnectStatus.isVerified && ApplicationCurrentStatus), currentPersonaPublicKey, currentSNSConnectedPersonaPublicKey, + isLoading: nextIDConnectStatus.loading, }}> {props.children}