fix: use ownerId for group DM detection in MobileDmsScreen

Also fixes the online-friends DM finder which used members.length === 2,
which would incorrectly match a 2-member group DM.
This commit is contained in:
Jannis Braun
2026-03-27 03:56:47 +01:00
parent 5c08c64e23
commit fffef6db49
@@ -107,7 +107,7 @@ export function MobileDmsScreen() {
onClick={() => { onClick={() => {
// Find or create DM with this friend // Find or create DM with this friend
const existingDm = dmChannels.find(dm => const existingDm = dmChannels.find(dm =>
dm.members.length === 2 && dm.members.some(m => m.id === friend.id) !dm.ownerId && dm.members.some(m => m.id === friend.id)
); );
if (existingDm) { if (existingDm) {
handleDmTap(existingDm.id); handleDmTap(existingDm.id);
@@ -142,7 +142,7 @@ export function MobileDmsScreen() {
<div className="flex-1 overflow-y-auto"> <div className="flex-1 overflow-y-auto">
{sortedDms.map(dm => { {sortedDms.map(dm => {
const otherMembers = dm.members.filter(m => m.id !== authUser?.id); const otherMembers = dm.members.filter(m => m.id !== authUser?.id);
const isGroup = dm.members.length > 2; const isGroup = !!dm.ownerId;
const name = isGroup const name = isGroup
? otherMembers.map(m => m.displayName ?? parseFederatedUsername(m.username).baseName).join(', ') ? otherMembers.map(m => m.displayName ?? parseFederatedUsername(m.username).baseName).join(', ')
: otherMembers[0]?.displayName ?? (parseFederatedUsername(otherMembers[0]?.username ?? '').baseName || 'Unknown'); : otherMembers[0]?.displayName ?? (parseFederatedUsername(otherMembers[0]?.username ?? '').baseName || 'Unknown');