@@ -5,7 +5,8 @@ import { useSelector, useDispatch } from 'react-redux';
55import type { RootState , AppDispatch } from '../redux/store' ;
66import Alerts from '../components/Alerts' ;
77import Navbar from '../components/Navbar' ;
8- import { setJoining , setFederationId , setNewJoin , setWalletId } from '../redux/slices/ActiveWallet' ;
8+ import { setNewJoin , setWalletId } from '../redux/slices/ActiveWallet' ;
9+ import { setFederationId } from '../redux/slices/FederationDetails' ;
910import { setErrorWithTimeout } from '../redux/slices/Alerts' ;
1011import {
1112 JoinFederation as JoinFederationService ,
@@ -18,7 +19,7 @@ import DiscoverFederation from '../components/DiscoverFederation';
1819import { setWalletStatus } from '../redux/slices/WalletSlice' ;
1920import '../style/JoinFederation.css' ;
2021import QRScanner from '../components/QrScanner' ;
21- import Tippy from '@tippyjs/react ' ;
22+ import { setRecoverySate } from '../redux/slices/ActiveWallet ' ;
2223
2324export default function JoinFederation ( ) {
2425 const [ inviteCode , setInviteCode ] = useState < string > ( '' ) ;
@@ -31,14 +32,17 @@ export default function JoinFederation() {
3132 const [ recover , setRecover ] = useState < boolean > ( false ) ;
3233 const navigate = useNavigate ( ) ;
3334 const dispatch = useDispatch < AppDispatch > ( ) ;
34- const { joining } = useSelector ( ( state : RootState ) => state . activeFederation ) ;
35+ const [ joining , setJoining ] = useState < boolean > ( false ) ;
3536 const { error } = useSelector ( ( state : RootState ) => state . Alert ) ;
37+ const [ recovering , setRecovering ] = useState < boolean > ( false ) ;
3638
37- const handleJoinFederation = async ( code ?: string ) : Promise < void > => {
38- dispatch ( setJoining ( true ) ) ;
39+ const handleJoinFederation = async ( code ?: string , recover ?: boolean ) : Promise < void > => {
40+ setJoining ( true ) ;
41+ if ( recover ) {
42+ setRecovering ( true ) ;
43+ }
3944 try {
4045 startProgress ( ) ;
41- logger . log ( 'recovery? ' , recover ) ;
4246 const result = await JoinFederationService (
4347 code || inviteCode ,
4448 walletName . current ?. value || 'fm-default' ,
@@ -54,7 +58,8 @@ export default function JoinFederation() {
5458 } catch ( err ) {
5559 dispatch ( setErrorWithTimeout ( { type : 'Join Error:' , message : `${ err } ` } ) ) ;
5660 } finally {
57- dispatch ( setJoining ( false ) ) ;
61+ setJoining ( false ) ;
62+ setRecovering ( false ) ;
5863 doneProgress ( ) ;
5964 }
6065 } ;
@@ -167,25 +172,28 @@ export default function JoinFederation() {
167172 : 'N/A' }
168173 </ span >
169174 </ div >
170- < label className = "recovery-label" >
171- < input
172- type = "checkbox"
173- checked = { recover }
174- onChange = { ( e ) => setRecover ( e . target . checked ) }
175- />
176- Recover Wallet{ ' ' }
177- < Tippy content = "It will recover your wallet instead creating new one" >
178- < i className = "fa-solid fa-info-circle" > </ i >
179- </ Tippy >
180- </ label >
181- < button
182- onClick = { ( ) => {
183- handleJoinFederation ( ) ;
184- } }
185- disabled = { joining }
186- >
187- { joining ? 'Joining...' : 'Join' }
188- </ button >
175+ < div className = "preview-action-btn" >
176+ < button
177+ onClick = { ( ) => {
178+ handleJoinFederation ( ) ;
179+ } }
180+ disabled = { joining }
181+ >
182+ < i className = "fa-solid fa-arrow-right-to-bracket" > </ i > { ' ' }
183+ { joining ? 'Joining...' : 'Join' }
184+ </ button >
185+ < button
186+ onClick = { ( ) => {
187+ setRecover ( true ) ;
188+ dispatch ( setRecoverySate ( { status : true } ) ) ;
189+ handleJoinFederation ( undefined , true ) ;
190+ } }
191+ disabled = { recovering }
192+ >
193+ < i className = "fa-solid fa-rotate-right" > </ i > { ' ' }
194+ { recovering ? 'Recovering...' : 'Recover' }
195+ </ button >
196+ </ div >
189197 </ div >
190198 </ div >
191199 </ div >
0 commit comments