synapse-react-client 3.1.25 → 3.1.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/dist/components/styled/LeftRightPanel.d.ts +10 -0
  2. package/dist/components/styled/LeftRightPanel.js +45 -0
  3. package/dist/components/styled/LeftRightPanel.js.map +1 -0
  4. package/dist/containers/CardContainerLogic.js +4 -3
  5. package/dist/containers/CardContainerLogic.js.map +1 -1
  6. package/dist/containers/TextField.d.ts +8 -0
  7. package/dist/containers/TextField.js +22 -0
  8. package/dist/containers/TextField.js.map +1 -0
  9. package/dist/containers/access_requirement_list/AccessRequirementList.js +15 -12
  10. package/dist/containers/access_requirement_list/AccessRequirementList.js.map +1 -1
  11. package/dist/containers/access_requirement_list/managedACTAccess/CancelRequestDataAccess.d.ts +1 -1
  12. package/dist/containers/access_requirement_list/managedACTAccess/CancelRequestDataAccess.js +21 -16
  13. package/dist/containers/access_requirement_list/managedACTAccess/CancelRequestDataAccess.js.map +1 -1
  14. package/dist/containers/access_requirement_list/managedACTAccess/RequestDataAccess.js +1 -1
  15. package/dist/containers/access_requirement_list/managedACTAccess/RequestDataAccess.js.map +1 -1
  16. package/dist/containers/access_requirement_list/managedACTAccess/RequestDataAccessStep1.js +14 -9
  17. package/dist/containers/access_requirement_list/managedACTAccess/RequestDataAccessStep1.js.map +1 -1
  18. package/dist/containers/access_requirement_list/managedACTAccess/RequestDataAccessStep2.js +22 -18
  19. package/dist/containers/access_requirement_list/managedACTAccess/RequestDataAccessStep2.js.map +1 -1
  20. package/dist/containers/access_requirement_list/managedACTAccess/RequestDataAccessSuccess.js +11 -7
  21. package/dist/containers/access_requirement_list/managedACTAccess/RequestDataAccessSuccess.js.map +1 -1
  22. package/dist/containers/auth/AuthenticationMethodSelection.d.ts +17 -0
  23. package/dist/containers/auth/AuthenticationMethodSelection.js +49 -0
  24. package/dist/containers/auth/AuthenticationMethodSelection.js.map +1 -0
  25. package/dist/containers/auth/LoginFlowBackButton.d.ts +10 -0
  26. package/dist/containers/auth/LoginFlowBackButton.js +38 -0
  27. package/dist/containers/auth/LoginFlowBackButton.js.map +1 -0
  28. package/dist/containers/auth/LoginForm.d.ts +18 -0
  29. package/dist/containers/auth/LoginForm.js +32 -0
  30. package/dist/containers/auth/LoginForm.js.map +1 -0
  31. package/dist/containers/auth/LoginPage.d.ts +1 -2
  32. package/dist/containers/auth/LoginPage.js +82 -23
  33. package/dist/containers/auth/LoginPage.js.map +1 -1
  34. package/dist/containers/auth/RecoveryCodeForm.d.ts +8 -0
  35. package/dist/containers/auth/RecoveryCodeForm.js +30 -0
  36. package/dist/containers/auth/RecoveryCodeForm.js.map +1 -0
  37. package/dist/containers/auth/StandaloneLoginForm.d.ts +12 -0
  38. package/dist/containers/auth/StandaloneLoginForm.js +24 -0
  39. package/dist/containers/auth/StandaloneLoginForm.js.map +1 -0
  40. package/dist/containers/auth/TOTPForm.d.ts +2 -0
  41. package/dist/containers/auth/TOTPForm.js +4 -4
  42. package/dist/containers/auth/TOTPForm.js.map +1 -1
  43. package/dist/containers/auth/UsernamePasswordForm.d.ts +9 -0
  44. package/dist/containers/auth/UsernamePasswordForm.js +29 -0
  45. package/dist/containers/auth/UsernamePasswordForm.js.map +1 -0
  46. package/dist/containers/home_page/featured-data/QueryPerFacetPlotsCard.js +2 -1
  47. package/dist/containers/home_page/featured-data/QueryPerFacetPlotsCard.js.map +1 -1
  48. package/dist/containers/table/StandaloneQueryWrapper.js +2 -1
  49. package/dist/containers/table/StandaloneQueryWrapper.js.map +1 -1
  50. package/dist/index.d.ts +2 -2
  51. package/dist/index.js +2 -2
  52. package/dist/index.js.map +1 -1
  53. package/dist/style/base/_core.scss +0 -13
  54. package/dist/style/components/_access-requirement-list.scss +0 -7
  55. package/dist/umd/synapse-react-client.development.css +0 -17
  56. package/dist/umd/synapse-react-client.development.css.map +2 -2
  57. package/dist/umd/synapse-react-client.development.js +5926 -6223
  58. package/dist/umd/synapse-react-client.development.js.map +4 -4
  59. package/dist/umd/synapse-react-client.production.min.css +1 -1
  60. package/dist/umd/synapse-react-client.production.min.js +80 -80
  61. package/dist/umd.index.d.ts +2 -2
  62. package/dist/umd.index.js +2 -2
  63. package/dist/umd.index.js.map +1 -1
  64. package/dist/utils/hooks/useDetectSSOCode.js +3 -3
  65. package/dist/utils/hooks/useDetectSSOCode.js.map +1 -1
  66. package/dist/utils/hooks/useLogin.d.ts +5 -5
  67. package/dist/utils/hooks/useLogin.js +65 -76
  68. package/dist/utils/hooks/useLogin.js.map +1 -1
  69. package/dist/utils/synapseTypes/LoginResponse.d.ts +0 -1
  70. package/package.json +1 -1
  71. package/dist/assets/ButtonWithIcon.d.ts +0 -12
  72. package/dist/assets/ButtonWithIcon.js +0 -17
  73. package/dist/assets/ButtonWithIcon.js.map +0 -1
  74. package/dist/containers/auth/Login.d.ts +0 -27
  75. package/dist/containers/auth/Login.js +0 -96
  76. package/dist/containers/auth/Login.js.map +0 -1
@@ -8,7 +8,7 @@ import FavoritesPage from './containers/favorites/FavoritesPage';
8
8
  import FullWidthAlert from './containers/FullWidthAlert';
9
9
  import { HasAccessV2 as HasAccess } from './containers/access_requirements/HasAccessV2';
10
10
  import IconSvg from './containers/IconSvg';
11
- import Login from './containers/auth/Login';
11
+ import StandaloneLoginForm from './containers/auth/StandaloneLoginForm';
12
12
  import LoginPage from './containers/auth/LoginPage';
13
13
  import StatisticsPlot from './containers/StatisticsPlot';
14
14
  import { DatasetItemsEditor } from './containers/table/datasets/DatasetItemsEditor';
@@ -31,7 +31,7 @@ declare const SynapseContext: {
31
31
  useSynapseContext: typeof useSynapseContext;
32
32
  };
33
33
  declare const SynapseComponents: {
34
- Login: typeof Login;
34
+ Login: typeof StandaloneLoginForm;
35
35
  LoginPage: typeof LoginPage;
36
36
  EntityForm: typeof EntityForm;
37
37
  UserCard: import("react").FunctionComponent<import("./containers/UserCard").UserCardProps>;
package/dist/umd.index.js CHANGED
@@ -27,7 +27,7 @@ var HasAccessV2_1 = require("./containers/access_requirements/HasAccessV2");
27
27
  var HelpPopover_1 = require("./containers/HelpPopover");
28
28
  var ProjectViewCarousel_1 = tslib_1.__importDefault(require("./containers/home_page/project_view_carousel/ProjectViewCarousel"));
29
29
  var IconSvg_1 = tslib_1.__importDefault(require("./containers/IconSvg"));
30
- var Login_1 = tslib_1.__importDefault(require("./containers/auth/Login"));
30
+ var StandaloneLoginForm_1 = tslib_1.__importDefault(require("./containers/auth/StandaloneLoginForm"));
31
31
  var LoginPage_1 = tslib_1.__importDefault(require("./containers/auth/LoginPage"));
32
32
  var PageProgress_1 = tslib_1.__importDefault(require("./containers/PageProgress"));
33
33
  var AccessTokenPage_1 = require("./containers/personal_access_token/AccessTokenPage");
@@ -71,7 +71,7 @@ var SynapseContext = {
71
71
  };
72
72
  exports.SynapseContext = SynapseContext;
73
73
  var SynapseComponents = {
74
- Login: Login_1.default,
74
+ Login: StandaloneLoginForm_1.default,
75
75
  LoginPage: LoginPage_1.default,
76
76
  EntityForm: EntityForm_1.default,
77
77
  UserCard: UserCard_1.default,
@@ -1 +1 @@
1
- {"version":3,"file":"umd.index.js","sourceRoot":"","sources":["../src/lib/umd.index.ts"],"names":[],"mappings":";;;;AAAA,uCAAoC;AACpC,oEAAkE;AAClE,oEAAkE;AAClE,uFAAwD;AACxD,+EAA6E;AAC7E,wFAAsF;AACtF,gIAAiG;AACjG,mFAAiF;AACjF,wGAAyE;AACzE,6GAA2G;AAC3G,wEAAsE;AACtE,kEAAgE;AAChE,+EAAgD;AAChD,sDAAwD;AACxD,wEAAsE;AACtE,mFAAoD;AACpD,gFAA8E;AAC9E,4FAA0F;AAC1F,+FAAgE;AAChE,iFAAkD;AAClD,uFAAwD;AACxD,4EAAuF;AACvF,wDAAsD;AACtD,iIAAkG;AAClG,yEAA0C;AAC1C,0EAA2C;AAC3C,kFAAmD;AACnD,mFAAoD;AACpD,sFAAoF;AACpF,qFAAsD;AACtD,4FAA0F;AAC1F,wHAAyF;AACzF,uFAAwD;AACxD,gEAA8D;AAC9D,kEAAgE;AAChE,qFAAmF;AACnF,6GAA8E;AAC9E,iHAAwF;AACxF,+FAAgE;AAChE,0DAA+E;AAC/E,gEAA8D;AAC9D,sEAAoE;AACpE,2EAA4C;AAC5C,8GAA+E;AAC/E,6FAA8D;AAC9D,oGAAqE;AACrE,6EAA8C;AAC9C,yGAA0E;AAC1E,6HAA8F;AAC9F,mHAAoF;AACpF,qHAAsF;AACtF,oFAAkF;AAClF,iCAAyD;AAiFvD,8FAjFO,qBAAa,OAiFP;AADb,iGAhFsB,wBAAgB,OAgFtB;AA/ElB,oFAAqD;AAmFnD,mBAnFK,kBAAQ,CAmFL;AAlFV,yDAI+B;AAC/B,iCAAwC;AA4EtC,+FA5EO,sBAAc,OA4EP;AA1EhB,kCAAkC;AAClC,6BAA0B;AAE1B,IAAM,cAAc,GAAG;IACrB,sBAAsB,yCAAA;IACtB,sBAAsB,yCAAA;IACtB,iBAAiB,oCAAA;CAClB,CAAA;AAkEC,wCAAc;AAhEhB,IAAM,iBAAiB,GAAG;IACxB,KAAK,iBAAA;IACL,SAAS,qBAAA;IACT,UAAU,sBAAA;IACV,QAAQ,oBAAA;IACR,cAAc,0BAAA;IACd,SAAS,2BAAA;IACT,cAAc,iCAAA;IACd,oBAAoB,6CAAA;IACpB,eAAe,mCAAA;IACf,iBAAiB,uCAAA;IACjB,kBAAkB,8BAAA;IAClB,YAAY,wBAAA;IACZ,mBAAmB,+BAAA;IACnB,eAAe,mCAAA;IACf,YAAY,6BAAA;IACZ,SAAS,qBAAA;IACT,gBAAgB,qCAAA;IAChB,gBAAgB,qCAAA;IAChB,cAAc,0BAAA;IACd,oBAAoB,6CAAA;IACpB,cAAc,EAAE,wBAAc;IAC9B,4BAA4B,6DAAA;IAC5B,gBAAgB,qCAAA;IAChB,aAAa,yBAAA;IACb,WAAW,2BAAA;IACX,qBAAqB,sCAAA;IACrB,YAAY,6BAAA;IACZ,OAAO,mBAAA;IACP,gBAAgB,4BAAA;IAChB,aAAa,yBAAA;IACb,kBAAkB,yCAAA;IAClB,cAAc,6BAAA;IACd,WAAW,2BAAA;IACX,yBAAyB,+BAAA;IACzB,0BAA0B,sCAAA;IAC1B,6BAA6B,+DAAA;IAC7B,cAAc,iCAAA;IACd,mBAAmB,+BAAA;IACnB,sBAAsB,kCAAA;IACtB,cAAc,0BAAA;IACd,WAAW,uBAAA;IACX,iBAAiB,uCAAA;IACjB,eAAe,2BAAA;IACf,YAAY,6BAAA;IACZ,eAAe,mCAAA;IACf,iBAAiB,6BAAA;IACjB,WAAW,uBAAA;IACX,SAAS,qBAAA;IACT,qBAAqB,iCAAA;IACrB,gBAAgB,4BAAA;IAChB,kBAAkB,8BAAA;IAClB,mBAAmB,2CAAA;CACpB,CAAA;AAQC,8CAAiB;AANnB,mCAAmC;AACnC,mJAAmJ;AACnJ,IAAM,yBAAyB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAA;AAGrE,8DAAyB"}
1
+ {"version":3,"file":"umd.index.js","sourceRoot":"","sources":["../src/lib/umd.index.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  var getEndpoint_1 = require("../functions/getEndpoint");
4
- var Login_1 = require("../../containers/auth/Login");
5
4
  var SynapseClient_1 = require("../SynapseClient");
6
5
  var react_1 = require("react");
6
+ var AuthenticationMethodSelection_1 = require("../../containers/auth/AuthenticationMethodSelection");
7
7
  /*
8
8
  * During SSO login, the authorization provider (Google) will send the user back to the portal with an authorization code,
9
9
  * which can be exchanged for a Synapse user session. This function should be called whenever the root App is initialized
@@ -36,7 +36,7 @@ function useDetectSSOCode(opts) {
36
36
  window.location.replace(originalUrl);
37
37
  }
38
38
  };
39
- if (Login_1.PROVIDERS.GOOGLE == provider) {
39
+ if (AuthenticationMethodSelection_1.PROVIDERS.GOOGLE == provider) {
40
40
  var onSuccess = function (response) {
41
41
  if ('accessToken' in response) {
42
42
  (0, SynapseClient_1.setAccessTokenCookie)(response.accessToken).then(redirectAfterSuccess_1);
@@ -69,7 +69,7 @@ function useDetectSSOCode(opts) {
69
69
  .catch(onFailure);
70
70
  }
71
71
  }
72
- else if (Login_1.PROVIDERS.ORCID == provider) {
72
+ else if (AuthenticationMethodSelection_1.PROVIDERS.ORCID == provider) {
73
73
  // now bind this to the user account
74
74
  var onFailure = function (err) {
75
75
  console.error('Error binding ORCiD to account: ', err);
@@ -1 +1 @@
1
- {"version":3,"file":"useDetectSSOCode.js","sourceRoot":"","sources":["../../../src/lib/utils/hooks/useDetectSSOCode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useDetectSSOCode.js","sourceRoot":"","sources":["../../../src/lib/utils/hooks/useDetectSSOCode.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,15 @@
1
1
  import { Dispatch, SetStateAction } from 'react';
2
2
  import { TwoFactorAuthOtpType } from '../synapseTypes/TwoFactorAuthLoginRequest';
3
3
  import { TwoFactorAuthErrorResponse } from '../synapseTypes/ErrorResponse';
4
- type UseLoginReturn = {
4
+ export type UseLoginReturn = {
5
5
  step: 'CHOOSE_AUTH_METHOD' | 'USERNAME_PASSWORD' | 'VERIFICATION_CODE' | 'RECOVERY_CODE' | 'LOGGED_IN';
6
- setStep: Dispatch<SetStateAction<UseLoginReturn['step']>>;
7
- submitUsernameAndPassword: (username: string, password: string) => Promise<void>;
8
- submitOneTimePassword: (code: string, otpType?: TwoFactorAuthOtpType) => Promise<void>;
6
+ onStepChange: Dispatch<SetStateAction<UseLoginReturn['step']>>;
7
+ submitUsernameAndPassword: (username: string, password: string) => void;
8
+ submitOneTimePassword: (code: string, otpType?: TwoFactorAuthOtpType) => void;
9
9
  errorMessage: string | undefined;
10
+ isLoading: boolean;
10
11
  };
11
12
  /**
12
13
  * Stateful hook that manages logging into Synapse
13
14
  */
14
15
  export default function useLogin(sessionCallback?: () => void, twoFaErrorResponse?: TwoFactorAuthErrorResponse): UseLoginReturn;
15
- export {};
@@ -4,6 +4,7 @@ var tslib_1 = require("tslib");
4
4
  var react_1 = require("react");
5
5
  var index_1 = require("../index");
6
6
  var SynapseConstants_1 = require("../SynapseConstants");
7
+ var react_query_1 = require("react-query");
7
8
  /**
8
9
  * Stateful hook that manages logging into Synapse
9
10
  */
@@ -70,96 +71,84 @@ function useLogin(sessionCallback, twoFaErrorResponse) {
70
71
  });
71
72
  });
72
73
  }
73
- var submitUsernameAndPassword = function (username, password) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
74
- var authenticationReceipt, data, err_1;
75
- return tslib_1.__generator(this, function (_a) {
76
- switch (_a.label) {
77
- case 0:
78
- setErrorMessage(undefined);
79
- _a.label = 1;
80
- case 1:
81
- _a.trys.push([1, 6, , 7]);
82
- authenticationReceipt = localStorage.getItem(SynapseConstants_1.AUTHENTICATION_RECEIPT_LOCALSTORAGE_KEY);
83
- return [4 /*yield*/, index_1.SynapseClient.login(username, password, authenticationReceipt)];
84
- case 2:
85
- data = _a.sent();
86
- if (!('errorCode' in data)) return [3 /*break*/, 3];
87
- setStep('VERIFICATION_CODE');
88
- setTwoFaToken(data.twoFaToken);
89
- setUserId(data.userId);
90
- return [3 /*break*/, 5];
91
- case 3: return [4 /*yield*/, finishLogin(data)];
92
- case 4:
93
- _a.sent();
94
- _a.label = 5;
95
- case 5: return [3 /*break*/, 7];
96
- case 6:
97
- err_1 = _a.sent();
98
- setErrorMessage(err_1.reason);
99
- return [3 /*break*/, 7];
100
- case 7: return [2 /*return*/];
101
- }
102
- });
103
- }); };
104
- var submitOneTimePassword = function (code, otpType) {
105
- if (otpType === void 0) { otpType = step === 'RECOVERY_CODE' ? 'RECOVERY_CODE' : 'TOTP'; }
106
- return tslib_1.__awaiter(_this, void 0, void 0, function () {
107
- var request, loginResponse, e_1;
74
+ var _e = (0, react_query_1.useMutation)(function (_a) {
75
+ var username = _a.username, password = _a.password, authenticationReceipt = _a.authenticationReceipt;
76
+ return index_1.SynapseClient.login(username, password, authenticationReceipt);
77
+ }, {
78
+ onError: function (error) {
79
+ setErrorMessage(error.reason);
80
+ },
81
+ onSuccess: function (loginResponse) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
108
82
  return tslib_1.__generator(this, function (_a) {
109
83
  switch (_a.label) {
110
84
  case 0:
111
- setErrorMessage(undefined);
112
- if (twoFaToken == null || userId == null) {
113
- // This could happen if the 2FA component exists on its own route, and the user directly navigates to it without first logging in with credentials/OAuth
114
- setErrorMessage('You did not first log in with your password or a third-party identity provider.');
115
- return [2 /*return*/];
116
- }
117
- request = {
118
- userId: userId,
119
- twoFaToken: twoFaToken,
120
- otpCode: code,
121
- otpType: otpType,
122
- };
123
- _a.label = 1;
124
- case 1:
125
- _a.trys.push([1, 4, , 5]);
126
- return [4 /*yield*/, index_1.SynapseClient.loginWith2fa(request)];
85
+ if (!('errorCode' in loginResponse)) return [3 /*break*/, 1];
86
+ setStep('VERIFICATION_CODE');
87
+ setTwoFaToken(loginResponse.twoFaToken);
88
+ setUserId(loginResponse.userId);
89
+ return [3 /*break*/, 3];
90
+ case 1: return [4 /*yield*/, finishLogin(loginResponse)];
127
91
  case 2:
128
- loginResponse = _a.sent();
129
- return [4 /*yield*/, finishLogin(loginResponse)];
130
- case 3:
131
92
  _a.sent();
132
- return [3 /*break*/, 5];
133
- case 4:
134
- e_1 = _a.sent();
135
- setErrorMessage(e_1.reason);
136
- if (
137
- // The twoFaToken wasn't transmitted correctly
138
- e_1.reason.includes('The provided twoFaToken is invalid') ||
139
- // The user waited too long to enter the code.
140
- e_1.reason.includes('Token has expired')) {
141
- console.warn(e_1);
142
- // Instruct the user refresh to start over.
143
- setErrorMessage('Something went wrong. Refresh the page and try again.');
144
- // If the 2FA token is in the search parameters, remove it so the user doesn't just get the same error again.
145
- if (window.location.href.includes('twoFaToken')) {
146
- window.history.replaceState({}, document.title,
147
- // using regex because SWC hashbang doesn't work with URLSearchParams
148
- window.location.href.replaceAll(/(twoFaToken|userId)=[^&]*&?/g, ''));
149
- }
150
- }
151
- return [3 /*break*/, 5];
152
- case 5: return [2 /*return*/];
93
+ _a.label = 3;
94
+ case 3: return [2 /*return*/];
153
95
  }
154
96
  });
97
+ }); },
98
+ }), mutateLoginWithUsernameAndPassword = _e.mutate, isLoadingLoginWithUsernameAndPassword = _e.isLoading;
99
+ var _f = (0, react_query_1.useMutation)(index_1.SynapseClient.loginWith2fa, {
100
+ onError: function (e) {
101
+ setErrorMessage(e.reason);
102
+ if (
103
+ // The twoFaToken wasn't transmitted correctly
104
+ e.reason.includes('The provided twoFaToken is invalid') ||
105
+ // The user waited too long to enter the code.
106
+ e.reason.includes('Token has expired')) {
107
+ console.warn(e);
108
+ // Instruct the user refresh to start over.
109
+ setErrorMessage('Something went wrong. Refresh the page and try again.');
110
+ // If the 2FA token is in the search parameters, remove it so the user doesn't just get the same error again.
111
+ if (window.location.href.includes('twoFaToken')) {
112
+ window.history.replaceState({}, document.title,
113
+ // using regex because SWC hashbang doesn't work with URLSearchParams
114
+ window.location.href.replaceAll(/(twoFaToken|userId)=[^&]*&?/g, ''));
115
+ }
116
+ }
117
+ },
118
+ onSuccess: finishLogin,
119
+ }), mutateLoginWith2FACode = _f.mutate, isLoadingLoginWith2FACode = _f.isLoading;
120
+ var submitUsernameAndPassword = function (username, password) {
121
+ setErrorMessage(undefined);
122
+ var authenticationReceipt = localStorage.getItem(SynapseConstants_1.AUTHENTICATION_RECEIPT_LOCALSTORAGE_KEY);
123
+ mutateLoginWithUsernameAndPassword({
124
+ username: username,
125
+ password: password,
126
+ authenticationReceipt: authenticationReceipt,
155
127
  });
156
128
  };
129
+ var submitOneTimePassword = function (code, otpType) {
130
+ if (otpType === void 0) { otpType = step === 'RECOVERY_CODE' ? 'RECOVERY_CODE' : 'TOTP'; }
131
+ setErrorMessage(undefined);
132
+ if (twoFaToken == null || userId == null) {
133
+ // This could happen if the 2FA component exists on its own route, and the user directly navigates to it without first logging in with credentials/OAuth
134
+ setErrorMessage('You did not first log in with your password or a third-party identity provider.');
135
+ return;
136
+ }
137
+ var request = {
138
+ userId: userId,
139
+ twoFaToken: twoFaToken,
140
+ otpCode: code,
141
+ otpType: otpType,
142
+ };
143
+ mutateLoginWith2FACode(request);
144
+ };
157
145
  return {
158
146
  step: step,
159
- setStep: setStep,
147
+ onStepChange: setStep,
160
148
  submitUsernameAndPassword: submitUsernameAndPassword,
161
149
  submitOneTimePassword: submitOneTimePassword,
162
150
  errorMessage: errorMessage,
151
+ isLoading: isLoadingLoginWithUsernameAndPassword || isLoadingLoginWith2FACode,
163
152
  };
164
153
  }
165
154
  exports.default = useLogin;
@@ -1 +1 @@
1
- {"version":3,"file":"useLogin.js","sourceRoot":"","sources":["../../../src/lib/utils/hooks/useLogin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useLogin.js","sourceRoot":"","sources":["../../../src/lib/utils/hooks/useLogin.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,5 @@
1
1
  export type LoginResponse = {
2
2
  accessToken: string;
3
- sessionToken: string;
4
3
  acceptsTermsOfUse: boolean;
5
4
  authenticationReceipt: string;
6
5
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "synapse-react-client",
3
- "version": "3.1.25",
3
+ "version": "3.1.26",
4
4
  "private": false,
5
5
  "main": "dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -1,12 +0,0 @@
1
- import * as React from 'react';
2
- import { ButtonProps } from 'react-bootstrap';
3
- type ButtonWithIconProps = {
4
- children: React.ReactNode;
5
- icon: React.ReactNode;
6
- };
7
- /**
8
- * A button with center-aligned content (typically text) that displays a left-aligned icon.
9
- * @param param0
10
- */
11
- declare const ButtonWithIcon: React.FunctionComponent<ButtonWithIconProps & ButtonProps>;
12
- export default ButtonWithIcon;
@@ -1,17 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- var tslib_1 = require("tslib");
4
- var React = tslib_1.__importStar(require("react"));
5
- var react_bootstrap_1 = require("react-bootstrap");
6
- /**
7
- * A button with center-aligned content (typically text) that displays a left-aligned icon.
8
- * @param param0
9
- */
10
- var ButtonWithIcon = function (_a) {
11
- var children = _a.children, icon = _a.icon, rest = tslib_1.__rest(_a, ["children", "icon"]);
12
- return (React.createElement(react_bootstrap_1.Button, tslib_1.__assign({ className: "ButtonWithIcon" }, rest), React.createElement(React.Fragment, null,
13
- React.createElement("div", { className: "ButtonWithIcon__Icon" }, icon),
14
- children)));
15
- };
16
- exports.default = ButtonWithIcon;
17
- //# sourceMappingURL=ButtonWithIcon.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ButtonWithIcon.js","sourceRoot":"","sources":["../../src/lib/assets/ButtonWithIcon.tsx"],"names":[],"mappings":";;;AAAA,mDAA8B;AAC9B,mDAAqD;AAOrD;;;GAGG;AACH,IAAM,cAAc,GAEhB,UAAC,EAA0D;IAAxD,IAAA,QAAQ,cAAA,EAAE,IAAI,UAAA,EAAK,IAAI,sBAAzB,oBAA2B,CAAF;IAC5B,OAAO,CACL,oBAAC,wBAAM,qBAAC,SAAS,EAAC,gBAAgB,IAAK,IAAI,GAEvC;QACE,6BAAK,SAAS,EAAC,sBAAsB,IAAE,IAAI,CAAO;QACjD,QAAQ,CACR,CAEE,CACV,CAAA;AACH,CAAC,CAAA;AAED,kBAAe,cAAc,CAAA"}
@@ -1,27 +0,0 @@
1
- import * as React from 'react';
2
- import { TwoFactorAuthErrorResponse } from '../../utils/synapseTypes/ErrorResponse';
3
- export declare const PROVIDERS: {
4
- GOOGLE: string;
5
- ORCID: string;
6
- };
7
- type Props = {
8
- ssoRedirectUrl?: string;
9
- sessionCallback: () => void;
10
- registerAccountUrl?: string;
11
- resetPasswordUrl?: string;
12
- onBeginOAuthSignIn?: () => void;
13
- handleIsOnUsernameOrPasswordScreen?: React.Dispatch<React.SetStateAction<boolean>>;
14
- showUsernameOrPassword?: boolean | undefined;
15
- renderBackButton?: boolean;
16
- twoFactorAuthenticationRequired?: TwoFactorAuthErrorResponse;
17
- };
18
- /**
19
- * Demo of user session, show login screen and handling user login submission.
20
- *
21
- * To support Google SSO in your portal, you must add your domain to the Authorized Redirect URIs
22
- * for Synapse authentication.
23
- * This can be done by visiting https://sagebionetworks.jira.com/servicedesk/customer/portal/9 to set up a collaboration.
24
- * Synapse engineers must add your redirect URL in the Google API console found at https://console.cloud.google.com/ for this functionality to work.
25
- */
26
- declare function Login(props: Props): JSX.Element;
27
- export default Login;
@@ -1,96 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PROVIDERS = void 0;
4
- var tslib_1 = require("tslib");
5
- var React = tslib_1.__importStar(require("react"));
6
- var react_bootstrap_1 = require("react-bootstrap");
7
- var ButtonWithIcon_1 = tslib_1.__importDefault(require("../../assets/ButtonWithIcon"));
8
- var utils_1 = require("../../utils");
9
- var getEndpoint_1 = require("../../utils/functions/getEndpoint");
10
- var GoogleIcon24_1 = require("../../assets/GoogleIcon24");
11
- var material_1 = require("@mui/material");
12
- var IconSvg_1 = tslib_1.__importDefault(require("../IconSvg"));
13
- var FullWidthAlert_1 = tslib_1.__importDefault(require("../FullWidthAlert"));
14
- var react_1 = require("react");
15
- var useLogin_1 = tslib_1.__importDefault(require("../../utils/hooks/useLogin"));
16
- var TOTPForm_1 = tslib_1.__importDefault(require("./TOTPForm"));
17
- exports.PROVIDERS = {
18
- GOOGLE: 'GOOGLE_OAUTH_2_0',
19
- ORCID: 'ORCID',
20
- };
21
- /**
22
- * Demo of user session, show login screen and handling user login submission.
23
- *
24
- * To support Google SSO in your portal, you must add your domain to the Authorized Redirect URIs
25
- * for Synapse authentication.
26
- * This can be done by visiting https://sagebionetworks.jira.com/servicedesk/customer/portal/9 to set up a collaboration.
27
- * Synapse engineers must add your redirect URL in the Google API console found at https://console.cloud.google.com/ for this functionality to work.
28
- */
29
- function Login(props) {
30
- var _a = (0, react_1.useState)(''), username = _a[0], setUsername = _a[1];
31
- var _b = (0, react_1.useState)(''), password = _b[0], setPassword = _b[1];
32
- var ssoRedirectUrl = props.ssoRedirectUrl, sessionCallback = props.sessionCallback, _c = props.registerAccountUrl, registerAccountUrl = _c === void 0 ? "".concat((0, getEndpoint_1.getEndpoint)(getEndpoint_1.BackendDestinationEnum.PORTAL_ENDPOINT), "#!RegisterAccount:0") : _c, _d = props.resetPasswordUrl, resetPasswordUrl = _d === void 0 ? "".concat((0, getEndpoint_1.getEndpoint)(getEndpoint_1.BackendDestinationEnum.PORTAL_ENDPOINT), "#!PasswordReset:0") : _d;
33
- var _e = (0, useLogin_1.default)(sessionCallback, props.twoFactorAuthenticationRequired), step = _e.step, setStep = _e.setStep, submitUsernameAndPassword = _e.submitUsernameAndPassword, submitOneTimePassword = _e.submitOneTimePassword, errorMessage = _e.errorMessage;
34
- var renderBackButton = props.renderBackButton &&
35
- (step === 'USERNAME_PASSWORD' || step === 'VERIFICATION_CODE');
36
- /**
37
- * Handle user login on click
38
- */
39
- function handleLogin(clickEvent) {
40
- return tslib_1.__awaiter(this, void 0, void 0, function () {
41
- return tslib_1.__generator(this, function (_a) {
42
- switch (_a.label) {
43
- case 0:
44
- clickEvent.preventDefault(); // avoid page refresh
45
- return [4 /*yield*/, submitUsernameAndPassword(username, password)];
46
- case 1:
47
- _a.sent();
48
- return [2 /*return*/];
49
- }
50
- });
51
- });
52
- }
53
- function onGoogleSignIn(event) {
54
- if (props.onBeginOAuthSignIn) {
55
- props.onBeginOAuthSignIn();
56
- }
57
- event.preventDefault();
58
- var redirectUrl = ssoRedirectUrl
59
- ? "".concat(ssoRedirectUrl).concat(exports.PROVIDERS.GOOGLE)
60
- : "".concat(utils_1.SynapseClient.getRootURL(), "?provider=").concat(exports.PROVIDERS.GOOGLE);
61
- utils_1.SynapseClient.oAuthUrlRequest(exports.PROVIDERS.GOOGLE, redirectUrl)
62
- .then(function (data) {
63
- // Send the user to the authorization URL
64
- window.location = data.authorizationUrl;
65
- })
66
- .catch(function (err) {
67
- console.log('Error on oAuth url ', err);
68
- });
69
- }
70
- return (React.createElement("div", { id: "loginPage", className: "container LoginComponent SRC-syn-border-spacing bootstrap-4-backport" },
71
- renderBackButton && (React.createElement(material_1.IconButton, { type: "button", onClick: function () { return setStep('CHOOSE_AUTH_METHOD'); } },
72
- React.createElement(IconSvg_1.default, { icon: "arrowBack" }))),
73
- React.createElement("div", { className: step === 'CHOOSE_AUTH_METHOD' ? '' : 'hide-component' },
74
- React.createElement("form", null,
75
- React.createElement(ButtonWithIcon_1.default, { variant: "white", onClick: onGoogleSignIn, className: "SRC-signin-button", icon: React.createElement(GoogleIcon24_1.GoogleIcon24, null) }, "Sign in with Google")),
76
- React.createElement(ButtonWithIcon_1.default, { variant: "white", className: "SRC-signin-button", icon: React.createElement(IconSvg_1.default, { icon: "email" }), onClick: function () { return setStep('USERNAME_PASSWORD'); } }, "Sign in with your email")),
77
- React.createElement(react_bootstrap_1.Form, { className: step === 'USERNAME_PASSWORD' ? '' : 'hide-component', onSubmit: function (e) {
78
- handleLogin(e);
79
- } },
80
- React.createElement("label", { htmlFor: 'username' }, "Username or Email Address"),
81
- React.createElement(react_bootstrap_1.Form.Control, { required: true, autoComplete: "username", placeholder: "Username or Email Address", className: "LoginComponent__Input", id: "username", name: "username", type: "text", value: username, onChange: function (e) { return setUsername(e.target.value); } }),
82
- React.createElement("label", { htmlFor: 'current-password' }, "Password"),
83
- React.createElement(react_bootstrap_1.Form.Control, { required: true, autoComplete: "current-password", placeholder: "Password", className: "LoginComponent__Input", id: "current-password", name: "password", type: "password", value: password, onChange: function (e) { return setPassword(e.target.value); } }),
84
- React.createElement(material_1.Link, { href: resetPasswordUrl }, "Forgot password?"),
85
- React.createElement(material_1.Button, { onClick: function (e) {
86
- handleLogin(e);
87
- }, type: "submit", color: "primary", variant: "contained", className: "SRC-login-button SRC-marginBottomTen" }, "Sign in")),
88
- step === 'VERIFICATION_CODE' && (React.createElement(TOTPForm_1.default, { onSubmit: function (totp) {
89
- submitOneTimePassword(totp);
90
- } })),
91
- (step === 'CHOOSE_AUTH_METHOD' || step === 'USERNAME_PASSWORD') && (React.createElement("div", { className: 'SRC-center-text' },
92
- React.createElement(material_1.Link, { href: registerAccountUrl }, "Don't have an account? Create one now"))),
93
- errorMessage && (React.createElement(FullWidthAlert_1.default, { variant: 'warning', isGlobal: false, description: errorMessage }))));
94
- }
95
- exports.default = Login;
96
- //# sourceMappingURL=Login.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Login.js","sourceRoot":"","sources":["../../../src/lib/containers/auth/Login.tsx"],"names":[],"mappings":"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"}