summaryrefslogtreecommitdiffstats
path: root/frontend/src/Activate.js
blob: 17d980edaf5c57b48d05cfdbe9af3e4da04b58ac (plain)
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
import React, { useEffect, useState } from 'react';
import axios from './axios';
import { Link } from '@reach/router';

import userState from './UserState';

const Activate = ({ user, activationToken }) => {
  const [ data, setData ] = useState({});
  useEffect(() => {
    (async () => {
      try {
        const resp = await axios.post('/activate', { activationToken });
        const { username } = resp.data;
        user.authError = null;
        user.username = username;
        setData({
          message: 'Account succesfully activated. You are now logged in.',
        });
      } catch (err) {
        setData({
          error: err.response.data.error,
        });
      }
    })();
  }, []);

  return (
    <div>
      <h2 className="subtitle">Activating account</h2>
      <div>
        <div className="error" key="error">
          {data.error}
        </div>
        <div>{data.message}</div>
        {data.message && <Link to="/">To front page</Link>}
      </div>
    </div>
  );
};

export default props => <Activate user={userState} {...props} />;