Files
discord-decomp/sources/modules/parent_tools/RestrictedHoursManager.tsx
T
2026-07-27 16:20:00 +03:00

235 lines
11 KiB
TypeScript

/* Metro module 15647; source: modules/parent_tools/RestrictedHoursManager.tsx; dependencies: [6, 7, 15, 17, 18, 10907, 1878, 5116, 1244, 2224, 1898, 10909, 694, 5188, 15642, 4860, 2] */
function _fun119810(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#119810, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15855:6, offset: 0x0251a42a, size: 381 bytes, params: 8, frame: 20
const env0_0 = require;
const closure = function() {
return FamilyCenterStore.isCurrentUserInRestrictedHours();
};
const handleScheduleUpdate = function() {
checkAndUpdateModal();
scheduleUpcomingWarning();
};
const handleScreenDowntimeReminderChanged = function() {
scheduleUpcomingWarning();
};
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_3 = importDefault(6) /* metro dependency 6 */;
const env0_4 = importDefault(7) /* metro dependency 7 */;
const env0_5 = importDefault(15) /* metro dependency 15 */;
const env0_6 = importDefault(17) /* metro dependency 17 */;
const env0_7 = importDefault(18) /* metro dependency 18 */;
const notificationSettingsStore = importDefault(10907) /* metro dependency 10907: NotificationSettingsStore */;
const userStore = importDefault(1878) /* metro dependency 1878: UserStore */;
const familyCenterStore = importDefault(5116) /* metro dependency 5116: FamilyCenterStore */;
let value = importDefault(4860) /* metro dependency 4860: AutomaticLifecycleManager */;
value = _fun119823(value);
value = new value();
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/parent_tools/RestrictedHoursManager.tsx');
exports.default = value;
exports.getCurrentRestrictedHoursState = closure;
}
function _isNativeReflectConstruct_119811() { // fn#119811, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15855:178, offset: 0x0251a5a7, size: 98 bytes, params: 1, frame: 18
var Boolean;
var prototype;
var valueOf;
var call;
var Reflect;
var construct;
var closure;
var value;
var error;
try {
Boolean = global.Boolean;
prototype = Boolean.prototype;
valueOf = prototype.valueOf;
call = valueOf.call;
Reflect = global.Reflect;
construct = Reflect.construct;
Boolean = global.Boolean;
closure = function() {
};
value = Reflect.apply(construct, Reflect, [Boolean, [], closure]);
value = Reflect.apply(call, valueOf, [value]);
var result = !value;
} catch (error) {
}
return (_isNativeReflectConstruct_119811_isNativeReflectConstruct = function() {
return !!result;
})();
}
function dispatchWarningIfNeeded(a0) { // fn#119815, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15855:485, offset: 0x0251a61c, size: 331 bytes, params: 2, frame: 25
var value3;
var JS_DAY_TO_DAY_OF_WEEK;
var date;
var property;
var moduleValue;
let rule = a0.rule;
const ruleId = rule.ruleId;
let startAtMs = a0.startAtMs;
if ('' + ruleId + ':' + startAtMs !== env0_14) {
rule = a0.rule;
startAtMs = a0.startAtMs;
value3 = (require(1244) /* metro dependency 1244: indexNative */).intl.string((importDefault(2224) /* metro dependency 2224: FamilyCenterMessages */)['0JlDg0']);
JS_DAY_TO_DAY_OF_WEEK = (require(1898) /* metro dependency 1898: FamilyCenterModels */).JS_DAY_TO_DAY_OF_WEEK;
date = new global.Date(startAtMs);
property = JS_DAY_TO_DAY_OF_WEEK[date.getDay()];
moduleValue = require(10909) /* metro dependency 10909: FamilyCenterRestrictedHoursUtils */;
(importDefault(694) /* metro dependency 694: Dispatcher */).dispatch({type: 'RESTRICTED_HOURS_WARNING',
title: value3,
subtitle: ('' + moduleValue.formatDays([property]) + ' ' + (require(10909) /* metro dependency 10909: FamilyCenterRestrictedHoursUtils */).getScheduleRuleDateRange(rule)).trim()});
}
}
function scheduleUpcomingWarning() { // fn#119816, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15855:877, offset: 0x0251a767, size: 435 bytes, params: 1, frame: 21
var restrictedSchedule;
var r6;
var r5;
var currentUser;
var nextStartInfo;
var minutesUntil;
var value8;
var value10;
const value2 = null;
if (value2 != env0_13) {
global.clearTimeout(env0_13);
}
let Date = global.Date;
let date = new Date();
const value5 = undefined;
const familyCenterV3ExperimentModule = require(5188) /* metro dependency 5188: FamilyCenterV3Experiment */;
const getIsFamilyCenterV3Enabled = familyCenterV3ExperimentModule.getIsFamilyCenterV3Enabled;
let object2 = {location: 'RestrictedHoursManager'};
if (Reflect.apply(getIsFamilyCenterV3Enabled, familyCenterV3ExperimentModule, [object2])) {
if (NotificationSettingsStore.screenDowntimeReminder) {
currentUser = UserStore.getCurrentUser();
restrictedSchedule = value2 == currentUser ? value5 : currentUser.restrictedSchedule;
if (value2 == restrictedSchedule) {
r5 = value2;
} else {
nextStartInfo = restrictedSchedule.getNextStartInfo(date);
if (value2 == nextStartInfo) {
r6 = value2;
} else {
object2 = {};
minutesUntil = nextStartInfo.minutesUntil;
object2.minutesUntil = minutesUntil;
Date = global.Date;
value8 = Object.create(Date.prototype, {constructor: {value: Date}});
date = new Date(date);
value10 = (date instanceof Object ? date : value8).setSeconds(0, 0);
minutesUntil = nextStartInfo.minutesUntil;
object2.startAtMs = value10 + 60 * minutesUntil * 1000;
object2.rule = nextStartInfo.rule;
r6 = object2;
}
r5 = r6;
}
} else {
r5 = value2;
}
} else {
r5 = value2;
}
if (value2 != r5) {
if (r5.minutesUntil <= 16) {
dispatchWarningIfNeeded(r5);
env0_13 = global.setTimeout(function() {
env1_13 = null;
scheduleUpcomingWarning();
}, 60000);
} else {
env0_13 = global.setTimeout(_fun119818, global.Math.max(0, 60 * (r5.minutesUntil - 16) * 1000));
}
}
return value5;
}
function checkAndUpdateModal() { // fn#119819, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15855:1603, offset: 0x0251a92f, size: 135 bytes, params: 1, frame: 14
var defaultImport;
var binding;
var moduleValue;
const currentRestrictedHoursState = getCurrentRestrictedHoursState();
if (currentRestrictedHoursState !== env0_11) {
env0_11 = currentRestrictedHoursState;
defaultImport = importDefault(694) /* metro dependency 694: Dispatcher */;
defaultImport.dispatch({type: 'RESTRICTED_HOURS_STATE_CHANGE', isInRestrictedHours: env0_11});
binding = env0_11;
moduleValue = require(15642) /* metro dependency 15642: RestrictedHoursActionCreatorsNative */;
if (binding) {
moduleValue.openRestrictedHoursModal();
} else {
moduleValue.closeRestrictedHoursModal();
}
scheduleUpcomingWarning();
}
}
function handleLogout_119820() { // fn#119820, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15855:1867, offset: 0x0251a9b6, size: 92 bytes, params: 1, frame: 14
(importDefault(694) /* metro dependency 694: Dispatcher */).dispatch({'type': 'RESTRICTED_HOURS_STATE_CHANGE',
'isInRestrictedHours': false});
if (env0_13 != null) {
global.clearTimeout(env0_13);
}
}
function _fun119823(a0) { // fn#119823, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15855:2181, offset: 0x0251aa29, size: 97 bytes, params: 2, frame: 16
const closure = RestrictedHoursManager;
env0_7(closure, a0);
return env0_4(closure, [{key: '_initialize', value: value_119825}, {key: '_terminate', value: value_119826}]);
}
function RestrictedHoursManager(a0) { // fn#119824, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15855:2193, offset: 0x0251aa8a, size: 230 bytes, params: 2, frame: 20
var r0;
var Reflect;
let value = copyRestArgs(0, undefined);
let binding = env1_3;
binding(this, RestrictedHoursManager);
const items = [];
arraySpread(items, value, 0, items);
value = env1_6(RestrictedHoursManager);
binding = env1_5;
if (_isNativeReflectConstruct_119811()) {
Reflect = global.Reflect;
value = Reflect.construct(value, items, env1_6(this).constructor);
r0 = value;
} else {
value = value.apply(this, items);
r0 = value;
}
value = binding(this, r0);
const Map = global.Map;
const map = new Map();
const set = map.set;
const handleScheduleUpdateBinding = handleScheduleUpdate;
value.stores = Reflect.apply(set, map, [UserStore, handleScheduleUpdateBinding]).set(FamilyCenterStore,
handleScheduleUpdateBinding);
value.actions = {POST_CONNECTION_OPEN: handleScheduleUpdateBinding,
CURRENT_USER_UPDATE: handleScheduleUpdateBinding,
NOTIFICATIONS_SET_SCREEN_DOWNTIME_REMINDER: handleScreenDowntimeReminderChanged, LOGOUT: handleLogout_119820};
return value;
}
function value_119825() { // fn#119825, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15855:2802, offset: 0x0251ab70, size: 143 bytes, params: 1, frame: 15
env1_11 = getCurrentRestrictedHoursState();
const defaultImport = importDefault(694) /* metro dependency 694: Dispatcher */;
defaultImport.dispatch({type: 'RESTRICTED_HOURS_STATE_CHANGE', isInRestrictedHours: env1_11});
if (env1_11) {
(require(15642) /* metro dependency 15642: RestrictedHoursActionCreatorsNative */).openRestrictedHoursModal();
}
env1_12 = global.setInterval(checkAndUpdateModal, 60000);
scheduleUpcomingWarning();
}
function value_119826() { // fn#119826, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15855:3058, offset: 0x0251abff, size: 111 bytes, params: 1, frame: 13
if (env1_12 != null) {
global.clearInterval(env1_12);
}
if (env1_13 != null) {
global.clearTimeout(env1_13);
}
(require(15642) /* metro dependency 15642: RestrictedHoursActionCreatorsNative */).closeRestrictedHoursModal();
}