Files
discord-decomp/modules/multi_account/setUserStatus.tsx
T
2026-11-01 12:12:55 +02:00

108 lines
3.4 KiB
TypeScript

// Metro module 10256 (f10257).
import LastMentionTimestampStore from "../notifications/LastMentionTimestampStore";
import SelfPresenceStore from "../../stores/SelfPresenceStore";
import { AnalyticEvents } from "../../Constants";
import { humanizeStatus } from "../../utils/UserUtils";
import { intl, t } from "../../intl/index.native";
import { getStatusExpiryParts } from "./StatusUtils";
import { UserSettingsDelay, PreloadedUserSettingsActionCreators } from "../user_settings/UserSettingsProtoActionCreators";
import { StringValue, UInt64Value } from "../../_bundle/Module1337";
import { AccessibilityAnnouncer } from "../../_bundle/Module4004";
import AnalyticsUtils from "../../utils/AnalyticsUtils";
function $mk115639($env) {
return (a0) => {
const r5 = $env;
const value = r5[0];
a0.status = StringValue.create({
value
});
a0.statusExpiresAtMs = r5[5];
a0.statusCreatedAtMs = r5[1] === value && a0.statusCreatedAtMs != null ? a0.statusCreatedAtMs : UInt64Value.create({
value: `${Date.now()}`
});
};
}
function $mk115640($env) {
return function getStatusUpdateAnnouncement(a0, a1) {
const statusLabel = humanizeStatus(a0);
if (a1 === "0") {
return intl.formatToPlainString(t.dO2aLi, {
statusLabel
});
}
const statusExpiryParts = getStatusExpiryParts(a1);
const { kind, dateString, timeString } = statusExpiryParts;
return kind === "today" ? intl.formatToPlainString(t["r50t/S"], {
statusLabel,
timeString
}) : intl.formatToPlainString(t["J+GJHv"], {
statusLabel,
dateString,
timeString
});
};
}
let env6845 = {};
export default async function setUserStatus(c26641_0) {
let env30207;
const r27 = env6845;
let c26641_2 = r27;
const r10 = env30207 = {
$parent: r27
};
let c26641_1 = r10;
env30207[0] = void 0;
env30207[1] = void 0;
env30207[2] = void 0;
env30207[3] = void 0;
env30207[4] = void 0;
env30207[0] = c26641_0.nextStatus;
env30207[1] = c26641_0.prevStatus;
env30207[2] = c26641_0.analyticsContext;
env30207[3] = c26641_0.durationMillis;
const disableTracking = c26641_0.disableTracking;
if (disableTracking !== void 0) {
env30207[4] = disableTracking;
env30207[5] = void 0;
env30207[6] = void 0;
env30207[7] = void 0;
} else {
env30207[4] = false;
env30207[5] = void 0;
env30207[6] = void 0;
env30207[7] = void 0;
}
await void 0;
if (env30207[1] == null) {
env30207[1] = SelfPresenceStore.getStatus();
}
const r54 = env30207[3] != null ? `${Date.now() + env30207[3]}` : "0";
env30207[5] = r54;
const INFREQUENT_USER_ACTION = UserSettingsDelay.INFREQUENT_USER_ACTION;
await PreloadedUserSettingsActionCreators.updateAsync("status", $mk115639(c26641_1), INFREQUENT_USER_ACTION);
const r102 = env30207[0];
const r103 = env30207[5];
env30207[6] = $mk115640(env6845)(r102, r103);
AccessibilityAnnouncer.announce(env30207[6]);
if (!env30207[4]) {
env30207[7] = {
next_status: env30207[0],
prev_status: env30207[1],
...LastMentionTimestampStore.getGlobalStats()
};
if (env30207[3] != null) {
env30207[7] = {
...env30207[7],
expire_duration_minutes: env30207[3] != null ? env30207[3] / 60000 : null
};
}
if (env30207[2] != null) {
env30207[7] = {
...env30207[7],
...env30207[2]
};
}
AnalyticsUtils.track(AnalyticEvents.USER_STATUS_UPDATED, env30207[7]);
}
};