Extend DataColumn and DataTable to handle sorting
[arvados.git] / src / components / api-token / api-token.tsx
index 91ef4e9f2c18d60475a1f5f2e34d085cfa54a3cf..7656bf873368308f93947d943342d8de3c1471d5 100644 (file)
@@ -1,30 +1,36 @@
+// Copyright (C) The Arvados Authors. All rights reserved.
+//
+// SPDX-License-Identifier: AGPL-3.0
+
 import { Redirect, RouteProps } from "react-router";
 import * as React from "react";
-import { connect } from "react-redux";
-import authActions from "../../store/auth-action";
+import { connect, DispatchProp } from "react-redux";
+import authActions from "../../store/auth/auth-action";
+import { authService, projectService } from "../../services/services";
 
 interface ApiTokenProps {
-    saveApiToken: (token: string) => void;
 }
 
-class ApiToken extends React.Component<ApiTokenProps & RouteProps, {}> {
+class ApiToken extends React.Component<ApiTokenProps & RouteProps & DispatchProp<any>, {}> {
     static getUrlParameter(search: string, name: string) {
         const safeName = name.replace(/[\[]/, '\\[').replace(/[\]]/, '\\]');
         const regex = new RegExp('[\\?&]' + safeName + '=([^&#]*)');
         const results = regex.exec(search);
         return results === null ? '' : decodeURIComponent(results[1].replace(/\+/g, ' '));
-    };
+    }
 
     componentDidMount() {
         const search = this.props.location ? this.props.location.search : "";
         const apiToken = ApiToken.getUrlParameter(search, 'api_token');
-        this.props.saveApiToken(apiToken);
+        this.props.dispatch(authActions.SAVE_API_TOKEN(apiToken));
+        this.props.dispatch<any>(authService.getUserDetails()).then(() => {
+            const rootUuid = authService.getRootUuid();
+            this.props.dispatch(projectService.getProjectList(rootUuid));
+        });
     }
     render() {
-        return <Redirect to="/"/>
+        return <Redirect to="/"/>;
     }
 }
 
-export default connect<ApiTokenProps>(null, {
-    saveApiToken: authActions.saveApiToken
-})(ApiToken);
+export default connect()(ApiToken);