1- import React , { useEffect , useMemo } from 'react' ;
1+ import React , { useEffect , useMemo , useState } from 'react' ;
22import { useSelector } from 'react-redux' ;
33
44import noticeCardComponents from '../notice-card' ;
5+ import modalsComponents from '../modals' ;
56
67import global from '../../config/global' ;
78import storeActions from '../../store/actions' ;
@@ -12,21 +13,38 @@ function NoticeCards(props) {
1213 EmergencyAccessInvitations
1314 } = noticeCardComponents ;
1415
16+ const {
17+ EncryptionUpdateModal
18+ } = modalsComponents
19+
1520 const { className } = props ;
1621
1722 const myShares = useSelector ( ( state ) => state . share . myShares ) ;
1823 const confirmMyShareVisible = useSelector ( ( state ) => state . notice . confirmMyShareVisible ) ;
24+ const userInfo = useSelector ( ( state ) => state . auth . userInfo ) ;
25+
26+ const [ encryptionUpdateVisible , setEncryptionUpdateVisible ] = useState ( false ) ;
1927
2028 const isConfirmMyShare = useMemo ( ( ) => {
2129 return ! ! myShares . find ( ( s ) => {
2230 return s . members . filter ( ( m ) => m . status === global . constants . STATUS . ACCEPTED ) . length > 0
2331 } )
2432 } , [ myShares ] )
2533
34+ const isEncryptionUpdate = useMemo ( ( ) => {
35+ return userInfo . kdf === global . constants . CORE_JS_INFO . KDF && userInfo . kdf_iterations < global . constants . CORE_JS_INFO . KDF_ITERATIONS
36+ } , [ userInfo ] )
37+
2638 useEffect ( ( ) => {
2739 initNoticeCards ( ) ;
2840 } , [ isConfirmMyShare ] ) ;
2941
42+ useEffect ( ( ) => {
43+ if ( isEncryptionUpdate ) {
44+ setEncryptionUpdateVisible ( true )
45+ }
46+ } , [ isEncryptionUpdate ] )
47+
3048 const initNoticeCards = async ( ) => {
3149 global . store . dispatch ( storeActions . updateConfirmMyShareVisible ( isConfirmMyShare ) )
3250 }
@@ -39,6 +57,12 @@ function NoticeCards(props) {
3957 {
4058 ! confirmMyShareVisible && < EmergencyAccessInvitations />
4159 }
60+ {
61+ isEncryptionUpdate && < EncryptionUpdateModal
62+ visible = { encryptionUpdateVisible }
63+ onClose = { ( ) => setEncryptionUpdateVisible ( false ) }
64+ />
65+ }
4266 </ div >
4367 ) ;
4468}
0 commit comments