Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
24ecc2c
feat: filters as tabs pt. 1
emil-wire Nov 13, 2025
583d541
feat: only filter unread conversations instead all of them...
emil-wire Nov 13, 2025
bf0031f
fix: wrong icon?
emil-wire Nov 13, 2025
0afdfd3
feat(tabs): removed previous conversationFilter, replaced with tabs p…
emil-wire Jan 19, 2026
bb2d11b
chore(tabs): linter warnings & typo
emil-wire Nov 13, 2025
68ef0ef
chore(tabs): no need to duplicate stuff
emil-wire Nov 13, 2025
5d447be
chore(tabs): get rid of polling, use amplify instead
emil-wire Nov 13, 2025
eebc3f1
chore(tabs): clarify why recents should always be visible
emil-wire Nov 13, 2025
35f2d57
feat(tabs): accessibility stuffs
emil-wire Nov 13, 2025
dddb65e
chore(tabs): memoization, brittleness fixes
emil-wire Nov 13, 2025
e3573c9
chore(tabs): design fixes
emil-wire Nov 14, 2025
02079e9
fix(tabs): fix to ensure filter for channels is only shown if the tab…
emil-wire Nov 19, 2025
c3b1718
fix(tabs): fix design and icons
emil-wire Nov 19, 2025
14c51ff
chore(tabs): drop memoization
emil-wire Dec 3, 2025
fe74dcc
fix(tabs): restore dividers and rounded filters
emil-wire Jan 19, 2026
611b422
fix(tabs): tune filter dropdown typography
emil-wire Jan 19, 2026
baeed96
Revert "fix(tabs): tune filter dropdown typography"
emil-wire Jan 19, 2026
ab6f049
test(tabs): expand filters test coverage
emil-wire Jan 20, 2026
5636b15
chore(tabs): translation
emil-wire Jan 21, 2026
edc0219
test(tabs): e2e test, updated year
emil-wire Jan 21, 2026
8abea73
Merge branch 'dev' into feat/filters-mono
emil-wire Feb 13, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions apps/webapp/src/i18n/de-DE.json
Original file line number Diff line number Diff line change
Expand Up @@ -713,6 +713,7 @@
"conversationFileUploadOverlayDescription": "Drag and Drop nutzen, um Dateien hinzuzufügen",
"conversationFileUploadOverlayTitle": "Dateien hochladen",
"conversationFileVideoPreviewLabel": "Vorschau der Videodatei für: {src}",
"tabsFilterTooltip": "Sichtbare Tabs anpassen",
"conversationFoldersEmptyText": "Fügen Sie Ihre Unterhaltungen Ordnern hinzu, um organisiert zu bleiben.",
"conversationFoldersEmptyTextLearnMore": "Mehr erfahren",
"conversationFooterArchive": "Archiv",
Expand Down
12 changes: 12 additions & 0 deletions apps/webapp/src/i18n/en-US.json
Original file line number Diff line number Diff line change
Expand Up @@ -713,6 +713,8 @@
"conversationFileUploadOverlayDescription": "Drag & drop to add files",
"conversationFileUploadOverlayTitle": "Upload files",
"conversationFileVideoPreviewLabel": "Video file preview for: {src}",
"tabsFilterHeader": "Show filters",
"tabsFilterTooltip": "Customize visible tabs",
"conversationFoldersEmptyText": "Add your conversations to folders to stay organized.",
"conversationFoldersEmptyTextLearnMore": "Learn more",
"conversationFooterArchive": "Archive",
Expand Down Expand Up @@ -763,9 +765,14 @@
"conversationJustNow": "Just now",
"conversationLabelChannels": "Channels",
"conversationLabelDirects": "1:1 Conversations",
"conversationLabelDrafts": "Drafts",
"conversationLabelFavorites": "Favorites",
"conversationLabelGroups": "Groups",
"conversationLabelMentions": "Mentions",
"conversationLabelPeople": "People",
"conversationLabelPings": "Pings",
"conversationLabelReplies": "Replies",
"conversationLabelUnread": "Unread",
"conversationLearnMoreChannels": "Learn more about channels",
"conversationLikesCaptionPlural": "[bold]{firstUser}[/bold] and [bold]{secondUser}[/bold]",
"conversationLikesCaptionPluralMoreThan2": "[bold]{userNames}[/bold] and [showmore]{number} more[/showmore]",
Expand Down Expand Up @@ -1784,6 +1791,11 @@
"searchConversations": "Search conversations",
"searchConversationsNoResult": "No results found",
"searchConversationsNoResultConnectSuggestion": "Connect with new users or start a new conversation",
"searchDraftsConversations": "Search in drafts",
"searchMentionsConversations": "Search in mentions",
"searchPingsConversations": "Search in pings",
"searchRepliesConversations": "Search in replies",
"searchUnreadConversations": "Search in unread",
"searchCreateGroup": "Create group",
"searchCreateGuestRoom": "Create guest room",
"searchDirectConversations": "Search 1:1 conversations",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,15 @@
*
*/

import {amplify} from 'amplify';

import {MessageRepository} from 'Repositories/conversation/MessageRepository';
import {Conversation} from 'Repositories/entity/Conversation';
import {ContentMessage} from 'Repositories/entity/message/ContentMessage';
import {StorageKey, StorageRepository} from 'Repositories/storage';

export const DRAFT_STATE_CHANGED_EVENT = 'conversation.draft-changed';

export interface DraftState {
editorState: string | null;
messageReply?: ContentMessage;
Expand Down Expand Up @@ -60,6 +64,9 @@ export const saveDraftState = async ({
replyId,
editedMessageId,
});

// Emit event to notify listeners of draft change
amplify.publish(DRAFT_STATE_CHANGED_EVENT, conversation.id);
};

export const loadDraftState = async (
Expand Down

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/*
* Wire
* Copyright (C) 2024 Wire Swiss GmbH
* Copyright (C) 2026 Wire Swiss GmbH
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
Expand Down Expand Up @@ -45,12 +45,14 @@ type ConversationSidebarProps = {
isTeam: boolean;
changeTab: (nextTab: SidebarTabs, folderId?: string) => void;
currentTab: SidebarTabs;
conversations: Conversation[];
groupConversations: Conversation[];
channelConversations: Conversation[];
directConversations: Conversation[];
unreadConversations: Conversation[];
favoriteConversations: Conversation[];
archivedConversations: Conversation[];
draftConversations: Conversation[];
conversationRepository: ConversationRepository;
onClickPreferences: (contentState: ContentState) => void;
showNotificationsBadge: boolean;
Expand All @@ -65,11 +67,13 @@ export const ConversationSidebar = ({
isTeam,
changeTab,
currentTab,
conversations,
groupConversations,
directConversations,
unreadConversations,
favoriteConversations,
archivedConversations,
draftConversations,
conversationRepository,
onClickPreferences,
showNotificationsBadge,
Expand All @@ -88,11 +92,13 @@ export const ConversationSidebar = ({
<ConversationTabs
onChangeTab={changeTab}
currentTab={currentTab}
conversations={conversations}
groupConversations={groupConversations}
directConversations={directConversations}
unreadConversations={unreadConversations}
favoriteConversations={favoriteConversations}
archivedConversations={archivedConversations}
draftConversations={draftConversations}
conversationRepository={conversationRepository}
onClickPreferences={onClickPreferences}
showNotificationsBadge={showNotificationsBadge}
Expand Down
Loading
Loading