11// Libraries
22import React , { FC , useCallback , useEffect , useState } from 'react'
33import { useDispatch } from 'react-redux'
4+ import { cloneDeep } from 'lodash'
45
56// Types
67import { UserAccount } from 'src/client/unityRoutes'
@@ -91,7 +92,6 @@ export const UserAccountProvider: FC<Props> = React.memo(({children}) => {
9192 setDefaultAccountId ( defaultId )
9293 }
9394
94- // isActive: true is for the currently logged in/active account
9595 const activeAcct = accounts . find ( acct => acct . isActive === true )
9696 if ( typeof activeAcct === 'object' && activeAcct . hasOwnProperty ( 'id' ) ) {
9797 const activeId = activeAcct . id
@@ -111,8 +111,22 @@ export const UserAccountProvider: FC<Props> = React.memo(({children}) => {
111111 const accountName = getAccountNameById ( newDefaultAcctId )
112112
113113 try {
114+ const oldDefaultAcctId = defaultAccountId
115+
114116 await updateDefaultQuartzAccount ( newDefaultAcctId )
117+
118+ const accountsClone = cloneDeep ( userAccounts )
119+
120+ accountsClone . forEach ( account => {
121+ if ( account . id === oldDefaultAcctId ) {
122+ account . isDefault = false
123+ }
124+ if ( account . id === newDefaultAcctId ) {
125+ account . isDefault = true
126+ }
127+ } )
115128 setDefaultAccountId ( newDefaultAcctId )
129+ setUserAccounts ( accountsClone )
116130
117131 if ( ! setDefaultAccountOptions ?. disablePopUps ) {
118132 dispatch ( notify ( accountDefaultSettingSuccess ( accountName ) ) )
@@ -159,7 +173,7 @@ export const UserAccountProvider: FC<Props> = React.memo(({children}) => {
159173
160174 useEffect ( ( ) => {
161175 handleGetAccounts ( )
162- } , [ handleGetAccounts , defaultAccountId , activeAccountId ] )
176+ } , [ handleGetAccounts ] )
163177
164178 return (
165179 < UserAccountContext . Provider
0 commit comments