Skip to content

Commit 122201a

Browse files
committed
MP-40 update state after dice success
1 parent f5f5761 commit 122201a

File tree

3 files changed

+21
-5
lines changed

3 files changed

+21
-5
lines changed

src/apps/accounts/src/settings/tabs/account/security/Security.tsx

+6-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { Dispatch, FC, SetStateAction, useEffect, useState } from 'react'
22
import { toast } from 'react-toastify'
3+
import { KeyedMutator } from 'swr'
34

45
import { Button, Collapsible, FormToggleSwitch } from '~/libs/ui'
56
import { diceIdLogo, MFAImage, SettingSection } from '~/apps/accounts/src/lib'
@@ -15,7 +16,10 @@ interface SecurityProps {
1516
const Security: FC<SecurityProps> = (props: SecurityProps) => {
1617
const [setupDiceModalOpen, setSetupDiceModalOpen]: [boolean, Dispatch<SetStateAction<boolean>>] = useState(false)
1718

18-
const mfaStatusData: MemberMFAStatus | undefined = useMemberMFAStatus(props.profile.userId)
19+
const { data: mfaStatusData, mutate: mutateMFAData }: {
20+
data: MemberMFAStatus | undefined
21+
mutate: KeyedMutator<any>,
22+
} = useMemberMFAStatus(props.profile.userId)
1923

2024
const [mfaEnabled, setMFAEnabled]: [boolean, Dispatch<SetStateAction<boolean>>] = useState(false)
2125

@@ -91,6 +95,7 @@ const Security: FC<SecurityProps> = (props: SecurityProps) => {
9195

9296
{setupDiceModalOpen && (
9397
<DiceSetupModal
98+
mutateMFAData={mutateMFAData}
9499
onClose={handleDiceModalStatus}
95100
profile={props.profile}
96101
/>

src/apps/accounts/src/settings/tabs/account/security/dice-setup-modal/DiceSetupModal.tsx

+3
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import { Dispatch, FC, SetStateAction, useEffect, useState } from 'react'
22
import { QRCodeSVG } from 'qrcode.react'
33
import { get, isUndefined, lowerCase } from 'lodash'
44
import { toast } from 'react-toastify'
5+
import { KeyedMutator } from 'swr'
56

67
import { BaseModal, Button } from '~/libs/ui'
78
import {
@@ -20,6 +21,7 @@ import styles from './DiceSetupModal.module.scss'
2021
const GooglePlayLink: string = 'https://play.google.com/store/apps/details?id=com.diwallet1'
2122
const AppleStoreLink: string = 'https://apps.apple.com/us/app/dice-id/id1548148979'
2223
interface DiceSetupModalProps {
24+
mutateMFAData: KeyedMutator<any>
2325
onClose: () => void
2426
profile: UserProfile
2527
}
@@ -72,6 +74,7 @@ const DiceSetupModal: FC<DiceSetupModalProps> = (props: DiceSetupModalProps) =>
7274
},
7375
})
7476
.then(() => {
77+
props.mutateMFAData()
7578
setStep(4)
7679
// eslint-disable-next-line max-len
7780
toast.success('Your credentials have been verified and you are all set for MFA using your decentralized identity (DICE ID).')

src/libs/core/lib/profile/data-providers/useMemberMFAStatus.ts

+12-4
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import useSWR, { SWRResponse } from 'swr'
1+
import useSWR, { KeyedMutator, SWRResponse } from 'swr'
22

33
import { memberModifyMfaURL } from '~/libs/core'
44

@@ -13,8 +13,16 @@ export interface MemberMFAStatus {
1313
userId: number
1414
}
1515

16-
export function useMemberMFAStatus(userId: number): MemberMFAStatus | undefined {
17-
const { data }: SWRResponse = useSWR(memberModifyMfaURL(userId))
16+
export interface UseMemberMFAStatusAPI {
17+
data: MemberMFAStatus | undefined
18+
mutate: KeyedMutator<any>
19+
}
20+
21+
export function useMemberMFAStatus(userId: number): UseMemberMFAStatusAPI {
22+
const { data, mutate }: SWRResponse = useSWR(memberModifyMfaURL(userId))
1823

19-
return data ? data.result.content : undefined
24+
return {
25+
data: data ? data.result.content : undefined,
26+
mutate,
27+
}
2028
}

0 commit comments

Comments
 (0)