From fb7d9abf3d34f1f31f5e656805e6df895f84650b Mon Sep 17 00:00:00 2001 From: Maksim Sukharev Date: Fri, 9 Jan 2026 13:56:41 +0100 Subject: [PATCH 1/3] fix(vue3): migrate defineEmits to new syntax Signed-off-by: Maksim Sukharev --- src/PublicShareSidebarTrigger.vue | 2 +- src/components/AdminSettings/SignalingServers.vue | 6 +++--- src/components/CalendarEventsDialog.vue | 3 --- src/components/ImportEmailsDialog.vue | 2 +- .../ConversationsList/ConversationsSearchListVirtual.vue | 2 +- .../SearchConversationsResults.vue | 6 +++--- src/components/MediaSettings/MediaDevicesSelector.vue | 4 ++-- src/components/MediaSettings/MediaSettingsTabs.vue | 2 +- src/components/MediaSettings/TransitionExpand.vue | 4 ++-- .../Message/MessageButtonsBar/ScheduledMessageActions.vue | 4 ++-- src/components/PollViewer/PollDraftHandler.vue | 3 ++- src/components/PollViewer/PollEditor.vue | 4 +++- src/components/RightSidebar/RightSidebarContent.vue | 4 ++-- .../RightSidebar/SearchMessages/SearchMessagesTab.vue | 3 ++- src/components/RightSidebar/SharedItems/SharedItemsTab.vue | 2 +- src/components/RightSidebar/Threads/ThreadsTab.vue | 2 +- src/components/UIShared/ConfirmDialog.vue | 2 +- src/components/UIShared/ContactSelectionBubble.vue | 5 ++++- 18 files changed, 32 insertions(+), 28 deletions(-) diff --git a/src/PublicShareSidebarTrigger.vue b/src/PublicShareSidebarTrigger.vue index 4241f5fe4eb..de4758a6025 100644 --- a/src/PublicShareSidebarTrigger.vue +++ b/src/PublicShareSidebarTrigger.vue @@ -28,7 +28,7 @@ const props = defineProps<{ }>() const emit = defineEmits<{ - (event: 'click'): void + click: [] }>() const ariaLabel = computed(() => { diff --git a/src/components/AdminSettings/SignalingServers.vue b/src/components/AdminSettings/SignalingServers.vue index 86115c750bf..d7275bebe3b 100644 --- a/src/components/AdminSettings/SignalingServers.vue +++ b/src/components/AdminSettings/SignalingServers.vue @@ -116,9 +116,9 @@ const props = defineProps<{ }>() const emit = defineEmits<{ - (e: 'update:servers', value: InitialState['spreed']['signaling_servers']['servers']): void - (e: 'update:secret', value: InitialState['spreed']['signaling_servers']['secret']): void - (e: 'update:hideWarning', value: InitialState['spreed']['signaling_servers']['hideWarning']): void + 'update:servers': [value: InitialState['spreed']['signaling_servers']['servers']] + 'update:secret': [value: InitialState['spreed']['signaling_servers']['secret']] + 'update:hideWarning': [value: InitialState['spreed']['signaling_servers']['hideWarning']] }>() const isCacheConfigured = loadState('spreed', 'has_cache_configured') diff --git a/src/components/CalendarEventsDialog.vue b/src/components/CalendarEventsDialog.vue index 710bba50c7e..37de117a182 100644 --- a/src/components/CalendarEventsDialog.vue +++ b/src/components/CalendarEventsDialog.vue @@ -44,9 +44,6 @@ const props = defineProps<{ token: string container?: string }>() -const emit = defineEmits<{ - (event: 'close'): void -}>() const hideTriggers = (triggers: string[]) => [...triggers, 'click'] diff --git a/src/components/ImportEmailsDialog.vue b/src/components/ImportEmailsDialog.vue index d9ee57165c5..822088decf5 100644 --- a/src/components/ImportEmailsDialog.vue +++ b/src/components/ImportEmailsDialog.vue @@ -23,7 +23,7 @@ const props = defineProps<{ }>() const emit = defineEmits<{ - (event: 'close'): void + close: [] }>() const loading = ref(false) diff --git a/src/components/LeftSidebar/ConversationsList/ConversationsSearchListVirtual.vue b/src/components/LeftSidebar/ConversationsList/ConversationsSearchListVirtual.vue index 71ebb741357..1a1a7667aac 100644 --- a/src/components/LeftSidebar/ConversationsList/ConversationsSearchListVirtual.vue +++ b/src/components/LeftSidebar/ConversationsList/ConversationsSearchListVirtual.vue @@ -18,7 +18,7 @@ const props = defineProps<{ }>() const emit = defineEmits<{ - (event: 'select', item: Conversation): void + select: [item: Conversation] }>() const itemHeight = AVATAR.SIZE.DEFAULT + 2 * 4 + 2 * 2 diff --git a/src/components/LeftSidebar/SearchConversationsResults/SearchConversationsResults.vue b/src/components/LeftSidebar/SearchConversationsResults/SearchConversationsResults.vue index d6dbc8e92e9..e3b297a7b05 100644 --- a/src/components/LeftSidebar/SearchConversationsResults/SearchConversationsResults.vue +++ b/src/components/LeftSidebar/SearchConversationsResults/SearchConversationsResults.vue @@ -31,9 +31,9 @@ const props = defineProps<{ }>() const emit = defineEmits<{ - (event: 'abort-search'): void - (event: 'create-new-conversation', searchText: string): void - (event: 'create-and-join-conversation', item: TypeConversation | ParticipantSearchResult): void + 'abort-search': [] + 'create-new-conversation': [searchText: string] + 'create-and-join-conversation': [item: TypeConversation | ParticipantSearchResult] }>() const isCirclesEnabled = loadState('spreed', 'circles_enabled') diff --git a/src/components/MediaSettings/MediaDevicesSelector.vue b/src/components/MediaSettings/MediaDevicesSelector.vue index 3dc080366d9..0b7dacb242e 100644 --- a/src/components/MediaSettings/MediaDevicesSelector.vue +++ b/src/components/MediaSettings/MediaDevicesSelector.vue @@ -28,8 +28,8 @@ const props = withDefaults(defineProps<{ }) const emit = defineEmits<{ - (event: 'refresh'): void - (event: 'update:deviceId', value: string | null | undefined): void + refresh: [] + 'update:deviceId': [value: string | null] }>() const deviceOptions = computed(() => { diff --git a/src/components/MediaSettings/MediaSettingsTabs.vue b/src/components/MediaSettings/MediaSettingsTabs.vue index 90a0900b552..d675fa94801 100644 --- a/src/components/MediaSettings/MediaSettingsTabs.vue +++ b/src/components/MediaSettings/MediaSettingsTabs.vue @@ -23,7 +23,7 @@ const props = defineProps<{ }>() const emit = defineEmits<{ - (event: 'update:active', value?: string): void + 'update:active': [value?: string] }>() /** Whether the tab panel is open */ diff --git a/src/components/MediaSettings/TransitionExpand.vue b/src/components/MediaSettings/TransitionExpand.vue index 1379a85f679..46449e53e2f 100644 --- a/src/components/MediaSettings/TransitionExpand.vue +++ b/src/components/MediaSettings/TransitionExpand.vue @@ -10,8 +10,8 @@ defineProps<{ }>() const emit = defineEmits<{ - (event: 'after-enter'): void - (event: 'after-leave'): void + 'after-enter': [] + 'after-leave': [] }>() diff --git a/src/components/MessagesList/MessagesGroup/Message/MessageButtonsBar/ScheduledMessageActions.vue b/src/components/MessagesList/MessagesGroup/Message/MessageButtonsBar/ScheduledMessageActions.vue index 89fa96a19fc..2f772dd48b1 100644 --- a/src/components/MessagesList/MessagesGroup/Message/MessageButtonsBar/ScheduledMessageActions.vue +++ b/src/components/MessagesList/MessagesGroup/Message/MessageButtonsBar/ScheduledMessageActions.vue @@ -38,8 +38,8 @@ const props = defineProps<{ }>() const emit = defineEmits<{ - (event: 'update:isActionMenuOpen', value: boolean): void - (event: 'edit'): void + 'update:isActionMenuOpen': [value: boolean] + edit: [] }>() const getMessagesListScroller = inject('getMessagesListScroller', () => undefined) diff --git a/src/components/PollViewer/PollDraftHandler.vue b/src/components/PollViewer/PollDraftHandler.vue index f824bbc0551..cd966963da2 100644 --- a/src/components/PollViewer/PollDraftHandler.vue +++ b/src/components/PollViewer/PollDraftHandler.vue @@ -56,8 +56,9 @@ const props = defineProps<{ editorOpened?: boolean container?: string }>() + const emit = defineEmits<{ - (event: 'close'): void + close: [] }>() const pollsStore = usePollsStore() diff --git a/src/components/PollViewer/PollEditor.vue b/src/components/PollViewer/PollEditor.vue index 31c4ff29bd9..a715295e88e 100644 --- a/src/components/PollViewer/PollEditor.vue +++ b/src/components/PollViewer/PollEditor.vue @@ -149,9 +149,11 @@ const props = defineProps<{ canCreatePollDrafts: boolean container?: string }>() + const emit = defineEmits<{ - (event: 'close'): void + close: [] }>() + defineExpose({ fillPollEditorFromDraft, }) diff --git a/src/components/RightSidebar/RightSidebarContent.vue b/src/components/RightSidebar/RightSidebarContent.vue index c70cd9f692f..ed12b2608da 100644 --- a/src/components/RightSidebar/RightSidebarContent.vue +++ b/src/components/RightSidebar/RightSidebarContent.vue @@ -52,8 +52,8 @@ const props = defineProps<{ }>() const emit = defineEmits<{ - (event: 'update:state', value: SidebarContentState): void - (event: 'update:mode', value: 'compact' | 'preview' | 'full'): void + 'update:state': [value: SidebarContentState] + 'update:mode': [value: 'compact' | 'preview' | 'full'] }>() const supportsAvatar = hasTalkFeature('local', 'avatar') diff --git a/src/components/RightSidebar/SearchMessages/SearchMessagesTab.vue b/src/components/RightSidebar/SearchMessages/SearchMessagesTab.vue index ffaa67366d5..7dbae597b95 100644 --- a/src/components/RightSidebar/SearchMessages/SearchMessagesTab.vue +++ b/src/components/RightSidebar/SearchMessages/SearchMessagesTab.vue @@ -42,8 +42,9 @@ import CancelableRequest from '../../../utils/cancelableRequest.js' const props = defineProps<{ isActive: boolean }>() + const emit = defineEmits<{ - (event: 'close'): void + close: [] }>() const searchMessagesTab = ref(null) diff --git a/src/components/RightSidebar/SharedItems/SharedItemsTab.vue b/src/components/RightSidebar/SharedItems/SharedItemsTab.vue index 237abc19e28..de6354ac329 100644 --- a/src/components/RightSidebar/SharedItems/SharedItemsTab.vue +++ b/src/components/RightSidebar/SharedItems/SharedItemsTab.vue @@ -46,7 +46,7 @@ const props = defineProps<{ }>() const emit = defineEmits<{ - (event: 'update:state', value: 'threads'): void + 'update:state': [value: 'threads'] }>() const token = useGetToken() diff --git a/src/components/RightSidebar/Threads/ThreadsTab.vue b/src/components/RightSidebar/Threads/ThreadsTab.vue index 38edddbafc1..7997dd4d8f5 100644 --- a/src/components/RightSidebar/Threads/ThreadsTab.vue +++ b/src/components/RightSidebar/Threads/ThreadsTab.vue @@ -14,7 +14,7 @@ import { EventBus } from '../../../services/EventBus.ts' import { useChatExtrasStore } from '../../../stores/chatExtras.ts' const emit = defineEmits<{ - (event: 'close'): void + close: [] }>() const chatExtrasStore = useChatExtrasStore() diff --git a/src/components/UIShared/ConfirmDialog.vue b/src/components/UIShared/ConfirmDialog.vue index 926b828b670..f4ccff52bcd 100644 --- a/src/components/UIShared/ConfirmDialog.vue +++ b/src/components/UIShared/ConfirmDialog.vue @@ -54,7 +54,7 @@ const props = defineProps() const emit = defineEmits<{ - (event: 'close', value?: unknown): void + close: [value?: unknown] }>() const inputValue = ref(props.inputProps?.value ?? '') diff --git a/src/components/UIShared/ContactSelectionBubble.vue b/src/components/UIShared/ContactSelectionBubble.vue index b4c94b4f047..ade92832166 100644 --- a/src/components/UIShared/ContactSelectionBubble.vue +++ b/src/components/UIShared/ContactSelectionBubble.vue @@ -16,7 +16,10 @@ import { AVATAR } from '../../constants.ts' const props = defineProps<{ participant: Participant | ParticipantSearchResult }>() -const emit = defineEmits(['update']) + +const emit = defineEmits<{ + update: [participant: Participant | ParticipantSearchResult] +}>() // Defines list of locked participants (can not be removed manually const lockedParticipants = inject>('lockedParticipants', ref([])) From 0bd09cbd20d536a6e28408a273f59312d70fd3a0 Mon Sep 17 00:00:00 2001 From: Maksim Sukharev Date: Fri, 9 Jan 2026 19:30:24 +0100 Subject: [PATCH 2/3] fix: update event names to camelCase Signed-off-by: Maksim Sukharev --- .../SearchConversationsResults.vue | 20 +++++++++---------- .../MediaSettings/TransitionExpand.vue | 8 ++++---- src/components/RightSidebar/RightSidebar.vue | 4 +++- .../SharedItems/SharedItemsTab.vue | 4 ++-- 4 files changed, 19 insertions(+), 17 deletions(-) diff --git a/src/components/LeftSidebar/SearchConversationsResults/SearchConversationsResults.vue b/src/components/LeftSidebar/SearchConversationsResults/SearchConversationsResults.vue index e3b297a7b05..48b515b685e 100644 --- a/src/components/LeftSidebar/SearchConversationsResults/SearchConversationsResults.vue +++ b/src/components/LeftSidebar/SearchConversationsResults/SearchConversationsResults.vue @@ -31,9 +31,9 @@ const props = defineProps<{ }>() const emit = defineEmits<{ - 'abort-search': [] - 'create-new-conversation': [searchText: string] - 'create-and-join-conversation': [item: TypeConversation | ParticipantSearchResult] + abortSearch: [] + createNewConversation: [searchText: string] + createAndJoinConversation: [item: TypeConversation | ParticipantSearchResult] }>() const isCirclesEnabled = loadState('spreed', 'circles_enabled') @@ -249,13 +249,13 @@ const iconSize = computed(() => isCompact.value ? AVATAR.SIZE.COMPACT : AVATAR.S :ref="`conversation-${item.data.object.token}`" :item="item.data.object" :compact="isCompact" - @click="emit('abort-search')" /> + @click="emit('abortSearch')" /> + @click="emit('createNewConversation', searchText)"> @@ -268,7 +268,7 @@ const iconSize = computed(() => isCompact.value ? AVATAR.SIZE.COMPACT : AVATAR.S :item="item.data.object" is-search-result :compact="isCompact" - @click="emit('abort-search')" /> + @click="emit('abortSearch')" /> isCompact.value ? AVATAR.SIZE.COMPACT : AVATAR.S :data-nav-id="`user_${item.data.id}`" :name="item.data.object.label" :compact="isCompact" - @click="emit('create-and-join-conversation', item.data.object)"> + @click="emit('createAndJoinConversation', item.data.object)">