//
// SPDX-License-Identifier: AGPL-3.0
-import * as React from 'react';
+import React from 'react';
import { useState, useEffect, useRef } from 'react';
import { withStyles, WithStyles, StyleRulesCallback } from '@material-ui/core/styles';
import CircularProgress from '@material-ui/core/CircularProgress';
import { green } from '@material-ui/core/colors';
import { AxiosPromise } from 'axios';
import { DispatchProp } from 'react-redux';
-import { saveApiToken } from '~/store/auth/auth-action';
-import { navigateToRootProject } from '~/store/navigation/navigation-action';
+import { saveApiToken } from 'store/auth/auth-action';
+import { navigateToRootProject } from 'store/navigation/navigation-action';
+import { replace } from 'react-router-redux';
type CssRules = 'root' | 'loginBtn' | 'card' | 'wrapper' | 'progress';
setSubmitting(false);
if (response.data.uuid && response.data.api_token) {
const apiToken = `v2/${response.data.uuid}/${response.data.api_token}`;
+ const rd = new URL(window.location.href);
+ const rdUrl = rd.pathname + rd.search;
dispatch<any>(saveApiToken(apiToken)).finally(
- () => dispatch(navigateToRootProject));
+ () => rdUrl === '/' ? dispatch(navigateToRootProject) : dispatch(replace(rdUrl))
+ );
} else {
setError(true);
setHelperText(response.data.message || 'Please try again');
.catch((err) => {
setError(true);
setSubmitting(false);
- setHelperText(`${err.response && err.response.data && err.response.data.errors[0] || 'Error logging in: '+err}`);
+ setHelperText(`${(err.response && err.response.data && err.response.data.errors[0]) || 'Error logging in: '+err}`);
setFocus();
});
};