presence.ts
1 import { RequestFN } from "~/core/request-function"; 2 import { TabLocation, type SessionHandle } from "~/models"; 3 import { isVersionGte2024_3_9 } from "./private/versions"; 4 5 export const presence = async (session: SessionHandle): Promise<void> => { 6 let request: RequestFN; 7 8 // Since v2024.3.9, we need to replicate the 9 // old behavior of `Presence` request. 10 if (isVersionGte2024_3_9(session.instance.version)) { 11 request = new RequestFN(session, "Navigation", { 12 Signature: { onglet: TabLocation.Presence }, 13 data: { 14 onglet: TabLocation.Presence, 15 ongletPrec: TabLocation.Presence 16 } 17 }); 18 } 19 // Before v2024.3.9, we can directly use `Presence` 20 // request without any issue. 21 else { 22 request = new RequestFN(session, "Presence", { 23 _Signature_: { onglet: TabLocation.Presence } 24 }); 25 } 26 27 await request.send(); 28 };