import React, { useState, useEffect } from 'react'; import { Card } from '../ui/card'; import { Button } from '../ui/button'; import { TrendingUp, Users, Hash, MoreHorizontal, Play } from 'lucide-react'; import { trackService } from '@/services/trackService'; import { useToast } from '@/context/ToastContext'; import { useAudio } from '@/context/AudioContext'; import { Track } from '@/types/api'; import { logger } from '@/utils/logger'; interface SocialViewProps { onViewProfile: (userId: string | null) => void; } export const SocialView: React.FC = ({ onViewProfile }) => { const { addToast: _addToast } = useToast(); const { playTrack } = useAudio(); const [activeTab, setActiveTab] = useState('feed'); const [feedTracks, setFeedTracks] = useState([]); const [loading, setLoading] = useState(true); useEffect(() => { const loadFeed = async () => { setLoading(true); try { // Using recent tracks as the "Feed" const res = await trackService.list({ limit: 10, sort_by: 'created_at', }); setFeedTracks(res.tracks); } catch (e) { logger.error('Error loading feed tracks', { error: e instanceof Error ? e.message : String(e), stack: e instanceof Error ? e.stack : undefined, }); } finally { setLoading(false); } }; loadFeed(); }, []); return (
{/* Sidebar */}
onViewProfile(null)} >

My Profile

View your stats

{/* Feed Content */}

Community Feed

New uploads from the network

{loading ? (
Loading feed...
) : ( feedTracks.map((track) => (
{track.artist}
uploaded a new track
{/* Track Embed Look */}
playTrack(track)} >

{track.title}

{track.genre || 'Electronic'}

{track.duration}
)) )} {feedTracks.length === 0 && !loading && (
No recent activity.
)}
{/* Right Sidebar */}

Trending Tags

{['#Techno', '#Synthwave', '#NewGear', '#Tutorial'].map((t) => ( {t} ))}
); };