diff --git a/client/src/components/reading/EnhancedReadingView.tsx b/client/src/components/reading/EnhancedReadingView.tsx index c9203e8..3b23b89 100644 --- a/client/src/components/reading/EnhancedReadingView.tsx +++ b/client/src/components/reading/EnhancedReadingView.tsx @@ -246,11 +246,11 @@ export function EnhancedReadingView({ work, translations }: EnhancedReadingViewP

Written in {work.year}

)}

- {work.type} • {work.language} • {work.tags.length} tags + {work.type} • {work.language} • {work.tags?.length || 0} tags

- {work.tags.map(tag => ( + {work.tags?.map(tag => (

Tags

- {work.tags.map(tag => ( + {work.tags?.map(tag => ( ( method: string, url: string, data?: unknown | undefined, -): Promise { +): Promise { const res = await fetch(url, { method, headers: data ? { "Content-Type": "application/json" } : {}, @@ -20,7 +20,7 @@ export async function apiRequest( }); await throwIfResNotOk(res); - return res; + return await res.json(); } type UnauthorizedBehavior = "returnNull" | "throw"; diff --git a/client/src/lib/types.ts b/client/src/lib/types.ts index 39e7039..d59d305 100644 --- a/client/src/lib/types.ts +++ b/client/src/lib/types.ts @@ -82,3 +82,17 @@ export interface ReadingContext { fontSizeClass: string; zenMode: boolean; } + +export interface Annotation { + id: number; + workId: number; + translationId?: number; + lineNumber: number; + userId: number; + userName: string; + userAvatar: string | null; + content: string; + createdAt: Date; + likes: number; + liked: boolean; +} diff --git a/client/src/pages/collections/CreateCollection.tsx b/client/src/pages/collections/CreateCollection.tsx index 137f248..067c24f 100644 --- a/client/src/pages/collections/CreateCollection.tsx +++ b/client/src/pages/collections/CreateCollection.tsx @@ -40,7 +40,7 @@ export default function CreateCollection() { // Create collection mutation const createMutation = useMutation({ mutationFn: async (values: FormValues) => { - return await apiRequest<{ id: number; slug: string }>('POST', '/api/collections', { + return await apiRequest('POST', '/api/collections', { name: values.name, description: values.description || '', isPublic: values.isPublic,