import useTimeDistance from '@/hooks/utilities/useTimeDistance'; import { FC, useContext } from 'react'; import { z } from 'zod'; import { format } from 'date-fns'; import GetUserSchema from '@/services/users/auth/schema/GetUserSchema'; import useGetUsersFollowedByUser from '@/hooks/data-fetching/user-follows/useGetUsersFollowedByUser'; import useGetUsersFollowingUser from '@/hooks/data-fetching/user-follows/useGetUsersFollowingUser'; import UserContext from '@/contexts/UserContext'; import Link from 'next/link'; import UserAvatar from '../Account/UserAvatar'; import UserFollowButton from './UserFollowButton'; interface UserHeaderProps { user: z.infer; } const UserHeader: FC = ({ user }) => { const timeDistance = useTimeDistance(new Date(user.createdAt)); const { followingCount, mutate: mutateFollowingCount } = useGetUsersFollowedByUser({ userId: user.id, pageSize: 10, }); const { followerCount, mutate: mutateFollowerCount } = useGetUsersFollowingUser({ userId: user.id, pageSize: 10, }); const { user: currentUser } = useContext(UserContext); return (

{user.username}

{followingCount} Following {followerCount} Followers
joined{' '} {timeDistance && ( {`${timeDistance} ago`} )}
{user.bio && (

{user.bio}

)}
{currentUser?.id !== user.id ? ( ) : ( Edit Profile )}
); }; export default UserHeader;