forked from cryptobuks1/JsWallet
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.ls
More file actions
80 lines (80 loc) · 2.32 KB
/
Copy pathmain.ls
File metadata and controls
80 lines (80 loc) · 2.32 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
require! {
\mobx-react : { observer }
\mobx : { observable, toJS }
\react-dom : { render }
\react
\./patch-crypto.js
\./app.ls
\./data-scheme.ls
\./browser/window.ls
\./web3.ls
\./autodetect-lang.ls
\./get-device.ls
\./get-size.ls
\./background/background-task.ls : { start-service }
\./render-error.ls
\./scam-warning.ls
\./service-worker.ls
}
is-allowed-context = ->
return yes if window == window.parent
return yes if document.location.origin is \https://app.symblox.io
return yes if document.location.origin is \http://localhost:8080
return no
state =
timeout: null
store = observable data-scheme
start-service store
change-device = ->
store.current.device = get-device!
store.current.size = get-size!
lock-wallet = ->
return if window.nolock is yes or store.current.page isnt \wallets
store.current.page = \locked
new-idle = ->
set-timeout lock-wallet, 90000
reset-idle = ->
clear-timeout state.timeout
state.timeout = new-idle!
window.addEventListener "resize", change-device
for event in <[ mousemove click touchmove keydown ]>
window.addEventListener event, reset-idle
export web3t = web3 store
export store
safe-render = (func)->
state =
result: null
try
state.result = func!
catch err
state.result = render-error err
state.result
Main = observer ({store})->
safe-render ->
app { store, web3t }
#Disabled service worker as Chrome often hangs and I suspect worker
if no and 'serviceWorker' of navigator
console.log "in!"
window.addEventListener 'load', ->
((navigator.serviceWorker.register './service-worker.js').then ((registration) ->
console.log 'ServiceWorker registration successful with scope: ', registration.scope
return ), (err) ->
console.log 'ServiceWorker registration failed: ', err
return )
return
else
console.log 'service worker is not supported'
as-callback = (p, cb)->
p.then (res)->
cb null, res
p.catch (err)->
cb err
export bootstrap = (root, options)->
store.root = root
render do
Main.pug( store=store)
root
autodetect-lang store if options?auto-lang isnt no
web3t.set-preference options if typeof! options is \Object
window <<<< out$
scam-warning!