feat: implement UsersContext and refactor user management hooks for improved user data handling

This commit is contained in:
2026-01-25 12:17:30 -06:00
parent f2dd053320
commit 4548d959d7
10 changed files with 576 additions and 120 deletions

View File

@@ -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