diff --git a/app/carnet/page.tsx b/app/carnet/page.tsx index b835aa49..947b3675 100644 --- a/app/carnet/page.tsx +++ b/app/carnet/page.tsx @@ -9,6 +9,7 @@ import { Editor } from "@/components/carnet/editor"; import { PanelResizer } from "@/components/carnet/panel-resizer"; import { useMediaQuery } from "@/hooks/use-media-query"; import { ContactsView } from '@/components/carnet/contacts-view'; +import { X, Menu } from "lucide-react"; // Layout modes export enum PaneLayout { @@ -139,10 +140,29 @@ export default function CarnetPage() { throw new Error('Failed to fetch notes'); } const data = await response.json(); - setNotes(data); + if (selectedFolder === 'Contacts') { + // For contacts, parse the VCF files + const parsedContacts = await Promise.all( + data.map(async (file: any) => { + const contentResponse = await fetch(`/api/nextcloud/files/content?id=${file.filename}`); + if (contentResponse.ok) { + const content = await contentResponse.text(); + return parseVCard(content); + } + return null; + }) + ); + setContacts(parsedContacts.filter(Boolean)); + } else { + setNotes(data); + } } catch (error) { - console.error('Error fetching notes:', error); - setNotes([]); + console.error('Error fetching data:', error); + if (selectedFolder === 'Contacts') { + setContacts([]); + } else { + setNotes([]); + } } finally { setIsLoadingNotes(false); } @@ -343,17 +363,12 @@ export default function CarnetPage() { {/* Navigation Panel */} {showNav && ( <> -