This commit is contained in:
Kris Hu 2025-09-13 08:17:54 +05:30 committed by GitHub
commit 866dc3ac4d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -1,7 +1,7 @@
import { useAtomValue } from 'jotai'; import { useAtomValue } from 'jotai';
import React, { ReactNode, useCallback, useEffect, useRef } from 'react'; import React, { ReactNode, useCallback, useEffect, useRef } from 'react';
import { useNavigate } from 'react-router-dom'; import { useNavigate } from 'react-router-dom';
import { RoomEvent, RoomEventHandlerMap } from 'matrix-js-sdk'; import { RoomEvent, RoomEventHandlerMap, SetPresence } from 'matrix-js-sdk';
import { roomToUnreadAtom, unreadEqual, unreadInfoToUnread } from '../../state/room/roomToUnread'; import { roomToUnreadAtom, unreadEqual, unreadInfoToUnread } from '../../state/room/roomToUnread';
import LogoSVG from '../../../../public/res/svg/cinny.svg'; import LogoSVG from '../../../../public/res/svg/cinny.svg';
import LogoUnreadSVG from '../../../../public/res/svg/cinny-unread.svg'; import LogoUnreadSVG from '../../../../public/res/svg/cinny-unread.svg';
@ -253,6 +253,29 @@ function MessageNotifications() {
); );
} }
function UpdatePresence() {
const mx = useMatrixClient();
useEffect(() => {
const onFocus = () => {
mx.setSyncPresence(SetPresence.Online);
};
const onBlur = () => {
mx.setSyncPresence(SetPresence.Unavailable);
}
window.addEventListener("focus", onFocus);
window.addEventListener("blur", onBlur);
onFocus();
return () => {
window.removeEventListener("focus", onFocus);
window.removeEventListener("blur", onBlur);
};
}, [mx]);
return null;
}
type ClientNonUIFeaturesProps = { type ClientNonUIFeaturesProps = {
children: ReactNode; children: ReactNode;
}; };
@ -265,6 +288,7 @@ export function ClientNonUIFeatures({ children }: ClientNonUIFeaturesProps) {
<FaviconUpdater /> <FaviconUpdater />
<InviteNotifications /> <InviteNotifications />
<MessageNotifications /> <MessageNotifications />
<UpdatePresence />
{children} {children}
</> </>
); );