- Created useDirectoryConfig hook (src/hooks/use-directory-config.js)
- Updated Profile.js - conditional rendering with isFieldEnabled() - Updated MemberCard.js - conditional rendering for directory fields - Updated MembersDirectory.js - conditional rendering in profile dialog - Created AdminDirectorySettings.js - Admin UI for toggling fields - Updated SettingsSidebar.js - Added Directory and Registration tabs - Updated App.js - Added routes for new settings pages
This commit is contained in:
@@ -3,6 +3,7 @@ import { Card } from './ui/card';
|
||||
import { Button } from './ui/button';
|
||||
import { Heart, Calendar, Mail, Phone, MapPin, Facebook, Instagram, Twitter, Linkedin, UserCircle } from 'lucide-react';
|
||||
import MemberBadge from './MemberBadge';
|
||||
import useDirectoryConfig from '../hooks/use-directory-config';
|
||||
|
||||
// Helper function to get initials
|
||||
const getInitials = (firstName, lastName) => {
|
||||
@@ -20,6 +21,7 @@ const getSocialMediaLink = (url) => {
|
||||
|
||||
const MemberCard = ({ member, onViewProfile, tiers }) => {
|
||||
const memberSince = member.member_since || member.created_at;
|
||||
const { isFieldEnabled } = useDirectoryConfig();
|
||||
return (
|
||||
<Card className="p-6 bg-background rounded-3xl border border-[var(--neutral-800)] hover:shadow-lg transition-all h-full">
|
||||
{/* Member Tier Badge */}
|
||||
@@ -48,7 +50,7 @@ const MemberCard = ({ member, onViewProfile, tiers }) => {
|
||||
</h3>
|
||||
|
||||
{/* Partner Name */}
|
||||
{member.directory_partner_name && (
|
||||
{isFieldEnabled('directory_partner_name') && member.directory_partner_name && (
|
||||
<div className="flex items-center justify-center gap-2 mb-4">
|
||||
<Heart className="h-4 w-4 text-[var(--orange-light)]" />
|
||||
<span className="text-sm text-brand-purple " style={{ fontFamily: "'Nunito Sans', sans-serif" }}>
|
||||
@@ -58,7 +60,7 @@ const MemberCard = ({ member, onViewProfile, tiers }) => {
|
||||
)}
|
||||
|
||||
{/* Bio */}
|
||||
{member.directory_bio && (
|
||||
{isFieldEnabled('directory_bio') && member.directory_bio && (
|
||||
<p className="text-brand-purple text-center mb-4 line-clamp-3" style={{ fontFamily: "'Nunito Sans', sans-serif" }}>
|
||||
{member.directory_bio}
|
||||
</p>
|
||||
@@ -79,7 +81,7 @@ const MemberCard = ({ member, onViewProfile, tiers }) => {
|
||||
|
||||
{/* Contact Information */}
|
||||
<div className="space-y-3 mb-4">
|
||||
{member.directory_email && (
|
||||
{isFieldEnabled('directory_email') && member.directory_email && (
|
||||
<div className="flex items-center gap-2 text-sm">
|
||||
<Mail className="h-4 w-4 text-brand-purple flex-shrink-0" />
|
||||
<a
|
||||
@@ -92,7 +94,7 @@ const MemberCard = ({ member, onViewProfile, tiers }) => {
|
||||
</div>
|
||||
)}
|
||||
|
||||
{member.directory_phone && (
|
||||
{isFieldEnabled('directory_phone') && member.directory_phone && (
|
||||
<div className="flex items-center gap-2 text-sm">
|
||||
<Phone className="h-4 w-4 text-brand-purple flex-shrink-0" />
|
||||
<a
|
||||
@@ -105,7 +107,7 @@ const MemberCard = ({ member, onViewProfile, tiers }) => {
|
||||
</div>
|
||||
)}
|
||||
|
||||
{member.directory_address && (
|
||||
{isFieldEnabled('directory_address') && member.directory_address && (
|
||||
<div className="flex items-start gap-2 text-sm">
|
||||
<MapPin className="h-4 w-4 text-brand-purple flex-shrink-0 mt-0.5" />
|
||||
<span className="text-brand-purple " style={{ fontFamily: "'Nunito Sans', sans-serif" }}>
|
||||
@@ -116,7 +118,7 @@ const MemberCard = ({ member, onViewProfile, tiers }) => {
|
||||
</div>
|
||||
|
||||
{/* Social Media Links */}
|
||||
{(member.social_media_facebook || member.social_media_instagram || member.social_media_twitter || member.social_media_linkedin) && (
|
||||
{isFieldEnabled('social_media') && (member.social_media_facebook || member.social_media_instagram || member.social_media_twitter || member.social_media_linkedin) && (
|
||||
<div className="pt-4 border-t border-[var(--neutral-800)]">
|
||||
<div className="flex justify-center gap-3">
|
||||
{member.social_media_facebook && (
|
||||
|
||||
Reference in New Issue
Block a user