/ src / api / presence.ts
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  };