This commit is contained in:
janisslsm committed 2026-11-01 12:12:55 +02:00
1 parent 1781d25a15
commit 732c0ad767
33051 files changed
+2591613 -3019689

No files matched your search

@@ -0,0 +1,79 @@
// Metro module 11555 (f11556).
import GuildMemberStore, { getGuildIdFromCommunicationDisabledUserKey, getUserIdFromCommunicationDisabledUserKey } from "../../stores/GuildMemberStore";
import UserStore from "../../stores/UserStore";
import { isMemberCommunicationDisabled, isCommunicationDisabled } from "./CommunicationDisabledUtils";
import Dispatcher from "../../Dispatcher";
import AutomaticLifecycleManager from "../../lib/AutomaticLifecycleManager";
let c7882_7;
const clearGuildMemberTimeout = function clearGuildMemberTimeout(guildIdFromCommunicationDisabledUserKey, userIdFromCommunicationDisabledUserKey) {
const member = GuildMemberStore.getMember(guildIdFromCommunicationDisabledUserKey, userIdFromCommunicationDisabledUserKey);
const user = UserStore.getUser(userIdFromCommunicationDisabledUserKey);
if (member != null && user != null && !isMemberCommunicationDisabled(member)) {
let nick = member.nick;
if (nick == null) {
nick = user.username;
}
let avatar = member.avatar;
if (avatar == null) {
avatar = void 0;
}
const avatarDecoration = member.avatarDecoration != null ? {
...member.avatarDecoration
} : void 0;
let premiumSince = member.premiumSince;
if (premiumSince == null) {
premiumSince = void 0;
}
let isPending = member.isPending;
if (isPending == null) {
isPending = false;
}
let email = user.email;
if (email == null) {
email = void 0;
}
let phone = user.phone;
if (phone == null) {
phone = void 0;
}
Dispatcher.dispatch({
type: "GUILD_MEMBER_UPDATE",
...{
...member,
guildId: guildIdFromCommunicationDisabledUserKey,
nick,
avatar,
avatarDecoration,
premiumSince,
isPending,
user: {
...user,
email,
phone
},
communicationDisabledUntil: null
}
});
}
};
c7882_7 = null;
class CommunicationDisabledManager extends AutomaticLifecycleManager {
clearGuildMemberTimeout = clearGuildMemberTimeout;
_initialize() {
c7882_7 = setInterval(() => {
const communicationDisabledUserMap = GuildMemberStore.getCommunicationDisabledUserMap();
Object.keys(communicationDisabledUserMap).forEach((item) => {
const guildIdFromCommunicationDisabledUserKey = getGuildIdFromCommunicationDisabledUserKey(item);
const userIdFromCommunicationDisabledUserKey = getUserIdFromCommunicationDisabledUserKey(item);
if (!isCommunicationDisabled(communicationDisabledUserMap[item])) {
clearGuildMemberTimeout(guildIdFromCommunicationDisabledUserKey, userIdFromCommunicationDisabledUserKey);
}
});
}, 10000);
}
_terminate() {
clearInterval(c7882_7);
}
}
const communicationDisabledManager = new CommunicationDisabledManager();
export default communicationDisabledManager;
@@ -0,0 +1,8 @@
// Metro module 3806 (f3807).
export function isCommunicationDisabled(a0) {
return a0 != null && new Date(a0) > new Date();
}
export function isMemberCommunicationDisabled(a0) {
const communicationDisabledUntil = a0?.communicationDisabledUntil;
return communicationDisabledUntil != null && new Date(communicationDisabledUntil) > new Date();
}
@@ -0,0 +1,19 @@
// Metro module 11030 (f11031).
import UserStore from "../../stores/UserStore";
import ModalActionCreators from "../../actions/ModalActionCreators";
import AlertActionCreators from "../../actions/native/AlertActionCreators";
export function openDisableCommunication({ guildId: guildId2, userId: userId2, cancelButtonCallback: cancelButtonCallback2 }) {
const user = UserStore.getUser(userId2);
if (user != null) {
ModalActionCreators.pushLazy(import("./native/GuildDisableCommunicationModal"), {
guildId: guildId2,
user,
cancelButtonCallback: cancelButtonCallback2
});
}
}
export function openEnableCommunication({ guildId, userId, cancelButtonCallback }) {
AlertActionCreators.openLazy({
importer: () => import("./native/GuildEnableCommunicationAlert").then(({ default: Component }) => (a0) => <Component {...a0} guildId={guildId} userId={userId} onCancel={cancelButtonCallback} />)
});
}
@@ -0,0 +1,71 @@
// Metro module 1944 (f1945).
import { HelpdeskArticles } from "../../Constants";
import { intl, t } from "../../intl/index.native";
import HelpdeskUtils from "../../utils/HelpdeskUtils";
let c1628_2;
const getFriendlyDurationString = function getFriendlyDurationString(a0) {
if (c1628_2.DURATION_60_SEC === a0) {
return intl.formatToPlainString(t["4zv/jq"], {
secs: 60
});
}
if (c1628_2.DURATION_5_MIN === a0) {
return intl.formatToPlainString(t.opVZ9q, {
mins: 5
});
}
if (c1628_2.DURATION_10_MIN === a0) {
return intl.formatToPlainString(t.opVZ9q, {
mins: 10
});
}
if (c1628_2.DURATION_1_HOUR === a0) {
return intl.formatToPlainString(t.xCjYxK, {
hours: 1
});
}
if (c1628_2.DURATION_1_DAY === a0) {
return intl.formatToPlainString(t["k2UNz+"], {
days: 1
});
}
if (c1628_2.DURATION_1_WEEK === a0) {
return intl.formatToPlainString(t.EmoBD2, {
weeks: 1
});
}
};
const r16 = {
DURATION_60_SEC: 60,
60: "DURATION_60_SEC",
DURATION_5_MIN: 300,
300: "DURATION_5_MIN",
DURATION_10_MIN: 600,
600: "DURATION_10_MIN",
DURATION_1_HOUR: 3600,
3600: "DURATION_1_HOUR",
DURATION_1_DAY: 86400
};
r16[86400] = "DURATION_1_DAY";
r16.DURATION_1_WEEK = 604800;
r16[604800] = "DURATION_1_WEEK";
c1628_2 = r16;
const articleURL = HelpdeskUtils.getArticleURL(HelpdeskArticles.DISABLE_GUILD_COMMUNICATION);
export { c1628_2 as DisableCommunicationDuration };
export { getFriendlyDurationString };
export const getDisableCommunicationDurationOptions = () => Object.keys(c1628_2).filter((item) => isNaN(Number(item))).map((item) => {
let label = getFriendlyDurationString(c1628_2[item]);
if (label == null) {
label = "";
}
return {
id: item,
label,
value: c1628_2[item]
};
});
export { articleURL as GUILD_COMMUNICATION_DISABLED_RESOURCE_LINK };
export const DISMISSED_COMMUNICATION_DISABLED_NOTIFICATION_GUILDS_KEY = "GuildCommunicationDisabledDismissedGuilds";
export const SET_COMMUNICATION_DISABLED_MODAL_NAME = "Set Communication Disabled Modal";
export const CLEAR_COMMUNICATION_DISABLED_MODAL_NAME = "Clear Communication Disabled Modal";
export const MAX_REASON_LENGTH = 512;
@@ -0,0 +1,147 @@
// Metro module 11032 (f11033).
import { memo, useState, useRef } from "react";
import { ScrollView, View } from "react-native";
import { GUILD_COMMUNICATION_DISABLED_RESOURCE_LINK, SET_COMMUNICATION_DISABLED_MODAL_NAME, DisableCommunicationDuration } from "../GuildDisableCommunicationConstants";
import { AnalyticEvents } from "../../../Constants";
import { intl, t } from "../../../intl/index.native";
import { createStyles } from "../../../design/components/Styles/native/createStyles";
import Module712 from "../../../_bundle/Module712";
import useSafeAreaInsetsKeyboardAware_native from "../../safe_area/useSafeAreaInsetsKeyboardAware.native";
import useSafeAreaAvoidingInputs_native from "../../safe_area/useSafeAreaAvoidingInputs.native";
import useMountEffect from "../../../hooks/useMountEffect";
import AnalyticsUtils from "../../../utils/AnalyticsUtils";
import CommunicationDisabledActionCreators from "../../../actions/CommunicationDisabledActionCreators";
import ToastActionCreators from "../../toast/native/ToastActionCreators";
import NicknameUtils from "../../../utils/NicknameUtils";
import Module10356 from "../../../_bundle/Module10356";
import { Text } from "../../../design/components/Text/native/Text";
import { TableRadioGroup } from "../../../design/components/TableRow/native/TableRadioGroup.native";
import { TableRadioRow } from "../../../design/components/TableRow/native/TableRadioRow.native";
import { TextArea } from "../../../design/components/TextInput/native/TextArea.native";
import { Button } from "../../../design/components/Button/native/Button.native";
let useStyles;
let c7440_14 = [{
value: DisableCommunicationDuration.DURATION_60_SEC,
getLabel: () => intl.formatToPlainString(t.iruf5E, {
minutes: 1
})
}, {
value: DisableCommunicationDuration.DURATION_5_MIN,
getLabel: () => intl.formatToPlainString(t.iruf5E, {
minutes: 5
})
}, {
value: DisableCommunicationDuration.DURATION_10_MIN,
getLabel: () => intl.formatToPlainString(t.iruf5E, {
minutes: 10
})
}, {
value: DisableCommunicationDuration.DURATION_1_HOUR,
getLabel: () => intl.formatToPlainString(t.LnvrA3, {
hours: 1
})
}, {
value: DisableCommunicationDuration.DURATION_1_DAY,
getLabel: () => intl.formatToPlainString(t.jzH70Z, {
days: 1
})
}, {
value: DisableCommunicationDuration.DURATION_1_WEEK,
getLabel: () => intl.formatToPlainString(t.iVZYyl, {
weeks: 1
})
}];
useStyles = createStyles({
container: {
backgroundColor: Module712.colors.BACKGROUND_BASE_LOW
},
reasonTextArea: {
marginVertical: Module712.space.PX_16
},
buttonContainer: {
marginBottom: Module712.space.PX_16
}
});
const r77 = memo(function GuildDisableCommunication(props) {
let state, setState, ref;
const { user, guildId, onClose } = props;
state = void 0;
setState = void 0;
ref = void 0;
let _handleSubmitButtonPressed2 = function _handleSubmitButtonPressed() {
const r9 = async () => {
let c30333_1;
c30333_1 = void 0;
await CommunicationDisabledActionCreators.setCommunicationDisabledDuration(guildId, user.id, c7440_14[state].value, ref.current);
const O9C3Nt = t.O9C3Nt;
const name2 = NicknameUtils.getName(guildId, null, user);
let name = name2;
if (name2 == null) {
name = "";
}
ToastActionCreators.open({
key: "GUILD_COMMUNICATION_DISABLED_SUCCESS",
content: intl.formatToPlainString(O9C3Nt, {
user: name
}),
icon: Module10356
});
(0, onClose)();
};
_handleSubmitButtonPressed2 = r9;
return r9.apply(this, arguments);
};
const styles = useStyles();
[state, setState] = useState(0);
ref = useRef("");
const ref2 = useRef(null);
const ref3 = useRef(null);
const insets = useSafeAreaInsetsKeyboardAware_native({
includeKeyboardHeight: true
}).insets;
useSafeAreaAvoidingInputs_native({
insets,
inputs: [{
ref: ref3,
offset: {
type: "toBottom"
}
}],
scrollViewRef: ref2
});
useMountEffect(() => {
AnalyticsUtils.track(AnalyticEvents.OPEN_MODAL, {
type: SET_COMMUNICATION_DISABLED_MODAL_NAME,
guild_id: guildId,
other_user_id: user.id
});
});
return <ScrollView style={styles.container} ref={ref2} contentContainerStyle={{
paddingHorizontal: Module712.space.PX_12,
paddingBottom: insets.bottom
}}>
<>
<Text style={{
marginVertical: Module712.space.PX_16
}} variant="heading-md/semibold">
{intl.format(t.Ns83GT, {
helpdeskArticle: GUILD_COMMUNICATION_DISABLED_RESOURCE_LINK
})}
</Text>
<TableRadioGroup title={intl.string(t["9XsExm"])} defaultValue={0} onChange={(event) => {
setState(event);
}} hasIcons={false}>
{c7440_14.map((item, index) => <TableRadioRow key={index} value={index} label={item.getLabel()} />)}
</TableRadioGroup>
<TextArea ref={ref3} containerStyle={styles.reasonTextArea} placeholder={intl.string(t.GakiH1)} label={intl.string(t.ewHW15)} maxLength={512} onChange={(event) => {
ref.current = event;
}} />
<View style={styles.buttonContainer}>
<Button variant="primary" text={intl.string(t.MlPTIi)} onPress={function handleSubmitButtonPressed() {
return _handleSubmitButtonPressed2.apply(this, arguments);
}} />
</View>
</>
</ScrollView>;
});
export default r77;
@@ -0,0 +1,15 @@
// Metro module 11031 (f11032).
import useNavigatorBackHandler_native from "../../../design/components/Navigator/native/useNavigatorBackHandler.native";
import ModalStackNavigator from "../../main_tabs_v2/native/utils/ModalStackNavigator";
import { intl, t } from "../../../intl/index.native";
import NicknameUtils from "../../../utils/NicknameUtils";
import GuildDisableCommunication from "./GuildDisableCommunication";
export default function GuildDisableCommunicationModal(props) {
const { guildId, user, cancelButtonCallback } = props;
const onGoBack = useNavigatorBackHandler_native({
onBeforeGoBack: cancelButtonCallback
}).onGoBack;
return <ModalStackNavigator screenKey="disableCommunication" title={intl.formatToPlainString(t.FN7NIS, {
user: NicknameUtils.getName(guildId, null, user)
})} render={() => <GuildDisableCommunication user={user} guildId={guildId} onClose={onGoBack} />} />;
};
@@ -0,0 +1,98 @@
// Metro module 11034 (f11035).
import _slicedToArray from "../../../_bundle/_slicedToArray";
import { View } from "react-native";
import UserStore from "../../../stores/UserStore";
import { CLEAR_COMMUNICATION_DISABLED_MODAL_NAME, GUILD_COMMUNICATION_DISABLED_RESOURCE_LINK } from "../GuildDisableCommunicationConstants";
import { AnalyticEvents, Fonts } from "../../../Constants";
import { createStyles } from "../../../design/components/Styles/native/createStyles";
import useUserCommunicationDisabled from "../useUserCommunicationDisabled";
import useMountEffect from "../../../hooks/useMountEffect";
import AnalyticsUtils from "../../../utils/AnalyticsUtils";
import CommunicationDisabledActionCreators from "../../../actions/CommunicationDisabledActionCreators";
import ToastActionCreators from "../../toast/native/ToastActionCreators";
import * as _index_native from "../../../intl/index.native";
import { intl } from "../../../intl/index.native";
import Module10356 from "../../../_bundle/Module10356";
import Alert from "../../../components_native/common/Alert";
import { Text } from "../../../design/components/Text/native/Text";
import NicknameUtils from "../../../utils/NicknameUtils";
import CountDown from "../../../components_native/common/CountDown";
const useStyles = createStyles({
wrapper: {
padding: 16
},
body: {
paddingTop: 16
},
description: {
lineHeight: 18
},
cta: {
paddingTop: 8
},
countdown: {
fontFamily: Fonts.PRIMARY_SEMIBOLD
}
});
export default function GuildEnableCommunicationAlert(props) {
let styles, c18492_3;
const { guildId, userId, onCancel, ...rest } = props;
styles = void 0;
c18492_3 = void 0;
let _handleConfirmRemoveTimeout2 = function _handleConfirmRemoveTimeout() {
const r9 = async () => {
let c30334_0;
c30334_0 = void 0;
await CommunicationDisabledActionCreators.setCommunicationDisabledDuration(guildId, userId);
ToastActionCreators.open({
key: "GUILD_ENABLE_COMMUNICATION_SUCCESS",
content: intl.string(_index_native.t["/Mmbfv"]),
icon: Module10356
});
};
_handleConfirmRemoveTimeout2 = r9;
return r9.apply(this, arguments);
};
styles = useStyles();
c18492_3 = _slicedToArray(useUserCommunicationDisabled(userId, guildId), 1)[0];
useMountEffect(() => {
AnalyticsUtils.track(AnalyticEvents.OPEN_MODAL, {
type: CLEAR_COMMUNICATION_DISABLED_MODAL_NAME,
guild_id: guildId,
other_user_id: userId
});
});
const props2 = {
...rest,
title: intl.string(_index_native.t["+ZD3ou"]),
style: styles.wrapper,
cancelText: intl.string(_index_native.t["ETE/oC"]),
onClose: rest?.onClose,
onCancel,
confirmText: intl.string(_index_native.t.qXtNtS),
onConfirm: function handleConfirmRemoveTimeout() {
return _handleConfirmRemoveTimeout2.apply(this, arguments);
}
};
const r15 = _index_native.t["t+abNU"];
let username = NicknameUtils.getName(guildId, null, UserStore.getUser(userId));
if (username == null) {
username = "";
}
props2.children = <View style={styles.body}>
<Text style={styles.description} variant="text-sm/medium">
{intl.format(r15, {
username,
countdown: function countdown(a0) {
return <CountDown style={styles.countdown} deadline={c18492_3 != null ? new Date(c18492_3) : 0} withUnits />;
}
})}
</Text>
<Text style={[styles.cta, styles.description]} variant="text-sm/medium">
{intl.format(_index_native.t.KtENkK, {
link: GUILD_COMMUNICATION_DISABLED_RESOURCE_LINK
})}
</Text>
</View>;
return <Alert {...props2} />;
};
@@ -0,0 +1,32 @@
// Metro module 11026 (f11027).
import { isGuildOwner } from "../../records/GuildRecord";
import GuildStore from "../../stores/GuildStore";
import PermissionStore from "../../stores/PermissionStore";
import UserStore from "../../stores/UserStore";
import { Permissions } from "../../Constants";
import { can } from "../../utils/PermissionUtils";
import { useStateFromStores } from "../../_bundle/Module589";
const canToggleCommunicationDisableOnUser = function canToggleCommunicationDisableOnUser(id, a1, r5 = [UserStore, GuildStore, PermissionStore]) {
const [r36, r8, r10] = r5;
const guild = r8.getGuild(id);
const user = r36.getUser(a1);
let r49 = guild != null && user != null;
if (r49) {
const isNonUserBot = user.isNonUserBot();
let r52 = !isNonUserBot;
if (!isNonUserBot) {
const r54 = isGuildOwner(guild, user) || can({
permission: Permissions.ADMINISTRATOR,
user,
context: guild
});
r52 = r54 ? !r54 : r10.canManageUser(Permissions.MODERATE_MEMBERS, user, guild);
}
r49 = r52;
}
return r49;
};
export default function useCanToggleCommunicationDisableOnUser(a0, a1) {
return useStateFromStores([UserStore, GuildStore, PermissionStore], () => canToggleCommunicationDisableOnUser(a0, a1, [UserStore, GuildStore, PermissionStore]), [a0, a1]);
};
export { canToggleCommunicationDisableOnUser };
@@ -0,0 +1,28 @@
// Metro module 11554 (f11555).
import { useEffect, useRef } from "react";
import useCountdown from "../../hooks/useCountdown";
import CommunicationDisabledManager from "./CommunicationDisabledManager";
export function useCommunicationDisabledCountdownCleanup(a0) {
const r2 = a0 == null ? {} : a0;
const { communicationDisabledUntil, userId, guildId } = r2;
const countdown = useCountdown(communicationDisabledUntil != null ? Date.parse(communicationDisabledUntil) : Date.now());
const seconds = countdown.seconds;
const ref = useRef(null);
useEffect(() => {
if (a0 != null && guildId != null && userId != null) {
if (seconds <= 0 && ref.current == null) {
ref.current = setTimeout(() => {
CommunicationDisabledManager.clearGuildMemberTimeout(guildId, userId);
}, 1000);
}
return () => {
if (ref.current != null) {
clearTimeout(ref.current);
ref.current = null;
}
};
}
clearTimeout(ref.current);
}, [guildId, userId, seconds, communicationDisabledUntil, a0]);
return countdown;
}
@@ -0,0 +1,46 @@
// Metro module 1943 (f1944).
import { DISMISSED_COMMUNICATION_DISABLED_NOTIFICATION_GUILDS_KEY } from "./GuildDisableCommunicationConstants";
import { Storage } from "../../_bundle/Module595";
import { createStore } from "../../_bundle/createStoreImpl";
import { batchUpdates } from "../../_bundle/Module705";
import { useStoreWithEqualityFn } from "../../_bundle/identity_700";
import { shallow } from "../../_bundle/Module3802";
const store = createStore((c13374_0, c13374_1) => {
let r5 = Storage.get(DISMISSED_COMMUNICATION_DISABLED_NOTIFICATION_GUILDS_KEY);
if (r5 == null) {
r5 = [];
}
return {
notificationDismissedInGuilds: new Set(r5),
dismissNotification: (a0) => {
const notificationDismissedInGuilds = c13374_1().notificationDismissedInGuilds;
notificationDismissedInGuilds.add(a0);
Storage.set(DISMISSED_COMMUNICATION_DISABLED_NOTIFICATION_GUILDS_KEY, notificationDismissedInGuilds);
batchUpdates(() => c13374_0({
notificationDismissedInGuilds
}));
},
resetNotification: (a0) => {
const notificationDismissedInGuilds2 = c13374_1().notificationDismissedInGuilds;
if (notificationDismissedInGuilds2.has(a0)) {
notificationDismissedInGuilds2.delete(a0);
Storage.set(DISMISSED_COMMUNICATION_DISABLED_NOTIFICATION_GUILDS_KEY, notificationDismissedInGuilds2);
batchUpdates(() => c13374_0({
notificationDismissedInGuilds: notificationDismissedInGuilds2
}));
}
}
};
});
Storage.asyncGet(DISMISSED_COMMUNICATION_DISABLED_NOTIFICATION_GUILDS_KEY, (c13375_0) => {
batchUpdates(() => store.setState({
notificationDismissedInGuilds: new Set(c13375_0)
}));
});
export function useCommunicationDisabledNoticeStore(a0) {
const [r16, r17] = useStoreWithEqualityFn(store, (a0) => [a0.notificationDismissedInGuilds, a0.dismissNotification], shallow);
return [!r16.has(a0), r17];
}
export function clearCommunicationDisabledNotice(a0) {
return store.getState().resetNotification(a0);
}
@@ -0,0 +1,52 @@
// Metro module 7758 (f7759).
import GuildMemberStore from "../../stores/GuildMemberStore";
import UserStore from "../../stores/UserStore";
import { useStateFromStores } from "../../_bundle/Module589";
import { isMemberCommunicationDisabled } from "./CommunicationDisabledUtils";
function $mk79282($env) {
return () => {
const r2 = $env;
const r6 = r2[0];
const r5 = r2[1];
const r4 = $env.$parent[2];
return r5 != null ? r6 != null ? r4.getMember(r5, r6) : null : null;
};
}
let env4883 = {};
export default function useUserCommunicationDisabled(a0, a1) {
let env16011;
const r3 = env16011 = {
$parent: env4883
};
env16011[0] = a0;
env16011[1] = a1;
const stateFromStores = useStateFromStores([GuildMemberStore], $mk79282(r3), [a1, a0]);
let r17 = stateFromStores?.communicationDisabledUntil;
if (r17 == null) {
r17 = null;
}
return [r17, isMemberCommunicationDisabled(stateFromStores)];
};
export function useCurrentUserCommunicationDisabled(a0) {
const id = useStateFromStores([UserStore], () => UserStore.getCurrentUser())?.id;
let env16012;
const r15 = env16012 = {
$parent: env4883
};
env16012[0] = id;
env16012[1] = a0;
const stateFromStores = useStateFromStores([GuildMemberStore], $mk79282(r15), [a0, id]);
let r25 = stateFromStores?.communicationDisabledUntil;
if (r25 == null) {
r25 = null;
}
return [r25, isMemberCommunicationDisabled(stateFromStores)];
}
export function userCommunicationDisabled(a0, a1) {
const r6 = a1 != null ? a0 != null ? GuildMemberStore.getMember(a1, a0) : null : null;
let r11 = r6?.communicationDisabledUntil;
if (r11 == null) {
r11 = null;
}
return [r11, isMemberCommunicationDisabled(r6)];
}