44 lines
1.6 KiB
TypeScript
44 lines
1.6 KiB
TypeScript
import { MiniProfile } from "../../interface/responseType/MiniProfile";
|
|
import CommonUtils from "../utils/CommonUtils";
|
|
import Provider from "../provider/Provider";
|
|
import ResponseInject from "../../interface/ResponseInject";
|
|
import { Injectable } from "../../container/Injectable";
|
|
import ClassName from "../../container/ClassName";
|
|
import LocalConfigWrapper from "../LocalConfigWrapper";
|
|
|
|
/**
|
|
* fetch 事件监听回调
|
|
*/
|
|
@Injectable()
|
|
@ClassName("FetchEventCallback")
|
|
export default class FetchEventCallback extends Provider implements ResponseInject {
|
|
className = "FetchEventCallback";
|
|
|
|
constructor(
|
|
private readonly localConfigWrapper: LocalConfigWrapper,
|
|
private readonly commonUtils: CommonUtils,
|
|
) {
|
|
super();
|
|
}
|
|
|
|
/**
|
|
* fetch 返回后处理
|
|
* @param url
|
|
* @param response
|
|
*/
|
|
public responseHandler(url: string, response) {
|
|
// mini profile 中添加上次动作
|
|
if (url.includes('profiles.php?step=getUserNameContextMenu') && this.localConfigWrapper.config.ShowMiniProfLastAct) {
|
|
window.setTimeout(async () => {
|
|
let cont = CommonUtils.querySelector('[class*=profile-mini-_userProfileWrapper___]');
|
|
let resp: MiniProfile = response.json as MiniProfile;
|
|
let newNode = document.createElement('div');
|
|
let formatted = this.commonUtils.secondsFormat(resp.user.lastAction.seconds);
|
|
|
|
newNode.innerText = '上次动作: ' + formatted;
|
|
(await cont).append(newNode);
|
|
}, 0);
|
|
}
|
|
}
|
|
}
|