import React, { useState, useEffect } from 'react'; import { motion } from 'framer-motion'; import { useNavigate } from 'react-router-dom'; import { ArrowLeft, Broadcast, BookOpen, Users, ArrowSquareOut, } from '@phosphor-icons/react'; import piml from 'piml'; import Seo from '../components/Seo'; import GenerativeArt from '../components/GenerativeArt'; import BrutalistModal from '../components/BrutalistModal'; import TransmissionTile from '../components/TransmissionTile'; const FriendsPage = () => { const [data, setData] = useState({}); const [selectedItem, setSelectedItem] = useState(null); const [isModalOpen, setIsModalOpen] = useState(false); const navigate = useNavigate(); useEffect(() => { const fetchData = async () => { try { const response = await fetch('/about-me/transmissions.piml'); if (response.ok) { const text = await response.text(); const parsed = piml.parse(text); setData(parsed); } } catch (error) { console.error('Failed to load links:', error); } }; fetchData(); }, []); const handleTileClick = (item) => { setSelectedItem(item); setIsModalOpen(true); }; const getCategoryIcon = (key) => { switch (key) { case 'friends': return ( ); case 'books': return ( ); default: return ( ); } }; const getCategoryLabel = (key) => { switch (key) { case 'friends': return 'Parallel Realities'; case 'books': return 'Archive Access'; default: return key.charAt(0).toUpperCase() + key.slice(1); } }; return (
{/* Structural Grid Background */}
{/* Decorative Art Background - Increased visibility */}
{/* Scanline Effect */}
setIsModalOpen(false)} maxWidth="max-w-4xl" title={ {selectedItem?.title} } > {' '}
{/* Left Side: All Generative Art */}
{/* Aesthetic Overlays */}
{/* Right Side: Detailed Transmission Data */}
Secure Transmission
{selectedItem?.author && (

Origin: {selectedItem.author}

)}
{selectedItem?.description && (

"{selectedItem.description}"

)}
{selectedItem?.url && ( )} {/* Subtle Corner Decoration */}
{/* Navigation */}

Friends of the{' '} Show

Signals from parallel realities and archived transmissions from the digital garden.

{Object.entries(data).map(([key, content], idx) => { let items = []; if (Array.isArray(content)) { items = content; } else if ( content && typeof content === 'object' && content.item ) { items = Array.isArray(content.item) ? content.item : [content.item]; } if (items.length === 0) return null; return (
{getCategoryIcon(key)}

{getCategoryLabel(key)}

Section_{idx + 1}

Transmissions detected in the {key} sector.

{items.map((item, iIdx) => ( ))}
); })}
); }; export default FriendsPage;