feat: implement UsersContext and refactor user management hooks for improved user data handling
This commit is contained in:
@@ -9,14 +9,22 @@ const getInitials = (firstName, lastName) => {
|
||||
return `${firstName.charAt(0)}${lastName.charAt(0)}`.toUpperCase();
|
||||
};
|
||||
|
||||
const MemberCard = ({ member }) => {
|
||||
const joinedDate = member.member_since || member.created_at;
|
||||
// Helper function to ensure social media URLs have proper protocol
|
||||
const getSocialMediaLink = (url) => {
|
||||
if (!url) return null;
|
||||
if (!url.startsWith('http://') && !url.startsWith('https://')) {
|
||||
return `https://${url}`;
|
||||
}
|
||||
return url;
|
||||
};
|
||||
|
||||
const MemberCard = ({ member, onViewProfile }) => {
|
||||
const joinedDate = member.created_at;
|
||||
return (
|
||||
<Card className="p-6 bg-background rounded-3xl border border-[var(--neutral-800)] hover:shadow-lg transition-all h-full">
|
||||
{/* Profile Photo */}
|
||||
<div className='flex justify-end items-center'>
|
||||
{/* todo: get correct status to pass to StatusBadge */}
|
||||
<StatusBadge status={member.membership_status} />
|
||||
<StatusBadge status={member.membership_status || member.status} />
|
||||
</div>
|
||||
<div className="flex justify-center mb-4">
|
||||
{member.profile_photo_url ? (
|
||||
@@ -165,7 +173,7 @@ const MemberCard = ({ member }) => {
|
||||
{/* View Profile Button */}
|
||||
<div className="pt-4 mt-4 border-t border-[var(--neutral-800)]">
|
||||
<Button
|
||||
onClick={() => handleViewProfile(member.id)}
|
||||
onClick={() => onViewProfile?.(member.id)}
|
||||
className="w-full bg-[var(--neutral-800)] text-[var(--purple-ink)] hover:bg-brand-purple hover:text-white rounded-full py-5"
|
||||
>
|
||||
<UserCircle className="h-4 w-4 mr-2" />
|
||||
@@ -176,4 +184,4 @@ const MemberCard = ({ member }) => {
|
||||
);
|
||||
};
|
||||
|
||||
export default MemberCard
|
||||
export default MemberCard
|
||||
|
||||
Reference in New Issue
Block a user