passbolt-styleguide 3.3.2 → 3.4.0-alpha1
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.
- package/build/css/help.min.css +2 -2
- package/build/css/public.min.css +2 -2
- package/build/css/themes/default/api_authentication.min.css +3 -3
- package/build/css/themes/default/api_cloud.min.css +3 -3
- package/build/css/themes/default/api_main.min.css +4 -4
- package/build/css/themes/default/api_reports.min.css +4 -4
- package/build/css/themes/default/api_webinstaller.min.css +3 -3
- package/build/css/themes/default/ext_app.min.css +4 -4
- package/build/css/themes/default/ext_authentication.min.css +3 -3
- package/build/css/themes/default/ext_external.min.css +2 -2
- package/build/css/themes/default/ext_in_form_cta.min.css +3 -3
- package/build/css/themes/default/ext_in_form_menu.min.css +3 -3
- package/build/css/themes/default/ext_quickaccess.min.css +3 -3
- package/build/css/themes/midgar/api_authentication.min.css +9 -0
- package/build/css/themes/midgar/api_main.min.css +4 -4
- package/build/css/themes/midgar/api_reports.min.css +4 -4
- package/build/css/themes/midgar/ext_app.min.css +4 -4
- package/build/css/themes/midgar/ext_authentication.min.css +3 -3
- package/build/css/themes/midgar/ext_in_form_cta.min.css +3 -3
- package/build/css/themes/midgar/ext_in_form_menu.min.css +3 -3
- package/build/css/themes/midgar/ext_quickaccess.min.css +3 -3
- package/build/js/dist/api-app.js +1 -1
- package/build/js/dist/api-recover.js +1 -1
- package/build/js/dist/api-setup.js +1 -1
- package/build/js/dist/api-triage.js +1 -1
- package/build/js/dist/api-vendors.js +1 -1
- package/build/js/dist/api-vendors.js.LICENSE.txt +40 -4
- package/package.json +7 -6
- package/src/img/third_party/ChromeWebStore_black.svg +1 -0
- package/src/img/third_party/ChromeWebStore_white.svg +1 -0
- package/src/img/third_party/edge-addon-black.svg +1 -0
- package/src/img/third_party/edge-addon-white.svg +1 -0
- package/src/locales/de-DE/common.json +11 -11
- package/src/locales/en-UK/common.json +11 -12
- package/src/locales/fr/common.json +750 -0
- package/src/locales/fr-FR/common.json +11 -11
- package/src/locales/sv-SE/common.json +11 -11
- package/src/react-extension/ExtApp.js +9 -6
- package/src/react-extension/components/Administration/DisplayEmailNotificationsAdministration/DisplayEmailNotificationsAdministration.js +1 -1
- package/src/react-extension/components/Administration/DisplayMfaAdministration/DisplayMfaAdministration.test.stories.js +0 -1
- package/src/react-extension/components/Administration/DisplaySimulateSynchronizeUserDirectoryAdministration/DisplaySimulateSynchronizeUserDirectoryAdministration.js +1 -1
- package/src/react-extension/components/Administration/DisplaySimulateSynchronizeUserDirectoryAdministration/DisplaySimulateSynchronizeUserDirectoryAdministration.test.js +1 -1
- package/src/react-extension/components/Administration/DisplaySimulateSynchronizeUserDirectoryAdministration/DisplaySimulateSynchronizeUserDirectoryAdministration.test.stories.js +5 -8
- package/src/react-extension/components/Administration/DisplaySubscriptionKey/DisplaySubscriptionKey.js +1 -1
- package/src/react-extension/components/Administration/DisplaySubscriptionKey/DisplaySubscriptionKey.test.data.js +4 -1
- package/src/react-extension/components/Administration/DisplaySubscriptionKey/DisplaySubscriptionKey.test.js +4 -4
- package/src/react-extension/components/Administration/DisplaySynchronizeUserDirectoryAdministration/DisplaySynchronizeUserDirectoryAdministration.js +1 -1
- package/src/react-extension/components/Administration/DisplaySynchronizeUserDirectoryAdministration/DisplaySynchronizeUserDirectoryAdministration.test.js +1 -1
- package/src/react-extension/components/Administration/DisplayTestUserDirectoryAdministration/DisplayTestUserDirectoryAdministration.test.js +2 -3
- package/src/react-extension/components/Administration/DisplayTestUserDirectoryAdministration/DisplayTestUserDirectoryAdministration.test.stories.js +5 -9
- package/src/react-extension/components/Administration/DisplayUserDirectoryAdministration/DisplayUserDirectoryAdministration.js +2 -2
- package/src/react-extension/components/Administration/DisplayUserDirectoryAdministration/DisplayUserDirectoryAdministration.test.stories.js +0 -3
- package/src/react-extension/components/Authentication/AskForAuthenticationHelp/AskForAuthenticationHelp.js +1 -1
- package/src/react-extension/components/Authentication/AskForAuthenticationHelp/AskForAuthenticationHelp.test.stories.js +12 -15
- package/src/react-extension/components/Authentication/CheckMailBox/CheckMailBox.js +2 -2
- package/src/react-extension/components/Authentication/CheckMailBox/CheckMailBox.test.js +1 -1
- package/src/react-extension/components/Authentication/CheckMailBox/CheckMailbox.test.stories.js +12 -14
- package/src/react-extension/components/Authentication/CheckPassphrase/CheckPassphrase.test.stories.js +12 -15
- package/src/react-extension/components/Authentication/ChooseSecurityToken/ChooseSecurityToken.test.stories.js +12 -15
- package/src/react-extension/components/Authentication/CreateGpgKey/CreateGpgKey.test.stories.js +12 -15
- package/src/react-extension/components/Authentication/DisplayBrowserNotSupported/DisplayBrowserNotSupported.test.stories.js +12 -15
- package/src/react-extension/components/Authentication/DisplayExpiredTokenError/DisplayExpiredTokenError.test.stories.js +12 -15
- package/src/react-extension/components/Authentication/DisplayRequireInvitationError/DisplayRequireInvitationError.test.stories.js +12 -15
- package/src/react-extension/components/Authentication/DisplayUnexpectedError/DisplayUnexpectedError.test.stories.js +12 -15
- package/src/react-extension/components/Authentication/DownloadRecoveryKit/DownloadRecoveryKit.js +1 -1
- package/src/react-extension/components/Authentication/DownloadRecoveryKit/DownloadRecoveryKit.test.stories.js +12 -15
- package/src/react-extension/components/Authentication/EnterNameForm/EnterNameForm.test.stories.js +12 -15
- package/src/react-extension/components/Authentication/EnterUsernameForm/EnterUsernameForm.test.stories.js +12 -15
- package/src/react-extension/components/Authentication/HandleSessionExpired/HandleSessionExpired.test.data.js +14 -0
- package/src/react-extension/components/Authentication/HandleSessionExpired/HandleSessionExpired.test.js +65 -0
- package/src/react-extension/components/Authentication/HandleSessionExpired/HandleSessionExpired.test.page.js +38 -0
- package/src/react-extension/components/Authentication/ImportGpgKey/ImportGpgKey.test.stories.js +12 -15
- package/src/react-extension/components/Authentication/InstallExtension/InstallExtension.js +15 -6
- package/src/react-extension/components/Authentication/InstallExtension/InstallExtension.test.js +27 -0
- package/src/react-extension/components/Authentication/InstallExtension/InstallExtension.test.stories.js +12 -15
- package/src/react-extension/components/Authentication/IntroduceSetupExtension/IntroduceSetupExtension.test.stories.js +12 -15
- package/src/react-extension/components/Authentication/NotifyExpiredSession/NotifyExpiredSession.test.stories.js +8 -11
- package/src/react-extension/components/AuthenticationLogin/AcceptLoginServerKeyChange/AcceptLoginServerKeyChange.test.stories.js +12 -15
- package/src/react-extension/components/AuthenticationLogin/DisplayLoginError/DisplayLoginError.test.stories.js +12 -15
- package/src/react-extension/components/AuthenticationLogin/DisplayLoginInProgress/DisplayLoginProgress.test.stories.js +12 -15
- package/src/react-extension/components/AuthenticationLogin/Login/Login.test.stories.js +12 -15
- package/src/react-extension/components/AuthenticationPassphrase/InputPassphrase/InputPassphrase.test.stories.js +5 -11
- package/src/react-extension/components/AuthenticationRecover/RecoverAuthentication/RecoverAuthentication.js +1 -1
- package/src/react-extension/components/Common/Error/ShowErrorDetails/ShowErrorDetails.js +1 -1
- package/src/react-extension/components/Common/Icons/Icon.test.stories.js +3 -1
- package/src/react-extension/components/Common/Loading/LoadingSpinner/LoadingSpinner.js +2 -1
- package/src/react-extension/components/Common/Progress/DisplayProgress/DisplayProgress.js +1 -1
- package/src/react-extension/components/Common/Progress/DisplayProgress/DisplayProgress.test.js +1 -1
- package/src/react-extension/components/Common/Progress/DisplayProgress/DisplayProgress.test.stories.js +34 -0
- package/src/react-extension/components/Resource/CreateResource/CreateResource.test.stories.js +14 -4
- package/src/react-extension/components/Resource/DisplayResourcesList/DisplayDragResource.js +68 -0
- package/src/react-extension/components/Resource/DisplayResourcesList/DisplayResourcesList.js +9 -42
- package/src/react-extension/components/Resource/DisplayResourcesList/DisplayResourcesList.test.page.js +4 -1
- package/src/react-extension/components/Resource/ExportResources/ExportResources.test.stories.js +5 -11
- package/src/react-extension/components/Resource/ExportResources/ExportResourcesCredentials.js +6 -10
- package/src/react-extension/components/Resource/ExportResources/ExportResourcesCredentials.test.stories.js +5 -11
- package/src/react-extension/components/Resource/FilterResourcesByBreadcrumb/FilterResourcesByBreadcrumb.test.stories.js +0 -1
- package/src/react-extension/components/Resource/FilterResourcesByFolders/DisplayDragFolderItem.js +109 -0
- package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFolders.js +40 -192
- package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFolders.test.data.js +10 -5
- package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFolders.test.js +9 -12
- package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFolders.test.page.js +5 -1
- package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFolders.test.stories.js +0 -1
- package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFoldersItem.js +83 -58
- package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFoldersItem.test.data.js +52 -59
- package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFoldersItem.test.js +25 -20
- package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFoldersItem.test.page.js +11 -5
- package/src/react-extension/components/Resource/FilterResourcesByShortcuts/FilterResourcesByShortcuts.test.stories.js +0 -1
- package/src/react-extension/components/Resource/FilterResourcesByTags/FilterResourcesByTags.test.data.js +47 -0
- package/src/react-extension/components/Resource/FilterResourcesByTags/FilterResourcesByTags.test.js +34 -3
- package/src/react-extension/components/Resource/FilterResourcesByTags/FilterResourcesByTags.test.page.js +46 -9
- package/src/react-extension/components/Resource/FilterResourcesByTags/FilterResourcesByTags.test.stories.js +0 -1
- package/src/react-extension/components/Resource/FilterResourcesByTags/FilterResourcesByTagsList.js +124 -4
- package/src/react-extension/components/Resource/FilterResourcesByText/FilterResourcesByText.test.stories.js +0 -2
- package/src/react-extension/components/Resource/ImportResources/ImportResourcesKeyUnlock.js +6 -10
- package/src/react-extension/components/Resource/ImportResources/ImportResourcesKeyUnlock.test.stories.js +5 -11
- package/src/react-extension/components/Resource/ImportResources/ImportResourcesResult.js +3 -3
- package/src/react-extension/components/Resource/ImportResources/ImportResourcesResult.test.js +3 -3
- package/src/react-extension/components/Resource/ImportResources/ImportResourcesResult.test.stories.js +5 -11
- package/src/react-extension/components/ResourceComment/AddResourceComment/AddResourceComment.test.stories.js +8 -14
- package/src/react-extension/components/ResourceComment/ConfirmResourceCommentDeletion/ConfirmResourceCommentDeletion.test.stories.js +5 -11
- package/src/react-extension/components/ResourceComment/DisplayResourceCommentList/DisplayResourceCommentList.test.stories.js +8 -14
- package/src/react-extension/components/ResourceDescription/EditResourceDescription/EditResourceDescription.test.stories.js +8 -15
- package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsActivity.test.stories.js +0 -1
- package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsDescription.test.stories.js +0 -1
- package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsTag.test.js +1 -1
- package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsTag.test.stories.js +0 -1
- package/src/react-extension/components/ResourceFolder/CreateResourceFolder/CreateResourceFolder.test.stories.js +0 -3
- package/src/react-extension/components/ResourceFolder/DefineResourceFolderMoveStrategy/DefineResourceFolderMoveStrategy.test.stories.js +0 -6
- package/src/react-extension/components/ResourceFolder/DeleteResourceFolder/DeleteResourceFolder.test.stories.js +0 -5
- package/src/react-extension/components/ResourceFolder/RenameResourceFolder/RenameResourceFolder.test.stories.js +0 -7
- package/src/react-extension/components/ResourceFolderDetails/DisplayResourceFolderDetails/DisplayResourceFolderDetailsActivity.test.stories.js +0 -2
- package/src/react-extension/components/ResourceFolderDetails/DisplayResourceFolderDetails/DisplayResourceFolderDetailsInformation.test.stories.js +0 -2
- package/src/react-extension/components/ResourceFolderDetails/DisplayResourceFolderDetails/DisplayResourceFolderDetailsPermissions.test.stories.js +0 -2
- package/src/react-extension/components/ResourcePassword/GenerateResourcePassword/ConfigurePassphraseGenerator.test.stories.js +0 -1
- package/src/react-extension/components/ResourceTag/DeleteResourceTag/DeleteResourceTag.test.stories.js +0 -2
- package/src/react-extension/components/ResourceTag/EditResourceTag/EditResourceTag.test.stories.js +0 -4
- package/src/react-extension/components/ResourceTag/EditResourceTags/EditResourceTags.js +1 -1
- package/src/react-extension/components/Share/ShareDialog.test.stories.js +5 -9
- package/src/react-extension/components/User/ConfirmDisableUserMFA/ConfirmDisableUserMFA.test.stories.js +5 -9
- package/src/react-extension/components/User/CreateUser/CreateUser.test.stories.js +3 -1
- package/src/react-extension/components/User/DeleteUser/DeleteUser.test.stories.js +5 -8
- package/src/react-extension/components/User/DeleteUser/DeleteUserWithConflicts.test.stories.js +5 -8
- package/src/react-extension/components/User/EditUser/EditUser.test.stories.js +3 -1
- package/src/react-extension/components/User/FilterUsersByBreadcrumb/FilterUsersByBreadcrumb.test.stories.js +5 -8
- package/src/react-extension/components/User/FilterUsersByShortcut/FilterUsersByShortcut.test.stories.js +0 -1
- package/src/react-extension/components/User/FilterUsersByText/FilterUsersByText.test.stories.js +0 -2
- package/src/react-extension/components/UserDetails/DisplayUserDetailsGroups/DisplayUserDetailsGroups.test.stories.js +8 -11
- package/src/react-extension/components/UserDetails/DisplayUserDetailsInformation/DisplayUserDetailsInformation.test.stories.js +8 -11
- package/src/react-extension/components/UserDetails/DisplayUserDetailsPublicKey/DisplayUserDetailsPublicKey.test.stories.js +8 -12
- package/src/react-extension/components/UserGroup/CreateUserGroup/CreateUserGroup.test.stories.js +5 -8
- package/src/react-extension/components/UserGroup/DeleteUserGroup/DeleteUserGroup.test.stories.js +5 -8
- package/src/react-extension/components/UserGroup/DeleteUserGroup/DeleteUserGroupWithConflicts.test.stories.js +5 -8
- package/src/react-extension/components/UserGroup/DisplayUserGroupDetailsInformation/DisplayUserGroupDetailsInformation.test.stories.js +8 -11
- package/src/react-extension/components/UserGroup/DisplayUserGroupDetailsMembers/DisplayUserGroupDetailsMembers.test.stories.js +8 -11
- package/src/react-extension/components/UserGroup/EditUserGroup/EditUserGroup.test.stories.js +5 -8
- package/src/react-extension/components/UserSetting/ChangeUserPassphrase/ConfirmPassphrase.js +55 -2
- package/src/react-extension/components/UserSetting/ChangeUserPassphrase/ConfirmPassphrase.test.data.js +6 -0
- package/src/react-extension/components/UserSetting/ChangeUserPassphrase/EnterNewPassphrase.js +54 -6
- package/src/react-extension/components/UserSetting/ChangeUserPassphrase/EnterNewPassphrase.test.data.js +6 -0
- package/src/react-extension/components/UserSetting/ChangeUserSecurityToken/ChangeUserSecurityToken.js +1 -1
- package/src/react-extension/components/UserSetting/ChangeUserSecurityToken/ChangeUserSecurityToken.test.stories.js +5 -8
- package/src/react-extension/components/UserSetting/DisplayUserGpgInformation/DisplayUserGpgInformation.js +21 -6
- package/src/react-extension/components/UserSetting/DisplayUserGpgInformation/DisplayUserGpgInformation.test.stories.js +5 -8
- package/src/react-extension/components/UserSetting/DisplayUserProfile/DisplayUserProfile.test.stories.js +5 -8
- package/src/react-extension/components/UserSetting/DisplayUserSettingsWorkspaceBreadcrumb/DisplayUserSettingsWorkspaceBreadcrumb.test.stories.js +5 -8
- package/src/react-extension/components/UserSetting/DisplayUserTheme/DisplayUserTheme.test.stories.js +5 -8
- package/src/react-extension/components/UserSetting/EditUserProfile/EditUserProfile.test.stories.js +5 -8
- package/src/react-extension/components/UserSetting/NavigateIntoUserSettingsWorkspace/NavigateIntoUserSettingsWorkspace.test.stories.js +7 -10
- package/src/react-extension/components/UserSetting/UploadUserProfileAvatar/UploadUserProfileAvatar.js +2 -2
- package/src/react-extension/components/UserSetting/UploadUserProfileAvatar/UploadUserProfileAvatar.test.stories.js +5 -8
- package/src/react-extension/contexts/ApiAppContext.js +1 -1
- package/src/react-extension/contexts/ApiRecoverContext.js +1 -1
- package/src/react-extension/contexts/ApiSetupContext.js +1 -1
- package/src/react-extension/contexts/DragContext.js +122 -0
- package/src/react-extension/contexts/DragContext.test.js +53 -0
- package/src/react-extension/test/mock/components/Internationalisation/MockTranslationProvider.js +42 -7
- package/src/react-quickaccess/components/AnimatedSwitch/AnimatedSwitch.js +3 -3
- package/src/react-quickaccess/components/ExtensionSetup/SetupExtensionInProgress/SetupExtensionInProgressPage.test.stories.js +3 -4
- package/src/react-quickaccess/components/FilterResourcesByFavoritePage/FilterResourcesByFavoritePage.test.stories.js +6 -6
- package/src/react-quickaccess/components/FilterResourcesByGroupPage/FilterResourcesByGroupPage.test.stories.js +7 -3
- package/src/react-quickaccess/components/FilterResourcesByItemsIOwnPage/FilterResourcesByItemsIOwnPage.test.stories.js +6 -6
- package/src/react-quickaccess/components/FilterResourcesByRecentlyModifiedPage/FilterResourcesByRecentlyModifiedPage.test.stories.js +6 -6
- package/src/react-quickaccess/components/FilterResourcesBySharedWithMePage/FilterResourcesBySharedWithMePage.test.stories.js +6 -6
- package/src/react-quickaccess/components/FilterResourcesByTagPage/FilterResourcesByTagPage.test.stories.js +7 -3
- package/src/react-quickaccess/components/Header/Header.test.stories.js +3 -6
- package/src/react-quickaccess/components/HomePage/HomePage.test.stories.js +13 -9
- package/src/react-quickaccess/components/LoginPage/LoginPage.js +41 -5
- package/src/react-quickaccess/components/LoginPage/LoginPage.test.stories.js +3 -5
- package/src/react-quickaccess/components/MoreFiltersPage/MoreFiltersPage.test.stories.js +3 -5
- package/src/react-quickaccess/components/PassphraseDialog/PassphraseDialog.test.stories.js +5 -5
- package/src/react-quickaccess/components/ResourceAutoSave/SaveResource.test.stories.js +5 -5
- package/src/react-quickaccess/components/ResourceCreatePage/ResourceCreatePage.test.stories.js +5 -5
- package/src/react-quickaccess/components/ResourceViewPage/ResourceViewPage.test.stories.js +4 -2
- package/src/react-quickaccess/components/Search/Search.test.stories.js +3 -5
- package/src/react-web-integration/components/AskInFormMenuDisplay/AskInFormMenuDisplay.test.stories.js +6 -2
- package/src/react-web-integration/components/DisplayInFormMenu/DisplayInFormMenu.test.stories.js +9 -2
- package/src/react-web-integration/lib/InForm/InFormCallToActionField.js +3 -3
- package/src/react-web-integration/lib/InForm/InFormManager.js +12 -6
- package/src/react-web-integration/lib/InForm/InformMenuField.js +1 -1
- package/src/shared/lib/Browser/detectBrowserName.js +2 -1
- package/src/img/third_party/ChromeWebStore_black.png +0 -0
- package/src/img/third_party/ChromeWebStore_white.png +0 -0
package/src/react-extension/components/UserGroup/DeleteUserGroup/DeleteUserGroup.test.stories.js
CHANGED
|
@@ -2,7 +2,6 @@ import {MemoryRouter, Route} from "react-router-dom";
|
|
|
2
2
|
import React from "react";
|
|
3
3
|
import AppContext from "../../../contexts/AppContext";
|
|
4
4
|
import PropTypes from "prop-types";
|
|
5
|
-
import MockTranslationProvider from "../../../test/mock/components/Internationalisation/MockTranslationProvider";
|
|
6
5
|
import DeleteUserGroup from "./DeleteUserGroup";
|
|
7
6
|
|
|
8
7
|
|
|
@@ -21,13 +20,11 @@ const context = {
|
|
|
21
20
|
|
|
22
21
|
|
|
23
22
|
const Template = args =>
|
|
24
|
-
<
|
|
25
|
-
<
|
|
26
|
-
<
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
</AppContext.Provider>
|
|
30
|
-
</MockTranslationProvider>;
|
|
23
|
+
<AppContext.Provider value={context}>
|
|
24
|
+
<MemoryRouter initialEntries={['/']}>
|
|
25
|
+
<Route component={routerProps => <DeleteUserGroup {...args} {...routerProps}/>}></Route>
|
|
26
|
+
</MemoryRouter>
|
|
27
|
+
</AppContext.Provider>;
|
|
31
28
|
|
|
32
29
|
Template.propTypes = {
|
|
33
30
|
context: PropTypes.object,
|
|
@@ -2,7 +2,6 @@ import {MemoryRouter, Route} from "react-router-dom";
|
|
|
2
2
|
import React from "react";
|
|
3
3
|
import AppContext from "../../../contexts/AppContext";
|
|
4
4
|
import PropTypes from "prop-types";
|
|
5
|
-
import MockTranslationProvider from "../../../test/mock/components/Internationalisation/MockTranslationProvider";
|
|
6
5
|
import DeleteUserGroupWithConflicts from "./DeleteUserGroupWithConflicts";
|
|
7
6
|
import {mockGroups, mockResources, mockUsers} from "./DeleteUserGroupWithConflicts.test.data";
|
|
8
7
|
|
|
@@ -29,13 +28,11 @@ const context = {
|
|
|
29
28
|
|
|
30
29
|
|
|
31
30
|
const Template = args =>
|
|
32
|
-
<
|
|
33
|
-
<
|
|
34
|
-
<
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
</AppContext.Provider>
|
|
38
|
-
</MockTranslationProvider>;
|
|
31
|
+
<AppContext.Provider value={context}>
|
|
32
|
+
<MemoryRouter initialEntries={['/']}>
|
|
33
|
+
<Route component={routerProps => <DeleteUserGroupWithConflicts {...args} {...routerProps}/>}></Route>
|
|
34
|
+
</MemoryRouter>
|
|
35
|
+
</AppContext.Provider>;
|
|
39
36
|
|
|
40
37
|
Template.propTypes = {
|
|
41
38
|
context: PropTypes.object,
|
|
@@ -2,7 +2,6 @@ import {MemoryRouter, Route} from "react-router-dom";
|
|
|
2
2
|
import React from "react";
|
|
3
3
|
import AppContext from "../../../contexts/AppContext";
|
|
4
4
|
import PropTypes from "prop-types";
|
|
5
|
-
import MockTranslationProvider from "../../../test/mock/components/Internationalisation/MockTranslationProvider";
|
|
6
5
|
import DisplayUserGroupDetailsInformation from "./DisplayUserGroupDetailsInformation";
|
|
7
6
|
import {defaultAppContext} from "./DisplayUserGroupDetailsInformation.test.data";
|
|
8
7
|
|
|
@@ -18,17 +17,15 @@ const context = {
|
|
|
18
17
|
|
|
19
18
|
|
|
20
19
|
const Template = args =>
|
|
21
|
-
<
|
|
22
|
-
<
|
|
23
|
-
<div className="
|
|
24
|
-
<
|
|
25
|
-
<
|
|
26
|
-
|
|
27
|
-
</MemoryRouter>
|
|
28
|
-
</div>
|
|
20
|
+
<AppContext.Provider value={context}>
|
|
21
|
+
<div className="panel aside">
|
|
22
|
+
<div className="detailed-information">
|
|
23
|
+
<MemoryRouter initialEntries={['/']}>
|
|
24
|
+
<Route component={routerProps => <DisplayUserGroupDetailsInformation {...args} {...routerProps}/>}></Route>
|
|
25
|
+
</MemoryRouter>
|
|
29
26
|
</div>
|
|
30
|
-
</
|
|
31
|
-
</
|
|
27
|
+
</div>
|
|
28
|
+
</AppContext.Provider>;
|
|
32
29
|
|
|
33
30
|
Template.propTypes = {
|
|
34
31
|
context: PropTypes.object,
|
|
@@ -2,7 +2,6 @@ import {MemoryRouter, Route} from "react-router-dom";
|
|
|
2
2
|
import React from "react";
|
|
3
3
|
import AppContext from "../../../contexts/AppContext";
|
|
4
4
|
import PropTypes from "prop-types";
|
|
5
|
-
import MockTranslationProvider from "../../../test/mock/components/Internationalisation/MockTranslationProvider";
|
|
6
5
|
import {defaultAppContext} from "./DisplayUserGroupDetailsMembers.test.data";
|
|
7
6
|
import DisplayUserGroupDetailsMembers from "./DisplayUserGroupDetailsMembers";
|
|
8
7
|
|
|
@@ -15,17 +14,15 @@ export default {
|
|
|
15
14
|
const context = defaultAppContext();
|
|
16
15
|
|
|
17
16
|
const Template = args =>
|
|
18
|
-
<
|
|
19
|
-
<
|
|
20
|
-
<div className="
|
|
21
|
-
<
|
|
22
|
-
<
|
|
23
|
-
|
|
24
|
-
</MemoryRouter>
|
|
25
|
-
</div>
|
|
17
|
+
<AppContext.Provider value={context}>
|
|
18
|
+
<div className="panel aside">
|
|
19
|
+
<div className="detailed-information">
|
|
20
|
+
<MemoryRouter initialEntries={['/']}>
|
|
21
|
+
<Route component={routerProps => <DisplayUserGroupDetailsMembers {...args} {...routerProps}/>}></Route>
|
|
22
|
+
</MemoryRouter>
|
|
26
23
|
</div>
|
|
27
|
-
</
|
|
28
|
-
</
|
|
24
|
+
</div>
|
|
25
|
+
</AppContext.Provider>;
|
|
29
26
|
|
|
30
27
|
Template.propTypes = {
|
|
31
28
|
context: PropTypes.object,
|
package/src/react-extension/components/UserGroup/EditUserGroup/EditUserGroup.test.stories.js
CHANGED
|
@@ -3,7 +3,6 @@ import React from "react";
|
|
|
3
3
|
import AppContext from "../../../contexts/AppContext";
|
|
4
4
|
import PropTypes from "prop-types";
|
|
5
5
|
import {defaultProps, mockGpgKey, mockUsers} from "./EditUserGroup.test.data";
|
|
6
|
-
import MockTranslationProvider from "../../../test/mock/components/Internationalisation/MockTranslationProvider";
|
|
7
6
|
import EditUserGroup from "./EditUserGroup";
|
|
8
7
|
|
|
9
8
|
|
|
@@ -40,13 +39,11 @@ const context = {
|
|
|
40
39
|
|
|
41
40
|
|
|
42
41
|
const Template = args =>
|
|
43
|
-
<
|
|
44
|
-
<
|
|
45
|
-
<
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
</AppContext.Provider>
|
|
49
|
-
</MockTranslationProvider>;
|
|
42
|
+
<AppContext.Provider value={context}>
|
|
43
|
+
<MemoryRouter initialEntries={['/']}>
|
|
44
|
+
<Route component={routerProps => <EditUserGroup {...args} {...routerProps}/>}></Route>
|
|
45
|
+
</MemoryRouter>
|
|
46
|
+
</AppContext.Provider>;
|
|
50
47
|
|
|
51
48
|
Template.propTypes = {
|
|
52
49
|
context: PropTypes.object,
|
package/src/react-extension/components/UserSetting/ChangeUserPassphrase/ConfirmPassphrase.js
CHANGED
|
@@ -21,6 +21,7 @@ import NotifyError from "../../Common/Error/NotifyError/NotifyError";
|
|
|
21
21
|
import {withDialog} from "../../../contexts/DialogContext";
|
|
22
22
|
import Icon from "../../Common/Icons/Icon";
|
|
23
23
|
import {Trans, withTranslation} from "react-i18next";
|
|
24
|
+
import {withAppContext} from "../../../contexts/AppContext";
|
|
24
25
|
|
|
25
26
|
/**
|
|
26
27
|
* This component displays the user confirm passphrase information
|
|
@@ -46,6 +47,7 @@ class ConfirmPassphrase extends React.Component {
|
|
|
46
47
|
passphrase: "", // The passphrase input
|
|
47
48
|
passphraseError: null, // The passphrase error input
|
|
48
49
|
isObfuscated: true, // True if the passphrase should not be visible
|
|
50
|
+
hasPassphraseFocus: false, // The password input has focus
|
|
49
51
|
};
|
|
50
52
|
}
|
|
51
53
|
|
|
@@ -55,6 +57,8 @@ class ConfirmPassphrase extends React.Component {
|
|
|
55
57
|
bindCallbacks() {
|
|
56
58
|
this.handleInputChange = this.handleInputChange.bind(this);
|
|
57
59
|
this.handleToggleObfuscate = this.handleToggleObfuscate.bind(this);
|
|
60
|
+
this.handleFocusPassphrase = this.handleFocusPassphrase.bind(this);
|
|
61
|
+
this.handleBlurPassphrase = this.handleBlurPassphrase.bind(this);
|
|
58
62
|
this.handleSubmit = this.handleSubmit.bind(this);
|
|
59
63
|
this.handleCancel = this.handleCancel.bind(this);
|
|
60
64
|
}
|
|
@@ -99,6 +103,48 @@ class ConfirmPassphrase extends React.Component {
|
|
|
99
103
|
this.setState({isObfuscated: !this.state.isObfuscated});
|
|
100
104
|
}
|
|
101
105
|
|
|
106
|
+
/**
|
|
107
|
+
* Returns the security token code of the suer
|
|
108
|
+
*/
|
|
109
|
+
get securityTokenCode() {
|
|
110
|
+
return this.props.context.userSettings.getSecurityTokenCode();
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* Returns the style of the security token (color and text color)
|
|
115
|
+
*/
|
|
116
|
+
get securityTokenStyle() {
|
|
117
|
+
const {userSettings} = this.props.context;
|
|
118
|
+
const inverseStyle = {background: userSettings.getSecurityTokenTextColor(), color: userSettings.getSecurityTokenBackgroundColor()};
|
|
119
|
+
const fullStyle = {background: userSettings.getSecurityTokenBackgroundColor(), color: userSettings.getSecurityTokenTextColor()};
|
|
120
|
+
return this.state.hasPassphraseFocus ? inverseStyle : fullStyle;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* Get the passphrase input style.
|
|
125
|
+
* @return {Object}
|
|
126
|
+
*/
|
|
127
|
+
get passphraseInputStyle() {
|
|
128
|
+
const {userSettings} = this.props.context;
|
|
129
|
+
const emptyStyle = {background: "", color: ""};
|
|
130
|
+
const fullStyle = {background: userSettings.getSecurityTokenBackgroundColor(), color: userSettings.getSecurityTokenTextColor()};
|
|
131
|
+
return this.state.hasPassphraseFocus ? fullStyle : emptyStyle;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
/**
|
|
135
|
+
* Whenever the user focus on the passphrase input
|
|
136
|
+
*/
|
|
137
|
+
handleFocusPassphrase() {
|
|
138
|
+
this.setState({hasPassphraseFocus: true});
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
/**
|
|
142
|
+
* Whenever the user blurs on the passphrase input
|
|
143
|
+
*/
|
|
144
|
+
handleBlurPassphrase() {
|
|
145
|
+
this.setState({hasPassphraseFocus: false});
|
|
146
|
+
}
|
|
147
|
+
|
|
102
148
|
/**
|
|
103
149
|
* Whenever the user submits the passphrase
|
|
104
150
|
* @param event A form submit event
|
|
@@ -179,7 +225,7 @@ class ConfirmPassphrase extends React.Component {
|
|
|
179
225
|
return (
|
|
180
226
|
<div className="grid grid-responsive-12 profile-passphrase">
|
|
181
227
|
<div className="row">
|
|
182
|
-
<div className="
|
|
228
|
+
<div className="col7">
|
|
183
229
|
<form className="enter-passphrase" onSubmit={this.handleSubmit}>
|
|
184
230
|
<h3><Trans>Please enter your passphrase to continue</Trans></h3>
|
|
185
231
|
<div className="form-content">
|
|
@@ -194,7 +240,10 @@ class ConfirmPassphrase extends React.Component {
|
|
|
194
240
|
className={`required ${this.state.passphraseError ? "error" : ""}`}
|
|
195
241
|
autoFocus={true}
|
|
196
242
|
value={this.state.passphrase}
|
|
243
|
+
style={this.passphraseInputStyle}
|
|
197
244
|
onChange={this.handleInputChange}
|
|
245
|
+
onFocus={this.handleFocusPassphrase}
|
|
246
|
+
onBlur={this.handleBlurPassphrase}
|
|
198
247
|
disabled={this.hasAllInputDisabled()}
|
|
199
248
|
autoComplete="off"
|
|
200
249
|
/>
|
|
@@ -205,6 +254,9 @@ class ConfirmPassphrase extends React.Component {
|
|
|
205
254
|
<Icon name="eye-open"/>
|
|
206
255
|
<span className="visually-hidden"><Trans>View</Trans></span>
|
|
207
256
|
</a>
|
|
257
|
+
<span className="security-token" style={this.securityTokenStyle}>
|
|
258
|
+
{this.securityTokenCode}
|
|
259
|
+
</span>
|
|
208
260
|
{this.state.passphraseError &&
|
|
209
261
|
<div className="error-message">{this.state.passphraseError}</div>
|
|
210
262
|
}
|
|
@@ -245,9 +297,10 @@ class ConfirmPassphrase extends React.Component {
|
|
|
245
297
|
}
|
|
246
298
|
|
|
247
299
|
ConfirmPassphrase.propTypes = {
|
|
300
|
+
context: PropTypes.any, // The application context
|
|
248
301
|
userSettingsContext: PropTypes.object, // The user settings context
|
|
249
302
|
dialogContext: PropTypes.any, // The dialog context
|
|
250
303
|
t: PropTypes.func, // The translation function
|
|
251
304
|
};
|
|
252
305
|
|
|
253
|
-
export default withDialog(withUserSettings(withTranslation('common')(ConfirmPassphrase)));
|
|
306
|
+
export default withAppContext(withDialog(withUserSettings(withTranslation('common')(ConfirmPassphrase))));
|
|
@@ -1,9 +1,15 @@
|
|
|
1
|
+
import UserSettings from "../../../../shared/lib/Settings/UserSettings";
|
|
2
|
+
import userSettingsFixture from "../../../test/fixture/Settings/userSettings";
|
|
3
|
+
|
|
1
4
|
/**
|
|
2
5
|
* Default props
|
|
3
6
|
* @returns {object}
|
|
4
7
|
*/
|
|
5
8
|
export function defaultProps() {
|
|
6
9
|
const props = {
|
|
10
|
+
context: {
|
|
11
|
+
userSettings: new UserSettings(userSettingsFixture)
|
|
12
|
+
},
|
|
7
13
|
userSettingsContext: {
|
|
8
14
|
onCheckProvidePassphraseRequested: jest.fn(),
|
|
9
15
|
onGoToIntroductionPassphraseRequested: jest.fn()
|
package/src/react-extension/components/UserSetting/ChangeUserPassphrase/EnterNewPassphrase.js
CHANGED
|
@@ -24,6 +24,7 @@ import debounce from "debounce-promise";
|
|
|
24
24
|
import SecurityComplexity from "../../../../shared/lib/Secret/SecretComplexity";
|
|
25
25
|
import SecretComplexity from "../../../../shared/lib/Secret/SecretComplexity";
|
|
26
26
|
import {Trans, withTranslation} from "react-i18next";
|
|
27
|
+
import {withAppContext} from "../../../contexts/AppContext";
|
|
27
28
|
|
|
28
29
|
/**
|
|
29
30
|
* This component displays the user choose passphrase information
|
|
@@ -102,6 +103,8 @@ class EnterNewPassphrase extends React.Component {
|
|
|
102
103
|
bindEventHandlers() {
|
|
103
104
|
this.handlePassphraseChange = this.handlePassphraseChange.bind(this);
|
|
104
105
|
this.handleToggleObfuscate = this.handleToggleObfuscate.bind(this);
|
|
106
|
+
this.handleFocusPassphrase = this.handleFocusPassphrase.bind(this);
|
|
107
|
+
this.handleBlurPassphrase = this.handleBlurPassphrase.bind(this);
|
|
105
108
|
this.handleCancel = this.handleCancel.bind(this);
|
|
106
109
|
this.handleSubmit = this.handleSubmit.bind(this);
|
|
107
110
|
}
|
|
@@ -180,6 +183,48 @@ class EnterNewPassphrase extends React.Component {
|
|
|
180
183
|
};
|
|
181
184
|
}
|
|
182
185
|
|
|
186
|
+
/**
|
|
187
|
+
* Returns the security token code of the suer
|
|
188
|
+
*/
|
|
189
|
+
get securityTokenCode() {
|
|
190
|
+
return this.props.context.userSettings.getSecurityTokenCode();
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
/**
|
|
194
|
+
* Returns the style of the security token (color and text color)
|
|
195
|
+
*/
|
|
196
|
+
get securityTokenStyle() {
|
|
197
|
+
const {userSettings} = this.props.context;
|
|
198
|
+
const inverseStyle = {background: userSettings.getSecurityTokenTextColor(), color: userSettings.getSecurityTokenBackgroundColor()};
|
|
199
|
+
const fullStyle = {background: userSettings.getSecurityTokenBackgroundColor(), color: userSettings.getSecurityTokenTextColor()};
|
|
200
|
+
return this.state.hasPassphraseFocus ? inverseStyle : fullStyle;
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
/**
|
|
204
|
+
* Get the passphrase input style.
|
|
205
|
+
* @return {Object}
|
|
206
|
+
*/
|
|
207
|
+
get passphraseInputStyle() {
|
|
208
|
+
const {userSettings} = this.props.context;
|
|
209
|
+
const emptyStyle = {background: "", color: ""};
|
|
210
|
+
const fullStyle = {background: userSettings.getSecurityTokenBackgroundColor(), color: userSettings.getSecurityTokenTextColor()};
|
|
211
|
+
return this.state.hasPassphraseFocus ? fullStyle : emptyStyle;
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
/**
|
|
215
|
+
* Whenever the user focus on the passphrase input
|
|
216
|
+
*/
|
|
217
|
+
handleFocusPassphrase() {
|
|
218
|
+
this.setState({hasPassphraseFocus: true});
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
/**
|
|
222
|
+
* Whenever the user blurs on the passphrase input
|
|
223
|
+
*/
|
|
224
|
+
handleBlurPassphrase() {
|
|
225
|
+
this.setState({hasPassphraseFocus: false});
|
|
226
|
+
}
|
|
227
|
+
|
|
183
228
|
/**
|
|
184
229
|
* Evaluate if the passphrase is in dictionary
|
|
185
230
|
* @param passphrase The passphrase to evaluate
|
|
@@ -244,7 +289,7 @@ class EnterNewPassphrase extends React.Component {
|
|
|
244
289
|
return (
|
|
245
290
|
<div className="grid grid-responsive-12 profile-passphrase">
|
|
246
291
|
<div className="row">
|
|
247
|
-
<div className="
|
|
292
|
+
<div className="col7">
|
|
248
293
|
<form className="enter-passphrase" onSubmit={this.handleSubmit}>
|
|
249
294
|
<h3><Trans>Please enter a new passphrase</Trans></h3>
|
|
250
295
|
<div className="form-content">
|
|
@@ -254,7 +299,10 @@ class EnterNewPassphrase extends React.Component {
|
|
|
254
299
|
type={this.state.isObfuscated ? "password" : "text"}
|
|
255
300
|
ref={this.passphraseInput}
|
|
256
301
|
value={this.state.passphrase}
|
|
302
|
+
style={this.passphraseInputStyle}
|
|
257
303
|
onChange={this.handlePassphraseChange}
|
|
304
|
+
onFocus={this.handleFocusPassphrase}
|
|
305
|
+
onBlur={this.handleBlurPassphrase}
|
|
258
306
|
disabled={!this.areActionsAllowed}
|
|
259
307
|
autoFocus={true}
|
|
260
308
|
autoComplete="off"/>
|
|
@@ -265,13 +313,15 @@ class EnterNewPassphrase extends React.Component {
|
|
|
265
313
|
<Icon name="eye-open"/>
|
|
266
314
|
<span className="visually-hidden">view</span>
|
|
267
315
|
</a>
|
|
316
|
+
<span className="security-token" style={this.securityTokenStyle}>
|
|
317
|
+
{this.securityTokenCode}
|
|
318
|
+
</span>
|
|
268
319
|
<div className="password-complexity">
|
|
269
320
|
<span className="progress">
|
|
270
321
|
<span className={`progress-bar ${this.state.passphraseStrength.id}`}/>
|
|
271
322
|
</span>
|
|
272
323
|
</div>
|
|
273
324
|
</div>
|
|
274
|
-
|
|
275
325
|
<div className="password-hints">
|
|
276
326
|
<ul>
|
|
277
327
|
<li className={this.state.hintClassNames.enoughLength}>
|
|
@@ -305,9 +355,6 @@ class EnterNewPassphrase extends React.Component {
|
|
|
305
355
|
<h3><Trans>Tips for choosing a good passphrase</Trans></h3>
|
|
306
356
|
<p><Trans>Make sure your passphrase is hard to guess but also that is long enough. For example you can use your favorite lyric from a song,
|
|
307
357
|
grab the first couple of characters from the words in your favorite line.</Trans></p>
|
|
308
|
-
<a className="button">
|
|
309
|
-
<span><Trans>Learn more</Trans></span>
|
|
310
|
-
</a>
|
|
311
358
|
</div>
|
|
312
359
|
</div>
|
|
313
360
|
</div>
|
|
@@ -317,9 +364,10 @@ class EnterNewPassphrase extends React.Component {
|
|
|
317
364
|
}
|
|
318
365
|
|
|
319
366
|
EnterNewPassphrase.propTypes = {
|
|
367
|
+
context: PropTypes.any, // The application context
|
|
320
368
|
userSettingsContext: PropTypes.object, // The user settings context
|
|
321
369
|
dialogContext: PropTypes.any, // The dialog context
|
|
322
370
|
t: PropTypes.func, // The translation function
|
|
323
371
|
};
|
|
324
372
|
|
|
325
|
-
export default withDialog(withUserSettings(withTranslation('common')(EnterNewPassphrase)));
|
|
373
|
+
export default withAppContext(withDialog(withUserSettings(withTranslation('common')(EnterNewPassphrase))));
|
|
@@ -2,8 +2,14 @@
|
|
|
2
2
|
* Default props
|
|
3
3
|
* @returns {object}
|
|
4
4
|
*/
|
|
5
|
+
import UserSettings from "../../../../shared/lib/Settings/UserSettings";
|
|
6
|
+
import userSettingsFixture from "../../../test/fixture/Settings/userSettings";
|
|
7
|
+
|
|
5
8
|
export function defaultProps() {
|
|
6
9
|
const props = {
|
|
10
|
+
context: {
|
|
11
|
+
userSettings: new UserSettings(userSettingsFixture)
|
|
12
|
+
},
|
|
7
13
|
userSettingsContext: {
|
|
8
14
|
onUpdatePassphraseRequested: jest.fn(),
|
|
9
15
|
onGoToIntroductionPassphraseRequested: jest.fn(),
|
|
@@ -379,7 +379,7 @@ class ChangeUserSecurityToken extends Component {
|
|
|
379
379
|
<p>
|
|
380
380
|
<Trans>This security token will be displayed when your passphrase is requested,
|
|
381
381
|
so you can verify quickly the form is coming from passbolt.</Trans>
|
|
382
|
-
<Trans>This will help protect you from phishing
|
|
382
|
+
<Trans>This will help protect you from phishing attacks</Trans>
|
|
383
383
|
</p>
|
|
384
384
|
</div>
|
|
385
385
|
</div>
|
|
@@ -2,7 +2,6 @@ import {MemoryRouter, Route} from "react-router-dom";
|
|
|
2
2
|
import React from "react";
|
|
3
3
|
import AppContext from "../../../contexts/AppContext";
|
|
4
4
|
import PropTypes from "prop-types";
|
|
5
|
-
import MockTranslationProvider from "../../../test/mock/components/Internationalisation/MockTranslationProvider";
|
|
6
5
|
import ChangeUserSecurityToken from "./ChangeUserSecurityToken";
|
|
7
6
|
|
|
8
7
|
|
|
@@ -20,13 +19,11 @@ const context = {
|
|
|
20
19
|
|
|
21
20
|
|
|
22
21
|
const Template = args =>
|
|
23
|
-
<
|
|
24
|
-
<
|
|
25
|
-
<
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
</AppContext.Provider>
|
|
29
|
-
</MockTranslationProvider>;
|
|
22
|
+
<AppContext.Provider value={context}>
|
|
23
|
+
<MemoryRouter initialEntries={['/']}>
|
|
24
|
+
<Route component={routerProps => <ChangeUserSecurityToken {...args} {...routerProps}/>}></Route>
|
|
25
|
+
</MemoryRouter>
|
|
26
|
+
</AppContext.Provider>;
|
|
30
27
|
|
|
31
28
|
Template.propTypes = {
|
|
32
29
|
context: PropTypes.object,
|
|
@@ -94,13 +94,14 @@ class DisplayUserGpgInformation extends React.Component {
|
|
|
94
94
|
// format the gpgkey info.
|
|
95
95
|
const keyId = gpgkeyInfo.keyId;
|
|
96
96
|
const type = this.gpgkeyType[gpgkeyInfo.algorithm];
|
|
97
|
+
const uIds = gpgkeyInfo.userIds;
|
|
97
98
|
const created = this.formatDate(gpgkeyInfo.created);
|
|
98
99
|
const expires = gpgkeyInfo.expires === "Never" ? "Never" : this.formatDate(gpgkeyInfo.expires);
|
|
99
100
|
const armoredKey = gpgkeyInfo.key;
|
|
100
101
|
const fingerprint = gpgkeyInfo.fingerprint;
|
|
101
102
|
const length = gpgkeyInfo.length;
|
|
102
103
|
|
|
103
|
-
return {keyId, type, created, expires, armoredKey, fingerprint, length};
|
|
104
|
+
return {keyId, type, uIds, created, expires, armoredKey, fingerprint, length};
|
|
104
105
|
}
|
|
105
106
|
|
|
106
107
|
/**
|
|
@@ -154,11 +155,25 @@ class DisplayUserGpgInformation extends React.Component {
|
|
|
154
155
|
}
|
|
155
156
|
|
|
156
157
|
/**
|
|
157
|
-
* Get
|
|
158
|
+
* Get fingerprint
|
|
159
|
+
* @returns {JSX.Element}
|
|
160
|
+
*/
|
|
161
|
+
get fingerprint() {
|
|
162
|
+
let fingerprint = this.gpgKeyInfo.fingerprint;
|
|
163
|
+
if (fingerprint) {
|
|
164
|
+
fingerprint = fingerprint.toUpperCase().replace(/.{4}(?=.)/g, '$& ');
|
|
165
|
+
fingerprint = <>{fingerprint.substr(0, 24)}<br/>{fingerprint.substr(25)}</>;
|
|
166
|
+
}
|
|
167
|
+
return fingerprint;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
/**
|
|
171
|
+
* Get the first uID of the GPG key
|
|
158
172
|
* @returns {string}
|
|
159
173
|
*/
|
|
160
|
-
get
|
|
161
|
-
|
|
174
|
+
get uId() {
|
|
175
|
+
const uId = this.gpgKeyInfo.uIds && this.gpgKeyInfo.uIds[0];
|
|
176
|
+
return uId ? `${uId.name} <${uId.email}>` : "";
|
|
162
177
|
}
|
|
163
178
|
|
|
164
179
|
/**
|
|
@@ -198,11 +213,11 @@ class DisplayUserGpgInformation extends React.Component {
|
|
|
198
213
|
</tr>
|
|
199
214
|
<tr>
|
|
200
215
|
<td><Trans>Uid</Trans></td>
|
|
201
|
-
<td className="uid">{this.
|
|
216
|
+
<td className="uid">{this.uId}</td>
|
|
202
217
|
</tr>
|
|
203
218
|
<tr>
|
|
204
219
|
<td><Trans>Fingerprint</Trans></td>
|
|
205
|
-
<td className="fingerprint">{this.
|
|
220
|
+
<td className="fingerprint">{this.fingerprint}</td>
|
|
206
221
|
</tr>
|
|
207
222
|
<tr>
|
|
208
223
|
<td><Trans>Created</Trans></td>
|
|
@@ -2,7 +2,6 @@ import {MemoryRouter, Route} from "react-router-dom";
|
|
|
2
2
|
import React from "react";
|
|
3
3
|
import AppContext from "../../../contexts/AppContext";
|
|
4
4
|
import PropTypes from "prop-types";
|
|
5
|
-
import MockTranslationProvider from "../../../test/mock/components/Internationalisation/MockTranslationProvider";
|
|
6
5
|
import DisplayUserGpgInformation from "./DisplayUserGpgInformation";
|
|
7
6
|
|
|
8
7
|
|
|
@@ -47,13 +46,11 @@ const context = {
|
|
|
47
46
|
|
|
48
47
|
|
|
49
48
|
const Template = args =>
|
|
50
|
-
<
|
|
51
|
-
<
|
|
52
|
-
<
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
</AppContext.Provider>
|
|
56
|
-
</MockTranslationProvider>;
|
|
49
|
+
<AppContext.Provider value={context}>
|
|
50
|
+
<MemoryRouter initialEntries={['/']}>
|
|
51
|
+
<Route component={routerProps => <DisplayUserGpgInformation {...args} {...routerProps}/>}></Route>
|
|
52
|
+
</MemoryRouter>
|
|
53
|
+
</AppContext.Provider>;
|
|
57
54
|
|
|
58
55
|
Template.propTypes = {
|
|
59
56
|
context: PropTypes.object,
|
|
@@ -2,7 +2,6 @@ import {MemoryRouter, Route} from "react-router-dom";
|
|
|
2
2
|
import React from "react";
|
|
3
3
|
import AppContext from "../../../contexts/AppContext";
|
|
4
4
|
import PropTypes from "prop-types";
|
|
5
|
-
import MockTranslationProvider from "../../../test/mock/components/Internationalisation/MockTranslationProvider";
|
|
6
5
|
import DisplayUserProfile from "./DisplayUserProfile";
|
|
7
6
|
|
|
8
7
|
|
|
@@ -50,13 +49,11 @@ const context = {
|
|
|
50
49
|
|
|
51
50
|
|
|
52
51
|
const Template = args =>
|
|
53
|
-
<
|
|
54
|
-
<
|
|
55
|
-
<
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
</AppContext.Provider>
|
|
59
|
-
</MockTranslationProvider>;
|
|
52
|
+
<AppContext.Provider value={context}>
|
|
53
|
+
<MemoryRouter initialEntries={['/']}>
|
|
54
|
+
<Route component={routerProps => <DisplayUserProfile {...args} {...routerProps}/>}></Route>
|
|
55
|
+
</MemoryRouter>
|
|
56
|
+
</AppContext.Provider>;
|
|
60
57
|
|
|
61
58
|
Template.propTypes = {
|
|
62
59
|
context: PropTypes.object,
|
|
@@ -2,7 +2,6 @@ import {MemoryRouter, Route} from "react-router-dom";
|
|
|
2
2
|
import React from "react";
|
|
3
3
|
import AppContext from "../../../contexts/AppContext";
|
|
4
4
|
import PropTypes from "prop-types";
|
|
5
|
-
import MockTranslationProvider from "../../../test/mock/components/Internationalisation/MockTranslationProvider";
|
|
6
5
|
import DisplayUserSettingsWorkspaceBreadcrumb from "./DisplayUserSettingsWorkspaceBreadcrumb";
|
|
7
6
|
|
|
8
7
|
|
|
@@ -44,13 +43,11 @@ const context = {
|
|
|
44
43
|
|
|
45
44
|
|
|
46
45
|
const Template = args =>
|
|
47
|
-
<
|
|
48
|
-
<
|
|
49
|
-
<
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
</AppContext.Provider>
|
|
53
|
-
</MockTranslationProvider>;
|
|
46
|
+
<AppContext.Provider value={context}>
|
|
47
|
+
<MemoryRouter initialEntries={['/profile']}>
|
|
48
|
+
<Route component={routerProps => <DisplayUserSettingsWorkspaceBreadcrumb {...args} {...routerProps}/>}></Route>
|
|
49
|
+
</MemoryRouter>
|
|
50
|
+
</AppContext.Provider>;
|
|
54
51
|
|
|
55
52
|
Template.propTypes = {
|
|
56
53
|
context: PropTypes.object,
|
package/src/react-extension/components/UserSetting/DisplayUserTheme/DisplayUserTheme.test.stories.js
CHANGED
|
@@ -2,7 +2,6 @@ import {MemoryRouter, Route} from "react-router-dom";
|
|
|
2
2
|
import React from "react";
|
|
3
3
|
import AppContext from "../../../contexts/AppContext";
|
|
4
4
|
import PropTypes from "prop-types";
|
|
5
|
-
import MockTranslationProvider from "../../../test/mock/components/Internationalisation/MockTranslationProvider";
|
|
6
5
|
import DisplayUserTheme from "./DisplayUserTheme";
|
|
7
6
|
|
|
8
7
|
|
|
@@ -31,13 +30,11 @@ const context = {
|
|
|
31
30
|
|
|
32
31
|
|
|
33
32
|
const Template = args =>
|
|
34
|
-
<
|
|
35
|
-
<
|
|
36
|
-
<
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
</AppContext.Provider>
|
|
40
|
-
</MockTranslationProvider>;
|
|
33
|
+
<AppContext.Provider value={context}>
|
|
34
|
+
<MemoryRouter initialEntries={['/']}>
|
|
35
|
+
<Route component={routerProps => <DisplayUserTheme {...args} {...routerProps}/>}></Route>
|
|
36
|
+
</MemoryRouter>
|
|
37
|
+
</AppContext.Provider>;
|
|
41
38
|
|
|
42
39
|
Template.propTypes = {
|
|
43
40
|
context: PropTypes.object,
|