Page MenuHomePhorge

D12595.1767215997.diff
No OneTemporary

Size
6 KB
Referenced Files
None
Subscribers
None

D12595.1767215997.diff

diff --git a/web/chat/relationship-prompt/relationship-prompt-button.js b/web/chat/relationship-prompt/relationship-prompt-button.js
--- a/web/chat/relationship-prompt/relationship-prompt-button.js
+++ b/web/chat/relationship-prompt/relationship-prompt-button.js
@@ -13,10 +13,11 @@
+icon: IconDefinition,
+buttonColor: ButtonColor,
+onClick: () => void,
+ +isLoading: boolean,
+className?: string,
};
function RelationshipPromptButton(props: Props): React.Node {
- const { text, icon, buttonColor, onClick, className } = props;
+ const { text, icon, buttonColor, onClick, isLoading, className } = props;
const buttonClassName = classnames(css.promptButton, className);
@@ -27,12 +28,13 @@
buttonColor={buttonColor}
onClick={onClick}
className={buttonClassName}
+ disabled={isLoading}
>
<FontAwesomeIcon icon={icon} />
<p className={css.promptText}>{text}</p>
</Button>
),
- [buttonClassName, buttonColor, icon, onClick, text],
+ [buttonClassName, buttonColor, icon, isLoading, onClick, text],
);
return relationshipPromptButton;
diff --git a/web/chat/relationship-prompt/relationship-prompt.js b/web/chat/relationship-prompt/relationship-prompt.js
--- a/web/chat/relationship-prompt/relationship-prompt.js
+++ b/web/chat/relationship-prompt/relationship-prompt.js
@@ -26,6 +26,12 @@
const {
otherUserInfo,
callbacks: { blockUser, unblockUser, friendUser, unfriendUser },
+ loadingState: {
+ isLoadingBlockUser,
+ isLoadingUnblockUser,
+ isLoadingFriendUser,
+ isLoadingUnfriendUser,
+ },
} = useRelationshipPrompt(
threadInfo,
undefined,
@@ -42,10 +48,11 @@
return (
<RelationshipPromptButtonContainer>
<RelationshipPromptButton
- text="Block User"
+ text="Block user"
icon={faUserShield}
buttonColor={buttonThemes.danger}
onClick={blockUser}
+ isLoading={isLoadingBlockUser}
/>
</RelationshipPromptButtonContainer>
);
@@ -56,10 +63,11 @@
return (
<RelationshipPromptButtonContainer>
<RelationshipPromptButton
- text="Unblock User"
+ text="Unblock user"
icon={faUserShield}
buttonColor={buttonThemes.success}
onClick={unblockUser}
+ isLoading={isLoadingUnblockUser}
/>
</RelationshipPromptButtonContainer>
);
@@ -67,16 +75,18 @@
return (
<RelationshipPromptButtonContainer>
<RelationshipPromptButton
- text="Accept Friend Request"
+ text="Accept friend request"
icon={faUserPlus}
buttonColor={buttonThemes.success}
onClick={friendUser}
+ isLoading={isLoadingFriendUser}
/>
<RelationshipPromptButton
- text="Reject Friend Request"
+ text="Reject friend request"
icon={faUserSlash}
buttonColor={buttonThemes.danger}
onClick={unfriendUser}
+ isLoading={isLoadingUnfriendUser}
/>
</RelationshipPromptButtonContainer>
);
@@ -84,10 +94,11 @@
return (
<RelationshipPromptButtonContainer>
<RelationshipPromptButton
- text="Withdraw Friend Request"
+ text="Withdraw friend request"
icon={faUserMinus}
buttonColor={buttonThemes.danger}
onClick={unfriendUser}
+ isLoading={isLoadingUnfriendUser}
/>
</RelationshipPromptButtonContainer>
);
@@ -95,16 +106,18 @@
return (
<RelationshipPromptButtonContainer>
<RelationshipPromptButton
- text="Add Friend"
+ text="Add friend"
icon={faUserPlus}
buttonColor={buttonThemes.success}
onClick={friendUser}
+ isLoading={isLoadingFriendUser}
/>
<RelationshipPromptButton
- text="Block User"
+ text="Block user"
icon={faUserShield}
buttonColor={buttonThemes.danger}
onClick={blockUser}
+ isLoading={isLoadingBlockUser}
/>
</RelationshipPromptButtonContainer>
);
diff --git a/web/modals/user-profile/user-profile-action-buttons.react.js b/web/modals/user-profile/user-profile-action-buttons.react.js
--- a/web/modals/user-profile/user-profile-action-buttons.react.js
+++ b/web/modals/user-profile/user-profile-action-buttons.react.js
@@ -22,6 +22,7 @@
const {
otherUserInfo,
callbacks: { friendUser, unfriendUser },
+ loadingState: { isLoadingFriendUser, isLoadingUnfriendUser },
} = useRelationshipPrompt(threadInfo);
const userProfileActionButtons = React.useMemo(() => {
@@ -49,6 +50,7 @@
icon={faUserPlus}
buttonColor={buttonThemes.success}
onClick={friendUser}
+ isLoading={isLoadingFriendUser}
className={css.actionButton}
/>
<RelationshipPromptButton
@@ -56,6 +58,7 @@
icon={faUserMinus}
buttonColor={buttonThemes.danger}
onClick={unfriendUser}
+ isLoading={isLoadingUnfriendUser}
className={css.actionButton}
/>
</div>
@@ -70,10 +73,11 @@
return (
<div className={css.multiButtonRowContainer}>
<RelationshipPromptButton
- text="Withdraw Friend Request"
+ text="Withdraw friend request"
icon={faUserMinus}
buttonColor={buttonThemes.danger}
onClick={unfriendUser}
+ isLoading={isLoadingUnfriendUser}
className={css.actionButton}
/>
<UserProfileMessageButton threadInfo={threadInfo} />
@@ -83,16 +87,24 @@
return (
<div className={css.multiButtonRowContainer}>
<RelationshipPromptButton
- text="Add Friend"
+ text="Add friend"
icon={faUserPlus}
buttonColor={buttonThemes.success}
onClick={friendUser}
+ isLoading={isLoadingFriendUser}
className={css.actionButton}
/>
<UserProfileMessageButton threadInfo={threadInfo} />
</div>
);
- }, [otherUserInfo, friendUser, threadInfo, unfriendUser]);
+ }, [
+ otherUserInfo,
+ friendUser,
+ isLoadingFriendUser,
+ threadInfo,
+ unfriendUser,
+ isLoadingUnfriendUser,
+ ]);
return userProfileActionButtons;
}

File Metadata

Mime Type
text/plain
Expires
Wed, Dec 31, 9:19 PM (1 h, 42 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5874481
Default Alt Text
D12595.1767215997.diff (6 KB)

Event Timeline