106 lines
4.1 KiB
TypeScript
106 lines
4.1 KiB
TypeScript
// Metro module 13102 (f13103).
|
|
import { useCallback, useState, useMemo } from "react";
|
|
import { View } from "react-native";
|
|
import { COMMUNITY_PORTAL_SERVER_SAFETY_PAGE, REPORT_RAID_OPTIONS, getReportRaidTypeLabel } from "../GuildReportRaidModalConstants";
|
|
import { createStyles } from "../../../design/components/Styles/native/createStyles";
|
|
import Module712 from "../../../_bundle/Module712";
|
|
import useSafeAreaInsets_native from "../../safe_area/useSafeAreaInsets.native";
|
|
import { Text } from "../../../design/components/Text/native/Text";
|
|
import Linking from "../../../lib/native/Linking";
|
|
import { intl, t } from "../../../intl/index.native";
|
|
import { TableRowGroup } from "../../../design/components/TableRow/native/TableRowGroup.native";
|
|
import { TableCheckboxRow } from "../../../design/components/TableRow/native/TableCheckboxRow.native";
|
|
import { Button } from "../../../design/components/Button/native/Button.native";
|
|
import { getHeaderCloseButton } from "../../../design/components/Navigator/native/NavigatorHeader.native";
|
|
import { trackReportRaidViewed, handleReportRaid } from "../GuildAntiRaidActionCreators";
|
|
import { Navigator } from "../../../design/components/Navigator/native/Navigator.native";
|
|
let initialRouteName, useStyles;
|
|
const ReportModal = function ReportModal(props) {
|
|
const { raidTypes, onChange: onChange2, onSubmit: onSubmit3 } = props;
|
|
const styles = useStyles();
|
|
const bottom = useSafeAreaInsets_native().bottom;
|
|
const callback = useCallback((a0) => <Text style={styles.formRow} variant="text-md/semibold" color="interactive-text-active">
|
|
{getReportRaidTypeLabel(a0)}
|
|
</Text>, [styles]);
|
|
return <View style={styles.container}>
|
|
<Text style={styles.headerSubtitle} variant="text-sm/medium" color="text-default">
|
|
{intl.format(t.Hg8Ee7, {
|
|
onClick: useCallback(() => {
|
|
Linking.openURL(COMMUNITY_PORTAL_SERVER_SAFETY_PAGE);
|
|
}, [])
|
|
})}
|
|
</Text>
|
|
<View style={styles.formBody}>
|
|
<TableRowGroup hasIcons={false}>
|
|
{REPORT_RAID_OPTIONS.map((item, index) => {
|
|
return <TableCheckboxRow key={item} start={index === 0} end={index === REPORT_RAID_OPTIONS.length - 1} label={callback(item)} checked={raidTypes.includes(item)} onPress={() => onChange2(item)} />;
|
|
})}
|
|
</TableRowGroup>
|
|
</View>
|
|
<View style={[styles.submitButtonContainer, {
|
|
paddingBottom: bottom + 16
|
|
}]}>
|
|
<Button size="md" text={intl.string(t.geKm7t)} onPress={onSubmit3} />
|
|
</View>
|
|
</View>;
|
|
};
|
|
initialRouteName = "REPORT_RAID";
|
|
useStyles = createStyles({
|
|
container: {
|
|
flex: 1,
|
|
paddingHorizontal: 16,
|
|
paddingVertical: 0,
|
|
backgroundColor: Module712.colors.BACKGROUND_BASE_LOW,
|
|
flexDirection: "column",
|
|
height: "100%",
|
|
paddingTop: 8
|
|
},
|
|
headerSubtitle: {
|
|
textAlign: "center",
|
|
marginTop: 8
|
|
},
|
|
formBody: {
|
|
marginTop: 24
|
|
},
|
|
formRow: {
|
|
paddingVertical: 2
|
|
},
|
|
submitButtonContainer: {
|
|
position: "absolute",
|
|
bottom: 0,
|
|
left: 0,
|
|
right: 0,
|
|
paddingHorizontal: 16,
|
|
paddingVertical: 16,
|
|
backgroundColor: Module712.colors.BACKGROUND_BASE_LOW
|
|
}
|
|
});
|
|
export default function GuildAntiRaidReportModal(props) {
|
|
const { onCloseModal, guildId } = props;
|
|
const top = useSafeAreaInsets_native().top;
|
|
const [state, setState] = useState([]);
|
|
return <Navigator screens={useMemo(() => {
|
|
let onSubmit2;
|
|
const state2 = state;
|
|
const onChange3 = function onChange(c30612_0) {
|
|
setState((prevState) => {
|
|
const includes = prevState.includes;
|
|
return includes.call(prevState, c30612_0) ? prevState.filter((item) => item !== c30612_0) : [...prevState, c30612_0];
|
|
});
|
|
};
|
|
onSubmit2 = function onSubmit() {
|
|
trackReportRaidViewed(guildId, state);
|
|
handleReportRaid(guildId);
|
|
onCloseModal();
|
|
};
|
|
const r13 = {};
|
|
r13[initialRouteName] = {
|
|
ignoreKeyboard: true,
|
|
title: intl.string(t.uYPGsS),
|
|
headerLeft: getHeaderCloseButton(onCloseModal),
|
|
render: () => <ReportModal raidTypes={state2} onChange={onChange3} onSubmit={onSubmit2} />
|
|
};
|
|
return r13;
|
|
}, [onCloseModal, state, guildId])} initialRouteName={initialRouteName} headerStatusBarHeight={top} />;
|
|
};
|