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,20 @@
// Metro module 15586 (f15587).
import UserStore from "../../stores/UserStore";
import { MAX_GROUP_DM_PARTICIPANTS, MAX_GROUP_DM_STAFF_PARTICIPANTS } from "../../Constants";
export default function getGroupDMRecipientLimit(a0) {
let r11;
const currentUser = UserStore.getCurrentUser();
const r7 = currentUser == null ? void 0 : currentUser.isStaff();
L9: {
if (r7) {
r11 = MAX_GROUP_DM_STAFF_PARTICIPANTS;
} else {
if (a0 != null && a0.userLimit > 0) {
r11 = a0.userLimit;
break L9;
}
r11 = MAX_GROUP_DM_PARTICIPANTS;
}
}
return r11;
};
@@ -0,0 +1,238 @@
// Metro module 10185 (f10186).
import * as Module19 from "react";
import { forwardRef, useRef, useState, useMemo, useCallback, useEffect, useImperativeHandle } from "react";
import { ScrollView, View } from "react-native";
import ChannelStore from "../../../stores/ChannelStore";
import { createStyles } from "../../../design/components/Styles/native/createStyles";
import Module712 from "../../../_bundle/Module712";
import useSafeAreaInsetsKeyboardAware_native from "../../safe_area/useSafeAreaInsetsKeyboardAware.native";
import { useStateFromStores } from "../../../_bundle/Module589";
import useChannelName from "../../channel/useChannelName";
import useInitialValue from "../../../hooks/useInitialValue";
import AvatarUtils from "../../../utils/AvatarUtils";
import useAnnounceAsyncCompletion_native from "../../a11y/native/useAnnounceAsyncCompletion.native";
import ChannelActionCreators from "../../../actions/ChannelActionCreators";
import { intl, t } from "../../../intl/index.native";
import ToastActionCreators from "../../toast/native/ToastActionCreators";
import { CircleErrorIcon } from "../../../design/components/Icon/native/redesign/generated/CircleErrorIcon";
import IconUploader from "../../../components_native/common/IconUploader";
import { PressableOpacity } from "../../../design/void/Pressables/native/Pressables";
import { Text } from "../../../design/components/Text/native/Text";
import { TextInput } from "../../../design/components/TextInput/native/TextInput.native";
import { Button } from "../../../design/components/Button/native/Button.native";
import CountDown from "../../../components_native/common/CountDown";
let c6791_11 = "CLEARED_ICON";
const useStyles = createStyles({
container: {
backgroundColor: Module712.colors.MOBILE_ACTIONSHEET_BACKGROUND
},
iconUploader: {
marginTop: Module712.space.PX_24,
alignSelf: "center"
},
iconClear: {
marginTop: Module712.space.PX_8,
alignSelf: "center"
},
textInput: {
marginVertical: Module712.space.PX_16
},
rateLimitedContainer: {
marginTop: Module712.space.PX_8,
gap: Module712.space.PX_8,
flexDirection: "row",
alignItems: "center"
},
rateLimitedText: {
fontSize: 12,
color: Module712.colors.TEXT_FEEDBACK_CRITICAL
}
});
const r73 = Module19.memo(forwardRef(function({ channelId, onFinish }, a1) {
let r210;
let c17749_3, ref, state, c17749_6, state2, setState, callback, state3, setState2, setState3, c17749_13;
c17749_3 = void 0;
ref = void 0;
state = void 0;
c17749_6 = void 0;
state2 = void 0;
setState = void 0;
callback = void 0;
state3 = void 0;
setState2 = void 0;
setState3 = void 0;
c17749_13 = void 0;
const styles = useStyles();
const insets = useSafeAreaInsetsKeyboardAware_native({
includeKeyboardHeight: true
}).insets;
const stateFromStores = useStateFromStores([ChannelStore], () => ChannelStore.getChannel(channelId));
let r48 = useChannelName(stateFromStores);
if (r48 == null) {
r48 = "";
}
const initialValue = useInitialValue(r48);
c17749_3 = initialValue;
ref = useRef(null);
let onChange;
[state, onChange] = useState(void 0);
let r3 = state != null;
const placeholder = r48;
if (r3) {
r3 = state.length > 0;
}
if (r3) {
r3 = state !== initialValue;
}
c17749_6 = r3;
[state2, setState] = useState(void 0);
const icon = state2 !== c6791_11 ? state2 == null ? stateFromStores?.icon : state2 : void 0;
const r7 = (stateFromStores == null ? void 0 : stateFromStores.isManaged()) !== true;
const r66 = r7 && (state2 != null && state2 !== c6791_11 || stateFromStores?.icon != null);
const memo = useMemo(() => ({
makeURL: (a0) => AvatarUtils.getChannelIconURL({
id: channelId,
icon: a0,
applicationId: stateFromStores == null ? void 0 : stateFromStores.getApplicationId(),
size: 64
}),
clear: () => {
setState(stateFromStores?.icon != null ? c6791_11 : void 0);
}
}), [stateFromStores, channelId]);
callback = useCallback(() => state2 != null || c17749_6, [r3, state2]);
[state3, setState2] = useState(null);
let isDisabled;
[isDisabled, setState3] = useState(false);
const announceAsyncCompletion_native = useAnnounceAsyncCompletion_native();
c17749_13 = announceAsyncCompletion_native;
const callback2 = useCallback(async () => {
let c26629_2;
let c26629_3 = 0;
let c30201_0;
L16: {
try {
L14: {
c26629_3 = 2;
setState3(true);
if (state2 != null) {
await ChannelActionCreators.setIcon(channelId, state2 !== c6791_11 ? state2 : null);
if (state != null && state.length > 0) {
await ChannelActionCreators.setName(channelId, state);
}
} else {
if (!(state != null && state.length > 0)) {
await c17749_13(intl.string(t.ZhunuI));
break L14;
}
await ChannelActionCreators.setName(channelId, state);
}
await c17749_13(intl.string(t.ZhunuI));
}
(0, onFinish)();
c26629_3 = 1;
c26629_3 = 0;
(0, setState3)(false);
} catch ($e) {
const r40 = $e;
let r7 = r40;
c26629_2 = r40;
let r41 = c26629_3;
if (r41 !== 0) {
while (true) {
if (r41 === 1) {
try {
const r280 = c26629_2;
c26629_3 = 0;
(0, setState3)(false);
throw r280;
} catch (r278) {
r7 = r278;
c26629_2 = r278;
r41 = c26629_3;
if (r41 === 0) {
break;
}
}
} else {
try {
const r229 = c26629_2;
c26629_3 = 1;
c30201_0 = r229;
if (c30201_0.body?.retry_after != null) {
setState2(c30201_0.body?.retry_after);
} else {
ToastActionCreators.open({
key: "GCM_ERROR_GENERIC",
IconComponent: CircleErrorIcon,
content: intl.formatToPlainString(t.r477WB, {
code: c30201_0.status
})
});
}
c26629_3 = 0;
(0, setState3)(false);
break L16;
} catch (r227) {
r7 = r227;
c26629_2 = r227;
r41 = c26629_3;
if (r41 === 0) {
break;
}
}
}
}
}
throw r7;
}
}
}, [announceAsyncCompletion_native, channelId, state, state2, onFinish]);
useEffect(() => {
if (ref.current != null) {
ref.current.setText(c17749_3);
}
}, [initialValue]);
useEffect(() => {
if (state3 != null) {
setTimeout(() => setState2(null), 1000 * state3);
}
}, [state3]);
useImperativeHandle(a1, () => ({
hasUnsavedChanges: callback
}));
if (stateFromStores == null) {
r210 = <ScrollView style={styles.container} />;
} else {
const r121 = [<IconUploader style={styles.iconUploader} onUpload={setState} icon={icon} makeURL={memo.makeURL} disabled={!r7} />, r66 ? <PressableOpacity onPress={memo.clear} accessibilityRole="button">
<Text style={styles.iconClear} variant="text-sm/semibold" color="text-link">
{intl.string(t["uY+Nk/"])}
</Text>
</PressableOpacity> : null, <View style={styles.textInput}>
<TextInput ref={ref} label={intl.string(t.GEGW3P)} placeholder={placeholder} onChange={onChange} isDisabled={isDisabled} isClearable />
</View>, , ,];
const props = {
onPress: callback2,
text: intl.string(t.K344S7),
variant: callback() ? "primary" : "secondary",
disabled: null,
loading: null
};
const r176 = callback();
props.disabled = r176 ? state3 != null : !r176;
props.loading = isDisabled;
r121[3] = <Button {...props} />;
r121[4] = state3 != null ? <View style={styles.rateLimitedContainer}>
<Text variant="text-sm/semibold" color="text-feedback-critical">
{intl.string(t.Whhv4w)}
</Text>
<CountDown style={styles.rateLimitedText} deadline={Date.now() + 1000 * state3} />
</View> : null;
r210 = <ScrollView style={styles.container} contentContainerStyle={{
paddingHorizontal: Module712.space.PX_16,
paddingBottom: insets.bottom
}}>{r121}</ScrollView>;
}
return r210;
}));
export default r73;
@@ -0,0 +1,11 @@
// Metro module 9104 (f9105).
import useNavigatorConfirmChangesOnBack from "../../main_tabs_v2/native/utils/useNavigatorConfirmChangesOnBack";
import ModalStackNavigator from "../../main_tabs_v2/native/utils/ModalStackNavigator";
import { intl, t } from "../../../intl/index.native";
import ChatGDMCustomize from "./ChatGDMCustomize";
export default function ChatGDMCustomizeActionSheet(props) {
const channelId = props.channelId;
const navigatorConfirmChangesOnBack = useNavigatorConfirmChangesOnBack();
const { onGoBack, ref } = navigatorConfirmChangesOnBack;
return <ModalStackNavigator screenKey="kick" title={intl.string(t["1r5E+m"])} render={() => <ChatGDMCustomize ref={ref} onFinish={onGoBack} channelId={channelId} />} />;
};
@@ -0,0 +1,115 @@
// Metro module 10913 (f10914).
import { useCallback } from "react";
import { View } from "react-native";
import { createStyles } from "../../../design/components/Styles/native/createStyles";
import Module712 from "../../../_bundle/Module712";
import useSafeAreaInsets_native from "../../safe_area/useSafeAreaInsets.native";
import { UNSAFE_markDismissibleContentAsDismissed } from "../../dismissible_content/DismissibleContentUnsafeUtils";
import { DismissibleContent } from "../../../_bundle/Module1358";
import ActionSheetActionCreators from "../../action_sheet/native/ActionSheetActionCreators";
import { BottomSheet } from "../../../design/components/Sheet/native/BottomSheet.native";
import FastImage from "../../../components_native/common/FastImage";
import Module10914 from "../../../_bundle/Module10914";
import { Button } from "../../../design/components/Button/native/Button.native";
import { intl, t } from "../../../intl/index.native";
import { BottomSheetScrollView } from "../../../_bundle/Module5245";
import { Text } from "../../../design/components/Text/native/Text";
import { TimerIcon } from "../../../design/components/Icon/native/redesign/generated/TimerIcon";
import { LinkIcon } from "../../../design/components/Icon/native/redesign/generated/LinkIcon";
const useStyles = createStyles({
title: {
marginBottom: Module712.space.PX_4,
textAlign: "center"
},
footer: {
backgroundColor: Module712.colors.BACKGROUND_BASE_LOW,
padding: Module712.space.PX_16
},
body: {
textAlign: "center"
},
noticeContainer: {
borderRadius: Module712.radii.sm,
marginVertical: Module712.space.PX_16,
padding: Module712.space.PX_16
},
innerContainer: {
flexDirection: "row",
alignItems: "center",
paddingBottom: 16
},
secondInnerContainer: {
flexDirection: "row",
alignItems: "center"
},
text: {
flex: 1
},
titleImage: {
padding: 16,
justifyContent: "center",
alignItems: "center"
},
item: {
backgroundColor: Module712.colors.BACKGROUND_MOD_STRONG,
marginRight: 16,
height: 40,
width: 40,
borderRadius: 20,
alignItems: "center",
justifyContent: "center"
},
button: {
paddingTop: Module712.space.PX_16
}
});
export default function ChatGDMUpsellActionSheet(props) {
const onClick = props.onClick;
const styles = useStyles();
const bottom = useSafeAreaInsets_native().bottom;
const callback = useCallback(() => {
UNSAFE_markDismissibleContentAsDismissed(DismissibleContent.GDM_INVITE_REMINDER);
ActionSheetActionCreators.hideActionSheet();
onClick();
}, [onClick]);
return <BottomSheet showGradient scrollable startExpanded header={<View style={styles.titleImage}>
<FastImage source={Module10914} resizeMode="contain" />
</View>} footer={<View style={[styles.footer, {
padding: 16,
paddingBottom: bottom + 16
}]}>
<Button text={intl.string(t["3PatSz"])} onPress={callback} />
<View style={styles.button}>
<Button text={intl.string(t["ETE/oC"])} onPress={function onPress() {
ActionSheetActionCreators.hideActionSheet();
}} variant="tertiary" />
</View>
</View>}>
<BottomSheetScrollView>
<Text style={styles.title} variant="heading-lg/extrabold" accessibilityRole="header">
{intl.string(t["bkqux/"])}
</Text>
<Text style={styles.body} variant="text-md/medium" color="text-muted">
{intl.string(t.N6TdqN)}
</Text>
<View style={styles.noticeContainer}>
<View style={styles.innerContainer}>
<View style={styles.item}>
<TimerIcon size="sm" />
</View>
<Text style={styles.text} variant="text-sm/medium" color="text-default">
{intl.string(t.Fq3DJb)}
</Text>
</View>
<View style={styles.secondInnerContainer}>
<View style={styles.item}>
<LinkIcon size="sm" />
</View>
<Text style={styles.text} variant="text-sm/medium" color="text-default">
{intl.string(t.XKbf2G)}
</Text>
</View>
</View>
</BottomSheetScrollView>
</BottomSheet>;
};
+99
View File
@@ -0,0 +1,99 @@
// Metro module 9094 (f9095).
import { useMemo } from "react";
import { View } from "react-native";
import UserStore from "../../../stores/UserStore";
import { AVATAR_SIZE_MAP, Avatar, StatusSizes, AvatarSizes } from "../../../design/void/native";
import { createStyles } from "../../../design/components/Styles/native/createStyles";
import { CutoutShape } from "../../../design/components/Icon/native/ClipView";
import { useStateFromStoresArray } from "../../../_bundle/Module589";
import { isNotNullish } from "../../../utils/GlobalUtils";
let c5956_7, useStyles;
const FacepileGroupDMAvatar = function FacepileGroupDMAvatar(props) {
let c16944_1;
const { style, size, animate, users, sources } = props;
let pileSizeOverride = props.pileSizeOverride;
const { status, accessible, accessibilityLabel } = props;
c16944_1 = void 0;
const styles = useStyles();
const width = AVATAR_SIZE_MAP[size];
const memo = useMemo(() => ({
width,
height: width
}), [width]);
if (pileSizeOverride == null) {
pileSizeOverride = c5956_7[size];
}
const r33 = AVATAR_SIZE_MAP[pileSizeOverride];
c16944_1 = r33;
return <View style={[memo, style]} accessible={accessible} accessibilityLabel={accessibilityLabel} accessibilityElementsHidden importantForAccessibility="no-hide-descendants">
<Avatar style={styles.firstFace} size={pileSizeOverride} guildId={void 0} cutout={useMemo(() => {
const r0 = c16944_1 / 2;
const r1 = r0 + 3;
const size = 2 * r1;
const r15 = Math.sqrt(2 * Math.pow(r1, 2));
const r18 = width - r0 - c16944_1;
const r25 = Math.sqrt(2 * Math.pow(r18, 2));
const r31 = -r15 - (r1 - r15) - r25 + (r25 - r18);
return {
nativeCutouts: [{
shape: CutoutShape.Circle,
x: c16944_1 - size - r31,
y: c16944_1 - size - r31,
size
}]
};
}, [width, r33])} animate={animate} {...users == null ? {
source: sources[0]
} : {
user: users[0]
}} />
<Avatar status={status} statusSizeOverride={StatusSizes.REFRESH_MEDIUM_10} autoStatusCutout style={styles.secondFace} size={pileSizeOverride} guildId={void 0} animate={animate} {...users == null ? {
source: sources[1]
} : {
user: users[1]
}} />
</View>;
};
const r25 = {};
r25[AvatarSizes.LARGE_48] = AvatarSizes.SMALL;
r25[AvatarSizes.XLARGE] = AvatarSizes.NORMAL;
r25[AvatarSizes.XXLARGE] = AvatarSizes.LARGE;
r25[AvatarSizes.PROFILE] = AvatarSizes.XXLARGE;
r25[AvatarSizes.REFRESH_MEDIUM_32] = AvatarSizes.XSMALL_20;
r25[AvatarSizes.XSMALL] = AvatarSizes.SIZE_16;
r25[AvatarSizes.SIZE_16] = AvatarSizes.XXSMALL_10;
r25[AvatarSizes.NORMAL] = AvatarSizes.XSMALL;
c5956_7 = r25;
useStyles = createStyles({
firstFace: {
position: "absolute",
top: 0,
left: 0
},
secondFace: {
position: "absolute",
bottom: 0,
right: 0
}
});
export default function GroupDMAvatar(props) {
let r32;
let channel;
L8: {
const style = props.style;
channel = props.channel;
const { size, animate, pileSizeOverride, status, accessible, accessibilityLabel } = props;
const stateFromStoresArray = useStateFromStoresArray([UserStore], () => channel.recipients.map((recipient) => UserStore.getUser(recipient)).filter(isNotNullish));
if (channel.icon == null && (channel.recipients.length !== 0 && stateFromStoresArray.length !== 0)) {
if (stateFromStoresArray.length === 1) {
r32 = <Avatar autoStatusCutout status={status} style={style} size={size} user={stateFromStoresArray[0]} guildId={void 0} animate={animate} accessible={accessible} accessibilityLabel={accessibilityLabel} />;
break L8;
}
r32 = <FacepileGroupDMAvatar status={status} style={style} size={size} animate={animate} users={stateFromStoresArray} pileSizeOverride={pileSizeOverride} accessible={accessible} accessibilityLabel={accessibilityLabel} />;
} else {
r32 = <Avatar autoStatusCutout status={status} style={style} size={size} channel={channel} animate={animate} accessible={accessible} accessibilityLabel={accessibilityLabel} />;
}
}
return r32;
};
export { FacepileGroupDMAvatar };
@@ -0,0 +1,9 @@
// Metro module 9103 (f9104).
import ActionSheetActionCreators from "../../action_sheet/native/ActionSheetActionCreators";
import ModalActionCreators from "../../../actions/ModalActionCreators";
export default function showChatGDMCustomizeActionSheet(a0) {
ActionSheetActionCreators.hideActionSheet();
ModalActionCreators.pushLazy(import("./ChatGDMCustomizeActionSheet"), a0, "customize-group-dm", {
presentation: "modal"
});
};
@@ -0,0 +1,5 @@
// Metro module 10912 (f10913).
import ActionSheetActionCreators from "../../action_sheet/native/ActionSheetActionCreators";
export default function showChatGDMUpsellActionSheet(a0) {
ActionSheetActionCreators.openLazy(import("./ChatGDMUpsellActionSheet"), "ChatGDMUpsellActionSheet", a0);
};