-
-
+ {/* โโ Key stats highlight strip โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ */}
+ {highlights.length > 0 && (
+
+ {highlights.map(def => (
+
+
+ {def.type === 'decimal' ? Number(stats[def.key]).toFixed(2) : stats[def.key]}
+
+
+ {def.label}
+
+
+ ))}
+
+ )}
+
+ {/* โโ Sport selector (multi-sport athletes) โโโโโโโโโโโโโโโโโ */}
+ {user.sports?.length > 1 && (
+
+ {user.sports.map(s => (
+
+ ))}
+
+ )}
+
+ {/* โโ Content tabs โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ */}
+
+ {tabs.map(t => (
+
+ ))}
+
+
+ {/* โโ Stats tab โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ */}
+ {activeTab === 'stats' && (
+
+ {/* Table header row */}
+
+
+ {sportMeta?.emoji} {sportMeta?.name} โ Season Stats
+
+ {position && (
+
+ {position}
+
+ )}
+
+
+ {numericDefs.length > 0 ? (
+
+
+
+
+ {numericDefs.map(def => (
+ | h.key === def.key) ? sportColor : undefined,
+ }}>
+ {def.label}
+ |
+ ))}
+
+
+
+
+ {numericDefs.map(def => (
+ | h.key === def.key) ? 800 : 500,
+ fontSize: highlights.some(h => h.key === def.key) ? 16 : 14,
+ color: highlights.some(h => h.key === def.key) ? sportColor : 'var(--text-primary)',
+ }}>
+ {fmtStat(stats[def.key], def.type)}
+ |
+ ))}
+
+
+
+
+ ) : (
+
+ No stats recorded yet
+
+ )}
+
+ )}
+
+ {/* โโ Biometrics tab โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ */}
+ {activeTab === 'biometrics' && (
+
+
+ Physical Measurements
+
+
+ {BIOMETRIC_FIELDS.map(f => {
+ const val = user.biometrics?.[f.key];
+ if (!val && val !== 0) return null;
+ return (
+
+
{f.label}
+
+ {f.type === 'decimal' ? Number(val).toFixed(1) : val}
+
+
+ );
+ })}
)}
- {/* Biometrics */}
-
-
Biometrics
-
- {BIOMETRIC_FIELDS.map(f => {
- const val = user.biometrics?.[f.key];
- if (!val && val !== 0) return null;
- return (
-
-
{f.label}
-
- {f.type === 'decimal' ? Number(val).toFixed(1) : val}
-
+ {/* โโ Contact tab (logged-in only) โโโโโโโโโโโโโโโโโโโโโโโโโโโ */}
+ {activeTab === 'contact' && isLoggedIn && (
+
+
+
+ Contact Details
+
+
+
+
Email
+
{user.email || 'โ'}
- );
- })}
-
-
-
- {/* Sport stats */}
-
-
Sport Statistics
-
- {user.sports?.length > 1 && (
-
- {user.sports.map(s => (
-
- ))}
+
+
Phone
+
{user.phone || 'โ'}
+
+
- )}
-
- {statDefs.map(def => {
- const val = stats[def.key];
- if (val === undefined || val === null) return null;
- const display = def.type === 'decimal' ? Number(val).toFixed(2) : String(val);
- if (display === '0' && def.type !== 'text') return null;
- return (
-
-
{def.label}
-
{display}
+ {user.socials && Object.values(user.socials).some(Boolean) && (
+
+
+ Social Media
- );
- })}
+
+ {Object.entries(user.socials).filter(([, handle]) => handle).map(([platform, handle]) => (
+
+
{SOCIAL_ICONS[platform] || '๐'}
+
+
{platform}
+
{handle}
+
+
+ ))}
+
+
+ )}
+ )}
+
+
+ โ Back to Athletes
-
โ Back to Athletes
);
}