Create display-name-row
This commit is contained in:
parent
3a1c25f772
commit
9bd0ea22f5
|
@ -0,0 +1,45 @@
|
|||
import React from 'react';
|
||||
|
||||
import { useSoapboxConfig } from 'soapbox/hooks';
|
||||
|
||||
import { getAcct } from '../utils/accounts';
|
||||
|
||||
import { HStack, Text } from './ui';
|
||||
import VerificationBadge from './verification-badge';
|
||||
|
||||
import type { Account } from 'soapbox/schemas';
|
||||
|
||||
interface IDisplayName {
|
||||
account: Pick<Account, 'id' | 'acct' | 'fqn' | 'verified' | 'display_name_html'>;
|
||||
withSuffix?: boolean;
|
||||
}
|
||||
|
||||
const DisplayNameRow: React.FC<IDisplayName> = ({ account, withSuffix = true }) => {
|
||||
const { displayFqn = false } = useSoapboxConfig();
|
||||
const { verified } = account;
|
||||
|
||||
const displayName = (
|
||||
<HStack space={1} alignItems='center' justifyContent='center' grow>
|
||||
<Text
|
||||
size='sm'
|
||||
weight='normal'
|
||||
truncate
|
||||
dangerouslySetInnerHTML={{ __html: account.display_name_html }}
|
||||
/>
|
||||
|
||||
{verified && <VerificationBadge />}
|
||||
</HStack>
|
||||
);
|
||||
|
||||
const suffix = (<span className='display-name'>@{getAcct(account, displayFqn)}</span>);
|
||||
|
||||
return (
|
||||
<div className='flex max-w-80 flex-col items-center justify-center text-center sm:flex-row sm:gap-2'>
|
||||
{displayName}
|
||||
<span className='hidden text-2xl font-bold sm:block'>-</span>
|
||||
{withSuffix && suffix}
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
export default DisplayNameRow;
|
Loading…
Reference in New Issue