Starting to wrap up for the night. Gemini cleaned up the tools and settings section.
This commit is contained in:
@@ -14,7 +14,7 @@
|
||||
// Toggles for collapsible sections
|
||||
let show_meeting_details: boolean = $state(false);
|
||||
let show_live_stats: boolean = $state(false);
|
||||
let show_name_changer: boolean = $state(false);
|
||||
let show_profile_editor: boolean = $state(false);
|
||||
let show_sound_settings: boolean = $state(false);
|
||||
|
||||
let user_id: null | string = $state(null);
|
||||
@@ -35,6 +35,7 @@
|
||||
let disable_raise_hand_sound: boolean = $state(true); // NOTE: Disable by default
|
||||
|
||||
let name_input: string = $state('');
|
||||
let email_input: string = $state('');
|
||||
|
||||
// State for Live Meeting Stats
|
||||
let meeting_participants = $state(new Map<string, any>());
|
||||
@@ -114,13 +115,23 @@
|
||||
);
|
||||
}
|
||||
|
||||
async function handle_name_update() {
|
||||
if (name_input && name_input.trim() !== '' && name_input !== display_name) {
|
||||
console.log(`Jitsi: User updating name from "${display_name}" to "${name_input}"`);
|
||||
display_name = name_input.trim();
|
||||
async function handle_profile_update() {
|
||||
const name_changed = name_input && name_input.trim() !== '' && name_input !== display_name;
|
||||
const email_changed = email_input && email_input.trim() !== '' && email_input !== email;
|
||||
|
||||
if (name_changed || email_changed) {
|
||||
console.log(`Jitsi: User updating profile.`);
|
||||
if (name_changed) {
|
||||
console.log(` - Name from "${display_name}" to "${name_input}"`);
|
||||
display_name = name_input.trim();
|
||||
}
|
||||
if (email_changed) {
|
||||
console.log(` - Email from "${email}" to "${email_input}"`);
|
||||
email = email_input.trim();
|
||||
}
|
||||
await init_jitsi();
|
||||
} else {
|
||||
console.log('Jitsi: Name update skipped. New name is same as old or empty.');
|
||||
console.log('Jitsi: Profile update skipped. No changes detected.');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -243,8 +254,9 @@
|
||||
console.warn('Jitsi: Novi API not configured. Skipping user details/moderator check.');
|
||||
}
|
||||
|
||||
// Set initial value for the name input
|
||||
// Set initial value for the profile editor inputs
|
||||
name_input = display_name;
|
||||
email_input = email;
|
||||
|
||||
// --- All data fetched, now initialize Jitsi ---
|
||||
await init_jitsi();
|
||||
@@ -540,7 +552,7 @@
|
||||
</ul>
|
||||
</div>
|
||||
<div class="mt-1">
|
||||
<h4 class="font-semibold">Participants:</h4>
|
||||
<div class="font-bold">Participants:</div>
|
||||
<ul class="pl-4 list-disc">
|
||||
{#each Array.from(meeting_participants.values()).filter((p) => p.role !== 'moderator') as person (person.id)}
|
||||
<li>{person.displayName}</li>
|
||||
@@ -553,34 +565,45 @@
|
||||
{/if}
|
||||
</div>
|
||||
|
||||
<!-- Change Name -->
|
||||
<!-- Profile -->
|
||||
<div class="mt-2 pt-2 border-t-2 border-dashed border-gray-400">
|
||||
<button
|
||||
onclick={() => (show_name_changer = !show_name_changer)}
|
||||
onclick={() => (show_profile_editor = !show_profile_editor)}
|
||||
class="w-full flex justify-between items-center font-bold text-left"
|
||||
>
|
||||
Change Name
|
||||
<span class="fas {show_name_changer ? 'fa-chevron-up' : 'fa-chevron-down'}"></span>
|
||||
Profile
|
||||
<span class="fas {show_profile_editor ? 'fa-chevron-up' : 'fa-chevron-down'}"></span>
|
||||
</button>
|
||||
{#if show_name_changer}
|
||||
<div class="mt-1 pl-2">
|
||||
<span class="w-full flex flex-row items-center justify-between gap-1">
|
||||
<input
|
||||
type="text"
|
||||
id="display_name_input"
|
||||
bind:value={name_input}
|
||||
class="border rounded px-2 py-1 w-full"
|
||||
placeholder="Enter new display name"
|
||||
/>
|
||||
<button
|
||||
onclick={handle_name_update}
|
||||
class="px-2 py-1 bg-green-200 text-white rounded hover:bg-green-400"
|
||||
title="Update your display name"
|
||||
>
|
||||
<span class="fas fa-user-edit" aria-hidden="true"></span>
|
||||
<span class="sr-only">Update Display Name</span>
|
||||
</button>
|
||||
</span>
|
||||
{#if show_profile_editor}
|
||||
<div class="mt-1 pl-2 space-y-2">
|
||||
<div>
|
||||
<label for="display_name_input" class="block font-semibold">Name:</label>
|
||||
<input
|
||||
type="text"
|
||||
id="display_name_input"
|
||||
bind:value={name_input}
|
||||
class="border rounded px-2 py-1 w-full"
|
||||
placeholder="Enter new display name"
|
||||
/>
|
||||
</div>
|
||||
<div>
|
||||
<label for="email_input" class="block font-semibold">Email:</label>
|
||||
<input
|
||||
type="email"
|
||||
id="email_input"
|
||||
bind:value={email_input}
|
||||
class="border rounded px-2 py-1 w-full"
|
||||
placeholder="Enter new email"
|
||||
/>
|
||||
</div>
|
||||
<button
|
||||
onclick={handle_profile_update}
|
||||
class="w-full mt-1 px-2 py-1 bg-green-500 text-white rounded hover:bg-green-600"
|
||||
title="Update your profile"
|
||||
>
|
||||
<span class="fas fa-user-edit" aria-hidden="true"></span>
|
||||
Update Profile
|
||||
</button>
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
@@ -666,7 +689,9 @@
|
||||
{/if}
|
||||
</div>
|
||||
|
||||
<div class="mt-2 pt-2 border-t-2 border-dashed border-gray-400">
|
||||
<div class="
|
||||
flex flex-col sm:flex-row gap-1 items-center justify-center w-full
|
||||
mt-2 pt-2 border-t-2 border-dashed border-gray-400">
|
||||
|
||||
<button
|
||||
class="mt-2 px-2 py-1 bg-orange-200 text-white rounded hover:bg-orange-400"
|
||||
|
||||
Reference in New Issue
Block a user