diff --git a/public/images/meet-icons/chat.svg b/public/images/meet-icons/chat.svg
new file mode 100644
index 0000000..f76b49c
--- /dev/null
+++ b/public/images/meet-icons/chat.svg
@@ -0,0 +1,2 @@
+
+
diff --git a/public/images/meet-icons/close-breakout.svg b/public/images/meet-icons/close-breakout.svg
new file mode 100644
index 0000000..c028f2f
--- /dev/null
+++ b/public/images/meet-icons/close-breakout.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/images/meet-icons/lock.svg b/public/images/meet-icons/lock.svg
new file mode 100644
index 0000000..0ee6026
--- /dev/null
+++ b/public/images/meet-icons/lock.svg
@@ -0,0 +1,2 @@
+
+
diff --git a/public/images/meet-icons/react.svg b/public/images/meet-icons/react.svg
new file mode 100644
index 0000000..5562a9e
--- /dev/null
+++ b/public/images/meet-icons/react.svg
@@ -0,0 +1,2 @@
+
+
diff --git a/public/images/meet-icons/share.svg b/public/images/meet-icons/share.svg
new file mode 100644
index 0000000..a1b699f
--- /dev/null
+++ b/public/images/meet-icons/share.svg
@@ -0,0 +1,4 @@
+
+
diff --git a/public/images/meet-icons/start-breakout.svg b/public/images/meet-icons/start-breakout.svg
new file mode 100644
index 0000000..71f2517
--- /dev/null
+++ b/public/images/meet-icons/start-breakout.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/images/meet-icons/upload-file.svg b/public/images/meet-icons/upload-file.svg
index e2f7351..55a0bf3 100644
--- a/public/images/meet-icons/upload-file.svg
+++ b/public/images/meet-icons/upload-file.svg
@@ -1,4 +1,2 @@
-
+
diff --git a/resources/js/meet-room.js b/resources/js/meet-room.js
index 642708c..bb84fa8 100644
--- a/resources/js/meet-room.js
+++ b/resources/js/meet-room.js
@@ -31,6 +31,9 @@ function meetRoom() {
chatInput: '',
shareOpen: false,
shareCopied: false,
+ breakoutModalOpen: false,
+ breakoutCount: '4',
+ endMeetingConfirmOpen: false,
joinUrl: '',
passcode: '',
roomTitle: '',
@@ -446,18 +449,54 @@ function meetRoom() {
async createBreakouts() {
if (!this.isHost || !this.config.breakoutsCreateUrl) return;
- const count = parseInt(prompt('Number of breakout rooms?', '4') || '0', 10);
- if (!count) return;
+ this.breakoutCount = '4';
+ this.breakoutModalOpen = true;
+ this.featuresOpen = false;
+ },
+
+ async submitBreakouts() {
+ if (!this.isHost || !this.config.breakoutsCreateUrl) return;
+
+ const count = parseInt(this.breakoutCount, 10);
+ if (!count || count < 1) return;
+
await fetch(this.config.breakoutsCreateUrl, {
method: 'POST',
headers: this.headers(),
body: JSON.stringify({ count }),
});
+
+ this.breakoutModalOpen = false;
},
async closeBreakouts() {
if (!this.isHost || !this.config.breakoutsCloseUrl) return;
await fetch(this.config.breakoutsCloseUrl, { method: 'POST', headers: this.headers() });
+ this.featuresOpen = false;
+ },
+
+ openUploadPicker() {
+ document.getElementById('meet-file-input')?.click();
+ this.featuresOpen = false;
+ },
+
+ async toggleRecordingFromMenu() {
+ await this.toggleRecording();
+ this.featuresOpen = false;
+ },
+
+ async toggleLockFromMenu() {
+ await this.toggleLock();
+ this.featuresOpen = false;
+ },
+
+ openEndMeetingConfirm() {
+ this.endMeetingConfirmOpen = true;
+ },
+
+ submitEndMeeting() {
+ document.getElementById('meet-end-form')?.requestSubmit();
+ this.endMeetingConfirmOpen = false;
},
async uploadFile(event) {
diff --git a/resources/views/components/meet/room/menu-item.blade.php b/resources/views/components/meet/room/menu-item.blade.php
new file mode 100644
index 0000000..cfc4db6
--- /dev/null
+++ b/resources/views/components/meet/room/menu-item.blade.php
@@ -0,0 +1,17 @@
+@props(['icon' => null, 'title', 'subtitle' => null])
+
+
diff --git a/resources/views/meet/room/show.blade.php b/resources/views/meet/room/show.blade.php
index a2c0fbe..e655739 100644
--- a/resources/views/meet/room/show.blade.php
+++ b/resources/views/meet/room/show.blade.php
@@ -63,7 +63,7 @@
REC
@@ -110,7 +110,7 @@
-
+
@@ -187,7 +187,7 @@
-
- @if ($participant->isHost())
-
-
- @endif
@if ($participant->isHost())
-
How many breakout rooms should be created?
+ +All participants will be disconnected and the session will close.
+