chore: Enable Participating tab for conversations (#11714)

## Summary

This PR enables the **Participating** conversation view in the main
sidebar and keeps the behavior aligned with existing conversation views.

## What changed

- Added **Participating** under Conversations in the new sidebar.
- Added a guard in conversation realtime `addConversation` flow so
generic `conversation.created` events are not injected while the user is
on Participating view.
- Added participating route mapping in conversation-list redirect helper
so list redirects resolve correctly to `/participating/conversations`.

## Scope notes

- Kept changes minimal and consistent with current `develop` behavior.
- No additional update-event filtering was added beyond what existing
views already do.

---------


Co-authored-by: Sivin Varghese <64252451+iamsivin@users.noreply.github.com>
Co-authored-by: iamsivin <iamsivin@gmail.com>
This commit is contained in:
Sojan Jose
2026-04-15 17:03:39 +05:30
committed by GitHub
parent 3f9f054c43
commit b96bf41234
13 changed files with 216 additions and 9 deletions

View File

@@ -102,6 +102,19 @@ const getters = {
return isUnAssigned && shouldFilter;
});
},
getParticipatingChats: (_state, _, __, rootGetters) => activeFilters => {
const currentUserId = rootGetters.getCurrentUser?.id;
const getWatchers = rootGetters['conversationWatchers/getByConversationId'];
return _state.allConversations.filter(conversation => {
const watchers = getWatchers(conversation.id);
// Watchers are only loaded for the conversation open in the detail
// panel. If loaded and current user is not in them, filter it out.
if (watchers && !watchers.some(w => w.id === currentUserId)) {
return false;
}
return applyPageFilters(conversation, activeFilters);
});
},
getAllStatusChats: (_state, _, __, rootGetters) => activeFilters => {
const currentUser = rootGetters.getCurrentUser;
const currentUserId = rootGetters.getCurrentUser.id;