Files
discord-decomp/modules/message_request/native/spam/SpamMessageHamActionSheet.tsx
T
2026-11-01 12:12:55 +02:00

84 lines
3.5 KiB
TypeScript

// Metro module 11539 (f11540).
import { useState } from "react";
import { View } from "react-native";
import UserStore from "../../../../stores/UserStore";
import { createStyles } from "../../../../design/components/Styles/native/createStyles";
import Module712 from "../../../../_bundle/Module712";
import { useStateFromStores } from "../../../../_bundle/Module589";
import { useMessageRequestActions } from "../../hooks/useMessageRequestActions";
import ToastActionCreators from "../../../toast/native/ToastActionCreators";
import { intl, t } from "../../../../intl/index.native";
import Module9172 from "../../../../_bundle/Module9172";
import ActionSheetActionCreators from "../../../action_sheet/native/ActionSheetActionCreators";
import { BottomSheet } from "../../../../design/components/Sheet/native/BottomSheet.native";
import { BottomSheetTitleHeader } from "../../../../design/components/Sheet/native/BottomSheetTitleHeader.native";
import { ActionSheetCloseButton } from "../../../../design/components/Sheet/native/ActionSheetCloseButton.native";
import { FormSwitchRow } from "../../../../design/void/Form/native/index";
import { Button } from "../../../../design/components/Button/native/Button.native";
const useStyles = createStyles({
header: {
backgroundColor: Module712.colors.BACKGROUND_SURFACE_HIGH
},
container: {
marginTop: Module712.space.PX_24,
paddingHorizontal: Module712.space.PX_16
},
buttonContainer: {
marginTop: Module712.space.PX_24
},
switch: {
paddingHorizontal: 0
}
});
export default function SpamMessageRequestHamActionSheet(props) {
let acceptMessageRequest;
const { channel, onConfirm, onCancel } = props;
acceptMessageRequest = void 0;
const styles = useStyles();
const [state, setState] = useState(false);
const messageRequestActions = useMessageRequestActions({
user: useStateFromStores([UserStore], () => UserStore.getUser(channel.getRecipientId())),
onError: function onError() {
ToastActionCreators.open({
key: "MESSAGE_REQUEST_REQUEST_ERROR_ALERT_TITLE",
content: intl.string(t["EDYbS+"]),
icon: Module9172
});
},
onAcceptSuccess: function onAcceptSuccess() {
ActionSheetActionCreators.hideActionSheet();
}
});
acceptMessageRequest = messageRequestActions.acceptMessageRequest;
let isAcceptLoading = messageRequestActions.isAcceptLoading;
const { isUserProfileLoading, isOptimisticAccepted } = messageRequestActions;
const r68 = [<BottomSheetTitleHeader title={intl.string(t["9ty6yc"])} trailing={<ActionSheetCloseButton onPress={function onPress() {
ActionSheetActionCreators.hideActionSheet();
onCancel();
}} />} backgroundColor={styles.header} />, ,];
const r87 = [<FormSwitchRow style={styles.switch} label={intl.string(t.ZhGpNQ)} value={state} switchProps={{
renderIosBackground: true
}} onValueChange={(value) => setState(value)} />, ,];
const props2 = {
size: "md",
onPress: function onPress() {
onConfirm(state);
acceptMessageRequest(channel.id);
},
text: intl.string(t.olZgw5),
disabled: (isAcceptLoading ? isAcceptLoading : isUserProfileLoading) || isOptimisticAccepted,
loading: null
};
if (!isAcceptLoading) {
isAcceptLoading = isOptimisticAccepted;
}
props2.loading = isAcceptLoading;
r87[1] = <View style={styles.buttonContainer}>
<Button {...props2} />
</View>;
r68[1] = <View style={styles.container}>{r87}</View>;
return <BottomSheet onDismiss={function onDismiss() {
onCancel();
}}>{r68}</BottomSheet>;
};