@@ -18,6 +18,9 @@ export const walletP = makeStableForwarder(bootP => E.G(bootP).wallet);
18
18
export const boardP = makeStableForwarder ( bootP => E . G ( bootP ) . board ) ;
19
19
20
20
const resetAlls = [ ] ;
21
+
22
+ // We initialize as false, but reset to true on disconnects.
23
+ const [ ready , setReady ] = makeReadable ( false , true ) ;
21
24
const [ inbox , setInbox ] = makeReadable ( [ ] ) ;
22
25
const [ purses , setPurses ] = makeReadable ( [ ] ) ;
23
26
const [ dapps , setDapps ] = makeReadable ( [ ] ) ;
@@ -26,7 +29,7 @@ const [contacts, setContacts] = makeReadable([]);
26
29
const [ selfContact , setSelfContact ] = makeReadable ( ) ;
27
30
const [ issuers , setIssuers ] = makeReadable ( [ ] ) ;
28
31
29
- export { inbox , purses , dapps , payments , issuers , contacts , selfContact } ;
32
+ export { ready , inbox , purses , dapps , payments , issuers , contacts , selfContact } ;
30
33
31
34
function cmp ( a , b ) {
32
35
return a < b ? - 1 : a === b ? 0 : 1 ;
@@ -39,6 +42,10 @@ function kv(keyObj, val) {
39
42
}
40
43
41
44
function onReset ( readyP ) {
45
+ // Reset is beginning, set unready.
46
+ setReady ( false ) ;
47
+
48
+ // When the ready promise fires, reset to ready.
42
49
readyP . then ( ( ) => resetAlls . forEach ( fn => fn ( ) ) ) ;
43
50
E ( walletP ) . getSelfContact ( ) . then ( sc => setSelfContact ( { contactPetname : 'Self' , ...kv ( 'Self' , sc ) } ) ) ;
44
51
// Set up our subscriptions.
@@ -77,8 +84,8 @@ function onReset(readyP) {
77
84
}
78
85
79
86
// like React useHook, return a store and a setter for it
80
- function makeReadable ( value , start = undefined ) {
81
- const store = writable ( value , start ) ;
82
- resetAlls . push ( ( ) => store . set ( start ) ) ;
87
+ function makeReadable ( value , reset = value ) {
88
+ const store = writable ( value ) ;
89
+ resetAlls . push ( ( ) => store . set ( reset ) ) ;
83
90
return [ { subscribe : store . subscribe } , store . set ] ;
84
91
}
0 commit comments