diff --git a/packages/pl-fe/src/components/profile-hover-card.tsx b/packages/pl-fe/src/components/account-hover-card.tsx similarity index 91% rename from packages/pl-fe/src/components/profile-hover-card.tsx rename to packages/pl-fe/src/components/account-hover-card.tsx index 36637bcc2..135326bce 100644 --- a/packages/pl-fe/src/components/profile-hover-card.tsx +++ b/packages/pl-fe/src/components/account-hover-card.tsx @@ -12,7 +12,7 @@ import { UserPanel } from 'pl-fe/features/ui/util/async-components'; import { useAppSelector, useAppDispatch } from 'pl-fe/hooks'; import { useAccountHoverCardStore } from 'pl-fe/stores'; -import { showProfileHoverCard } from './hover-ref-wrapper'; +import { showAccountHoverCard } from './hover-ref-wrapper'; import { dateFormatOptions } from './relative-timestamp'; import Scrobble from './scrobble'; import { Card, CardBody, HStack, Icon, Stack, Text } from './ui'; @@ -33,12 +33,12 @@ const getBadges = ( return badges; }; -interface IProfileHoverCard { +interface IAccountHoverCard { visible?: boolean; } /** Popup profile preview that appears when hovering avatars and display names. */ -const ProfileHoverCard: React.FC = ({ visible = true }) => { +const AccountHoverCard: React.FC = ({ visible = true }) => { const dispatch = useAppDispatch(); const history = useHistory(); const intl = useIntl(); @@ -55,8 +55,8 @@ const ProfileHoverCard: React.FC = ({ visible = true }) => { useEffect(() => { const unlisten = history.listen(() => { - showProfileHoverCard.cancel(); - closeAccountHoverCard(); + showAccountHoverCard.cancel(); + closeAccountHoverCard(true); }); return () => { @@ -88,6 +88,14 @@ const ProfileHoverCard: React.FC = ({ visible = true }) => { }, }); + const handleMouseEnter = () => { + updateAccountHoverCard(); + }; + + const handleMouseLeave = () => { + closeAccountHoverCard(true); + }; + if (!account) return null; const accountBio = { __html: account.note_emojified }; const memberSinceDate = intl.formatDate(account.created_at, { month: 'long', year: 'numeric' }); @@ -107,8 +115,8 @@ const ProfileHoverCard: React.FC = ({ visible = true }) => { left: x ?? 0, ...styles, }} - onMouseEnter={() => updateAccountHoverCard()} - onMouseLeave={() => closeAccountHoverCard()} + onMouseEnter={handleMouseEnter} + onMouseLeave={handleMouseLeave} > @@ -164,4 +172,4 @@ const ProfileHoverCard: React.FC = ({ visible = true }) => { ); }; -export { ProfileHoverCard as default }; +export { AccountHoverCard as default }; diff --git a/packages/pl-fe/src/components/account.tsx b/packages/pl-fe/src/components/account.tsx index d306b0adf..b43bbee98 100644 --- a/packages/pl-fe/src/components/account.tsx +++ b/packages/pl-fe/src/components/account.tsx @@ -81,7 +81,7 @@ interface IAccount { hideActions?: boolean; id?: string; onActionClick?: (account: any) => void; - showProfileHoverCard?: boolean; + showAccountHoverCard?: boolean; timestamp?: string; timestampUrl?: string; futureTimestamp?: boolean; @@ -110,7 +110,7 @@ const Account = ({ hidden = false, hideActions = false, onActionClick, - showProfileHoverCard = true, + showAccountHoverCard = true, timestamp, timestampUrl, futureTimestamp = false, @@ -247,7 +247,7 @@ const Account = ({ {withAvatar && ( {children}} > @@ -265,7 +265,7 @@ const Account = ({
{children}} > diff --git a/packages/pl-fe/src/components/hover-ref-wrapper.tsx b/packages/pl-fe/src/components/hover-ref-wrapper.tsx index e4da5493a..5c2a0d5f2 100644 --- a/packages/pl-fe/src/components/hover-ref-wrapper.tsx +++ b/packages/pl-fe/src/components/hover-ref-wrapper.tsx @@ -7,7 +7,7 @@ import { useAppDispatch } from 'pl-fe/hooks'; import { isMobile } from 'pl-fe/is-mobile'; import { useAccountHoverCardStore } from 'pl-fe/stores'; -const showProfileHoverCard = debounce((openAccountHoverCard, ref, accountId) => { +const showAccountHoverCard = debounce((openAccountHoverCard, ref, accountId) => { openAccountHoverCard(ref, accountId); }, 600); @@ -30,17 +30,17 @@ const HoverRefWrapper: React.FC = ({ accountId, children, inli const handleMouseEnter = () => { if (!isMobile(window.innerWidth)) { dispatch(fetchAccount(accountId)); - showProfileHoverCard(openAccountHoverCard, ref, accountId); + showAccountHoverCard(openAccountHoverCard, ref, accountId); } }; const handleMouseLeave = () => { - showProfileHoverCard.cancel(); + showAccountHoverCard.cancel(); setTimeout(() => closeAccountHoverCard(), 300); }; const handleClick = () => { - showProfileHoverCard.cancel(); + showAccountHoverCard.cancel(); closeAccountHoverCard(true); }; @@ -57,4 +57,4 @@ const HoverRefWrapper: React.FC = ({ accountId, children, inli ); }; -export { HoverRefWrapper as default, showProfileHoverCard }; +export { HoverRefWrapper as default, showAccountHoverCard }; diff --git a/packages/pl-fe/src/components/quoted-status.tsx b/packages/pl-fe/src/components/quoted-status.tsx index 6576fc866..1e3c883ad 100644 --- a/packages/pl-fe/src/components/quoted-status.tsx +++ b/packages/pl-fe/src/components/quoted-status.tsx @@ -88,7 +88,7 @@ const QuotedStatus: React.FC = ({ status, onCancel, compose }) => id={account.id} timestamp={status.created_at} withRelationship={false} - showProfileHoverCard={!compose} + showAccountHoverCard={!compose} withLinkToProfile={!compose} /> diff --git a/packages/pl-fe/src/components/sidebar-menu.tsx b/packages/pl-fe/src/components/sidebar-menu.tsx index ec5c93fb3..d0d9f31cd 100644 --- a/packages/pl-fe/src/components/sidebar-menu.tsx +++ b/packages/pl-fe/src/components/sidebar-menu.tsx @@ -132,7 +132,7 @@ const SidebarMenu: React.FC = (): JSX.Element | null => { const renderAccount = (account: AccountEntity) => (
- +
); @@ -197,7 +197,7 @@ const SidebarMenu: React.FC = (): JSX.Element | null => { {account ? ( - + = ({ visible = true }) => { useEffect(() => { const unlisten = history.listen(() => { showStatusHoverCard.cancel(); - closeStatusHoverCard(); + closeStatusHoverCard(true); }); return () => { @@ -68,13 +68,13 @@ const StatusHoverCard: React.FC = ({ visible = true }) => { }, }); - const handleMouseEnter = useCallback((): React.MouseEventHandler => () => { + const handleMouseEnter = () => { updateStatusHoverCard(); - }, []); + }; - const handleMouseLeave = useCallback((): React.MouseEventHandler => () => { + const handleMouseLeave = () => { closeStatusHoverCard(true); - }, []); + }; if (!statusId) return null; @@ -103,8 +103,8 @@ const StatusHoverCard: React.FC = ({ visible = true }) => { left: x ?? 0, ...styles, }} - onMouseEnter={handleMouseEnter()} - onMouseLeave={handleMouseLeave()} + onMouseEnter={handleMouseEnter} + onMouseLeave={handleMouseLeave} > diff --git a/packages/pl-fe/src/components/status.tsx b/packages/pl-fe/src/components/status.tsx index bf0d678a3..089080e37 100644 --- a/packages/pl-fe/src/components/status.tsx +++ b/packages/pl-fe/src/components/status.tsx @@ -403,7 +403,7 @@ const Status: React.FC = (props) => { action={accountAction} hideActions={!accountAction} showEdit={!!actualStatus.edited_at} - showProfileHoverCard={hoverable} + showAccountHoverCard={hoverable} withLinkToProfile={hoverable} approvalStatus={actualStatus.approval_status} avatarSize={avatarSize} diff --git a/packages/pl-fe/src/features/compose/components/autosuggest-account.tsx b/packages/pl-fe/src/features/compose/components/autosuggest-account.tsx index ab08a7a06..999814992 100644 --- a/packages/pl-fe/src/features/compose/components/autosuggest-account.tsx +++ b/packages/pl-fe/src/features/compose/components/autosuggest-account.tsx @@ -13,7 +13,7 @@ const AutosuggestAccount: React.FC = ({ id }) => { return (
- +
); diff --git a/packages/pl-fe/src/features/compose/components/reply-indicator.tsx b/packages/pl-fe/src/features/compose/components/reply-indicator.tsx index 9c93b7d80..ad3f21b8a 100644 --- a/packages/pl-fe/src/features/compose/components/reply-indicator.tsx +++ b/packages/pl-fe/src/features/compose/components/reply-indicator.tsx @@ -41,7 +41,7 @@ const ReplyIndicator: React.FC = ({ className, status, hideActi {...actions} id={status.account.id} timestamp={status.created_at} - showProfileHoverCard={false} + showAccountHoverCard={false} withLinkToProfile={false} hideActions={hideActions} /> diff --git a/packages/pl-fe/src/features/onboarding/steps/suggested-accounts-step.tsx b/packages/pl-fe/src/features/onboarding/steps/suggested-accounts-step.tsx index 3cc57026b..c0a89012d 100644 --- a/packages/pl-fe/src/features/onboarding/steps/suggested-accounts-step.tsx +++ b/packages/pl-fe/src/features/onboarding/steps/suggested-accounts-step.tsx @@ -28,7 +28,7 @@ const SuggestedAccountsStep = ({ onNext }: { onNext: () => void }) => {
diff --git a/packages/pl-fe/src/features/ui/components/modals/account-moderation-modal/index.tsx b/packages/pl-fe/src/features/ui/components/modals/account-moderation-modal/index.tsx index 8b7f535f3..3c1e5ecf5 100644 --- a/packages/pl-fe/src/features/ui/components/modals/account-moderation-modal/index.tsx +++ b/packages/pl-fe/src/features/ui/components/modals/account-moderation-modal/index.tsx @@ -106,7 +106,7 @@ const AccountModerationModal: React.FC diff --git a/packages/pl-fe/src/features/ui/components/modals/report-modal/index.tsx b/packages/pl-fe/src/features/ui/components/modals/report-modal/index.tsx index e7815b127..802b6c2a3 100644 --- a/packages/pl-fe/src/features/ui/components/modals/report-modal/index.tsx +++ b/packages/pl-fe/src/features/ui/components/modals/report-modal/index.tsx @@ -49,7 +49,7 @@ const SelectedStatus = ({ statusId }: { statusId: string }) => { = ({ account, children }) => { }, 2000); const renderAccount = (account: AccountEntity) => ( - + ); const ProfileDropdownMenu = useMemo(() => { diff --git a/packages/pl-fe/src/features/ui/index.tsx b/packages/pl-fe/src/features/ui/index.tsx index 653be9c31..80a07e8d1 100644 --- a/packages/pl-fe/src/features/ui/index.tsx +++ b/packages/pl-fe/src/features/ui/index.tsx @@ -89,7 +89,7 @@ import { FollowRecommendations, Directory, SidebarMenu, - ProfileHoverCard, + AccountHoverCard, StatusHoverCard, Share, NewStatus, @@ -485,7 +485,7 @@ const UI: React.FC = ({ children }) => { - + diff --git a/packages/pl-fe/src/features/ui/util/async-components.ts b/packages/pl-fe/src/features/ui/util/async-components.ts index e539a09d9..2c2cddd45 100644 --- a/packages/pl-fe/src/features/ui/util/async-components.ts +++ b/packages/pl-fe/src/features/ui/util/async-components.ts @@ -122,7 +122,7 @@ export const LightningAddress = lazy(() => import('pl-fe/features/crypto-donate/ export const MfaForm = lazy(() => import('pl-fe/features/security/mfa-form')); export const ModalRoot = lazy(() => import('pl-fe/features/ui/components/modal-root')); export const OnboardingWizard = lazy(() => import('pl-fe/features/onboarding/onboarding-wizard')); -export const ProfileHoverCard = lazy(() => import('pl-fe/components/profile-hover-card')); +export const AccountHoverCard = lazy(() => import('pl-fe/components/account-hover-card')); export const SidebarMenu = lazy(() => import('pl-fe/components/sidebar-menu')); export const StatusHoverCard = lazy(() => import('pl-fe/components/status-hover-card')); export const Video = lazy(() => import('pl-fe/features/video'));