import type { FC } from 'react'; import { FormattedMessage, useIntl } from 'react-intl'; import classNames from 'classnames'; import IconVerified from '@/images/icons/icon_verified.svg?react'; import { AccountFields } from '@/mastodon/components/account_fields'; import { EmojiHTML } from '@/mastodon/components/emoji/html'; import { FormattedDateWrapper } from '@/mastodon/components/formatted_date'; import { IconButton } from '@/mastodon/components/icon_button'; import { MiniCard } from '@/mastodon/components/mini_card'; import { useElementHandledLink } from '@/mastodon/components/status/handled_link'; import { useAccount } from '@/mastodon/hooks/useAccount'; import { useOverflowScroll } from '@/mastodon/hooks/useOverflow'; import type { Account } from '@/mastodon/models/account'; import { isValidUrl } from '@/mastodon/utils/checks'; import IconLeftArrow from '@/material-icons/400-24px/chevron_left.svg?react'; import IconRightArrow from '@/material-icons/400-24px/chevron_right.svg?react'; import IconLink from '@/material-icons/400-24px/link_2.svg?react'; import { isRedesignEnabled } from '../common'; import classes from './redesign.module.scss'; export const AccountHeaderFields: FC<{ accountId: string }> = ({ accountId, }) => { const account = useAccount(accountId); if (!account) { return null; } if (isRedesignEnabled()) { return ; } return (
); }; const RedesignAccountHeaderFields: FC<{ account: Account }> = ({ account }) => { const htmlHandlers = useElementHandledLink(); const intl = useIntl(); const { bodyRef, canScrollLeft, canScrollRight, handleLeftNav, handleRightNav, handleScroll, } = useOverflowScroll(); return (
{canScrollLeft && ( )}
{account.fields.map( ( { name, name_emojified, value_emojified, value_plain, verified_at }, key, ) => ( } value={ } icon={fieldIcon(verified_at, value_plain)} className={classNames( classes.fieldCard, verified_at && classes.fieldCardVerified, )} /> ), )}
{canScrollRight && ( )}
); }; function fieldIcon(verified_at: string | null, value_plain: string | null) { if (verified_at) { return IconVerified; } else if (value_plain && isValidUrl(value_plain)) { return IconLink; } return undefined; }