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 && ( <> -
+
- - {/* Navigation Resizer */} setIsDraggingNav(true)} @@ -363,7 +378,7 @@ export default function CarnetPage() { )} - {/* Notes Panel */} + {/* Notes/Contacts Panel */} {showNotes && ( <>
@@ -372,7 +387,7 @@ export default function CarnetPage() { contacts={contacts} onContactSelect={setSelectedContact} selectedContact={selectedContact} - loading={isLoadingContacts} + loading={isLoadingNotes} /> ) : ( response.json()) - .then(updatedNotes => setNotes(updatedNotes)) - .catch(error => console.error('Error refreshing notes:', error)); + .then(updatedNotes => { + if (selectedFolder === 'Contacts') { + setContacts(updatedNotes); + } else { + setNotes(updatedNotes); + } + }) + .catch(error => console.error('Error refreshing data:', error)); }} />
{/* Mobile Navigation Toggle */} {isMobile && ( -
- - -
+ )}