export function useLastViewedUpload() { return useState('last-viewed-upload', () => null) } export interface PendingUploadMedia { id: string type: 'image' | 'video' | 'audio' | 'youtube' | 'twitch' | 'link' url: string | null thumbUrl: string | null } // Beim Tile-Klick schon bekannte Mediendaten, damit die Thread-Seite // vor Eintreffen der API-Antwort ein benanntes Element für die // View-Transition rendern kann export function usePendingUploadMedia() { return useState('pending-upload-media', () => null) } export interface UploadNavContext { uploadId: string fromPath: string | null fromLabel: string | null } // Herkunft der Thread-Navigation (z. B. /user/): beim Tile-Klick gesetzt // und von den Thread-Pfeilen für die Folgeseite weitergereicht. Gilt immer // nur für die in uploadId hinterlegte Seite — ein direkt geöffneter Thread // (Notification, Kommentar-Link, Reload) fällt auf die globale Reihenfolge export function useUploadNavContext() { return useState('upload-nav-context', () => null) }