fix: three code review issues — leaveGroup duplicate, as any casts, federation ownership fallback

- Remove redundant `leaveGroup` API method from client.ts (duplicated `leave`); update MessageList.tsx WelcomeHeader to call `api.dm.leave` directly
- Add optional `type` field to shared `Message` interface so `MessageWithUser` carries it; remove `(msg as any).type` casts in `isSameGroup` and the render branch in MessageList.tsx
- Fix `processOwnershipTransferEvent` in federation.ts: replace `channel.ownerId` fallbacks (pre-update, old owner) with `event.ownership.newOwner.homeUserId` in the db update, dm_owner_updated broadcast, and both system message content payloads
This commit is contained in:
Jannis Braun
2026-03-27 05:50:38 +01:00
parent c3191be4e7
commit 04c665e0f7
4 changed files with 8 additions and 10 deletions
@@ -21,7 +21,7 @@ interface MessageListProps {
}
function isSameGroup(prev: MessageWithUser, curr: MessageWithUser): boolean {
if ((prev as any).type === 'system' || (curr as any).type === 'system') return false;
if (prev.type === 'system' || curr.type === 'system') return false;
if (prev.userId !== curr.userId) return false;
const timeDiff = curr.createdAt - prev.createdAt;
return timeDiff < 5 * 60 * 1000; // 5 minutes
@@ -338,7 +338,7 @@ export function MessageList({ channelId, jumpToMessageId, onJumpComplete }: Mess
<div className="flex-1 h-[1px] bg-border-hard" />
</div>
)}
{(msg as any).type === 'system' ? (
{msg.type === 'system' ? (
<SystemMessage message={msg} />
) : (
<Message
@@ -438,7 +438,7 @@ function WelcomeHeader({ channelId }: { channelId: string }) {
const handleLeaveGroup = async () => {
try {
await api.dm.leaveGroup(channelId);
await api.dm.leave(channelId);
navigate('/channels/@me');
} catch (err) {
console.error('Failed to leave group:', err);