// A ?share=TOKEN URL shows a read-only view of someone else's project. No // login is needed, so this runs independently of auth. import { useEffect, useState } from 'react'; import { getSharedProject } from '../syncService.js'; export function useSharedView() { const [token] = useState(() => new URLSearchParams(window.location.search).get('share')); const [project, setProject] = useState(null); const [error, setError] = useState(''); useEffect(() => { if (!token) return; getSharedProject(token).then((result) => { if (result.ok) setProject(result.data); else setError(result.error ?? 'This share link is invalid or has been revoked.'); }); }, [token]); return { token, project, error }; }