manifold/web/components/user-link.tsx
2022-09-15 09:51:52 -06:00

40 lines
949 B
TypeScript

import { SiteLink } from 'web/components/site-link'
import clsx from 'clsx'
export function shortenName(name: string) {
const firstName = name.split(' ')[0]
const maxLength = 11
const shortName =
firstName.length >= 3 && name.length > maxLength
? firstName.length < maxLength
? firstName
: firstName.substring(0, maxLength - 3) + '...'
: name.length > maxLength
? name.substring(0, maxLength - 3) + '...'
: name
return shortName
}
export function UserLink(props: {
name: string
username: string
className?: string
short?: boolean
noLink?: boolean
}) {
const { name, username, className, short, noLink } = props
const shortName = short ? shortenName(name) : name
return (
<SiteLink
href={`/${username}`}
className={clsx(
'z-10 truncate',
className,
noLink ? 'pointer-events-none' : ''
)}
>
{shortName}
</SiteLink>
)
}