fix: lceonline invites not showing up (#124)

This commit is contained in:
str1k3r 2026-07-10 19:16:27 -04:00 committed by GitHub
parent 7edcfd33b0
commit ecc377228c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 9 additions and 15 deletions

View file

@ -7,7 +7,7 @@ import { TauriService } from "../../services/TauriService";
interface LceOnlineViewProps {
addFriendTarget?: string | null;
onClearAddFriendTarget?: () => void;
invites?: Array<{ from: string; sessionid: string }>;
invites?: Array<{ inviteid: string; from: { uuid: string; username: string; }; sessionid: string; }>;
}
const LceOnlineView = memo(function LceOnlineView({
addFriendTarget,
@ -198,16 +198,16 @@ const LceOnlineView = memo(function LceOnlineView({
} else if (currentTab === "invites") {
invites.forEach((inv) => {
items.push({
id: `invite_${inv.from}`,
id: `invite_${inv.inviteid}`,
type: "invite",
label: inv.from,
label: inv.from.username,
onClick: () =>
handleAction(async () => {
const sessionId = await lceOnlineService.acceptInvite(inv.from);
setJoinTarget({ sessionId, hostName: inv.from });
const sessionId = await lceOnlineService.acceptInvite(inv.from.username);
setJoinTarget({ sessionId, hostName: inv.from.username });
}),
onClickSecondary: () =>
handleAction(() => lceOnlineService.declineInvite(inv.from)),
handleAction(() => lceOnlineService.declineInvite(inv.from.username)),
});
});
}

View file

@ -2,7 +2,7 @@ import { useState, useEffect, useRef } from "react";
import { lceOnlineService } from "../services/LceOnlineService";
export function useLceOnlineNotifications() {
const [friendRequestMessage, setFriendRequestMessage] = useState<string | null>(null);
const [invites, setInvites] = useState<Array<{ from: string; sessionid: string }>>([]);
const [invites, setInvites] = useState<Array<{ inviteid: string; from: { uuid: string; username: string; }; sessionid: string; }>>([]);
const seenRequests = useRef<Set<string>>(new Set());
useEffect(() => {
let pollInterval: ReturnType<typeof setInterval>;

View file

@ -233,15 +233,9 @@ export class LceOnlineService {
}
}
async getInvites(): Promise<Array<{ from: string; sessionid: string }>> {
async getInvites(): Promise<Array<{ inviteid: string; from: { uuid: string; username: string; }; sessionid: string; }>> {
const res = await this.request<string>("GET", "/getinvites", null);
if (typeof res !== "string") return [];
try {
const parsed = JSON.parse(res);
return Array.isArray(parsed) ? parsed : [];
} catch {
return [];
}
return Array.isArray(res) ? res : [];
}
}