decord/alpha/source/modules/parent_tools/RestrictedHoursManager.tsx
2026-10-13 12:43:34 +00:00

194 lines
6.9 KiB
TypeScript

// Module ID: 18716
// Function ID: 18717
// Name: RestrictedHoursManager
// Dependencies: [13076, 1390, 7259, 1126, 2568, 1413, 13078, 584, 18032, 6808, 2]
// Exports: getCurrentRestrictedHoursState
// Module 18716 (RestrictedHoursManager)
import DispatcherDefault from "Dispatcher" /* 584 */;
import intl2 from "intl" /* 1126 */;
import FamilyCenterModels from "FamilyCenterModels" /* 1413 */;
import _modDef2568 from "module_2568" /* 2568 */;
import FamilyCenterRestrictedHoursUtils from "FamilyCenterRestrictedHoursUtils" /* 13078 */;
import RestrictedHoursActionCreators from "RestrictedHoursActionCreators" /* 18032 */;
import NotificationSettingsStore from "NotificationSettingsStore" /* 13076 */;
import UserStore from "UserStore" /* 1390 */;
import FamilyCenterStore from "FamilyCenterStore" /* 7259 */;
import AutomaticLifecycleManager from "AutomaticLifecycleManager" /* 6808 */;
import size from "module_2" /* 2 */;
let isInRestrictedHours, map;
function scheduleUpcomingWarning() {
let date1;
let timeout;
if (null != timeout) {
const _clearTimeout = clearTimeout;
clearTimeout(timeout);
timeout = null;
}
const date = new Date();
let tmp5 = null;
if (NotificationSettingsStore.screenDowntimeReminder) {
const currentUser = UserStore.getCurrentUser();
let restrictedSchedule;
if (currentUser != null) {
restrictedSchedule = currentUser.restrictedSchedule;
}
tmp5 = null;
if (null != restrictedSchedule) {
const nextStartInfo = restrictedSchedule.getNextStartInfo(date);
let tmp11 = null;
const tmp9 = date;
if (null != nextStartInfo) {
const _Date = Date;
const self = this;
const self2 = this;
const obj = { minutesUntil: nextStartInfo.minutesUntil, startAtMs: date1.setSeconds(0, 0) + 60 * nextStartInfo.minutesUntil * 1000, rule: nextStartInfo.rule };
tmp11 = obj;
date1 = new Date(tmp9);
}
tmp5 = tmp11;
}
}
if (null != tmp5) {
if (tmp5.minutesUntil <= 16) {
const _HermesInternal = HermesInternal;
const combined = "" + tmp5.rule.ruleId + ":" + tmp5.startAtMs;
if (combined !== c9) {
const startAtMs = tmp5.startAtMs;
const rule = tmp5.rule;
const intl = intl2.intl;
const _Date2 = Date;
const self3 = this;
const self4 = this;
const stringResult = intl.string(_modDef2568["0JlDg0"]);
const JS_DAY_TO_DAY_OF_WEEK = FamilyCenterModels.JS_DAY_TO_DAY_OF_WEEK;
const date2 = new Date(startAtMs);
const items = [JS_DAY_TO_DAY_OF_WEEK[date2.getDay(date2)]];
const tmp22 = JS_DAY_TO_DAY_OF_WEEK[date2.getDay(date2)];
const obj4 = FamilyCenterRestrictedHoursUtils;
const _HermesInternal2 = HermesInternal;
const formatDaysResult = obj4.formatDays(items);
const obj5 = FamilyCenterRestrictedHoursUtils;
const str4 = "" + formatDaysResult + " " + obj5.getScheduleRuleDateRange(rule);
const trimmed = str4.trim();
const obj2 = { type: "RESTRICTED_HOURS_WARNING", title: stringResult, subtitle: trimmed };
const obj6 = DispatcherDefault;
obj6.dispatch(obj2);
c9 = combined;
}
const _setTimeout2 = setTimeout;
timeout = setTimeout(() => {
c8 = null;
scheduleUpcomingWarning();
}, 60000);
} else {
const _Math = Math;
const _setTimeout = setTimeout;
timeout = setTimeout(() => {
c8 = null;
scheduleUpcomingWarning();
}, Math.max(0, 60 * (tmp5.minutesUntil - 16) * 1000));
}
}
}
function checkAndUpdateModal() {
const result = FamilyCenterStore.isCurrentUserInRestrictedHours();
if (result !== isInRestrictedHours) {
isInRestrictedHours = result;
const obj2 = { type: "RESTRICTED_HOURS_STATE_CHANGE", isInRestrictedHours };
const obj = DispatcherDefault;
obj.dispatch(obj2);
const obj3 = RestrictedHoursActionCreators;
if (isInRestrictedHours) {
const result1 = obj3.openRestrictedHoursModal();
} else {
const result2 = obj3.closeRestrictedHoursModal();
}
scheduleUpcomingWarning();
}
}
function handleLogout() {
let c6 = false;
c9 = null;
const obj = DispatcherDefault;
obj.dispatch({ type: "RESTRICTED_HOURS_STATE_CHANGE", isInRestrictedHours: false });
if (null != c8) {
const _clearTimeout = clearTimeout;
clearTimeout(c8);
c8 = null;
}
}
function handleScheduleUpdate() {
const result = FamilyCenterStore.isCurrentUserInRestrictedHours();
if (result !== isInRestrictedHours) {
isInRestrictedHours = result;
const obj2 = { type: "RESTRICTED_HOURS_STATE_CHANGE", isInRestrictedHours };
const obj = DispatcherDefault;
obj.dispatch(obj2);
const obj3 = RestrictedHoursActionCreators;
if (isInRestrictedHours) {
const result1 = obj3.openRestrictedHoursModal();
} else {
const result2 = obj3.closeRestrictedHoursModal();
}
scheduleUpcomingWarning();
}
scheduleUpcomingWarning();
}
function handleScreenDowntimeReminderChanged() {
scheduleUpcomingWarning();
}
const metroRequire = false;
let c7 = null;
let c8 = null;
let c9 = null;
class RestrictedHoursManager extends AutomaticLifecycleManager {
constructor() {
const applyArgumentsResult = HermesBuiltin.applyArguments(this, new.target);
map = new Map();
const result = map.set(UserStore, handleScheduleUpdate);
applyArgumentsResult.stores = result.set(FamilyCenterStore, handleScheduleUpdate);
const obj = { POST_CONNECTION_OPEN: handleScheduleUpdate, CURRENT_USER_UPDATE: handleScheduleUpdate, NOTIFICATIONS_SET_SCREEN_DOWNTIME_REMINDER: handleScreenDowntimeReminderChanged, LOGOUT: handleLogout };
applyArgumentsResult.actions = obj;
return applyArgumentsResult;
}
_initialize() {
isInRestrictedHours = FamilyCenterStore.isCurrentUserInRestrictedHours();
const obj = DispatcherDefault;
const obj2 = { type: "RESTRICTED_HOURS_STATE_CHANGE", isInRestrictedHours };
obj.dispatch(obj2);
const tmp3 = isInRestrictedHours;
if (tmp3) {
const obj3 = RestrictedHoursActionCreators;
const result = obj3.openRestrictedHoursModal();
}
const interval = setInterval(checkAndUpdateModal, 60000);
scheduleUpcomingWarning();
}
_terminate() {
if (null != c7) {
const _clearInterval = clearInterval;
clearInterval(c7);
c7 = null;
}
if (null != c8) {
const _clearTimeout = clearTimeout;
clearTimeout(c8);
c8 = null;
}
c9 = null;
const obj = RestrictedHoursActionCreators;
const result = obj.closeRestrictedHoursModal();
let c6 = false;
}
}
const prototype = RestrictedHoursManager.prototype;
const restrictedHoursManager = new RestrictedHoursManager();
let result = size.fileFinishedImporting("modules/parent_tools/RestrictedHoursManager.tsx");
export default restrictedHoursManager;
export const getCurrentRestrictedHoursState = function getCurrentRestrictedHoursState() {
return FamilyCenterStore.isCurrentUserInRestrictedHours();
};