]> git.immae.eu Git - perso/Immae/Projets/Cryptomonnaies/Cryptoportfolio/Front.git/blob - cmd/web/js/main.jsx
Account information panel.
[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 PasswordResetForm from './password_reset.js';
4 import ChangePasswordForm from './change_password.js';
5 import OtpEnrollForm from './otp.js';
6 import PoloniexController from './poloniex.js';
7 import UserAccount from './account.js';
8 import App from './app.js';
9 import Api from './api.js';
10 import cookies from './cookies.js';
11 import React from 'react';
12 import qs from 'qs';
13
14 App.page('/signup', false, function(context) {
15 if (App.isUserSignedIn()) {
16 App.go('/me');
17 return;
18 }
19
20 App.mount(<div>
21 <SignupForm onSuccess={App.onUserSignUp}/>
22 </div>);
23 });
24
25 App.page('/signin', false, function(context) {
26 if (App.isUserSignedIn()) {
27 App.go('/me');
28 return;
29 }
30
31 App.mount(<div>
32 <SigninForm onSuccess={App.onUserSignIn}/>
33 </div>);
34 });
35
36 App.page('/reset-password', false, function(context) {
37 if (App.isUserSignedIn()) {
38 App.go('/me');
39 return;
40 }
41
42 App.mount(<div>
43 <PasswordResetForm />
44 </div>);
45 });
46
47 App.page('/change-password', false, function(context) {
48 if (App.isUserSignedIn()) {
49 App.go('/me');
50 return;
51 }
52
53 var token = qs.parse(context.querystring).token;
54
55 if (token === undefined) {
56 App.go('/');
57 return;
58 }
59
60 App.mount(<div>
61 <ChangePasswordForm token={token} onSuccess={App.go.bind(App, '/signin')}/>
62 </div>);
63 });
64
65 App.page('/confirm', false, function(context) {
66 var token = qs.parse(context.querystring).token;
67
68 if (token === undefined) {
69 App.go('/');
70 return;
71 }
72
73 Api.Call(
74 'CONFIRM_EMAIL',
75 {'token': token},
76 function(err, status, data) {
77 if (err) {
78 console.error(err, data);
79 }
80
81 App.go('/me');
82 }
83 );
84 });
85
86 App.page('/signout', true, function(context) {
87 cookies.removeItem('jwt');
88
89 App.go('/');
90 });
91
92 App.page('/me', true, function(context) {
93 App.mount(<div>
94 <PoloniexController/>
95 </div>);
96 });
97
98 App.page('/account', true, function(context) {
99 App.mount(<div>
100 <UserAccount/>
101 </div>);
102 });
103
104 App.page('/not_confirmed', true, function(context) {
105 App.mount(<div>
106 <div className="row">
107 <div className="box offset-3 col-6 text-center">
108 <p>An email has now been sent to your email address.</p>
109 <p>{'Please click the \'Confirm your account\' button to validate your email.'}</p>
110 </div>
111 </div>
112 </div>);
113 });
114
115 App.page('/otp/setup', true, function(context) {
116 Api.Call('OTP_ENROLL', {}, function(err, status, data) {
117 if (err) {
118 console.error(err, data);
119 return;
120 }
121
122 App.mount(<div>
123 <OtpEnrollForm onSuccess={App.onUserValidateOtp} img={'data:image/png;base64,' + data.base64img} secret={data.secret}/>
124 </div>);
125
126 });
127 });
128
129 App.page('/otp/validate', true, function(context) {
130 App.mount(<div>
131 <OtpEnrollForm onSuccess={App.onUserValidateOtp} />
132 </div>);
133 });
134
135 App.page('/', false, function(context) {
136 App.go('/me');
137 });
138
139 $(document).ready(function() {
140 App.start();
141 });