[skip ci] feat: prepare for public release
This commit is contained in:
@@ -378,7 +378,7 @@ export const SubMenu = React.forwardRef<HTMLDivElement, SubMenuProps>(
|
||||
/>
|
||||
</svg>
|
||||
</AriaMenuItem>
|
||||
<AriaPopover placement="right top" offset={4} className={styles.submenuPopover}>
|
||||
<AriaPopover placement="right top" offset={0} className={styles.submenuPopover}>
|
||||
<AriaMenu className={styles.ariaMenu} aria-label="Submenu" autoFocus="first" selectionMode={selectionMode}>
|
||||
{children}
|
||||
</AriaMenu>
|
||||
|
||||
@@ -24,8 +24,10 @@ import * as ModalActionCreators from '~/actions/ModalActionCreators';
|
||||
import {modal} from '~/actions/ModalActionCreators';
|
||||
import {RelationshipTypes} from '~/Constants';
|
||||
import {ChangeFriendNicknameModal} from '~/components/modals/ChangeFriendNicknameModal';
|
||||
import {Tooltip} from '~/components/uikit/Tooltip/Tooltip';
|
||||
import type {UserRecord} from '~/records/UserRecord';
|
||||
import RelationshipStore from '~/stores/RelationshipStore';
|
||||
import UserStore from '~/stores/UserStore';
|
||||
import * as RelationshipActionUtils from '~/utils/RelationshipActionUtils';
|
||||
import {
|
||||
AcceptFriendRequestIcon,
|
||||
@@ -50,6 +52,7 @@ export const SendFriendRequestMenuItem: React.FC<SendFriendRequestMenuItemProps>
|
||||
const [submitting, setSubmitting] = React.useState(false);
|
||||
|
||||
const showFriendRequestSent = relationshipType === RelationshipTypes.OUTGOING_REQUEST;
|
||||
const isCurrentUserUnclaimed = !(UserStore.currentUser?.isClaimed() ?? true);
|
||||
|
||||
const handleSendFriendRequest = React.useCallback(async () => {
|
||||
if (submitting || showFriendRequestSent) return;
|
||||
@@ -58,6 +61,24 @@ export const SendFriendRequestMenuItem: React.FC<SendFriendRequestMenuItemProps>
|
||||
setSubmitting(false);
|
||||
}, [i18n, showFriendRequestSent, submitting, user.id]);
|
||||
|
||||
if (isCurrentUserUnclaimed) {
|
||||
const tooltip = t`Claim your account to send friend requests.`;
|
||||
return (
|
||||
<Tooltip text={tooltip} maxWidth="xl">
|
||||
<div>
|
||||
<MenuItem
|
||||
icon={<SendFriendRequestIcon />}
|
||||
onClick={handleSendFriendRequest}
|
||||
disabled={true}
|
||||
closeOnSelect={false}
|
||||
>
|
||||
{showFriendRequestSent ? t`Friend Request Sent` : t`Add Friend`}
|
||||
</MenuItem>
|
||||
</div>
|
||||
</Tooltip>
|
||||
);
|
||||
}
|
||||
|
||||
return (
|
||||
<MenuItem
|
||||
icon={<SendFriendRequestIcon />}
|
||||
|
||||
@@ -50,6 +50,7 @@ interface PopoutProps {
|
||||
containerClass?: string;
|
||||
preventInvert?: boolean;
|
||||
hoverDelay?: number;
|
||||
hoverCloseDelay?: number;
|
||||
toggleClose?: boolean;
|
||||
subscribeTo?: ComponentActionType;
|
||||
onOpen?: () => void;
|
||||
@@ -192,8 +193,8 @@ export const Popout = React.forwardRef<HTMLElement, PopoutProps>((props, ref) =>
|
||||
if (!isTriggerHoveringRef.current && !isContentHoveringRef.current && !hasActiveDependents) {
|
||||
close();
|
||||
}
|
||||
}, 300);
|
||||
}, [close, state.id]);
|
||||
}, props.hoverCloseDelay ?? 300);
|
||||
}, [close, state.id, props.hoverCloseDelay]);
|
||||
|
||||
const handleContentMouseEnter = React.useCallback(() => {
|
||||
isContentHoveringRef.current = true;
|
||||
|
||||
@@ -125,10 +125,10 @@ const PopoutItem: React.FC<PopoutItemProps> = observer(
|
||||
const transitionStyles = React.useMemo(() => {
|
||||
const shouldAnimate = animationType === 'smooth' && !prefersReducedMotion;
|
||||
const duration = shouldAnimate ? '250ms' : '0ms';
|
||||
const isPositioned = state.isReady;
|
||||
const isPositioned = animationType === 'none' ? true : state.isReady;
|
||||
const transform = getTransform(shouldAnimate, isVisible, isPositioned, targetInDOM);
|
||||
return {
|
||||
opacity: isVisible && isPositioned && targetInDOM ? 1 : 0,
|
||||
opacity: isVisible && targetInDOM ? 1 : 0,
|
||||
transform,
|
||||
transition: `opacity ${duration} ease-in-out${shouldAnimate ? `, transform ${duration} ease-in-out` : ''}`,
|
||||
pointerEvents: isPositioned && targetInDOM ? ('auto' as const) : ('none' as const),
|
||||
|
||||
Reference in New Issue
Block a user