2023-09-11 00:40:14 -05:00
|
|
|
import Image from 'next/image';
|
|
|
|
|
import { AiFillCalendar } from 'react-icons/ai';
|
2023-09-11 13:44:51 -05:00
|
|
|
import { Doc, Id } from '../../convex/_generated/dataModel';
|
2023-09-11 13:49:13 -05:00
|
|
|
import { UserDto } from '@/app/types';
|
2023-09-11 00:40:14 -05:00
|
|
|
|
2023-09-11 13:49:13 -05:00
|
|
|
export default function UserProfile({ user }: { user: UserDto }) {
|
2023-09-11 13:44:51 -05:00
|
|
|
const username = user.clerkUsername ?? user._id;
|
2023-09-11 00:40:14 -05:00
|
|
|
const userCreatedDate = new Date(user._creationTime);
|
|
|
|
|
const monthJoined = userCreatedDate.toLocaleString(undefined, {
|
|
|
|
|
month: 'short',
|
|
|
|
|
});
|
|
|
|
|
const yearJoined = userCreatedDate.getFullYear();
|
|
|
|
|
|
|
|
|
|
return (
|
|
|
|
|
<div className='w-full'>
|
|
|
|
|
<div className='shadow-md bg-gradient-to-r from-violet-600 via-violet-600 to-indigo-600 rounded-t-md pt-20 pl-5 pr-40'>
|
|
|
|
|
<div className='flex items-center gap-4 -mb-[25px]'>
|
|
|
|
|
<div>
|
|
|
|
|
<Image
|
|
|
|
|
alt='user profile image'
|
2023-09-11 13:44:51 -05:00
|
|
|
src={user.clerkImageUrl}
|
2023-09-11 00:40:14 -05:00
|
|
|
width={100}
|
|
|
|
|
height={100}
|
|
|
|
|
className='rounded-full object-cover border-4 border-primary-accent'
|
|
|
|
|
/>
|
|
|
|
|
</div>
|
|
|
|
|
<div>
|
|
|
|
|
<h1 className='font-bold'>{username}</h1>
|
|
|
|
|
<div className='flex gap-2 items-center text-sm'>
|
|
|
|
|
<AiFillCalendar className='w-4 h-4' />
|
|
|
|
|
{`Joined ${monthJoined} ${yearJoined}`}
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div className='h-[50px] bg-white dark:bg-primary-gray pl-5 pr-40 border border-gray-600'></div>
|
|
|
|
|
</div>
|
|
|
|
|
);
|
|
|
|
|
}
|