160 lines
4 KiB
TypeScript
160 lines
4 KiB
TypeScript
// Module ID: 10459
|
|
// Function ID: 80723
|
|
// Name: ChatUpdatesQueue
|
|
// Dependencies: [6, 7, 27, 2]
|
|
|
|
// Module 10459 (ChatUpdatesQueue)
|
|
import _classCallCheck from "_classCallCheck";
|
|
import _defineProperties from "_defineProperties";
|
|
import get_ActivityIndicator from "get ActivityIndicator";
|
|
|
|
const NativeEventEmitter = get_ActivityIndicator.NativeEventEmitter;
|
|
const DCDChatBlockerManager = get_ActivityIndicator.NativeModules.DCDChatBlockerManager;
|
|
let tmp3 = (() => {
|
|
class ChatUpdatesQueue {
|
|
constructor(arg0, arg1) {
|
|
self = this;
|
|
tmp = ChatUpdatesQueue(this, self);
|
|
set = new Set();
|
|
this.blockers = set;
|
|
this.queue = [];
|
|
this.queueStartTimestamp = null;
|
|
this.setOnFlushItem = (onFlushItem) => {
|
|
self.onFlushItem = onFlushItem;
|
|
};
|
|
this.getReactTag = arg0;
|
|
this.onFlushItem = arg1;
|
|
tmp3 = new outer1_2(outer1_3);
|
|
this.eventEmitter = tmp3;
|
|
eventEmitter = this.eventEmitter;
|
|
this.addBlockerSubscription = eventEmitter.addListener("AddBlocker", (reactTag) => {
|
|
reactTag = reactTag.reactTag;
|
|
if (tmp) {
|
|
self.addBlocker(reactTag.blockerId);
|
|
}
|
|
});
|
|
eventEmitter2 = this.eventEmitter;
|
|
this.removeBlockerSubscription = eventEmitter2.addListener("RemoveBlocker", (reactTag) => {
|
|
reactTag = reactTag.reactTag;
|
|
if (tmp) {
|
|
self.removeBlocker(reactTag.blockerId);
|
|
}
|
|
});
|
|
return;
|
|
}
|
|
}
|
|
let obj = {
|
|
key: "hasUpdates",
|
|
value() {
|
|
return this.queue.length > 0;
|
|
}
|
|
};
|
|
const items = [obj, , , , , , , , ];
|
|
obj = {
|
|
key: "isBlocking",
|
|
get() {
|
|
let hasUpdatesResult = this.hasUpdates();
|
|
if (!hasUpdatesResult) {
|
|
hasUpdatesResult = this.blockers.size > 0;
|
|
}
|
|
return hasUpdatesResult;
|
|
}
|
|
};
|
|
items[1] = obj;
|
|
obj = {
|
|
key: "addBlocker",
|
|
value(arg0) {
|
|
if (null != arg0) {
|
|
const self = this;
|
|
const blockers = this.blockers;
|
|
blockers.add(arg0);
|
|
}
|
|
}
|
|
};
|
|
items[2] = obj;
|
|
items[3] = {
|
|
key: "removeBlocker",
|
|
value(arg0) {
|
|
const self = this;
|
|
if (null != arg0) {
|
|
const blockers = self.blockers;
|
|
blockers.delete(arg0);
|
|
if (0 === self.blockers.size) {
|
|
self.flush();
|
|
}
|
|
}
|
|
}
|
|
};
|
|
items[4] = {
|
|
key: "add",
|
|
value(arg0) {
|
|
const self = this;
|
|
if (null == this.queueStartTimestamp) {
|
|
const _Date = Date;
|
|
self.queueStartTimestamp = Date.now();
|
|
}
|
|
const queue = self.queue;
|
|
queue.push(arg0);
|
|
let tmp3 = self.queue.length > 100;
|
|
let tmp4 = null != self.queueStartTimestamp;
|
|
if (tmp4) {
|
|
const _Date2 = Date;
|
|
tmp4 = Date.now() - self.queueStartTimestamp > 30000;
|
|
}
|
|
if (!tmp3) {
|
|
tmp3 = tmp4;
|
|
}
|
|
if (tmp3) {
|
|
const blockers = self.blockers;
|
|
blockers.clear();
|
|
self.flush();
|
|
}
|
|
}
|
|
};
|
|
items[5] = {
|
|
key: "tryFlush",
|
|
value() {
|
|
const self = this;
|
|
if (0 === this.blockers.size) {
|
|
self.flush();
|
|
}
|
|
}
|
|
};
|
|
items[6] = {
|
|
key: "clear",
|
|
value() {
|
|
this.queue = [];
|
|
this.queueStartTimestamp = null;
|
|
}
|
|
};
|
|
items[7] = {
|
|
key: "flush",
|
|
value() {
|
|
const self = this;
|
|
this.queueStartTimestamp = null;
|
|
const queue = this.queue;
|
|
const item = queue.forEach((arg0) => {
|
|
if (null != arg0) {
|
|
const onFlushItem = self.onFlushItem;
|
|
if (null != onFlushItem) {
|
|
onFlushItem.call(self, arg0);
|
|
}
|
|
}
|
|
});
|
|
this.queue = [];
|
|
}
|
|
};
|
|
items[8] = {
|
|
key: "cleanup",
|
|
value() {
|
|
const addBlockerSubscription = this.addBlockerSubscription;
|
|
addBlockerSubscription.remove();
|
|
const removeBlockerSubscription = this.removeBlockerSubscription;
|
|
removeBlockerSubscription.remove();
|
|
}
|
|
};
|
|
return callback(ChatUpdatesQueue, items);
|
|
})();
|
|
const result = require("get ActivityIndicator").fileFinishedImporting("modules/chat/native/ChatUpdatesQueue.tsx");
|
|
|
|
export default tmp3;
|