diff --git a/src/components/LobbyScreen.vue b/src/components/LobbyScreen.vue index 9c048e3ce74..4d95f9abdba 100644 --- a/src/components/LobbyScreen.vue +++ b/src/components/LobbyScreen.vue @@ -40,7 +40,6 @@ import moment from '@nextcloud/moment' import NcRichText from '@nextcloud/vue/components/NcRichText' import RoomService from 'vue-material-design-icons/RoomService.vue' import MediaSettings from '../components/MediaSettings/MediaSettings.vue' -import GuestWelcomeWindow from './GuestWelcomeWindow.vue' import { useGetToken } from '../composables/useGetToken.ts' import { futureRelativeTime, ONE_DAY_IN_MS } from '../utils/formattedTime.ts' diff --git a/src/components/MediaSettings/MediaSettings.vue b/src/components/MediaSettings/MediaSettings.vue index 3e416fcefd7..8fa5dbc7694 100644 --- a/src/components/MediaSettings/MediaSettings.vue +++ b/src/components/MediaSettings/MediaSettings.vue @@ -171,7 +171,9 @@ - + @@ -63,7 +63,11 @@ import { useActorStore } from '../stores/actor.ts' import { useGuestNameStore } from '../stores/guestName.js' const { compact = false } = defineProps<{ - compact: boolean + compact?: boolean +}>() + +const emit = defineEmits<{ + (event: 'update', value: string): void }>() const loginUrl = `${generateUrl('/login')}?redirect_url=${encodeURIComponent(window.location.pathname)}` @@ -76,7 +80,7 @@ const usernameInput = useTemplateRef('usernameInput') const guestUserName = ref(getGuestNickname() || '') const isEditingUsername = ref(false) -const actorDisplayName = computed(() => actorStore.displayName || guestUserName.value || t('spreed', 'Guest')) +const actorDisplayName = computed(() => actorStore.displayName || guestUserName.value) const displayNameLabel = computed(() => t('spreed', 'Display name: {name}', { name: `${escapeHtml(actorDisplayName.value)}`, }, { escape: false })) @@ -104,6 +108,7 @@ EventBus.once('joined-conversation', () => { subscribe('user:info:changed', updateDisplayNameFromPublicEvent) onBeforeUnmount(() => { unsubscribe('user:info:changed', updateDisplayNameFromPublicEvent) + updateDisplayName() }) /** Update guest username from public page user menu */ @@ -116,6 +121,9 @@ function updateDisplayNameFromPublicEvent(payload: NextcloudUser) { /** Set guest username locally and send request to server to update for other attendees */ function updateDisplayName() { + if (!guestUserName.value) { + return + } guestNameStore.submitGuestUsername(token.value, guestUserName.value) isEditingUsername.value = false } @@ -129,6 +137,11 @@ function toggleEdit() { }) } } + +// One-way binding to parent component +watch(guestUserName, (newValue) => { + emit('update', newValue) +}, { immediate: true })