]> git.immae.eu Git - perso/Immae/Projets/Cryptomonnaies/Cryptoportfolio/Front.git/blame - cmd/web/js/main.jsx
Password reset.
[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';
7import App from './app.js';
8import Api from './api.js';
9import cookies from './cookies.js';
10import React from 'react';
85545aba 11import qs from 'qs';
7a9e5112 12
ee902062 13class Header extends React.Component {
14 render = () => {
15 if (this.props.displayLogout === true) {
16 return <div id="header" className="row">
17 <div className="offset-4 col-4">
18 <Logo />
19 </div>
20 <div className="offset-2 col-2 align-self-center h-100">
21 <a href="/signout"><u>Logout</u></a>
22 </div>
23 </div>;
24 }
25 return <div id="header" className="row">
26 <div className="offset-4 col-4">
27 <Logo />
28 </div>
29 </div>;
30
31 }
32}
33
989fb5c7 34class Logo extends React.Component {
35 render() {
a2ab2260 36 return <div id="logo" className="w-100 h-100 align-self-center">
ee902062 37 <h1><a href="/">CryptoPF</a></h1>
38 </div>;
7a9e5112 39 }
989fb5c7 40}
7a9e5112 41
42App.page('/signup', false, function(context) {
43 if (App.isUserSignedIn()) {
44 App.go('/me');
45 return;
46 }
47
989fb5c7 48 App.mount(<div>
ee902062 49 <Header />
7a9e5112 50 <SignupForm onSuccess={App.onUserSignUp}/>
989fb5c7 51 </div>);
7a9e5112 52});
53
54App.page('/signin', false, function(context) {
55 if (App.isUserSignedIn()) {
56 App.go('/me');
57 return;
58 }
59
989fb5c7 60 App.mount(<div>
ee902062 61 <Header />
7a9e5112 62 <SigninForm onSuccess={App.onUserSignIn}/>
989fb5c7 63 </div>);
7a9e5112 64});
65
85545aba 66App.page('/reset-password', false, function(context) {
67 if (App.isUserSignedIn()) {
68 App.go('/me');
69 return;
70 }
71
72 App.mount(<div>
73 <Header />
74 <PasswordResetForm />
75 </div>);
76});
77
78App.page('/change-password', false, function(context) {
79 if (App.isUserSignedIn()) {
80 App.go('/me');
81 return;
82 }
83
84 var token = qs.parse(context.querystring).token;
85
86 if (token === undefined) {
87 App.go('/');
88 return;
89 }
90
91 App.mount(<div>
92 <Header />
93 <ChangePasswordForm token={token} onSuccess={App.go.bind(App, '/signin')}/>
94 </div>);
95});
96
7a9e5112 97App.page('/signout', true, function(context) {
98 cookies.removeItem('jwt');
99
100 App.go('/');
101});
102
103App.page('/me', true, function(context) {
989fb5c7 104 App.mount(<div>
ee902062 105 <Header displayLogout={true} />
2f91f20a 106 <PoloniexController/>
989fb5c7 107 </div>);
7a9e5112 108});
109
adf936f6 110App.page('/not_confirmed', true, function(context) {
111 App.mount(<div>
ee902062 112 <Header displayLogout={true}/>
adf936f6 113 <div className="row">
114 <div className="box offset-3 col-6 text-center">
115 <p>Please be patient, you account is being confirmed...</p>
116 <p><a href="/me"><u>Refresh</u></a></p>
117 </div>
118 </div>
119 </div>);
120});
121
7a9e5112 122App.page('/otp/setup', true, function(context) {
123 Api.Call('OTP_ENROLL', {}, function(err, status, data) {
124 if (err) {
125 console.error(err, data);
126 return;
127 }
128
989fb5c7 129 App.mount(<div>
ee902062 130 <Header displayLogout={true}/>
7a9e5112 131 <OtpEnrollForm onSuccess={App.onUserValidateOtp} img={'data:image/png;base64,' + data.base64img} secret={data.secret}/>
989fb5c7 132 </div>);
7a9e5112 133
989fb5c7 134 });
7a9e5112 135});
136
137App.page('/otp/validate', true, function(context) {
989fb5c7 138 App.mount(<div>
ee902062 139 <Header displayLogout={true}/>
7a9e5112 140 <OtpEnrollForm onSuccess={App.onUserValidateOtp} />
989fb5c7 141 </div>);
7a9e5112 142});
143
144App.page('/', false, function(context) {
145 App.go('/me');
146});
147
148$(document).ready(function() {
149 App.start();
150});