]> git.immae.eu Git - perso/Immae/Projets/Cryptomonnaies/Cryptoportfolio/Front.git/blob - cmd/web/js/main.jsx
Upgrade ReactJS. EC6 import modules.
[perso/Immae/Projets/Cryptomonnaies/Cryptoportfolio/Front.git] / cmd / web / js / main.jsx
1 import SignupForm from './signup.js';
2 import SigninForm from './signin.js';
3 import OtpEnrollForm from './otp.js';
4 import PoloniexController from './poloniex.js';
5 import App from './app.js';
6 import Api from './api.js';
7 import cookies from './cookies.js';
8 import React from 'react';
9
10 class Logo extends React.Component {
11 render() {
12 return <div className="row">
13 <div id="logo" className="offset-4 col-4">
14 <a href="/">Cryptoportfolio</a>
15 </div>
16 </div>;
17 }
18 }
19
20 App.page('/signup', false, function(context) {
21 if (App.isUserSignedIn()) {
22 App.go('/me');
23 return;
24 }
25
26 App.mount(<div>
27 <Logo />
28 <SignupForm onSuccess={App.onUserSignUp}/>
29 </div>);
30 });
31
32 App.page('/signin', false, function(context) {
33 if (App.isUserSignedIn()) {
34 App.go('/me');
35 return;
36 }
37
38 App.mount(<div>
39 <Logo />
40 <SigninForm onSuccess={App.onUserSignIn}/>
41 </div>);
42 });
43
44 App.page('/signout', true, function(context) {
45 cookies.removeItem('jwt');
46
47 App.go('/');
48 });
49
50 App.page('/me', true, function(context) {
51 App.mount(<div>
52 <Logo />
53 <PoloniexController/>
54 </div>);
55 });
56
57 App.page('/otp/setup', true, function(context) {
58 Api.Call('OTP_ENROLL', {}, function(err, status, data) {
59 if (err) {
60 console.error(err, data);
61 return;
62 }
63
64 App.mount(<div>
65 <Logo />
66 <OtpEnrollForm onSuccess={App.onUserValidateOtp} img={'data:image/png;base64,' + data.base64img} secret={data.secret}/>
67 </div>);
68
69 });
70 });
71
72 App.page('/otp/validate', true, function(context) {
73 App.mount(<div>
74 <Logo />
75 <OtpEnrollForm onSuccess={App.onUserValidateOtp} />
76 </div>);
77 });
78
79 App.page('/', false, function(context) {
80 App.go('/me');
81 });
82
83 $(document).ready(function() {
84 App.start();
85 });