+
+
+ Meeting Metadata
+
+
+
+ {metadataItems.map((item, index) => (
+
+
{item.icon}
+
+
+ {item.label}
+
+
{item.value}
+
+
+ ))}
+
+
+ {tags.length > 0 && (
+
+
+ Tags
+
+
+ {tags.map((tag, index) => (
+
+ {tag}
+
+ ))}
+
+
+ )}
+
+ );
+};
+
+export default MeetingMetadata;
diff --git a/client/src/components/meeting-details/MeetingParticipants.jsx b/client/src/components/meeting-details/MeetingParticipants.jsx
new file mode 100644
index 0000000..de624bc
--- /dev/null
+++ b/client/src/components/meeting-details/MeetingParticipants.jsx
@@ -0,0 +1,82 @@
+import React from "react";
+
+const MeetingParticipants = ({ meeting }) => {
+ if (!meeting) return null;
+
+ const participants = meeting.participants || [];
+
+ if (!participants || participants.length === 0) {
+ return (
+
+ {structured.summary && (
+
+
Overview
+
+ {structured.summary}
+
+
+ )}
+
+ {structured.agenda && structured.agenda.length > 0 && (
+
+
Agenda
+
+ {structured.agenda.map((item, index) => (
+ - {item}
+ ))}
+
+
+ )}
+
+ {structured.key_discussions &&
+ structured.key_discussions.length > 0 && (
+
+
+ Key Discussion Points
+
+
+ {structured.key_discussions.map((item, index) => (
+ - {item}
+ ))}
+
+
+ )}
+
+ {structured.decisions && structured.decisions.length > 0 && (
+
+
Major Outcomes
+
+ {structured.decisions.map((item, index) => (
+ - {item}
+ ))}
+
+
+ )}
+
+ {structured.action_items && structured.action_items.length > 0 && (
+
+
Action Items
+
+ {structured.action_items.map((item, index) => (
+ -
+ {typeof item === "string"
+ ? item
+ : `${item.task}${item.owner ? ` - ${item.owner}` : ""}${item.due_date ? ` (Due: ${item.due_date})` : ""}`}
+
+ ))}
+
+
+ )}
+
+ {structured.attendees && structured.attendees.length > 0 && (
+
+
Attendees
+
+ {structured.attendees.join(", ")}
+
+
+ )}
+
+ {structured.notes && (
+
+
Notes
+
+ {structured.notes}
+
+
+ )}
+
+ );
+ };
+
+ const summaryText = typeof summary === "string" ? summary : null;
+ const shouldShowExpandButton = summaryText && summaryText.length > 500;
+
+ return (
+