/* @component-map * App — Main container, handles auth, tab switching, layout * Header — Top bar with logo, live indicator, user pill * TabBar — Tab navigation (Received, Sent, New) * SendSelfie — Camera capture and send form * SelfieList — Displays received or sent selfies with pagination * SelfieCard — Individual selfie card display * Toast — Toast notification system * @end-component-map */ import { useAuth, useCollection } from '@deplixo/sdk'; import { Header } from './components/Header.jsx'; import { TabBar } from './components/TabBar.jsx'; import { SendSelfie } from './components/SendSelfie.jsx'; import { SelfieList } from './components/SelfieList.jsx'; import { useCallback, useEffect, useRef, useState } from 'react'; import { Toast } from './components/Toast.jsx'; function App() { const { user, loading: authLoading, logout } = useAuth(); const { items, loading: dataLoading, add } = useCollection('selfies'); const [tab, setTab] = useState('received'); const [toast, setToast] = useState(null); const showToast = useCallback((message, type = 'success') => { setToast({ message, type }); setTimeout(() => setToast(null), 3000); }, []); if (authLoading || !user) { return (