Added opaque join-token support across backend and frontend: new migration/model/service/endpoints, guest controllers now resolve tokens, and the demo seeder seeds a token. Tenant event details list/manage tokens with copy/revoke actions, and the guest PWA uses tokens end-to-end (routing, storage, uploads, achievements, etc.). Docs TODO updated to reflect completed steps.

This commit is contained in:
Codex Agent
2025-10-12 10:32:37 +02:00
parent d04e234ca0
commit 9394c3171e
73 changed files with 3277 additions and 911 deletions

View File

@@ -3,14 +3,14 @@ import { useParams } from 'react-router-dom';
import { fetchEvent, EventData } from '../services/eventApi';
export function useEventData() {
const { slug } = useParams<{ slug: string }>();
const { token } = useParams<{ token: string }>();
const [event, setEvent] = useState<EventData | null>(null);
const [loading, setLoading] = useState(true);
const [error, setError] = useState<string | null>(null);
useEffect(() => {
if (!slug) {
setError('No event slug provided');
if (!token) {
setError('No event token provided');
setLoading(false);
return;
}
@@ -19,7 +19,7 @@ export function useEventData() {
try {
setLoading(true);
setError(null);
const eventData = await fetchEvent(slug);
const eventData = await fetchEvent(token);
setEvent(eventData);
} catch (err) {
console.error('Failed to load event:', err);
@@ -30,11 +30,11 @@ export function useEventData() {
};
loadEvent();
}, [slug]);
}, [token]);
return {
event,
loading,
error,
};
}
}