Skip to content

Commit

Permalink
Loading indicator #319
Browse files Browse the repository at this point in the history
  • Loading branch information
James Calfee committed Oct 29, 2015
1 parent fef9266 commit 8b22252
Showing 1 changed file with 56 additions and 53 deletions.
109 changes: 56 additions & 53 deletions web/app/components/Wallet/ImportKeys.jsx
Expand Up @@ -155,7 +155,7 @@ export default class ImportKeys extends Component {
</div> : null}
<br/>

{ ! import_ready ?
{ ! import_ready && ! this.state.genesis_filter_initalizing ?
<div>
<div className="center-content">
<div>
Expand Down Expand Up @@ -321,60 +321,63 @@ export default class ImportKeys extends Component {
genesis_filter_finished: true, genesis_filtering: false })
return
}
genesis_filter.init(()=> {
var filter_status = this.state.genesis_filter_status

// FF < version 41 does not support worker threads internals (like blob urls)
// var GenesisFilterWorker = require("worker!workers/GenesisFilterWorker")
// var worker = new GenesisFilterWorker
// worker.postMessage({
// account_keys: unfiltered_account_keys,
// bloom_filter: genesis_filter.bloom_filter
// })
// worker.onmessage = event => { try {
// var { status, account_keys } = event.data
// // ...
// } catch( e ) { console.error('GenesisFilterWorker', e) }}

var account_keys = unfiltered_account_keys
genesis_filter.filter( account_keys, status => {
console.log("import filter", status)
if( status.error === "missing_public_keys" ) {
console.error("un-released format, just for testing")
update_state({ password_checksum, account_keys: unfiltered_account_keys,
genesis_filter_finished: true, genesis_filtering: false })
return
}
if( status.success ) {
// var { account_keys } = event.data // if using worker thread
update_state({ password_checksum, account_keys,
genesis_filter_finished: true, genesis_filtering: false })
return
}
if( status.initalizing !== undefined ) {
update_state({ genesis_filter_initalizing: status.initalizing, genesis_filtering: true })
return
}
if( status.importing === undefined ) {
// programmer error
console.error('unknown status', status)
return
}
if( ! filter_status.length )
// first account
filter_status.push( status )
else {
var last_account_name = filter_status[filter_status.length - 1].account_name
if( last_account_name === status.account_name )
// update same account
filter_status[filter_status.length - 1] = status
else
// new account
this.setState({ genesis_filter_initalizing: true }, ()=>// setTimeout(()=>
genesis_filter.init(()=> {
var filter_status = this.state.genesis_filter_status

// FF < version 41 does not support worker threads internals (like blob urls)
// var GenesisFilterWorker = require("worker!workers/GenesisFilterWorker")
// var worker = new GenesisFilterWorker
// worker.postMessage({
// account_keys: unfiltered_account_keys,
// bloom_filter: genesis_filter.bloom_filter
// })
// worker.onmessage = event => { try {
// var { status, account_keys } = event.data
// // ...
// } catch( e ) { console.error('GenesisFilterWorker', e) }}

var account_keys = unfiltered_account_keys
genesis_filter.filter( account_keys, status => {
console.log("import filter", status)
if( status.error === "missing_public_keys" ) {
console.error("un-released format, just for testing")
update_state({ password_checksum, account_keys: unfiltered_account_keys,
genesis_filter_finished: true, genesis_filtering: false })
return
}
if( status.success ) {
// var { account_keys } = event.data // if using worker thread
update_state({ password_checksum, account_keys,
genesis_filter_finished: true, genesis_filtering: false })
return
}
if( status.initalizing !== undefined ) {
update_state({ genesis_filter_initalizing: status.initalizing, genesis_filtering: true })
return
}
if( status.importing === undefined ) {
// programmer error
console.error('unknown status', status)
return
}
if( ! filter_status.length )
// first account
filter_status.push( status )
}
update_state({ genesis_filter_status: filter_status })
else {
var last_account_name = filter_status[filter_status.length - 1].account_name
if( last_account_name === status.account_name )
// update same account
filter_status[filter_status.length - 1] = status
else
// new account
filter_status.push( status )
}
update_state({ genesis_filter_status: filter_status })
})
})
})
//, 100)
)
}

/**
Expand Down

0 comments on commit 8b22252

Please sign in to comment.