mirror of
https://github.com/muerwre/vault-frontend.git
synced 2025-06-26 11:38:28 +07:00
38 lines
1.3 KiB
TypeScript
38 lines
1.3 KiB
TypeScript
import React, { FC } from 'react';
|
||
import { formatText } from '~/utils/dom';
|
||
import styles from './styles.module.scss';
|
||
import { ProfileLoader } from '~/containers/profile/ProfileLoader';
|
||
import { Group } from '~/components/containers/Group';
|
||
import markdown from '~/styles/common/markdown.module.scss';
|
||
import classNames from 'classnames';
|
||
import { useProfileContext } from '~/utils/providers/ProfileProvider';
|
||
import { useUser } from '~/hooks/auth/useUser';
|
||
|
||
const ProfileDescription: FC = () => {
|
||
const { profile, isLoading } = useProfileContext();
|
||
const { user } = useUser();
|
||
|
||
const isOwn = user?.id === profile?.id;
|
||
const description = isOwn ? user.description : profile.description;
|
||
const fullName = isOwn ? user.fullname : profile.fullname;
|
||
const username = isOwn ? user.username : profile.username;
|
||
|
||
if (isLoading) return <ProfileLoader />;
|
||
|
||
return (
|
||
<div className={styles.wrap}>
|
||
{!!description ? (
|
||
<Group
|
||
className={classNames(styles.content, markdown.wrapper)}
|
||
dangerouslySetInnerHTML={{ __html: formatText(description) }}
|
||
/>
|
||
) : (
|
||
<div className={styles.placeholder}>
|
||
{fullName || username} пока ничего не рассказал о себе
|
||
</div>
|
||
)}
|
||
</div>
|
||
);
|
||
};
|
||
|
||
export { ProfileDescription };
|