From 5dc60f57828925ad1efc4a81d972d211fb56a3d2 Mon Sep 17 00:00:00 2001 From: Alex Jbanca Date: Thu, 30 Mar 2023 12:42:28 +0300 Subject: [PATCH] fix(JoinCommunityView): Change Reveal Address button icon based on auth type --- storybook/pages/JoinCommunityViewPage.qml | 17 +++++++++++++++++ ui/app/AppLayouts/Chat/ChatLayout.qml | 1 + .../communities/JoinPermissionsOverlayPanel.qml | 8 ++++++++ ui/app/AppLayouts/Chat/stores/RootStore.qml | 13 +++++++++++++ .../views/communities/JoinCommunityView.qml | 1 + ui/imports/utils/Constants.qml | 6 ++++++ 6 files changed, 46 insertions(+) diff --git a/storybook/pages/JoinCommunityViewPage.qml b/storybook/pages/JoinCommunityViewPage.qml index 56037dd362..549bf5d5fc 100644 --- a/storybook/pages/JoinCommunityViewPage.qml +++ b/storybook/pages/JoinCommunityViewPage.qml @@ -41,6 +41,7 @@ Nemo enim 😋 ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, property bool isInvitationPending: true property bool isJoinRequestRejected: false property bool requiresRequest: false + property int loginType: Constants.LoginType.Biometrics property var communityHoldingsModel: PermissionsModel.shortPermissionsModel property var viewOnlyHoldingsModel: PermissionsModel.shortPermissionsModel @@ -116,6 +117,7 @@ Nemo enim 😋 ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, joinCommunity: d.joinCommunity accessType: d.accessType isInvitationPending: d.isInvitationPending + loginType: d.loginType // Blur background properties: membersCount: d.membersCount @@ -280,6 +282,21 @@ Nemo enim 😋 ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, onViewAndPostHoldingsModelChanged: d.viewAndPostHoldingsModel = viewAndPostHoldingsModel onModerateHoldingsModelChanged: d.moderateHoldingsModel = moderateHoldingsModel } + + ColumnLayout { + Label { + Layout.fillWidth: true + text: "Login type" + } + + ComboBox { + id: loginTypeComboBox + Layout.fillWidth: true + model: ["Password","Biometrics","Keycard"] + onActivated: d.loginType = currentIndex + Component.onCompleted: currentIndex = d.loginType + } + } } } } diff --git a/ui/app/AppLayouts/Chat/ChatLayout.qml b/ui/app/AppLayouts/Chat/ChatLayout.qml index b3a61a0c01..7f1cdd4c11 100644 --- a/ui/app/AppLayouts/Chat/ChatLayout.qml +++ b/ui/app/AppLayouts/Chat/ChatLayout.qml @@ -72,6 +72,7 @@ StackLayout { notificationCount: activityCenterStore.unreadNotificationsCount hasUnseenNotifications: activityCenterStore.hasUnseenNotifications openCreateChat: rootStore.openCreateChat + loginType: root.rootStore.loginType onNotificationButtonClicked: Global.openActivityCenterPopup() onAdHocChatButtonClicked: rootStore.openCloseCreateChatView() onRevealAddressClicked: { diff --git a/ui/app/AppLayouts/Chat/panels/communities/JoinPermissionsOverlayPanel.qml b/ui/app/AppLayouts/Chat/panels/communities/JoinPermissionsOverlayPanel.qml index 86ab4021aa..c8a18d731d 100644 --- a/ui/app/AppLayouts/Chat/panels/communities/JoinPermissionsOverlayPanel.qml +++ b/ui/app/AppLayouts/Chat/panels/communities/JoinPermissionsOverlayPanel.qml @@ -11,6 +11,7 @@ import AppLayouts.Chat.helpers 1.0 import AppLayouts.Chat.controls.community 1.0 import SortFilterProxyModel 0.2 +import utils 1.0 Control { @@ -28,6 +29,7 @@ Control { property var viewAndPostHoldingsModel property var moderateHoldingsModel property bool showOnlyPanels: false + property int loginType: Constants.LoginType.Password property var assetsModel property var collectiblesModel @@ -58,6 +60,11 @@ Control { function getRevealAddressText() { return root.joinCommunity ? (root.requiresRequest ? d.communityRevealAddressWithRequestText : d.communityRevealAddressText) : d.channelRevealAddressText } + + function getRevealAddressIcon() { + if(root.loginType == Constants.LoginType.Password) return "password" + return root.loginType == Constants.LoginType.Biometrics ? "touch-id" : "keycard" + } } padding: 35 // default by design @@ -106,6 +113,7 @@ Control { Layout.alignment: Qt.AlignHCenter visible: !root.showOnlyPanels && !root.isJoinRequestRejected text: root.isInvitationPending ? d.getInvitationPendingText() : d.getRevealAddressText() + icon.name: root.isInvitationPending ? "" : d.getRevealAddressIcon() font.pixelSize: 13 enabled: root.requirementsMet onClicked: root.isInvitationPending ? root.invitationPendingClicked() : root.revealAddressClicked() diff --git a/ui/app/AppLayouts/Chat/stores/RootStore.qml b/ui/app/AppLayouts/Chat/stores/RootStore.qml index 96c8291a96..0bba3ca365 100644 --- a/ui/app/AppLayouts/Chat/stores/RootStore.qml +++ b/ui/app/AppLayouts/Chat/stores/RootStore.qml @@ -234,6 +234,8 @@ QtObject { property bool isDebugEnabled: advancedModule ? advancedModule.isDebugEnabled : false + readonly property int loginType: getLoginType() + property var stickersStore: StickersStore { stickersModule: stickersModuleInst } @@ -656,6 +658,17 @@ QtObject { return globalUtilsInst.hex2Eth(value) } + function getLoginType() { + if(!userProfileInst) + return Constants.LoginType.Password + + if(userProfileInst.usingBiometricLogin) + return Constants.LoginType.Biometrics + else if(userProfileInst.isKeycardUser) + return Constants.LoginType.Keycard + else return Constants.LoginType.Password + } + readonly property Connections communitiesModuleConnections: Connections { target: communitiesModuleInst function onImportingCommunityStateChanged(communityId, state, errorMsg) { diff --git a/ui/app/AppLayouts/Chat/views/communities/JoinCommunityView.qml b/ui/app/AppLayouts/Chat/views/communities/JoinCommunityView.qml index a4c14b8312..61027bd77a 100644 --- a/ui/app/AppLayouts/Chat/views/communities/JoinCommunityView.qml +++ b/ui/app/AppLayouts/Chat/views/communities/JoinCommunityView.qml @@ -36,6 +36,7 @@ StatusSectionLayout { property bool requirementsMet: true property bool isJoinRequestRejected: false property bool requiresRequest: false + property alias loginType: overlayPannel.loginType property var communityHoldingsModel property var viewOnlyHoldingsModel diff --git a/ui/imports/utils/Constants.qml b/ui/imports/utils/Constants.qml index f522ad1a8c..6426c8b226 100644 --- a/ui/imports/utils/Constants.qml +++ b/ui/imports/utils/Constants.qml @@ -858,6 +858,12 @@ QtObject { NoError } + enum LoginType { + Password, + Biometrics, + Keycard + } + readonly property QtObject walletSection: QtObject { readonly property string cancelledMessage: "cancelled"