Files
discord-decomp/modules/gateway/DispatcherWorkScheduler.native.tsx
T
2026-11-01 12:12:55 +02:00

61 lines
2.1 KiB
TypeScript

// Metro module 12702 (f12703).
import { WorkIdleDeadline, NATIVE_WORK_DEADLINE_MS, NATIVE_WORK_BACKOFF_MS, DISPATCHER_CALLBACK_MAX_TIME_REMAINING_MS } from "./DispatcherWorkConstants";
import "../../Constants";
import { BasicWorkScheduler } from "./BasicWorkScheduler";
import Dispatcher from "../../Dispatcher";
import { $callWithNewTarget } from "../../_hermes/prelude";
function $mk90274($env) {
return (a0) => {
$env[0]._trackAppBackgrounded(a0.state === $env.$parent[6].BACKGROUND);
};
}
let c8752_8, c8752_7;
let env8752 = {};
class DispatcherWorkScheduler extends BasicWorkScheduler {
constructor() {
let env19982;
const r2 = env19982 = {
$parent: env8752
};
env19982[0] = void 0;
super();
env19982[0] = this;
Dispatcher.subscribe("APP_STATE_UPDATE", $mk90274(r2));
}
_queueIdleCallback() {
let c19983_0;
if (this._enableRequestIdleCallback && !this._criticalWorkScheduled) {
c19983_0 = performance.now();
this._flushIdleHandler = setTimeout(() => {
const r9 = performance.now() - c19983_0;
const _consecutiveFlushesBeforeQueueEmpty = this._consecutiveFlushesBeforeQueueEmpty;
this._processWorkCallback(new WorkIdleDeadline(Math.max(Math.max(0, NATIVE_WORK_DEADLINE_MS - r9) + NATIVE_WORK_BACKOFF_MS * _consecutiveFlushesBeforeQueueEmpty, DISPATCHER_CALLBACK_MAX_TIME_REMAINING_MS), false));
}, 1);
return void 0;
}
return this._processWorkCallback();
}
_clearIdleCallback() {
if (this._flushIdleHandler != null) {
clearTimeout(this._flushIdleHandler);
this._flushIdleHandler = null;
}
}
}
c8752_8 = DispatcherWorkScheduler;
c8752_7 = DispatcherWorkScheduler;
export function createDispatcherWorkScheduler() {
let env19984;
const r2 = env19984 = {
$parent: env8752
};
env19984[0] = void 0;
const prototypeOf = Object.getPrototypeOf(c8752_8);
const r5 = Object.create(c8752_7.prototype);
const r13 = $callWithNewTarget(prototypeOf, r5, c8752_7);
const r14 = r13 instanceof Object ? r13 : r5;
env19984[0] = r14;
Dispatcher.subscribe("APP_STATE_UPDATE", $mk90274(r2));
return r14;
}