// app/(workout)/template/[id]/social.tsx import React, { useState } from 'react'; import { View, ScrollView, ActivityIndicator } from 'react-native'; import { Text } from '@/components/ui/text'; import { Button } from '@/components/ui/button'; import { Badge } from '@/components/ui/badge'; import { Card, CardContent } from '@/components/ui/card'; import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar'; import { MessageCircle, ThumbsUp } from 'lucide-react-native'; import { useTemplate } from './_layout'; // Mock social feed data const mockSocialFeed = [ { id: 'social1', userName: 'FitnessFanatic', userAvatar: 'https://randomuser.me/api/portraits/men/32.jpg', pubkey: 'npub1q8s7vw...', timestamp: new Date(Date.now() - 3600000 * 2), // 2 hours ago content: 'Just crushed this Full Body workout! New PR on bench press 🎉', metrics: { duration: 58, // in minutes volume: 4500, // total weight exercises: 5 }, likes: 12, comments: 3 }, { id: 'social2', userName: 'StrengthJourney', userAvatar: 'https://randomuser.me/api/portraits/women/44.jpg', pubkey: 'npub1z92r3...', timestamp: new Date(Date.now() - 3600000 * 24), // 1 day ago content: 'Modified this workout with extra leg exercises. Feeling the burn!', metrics: { duration: 65, volume: 5200, exercises: "5+2" }, likes: 8, comments: 1 }, { id: 'social3', userName: 'GymCoach', userAvatar: 'https://randomuser.me/api/portraits/men/62.jpg', pubkey: 'npub1xne8q...', timestamp: new Date(Date.now() - 3600000 * 48), // 2 days ago content: 'Great template for beginners! I recommend starting with lighter weights.', metrics: { duration: 45, volume: 3600, exercises: 5 }, likes: 24, comments: 7 }, { id: 'social4', userName: 'WeightLifter', userAvatar: 'https://randomuser.me/api/portraits/women/28.jpg', pubkey: 'npub1r72df...', timestamp: new Date(Date.now() - 3600000 * 72), // 3 days ago content: 'Second time doing this workout. Improved my squat form significantly!', metrics: { duration: 52, volume: 4100, exercises: 5 }, likes: 15, comments: 2 } ]; // Social Feed Item Component function SocialFeedItem({ item }: { item: typeof mockSocialFeed[0] }) { return ( {/* User info and timestamp */} {item.userName.substring(0, 2)} {item.userName} {item.timestamp.toLocaleDateString()} {item.pubkey.substring(0, 10)}... {/* Post content */} {item.content} {/* Workout metrics */} Duration {item.metrics.duration} min Volume {item.metrics.volume} lbs Exercises {item.metrics.exercises} {/* Actions */} ); } export default function SocialTab() { const template = useTemplate(); const [isLoading, setIsLoading] = useState(false); return ( Recent Activity Nostr {isLoading ? ( Loading activity... ) : mockSocialFeed.length > 0 ? ( mockSocialFeed.map((item) => ( )) ) : ( No social activity found This workout hasn't been shared on Nostr yet )} ); }