+
IIOS P8 — Meeting Studio
+
+ A meeting owns calendar semantics. No transcript/summary/action-item exists until every attendee grants recording consent (KG-14).
+
+
+
+
+ {meeting && (
+
+
2 · {meeting.title} — consent & transcript
+
+
+ {(meeting.participants ?? []).map((p) => (
+
+ | {p.role} · {p.actorRefId?.slice(0, 8)} |
+ {p.recordingConsent} |
+ visibility {p.visibility} |
+
+
+
+ |
+
+ ))}
+
+
+
+
+
+
+ {busy &&
{busy}
}
+
+ )}
+
+ {meeting && (
+
+
3 · Action items (inbox follow-ups)
+ {actionItems.length === 0 &&
None yet — summarize a consented meeting.
}
+
+ {actionItems.map((a) => (
+ - {a.actionItem?.title ?? a.actionItemId} — {a.status}
+ ))}
+
+
+ )}
+
+ );
+}
diff --git a/apps/meeting-studio/src/main.tsx b/apps/meeting-studio/src/main.tsx
new file mode 100644
index 0000000..cd5dd01
--- /dev/null
+++ b/apps/meeting-studio/src/main.tsx
@@ -0,0 +1,32 @@
+import { createRoot } from 'react-dom/client';
+import { MeetingProvider } from '@insignia/iios-meeting-web';
+import { useEffect, useState } from 'react';
+import { App, SERVICE } from './App';
+
+const APP_ID = 'portal-demo';
+
+async function devToken(userId: string): Promise