diff --git a/web/modals/user-profile/user-profile-menu.react.js b/web/modals/user-profile/user-profile-menu.react.js
new file mode 100644
index 000000000..7500024f2
--- /dev/null
+++ b/web/modals/user-profile/user-profile-menu.react.js
@@ -0,0 +1,111 @@
+// @flow
+
+import { faUserMinus, faUserShield } from '@fortawesome/free-solid-svg-icons';
+import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
+import * as React from 'react';
+
+import SWMansionIcon from 'lib/components/SWMansionIcon.react.js';
+import { useRelationshipPrompt } from 'lib/hooks/relationship-prompt.js';
+import { userRelationshipStatus } from 'lib/types/relationship-types.js';
+import type { ThreadInfo } from 'lib/types/thread-types';
+
+import MenuItem from '../../components/menu-item.react.js';
+import Menu from '../../components/menu.react.js';
+
+const menuIcon = ;
+
+const unfriendIcon = ;
+
+const blockIcon = ;
+
+const unblockIcon = ;
+
+type Props = {
+ +threadInfo: ThreadInfo,
+};
+
+function UserProfileMenu(props: Props): React.Node {
+ const { threadInfo } = props;
+
+ const {
+ otherUserInfo,
+ callbacks: { unfriendUser, blockUser, unblockUser },
+ } = useRelationshipPrompt(threadInfo);
+
+ const unfriendMenuIcon = React.useMemo(
+ () => (
+
+ ),
+ [unfriendUser],
+ );
+
+ const blockMenuItem = React.useMemo(
+ () => (
+
+ ),
+ [blockUser],
+ );
+
+ const unblockMenuItem = React.useMemo(
+ () => (
+
+ ),
+ [unblockUser],
+ );
+
+ const menuItems = React.useMemo(() => {
+ const items = [];
+ if (otherUserInfo?.relationshipStatus === userRelationshipStatus.FRIEND) {
+ items.push(unfriendMenuIcon);
+ items.push(blockMenuItem);
+ } else if (
+ otherUserInfo?.relationshipStatus ===
+ userRelationshipStatus.BOTH_BLOCKED ||
+ otherUserInfo?.relationshipStatus ===
+ userRelationshipStatus.BLOCKED_BY_VIEWER
+ ) {
+ items.push(unblockMenuItem);
+ } else {
+ items.push(blockMenuItem);
+ }
+
+ return items;
+ }, [
+ blockMenuItem,
+ otherUserInfo?.relationshipStatus,
+ unblockMenuItem,
+ unfriendMenuIcon,
+ ]);
+
+ const userProfileMenu = React.useMemo(() => {
+ if (!otherUserInfo) {
+ return null;
+ }
+
+ return (
+
+ );
+ }, [menuItems, otherUserInfo]);
+
+ return userProfileMenu;
+}
+
+export default UserProfileMenu;