import { useState, useEffect } from 'react' import { useBackend } from 'shared/hooks/use-backend.mjs' import { useTranslation } from 'next-i18next' import { cloudflareImageUrl } from 'shared/utils.mjs' import { Loading } from 'shared/components/spinner.mjs' import { Popout } from 'shared/components/popout/index.mjs' import Markdown from 'react-markdown' export const Author = ({ author = '' }) => { const { t } = useTranslation(['posts']) const backend = useBackend() const [profile, setProfile] = useState(null) useEffect(() => { const loadAuthor = async () => { const result = await backend.getProfile(author) if (result.success && result.data.profile) setProfile(result.data.profile) else setProfile(false) } if (!profile) loadAuthor() }, [author]) if (profile === null) return if (profile === false) return (
Unable to load author profile

Please report this (FIXME: Add reporting capabilities)

) const img = cloudflareImageUrl({ id: profile.img, variant: 'sq500' }) return (
{profile.username}

{profile.bio}
) }