blob: 656de6ecfeb5a07a92a21e045d5e9b45bc069cab (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
import { addPostListener, addPostResponder, JQueryAjaxResponse } from "@/shared/intercept-jquery-ajax";
/** Caches the login area HTML to avoid re-fetching it on subsequent requests. */
let loginAreaHTML: JQueryAjaxResponse | null = null;
/**
* Intercepts `viewLoginAreaAction` AJAX requests and serves the cached HTML
* if available, avoiding an unnecessary network round-trip.
*/
addPostResponder(
"viewLoginAreaAction",
function(_args): JQueryAjaxResponse | null {
return loginAreaHTML;
}
);
/**
* Listens for successful `viewLoginAreaAction` responses and stores the
* returned HTML so the responder above can serve it from cache later.
*/
addPostListener(
"viewLoginAreaAction",
function(_args, result): void {
if (result.textStatus === "success")
loginAreaHTML = result;
},
false
);
|