]> git.immae.eu Git - perso/Immae/Projets/Cryptomonnaies/Cryptoportfolio/Front.git/blame - cmd/web/js/main.jsx
Account information panel.
[perso/Immae/Projets/Cryptomonnaies/Cryptoportfolio/Front.git] / cmd / web / js / main.jsx
CommitLineData
989fb5c7 1import SignupForm from './signup.js';
2import SigninForm from './signin.js';
85545aba 3import PasswordResetForm from './password_reset.js';
4import ChangePasswordForm from './change_password.js';
989fb5c7 5import OtpEnrollForm from './otp.js';
6import PoloniexController from './poloniex.js';
d1c0ccfc 7import UserAccount from './account.js';
989fb5c7 8import App from './app.js';
9import Api from './api.js';
10import cookies from './cookies.js';
11import React from 'react';
85545aba 12import qs from 'qs';
7a9e5112 13
7a9e5112 14App.page('/signup', false, function(context) {
15 if (App.isUserSignedIn()) {
16 App.go('/me');
17 return;
18 }
19
989fb5c7 20 App.mount(<div>
7a9e5112 21 <SignupForm onSuccess={App.onUserSignUp}/>
989fb5c7 22 </div>);
7a9e5112 23});
24
25App.page('/signin', false, function(context) {
26 if (App.isUserSignedIn()) {
27 App.go('/me');
28 return;
29 }
30
989fb5c7 31 App.mount(<div>
7a9e5112 32 <SigninForm onSuccess={App.onUserSignIn}/>
989fb5c7 33 </div>);
7a9e5112 34});
35
85545aba 36App.page('/reset-password', false, function(context) {
37 if (App.isUserSignedIn()) {
38 App.go('/me');
39 return;
40 }
41
42 App.mount(<div>
85545aba 43 <PasswordResetForm />
44 </div>);
45});
46
47App.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>
85545aba 61 <ChangePasswordForm token={token} onSuccess={App.go.bind(App, '/signin')}/>
62 </div>);
63});
64
2da5b12c 65App.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
7a9e5112 86App.page('/signout', true, function(context) {
87 cookies.removeItem('jwt');
88
89 App.go('/');
90});
91
92App.page('/me', true, function(context) {
989fb5c7 93 App.mount(<div>
2f91f20a 94 <PoloniexController/>
989fb5c7 95 </div>);
7a9e5112 96});
97
16e43cc7 98App.page('/account', true, function(context) {
99 App.mount(<div>
d1c0ccfc 100 <UserAccount/>
16e43cc7 101 </div>);
102});
103
adf936f6 104App.page('/not_confirmed', true, function(context) {
105 App.mount(<div>
adf936f6 106 <div className="row">
107 <div className="box offset-3 col-6 text-center">
2da5b12c 108 <p>An email has now been sent to your email address.</p>
a7873be2 109 <p>{'Please click the \'Confirm your account\' button to validate your email.'}</p>
adf936f6 110 </div>
111 </div>
112 </div>);
113});
114
7a9e5112 115App.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
989fb5c7 122 App.mount(<div>
7a9e5112 123 <OtpEnrollForm onSuccess={App.onUserValidateOtp} img={'data:image/png;base64,' + data.base64img} secret={data.secret}/>
989fb5c7 124 </div>);
7a9e5112 125
989fb5c7 126 });
7a9e5112 127});
128
129App.page('/otp/validate', true, function(context) {
989fb5c7 130 App.mount(<div>
7a9e5112 131 <OtpEnrollForm onSuccess={App.onUserValidateOtp} />
989fb5c7 132 </div>);
7a9e5112 133});
134
135App.page('/', false, function(context) {
136 App.go('/me');
137});
138
139$(document).ready(function() {
140 App.start();
141});