109 lines
4.5 KiB
TypeScript
109 lines
4.5 KiB
TypeScript
// Metro module 12479 (f12480).
|
|
import { View } from "react-native";
|
|
import { HelpdeskArticles } from "../../../../Constants";
|
|
import { createStyles } from "../../../../design/components/Styles/native/createStyles";
|
|
import Module712 from "../../../../_bundle/Module712";
|
|
import UserUtils from "../../../../utils/UserUtils";
|
|
import { CreateReferralStatus } from "../../ReferralTrialActionCreators";
|
|
import { Avatar, AvatarSizes } from "../../../../design/void/native";
|
|
import { Text } from "../../../../design/components/Text/native/Text";
|
|
import { intl, t } from "../../../../intl/index.native";
|
|
import { Button } from "../../../../design/components/Button/native/Button.native";
|
|
import { ChatIcon } from "../../../../design/components/Icon/native/redesign/generated/ChatIcon";
|
|
import ActionSheetActionCreators from "../../../action_sheet/native/ActionSheetActionCreators";
|
|
import ChannelActionCreators from "../../../../actions/ChannelActionCreators";
|
|
import HelpdeskUtils from "../../../../utils/HelpdeskUtils";
|
|
import { BottomSheet } from "../../../../design/components/Sheet/native/BottomSheet.native";
|
|
import { BottomSheetTitleHeader } from "../../../../design/components/Sheet/native/BottomSheetTitleHeader.native";
|
|
import { Stack } from "../../../../design/components/Stack/native/Stack.native";
|
|
import { FistBumpSpotIllustration } from "../../../../design/assets/native";
|
|
let useStyles;
|
|
const SharedUser = function SharedUser(props) {
|
|
const { user, trialCreationResult: trialCreationResult2 } = props;
|
|
const styles = useStyles();
|
|
const name = UserUtils.getName(user);
|
|
const r1 = trialCreationResult2 === CreateReferralStatus.FAIL;
|
|
return <View style={styles.recipientRow}>
|
|
<Avatar style={[styles.avatarContainer, r1 && styles.erroredAvatar]} size={AvatarSizes.REFRESH_MEDIUM_32} user={user} guildId={void 0} />
|
|
{r1 ? <>
|
|
<Text variant="text-md/medium" color="text-muted" style={styles.recipientDisplayName}>{name}</Text>
|
|
<Text variant="text-md/medium" color="text-muted">
|
|
{intl.format(t.RO3T4B, {
|
|
userName: name
|
|
})}
|
|
</Text>
|
|
</> : <Text variant="text-md/medium" color="text-strong" style={styles.recipientDisplayName}>{name}</Text>}
|
|
<Button variant="secondary" size="sm" text={intl.string(t["g33r/P"])} icon={<ChatIcon size="xs" color={Module712.colors.CONTROL_SECONDARY_TEXT_DEFAULT} />} onPress={function onPress() {
|
|
ActionSheetActionCreators.hideActionSheet();
|
|
ChannelActionCreators.openPrivateChannel({
|
|
recipientIds: user.id
|
|
});
|
|
}} />
|
|
</View>;
|
|
};
|
|
useStyles = createStyles({
|
|
content: {
|
|
paddingHorizontal: Module712.space.PX_16
|
|
},
|
|
headerAsset: {
|
|
alignSelf: "center"
|
|
},
|
|
header: {
|
|
marginTop: Module712.space.PX_16,
|
|
alignSelf: "center",
|
|
paddingHorizontal: Module712.space.PX_8,
|
|
textAlign: "center"
|
|
},
|
|
subheader: {
|
|
textAlign: "center",
|
|
paddingHorizontal: Module712.space.PX_8,
|
|
marginTop: Module712.space.PX_8
|
|
},
|
|
recipientContainer: {
|
|
gap: Module712.space.PX_16,
|
|
marginTop: Module712.space.PX_16,
|
|
paddingBottom: 21
|
|
},
|
|
recipientRow: {
|
|
flexDirection: "row",
|
|
alignItems: "center",
|
|
padding: Module712.space.PX_12,
|
|
gap: Module712.space.PX_12,
|
|
borderRadius: Module712.radii.md,
|
|
borderWidth: 1,
|
|
borderColor: Module712.colors.BORDER_MUTED
|
|
},
|
|
recipientDisplayName: {
|
|
flex: 1
|
|
},
|
|
erroredAvatar: {
|
|
opacity: 0.5
|
|
},
|
|
avatarContainer: {
|
|
alignSelf: "center",
|
|
justifyContent: "center"
|
|
}
|
|
});
|
|
export default function ReferralProgramShareConfirmationActionSheet(props) {
|
|
const { selectedUsers, trialCreationResult } = props;
|
|
const styles = useStyles();
|
|
return <BottomSheet startExpanded contentStyles={styles.content} header={<BottomSheetTitleHeader title={null} />}>
|
|
<Stack>
|
|
<View style={styles.headerAsset}>
|
|
<FistBumpSpotIllustration />
|
|
</View>
|
|
<Text variant="heading-lg/bold" color="mobile-text-heading-primary" style={styles.header}>
|
|
{Array.from(trialCreationResult.values()).filter((item) => item === CreateReferralStatus.SUCCESS).length === 0 ? intl.string(t["7VBEue"]) : intl.string(t.tKCltd)}
|
|
</Text>
|
|
<Text variant="text-md/medium" color="text-default" style={styles.subheader}>
|
|
{intl.format(t.AwGSWl, {
|
|
helpdeskArticle: HelpdeskUtils.getArticleURL(HelpdeskArticles.REFERRAL_PROGRAM)
|
|
})}
|
|
</Text>
|
|
<View style={styles.recipientContainer}>
|
|
{Array.from(selectedUsers).map((item) => <SharedUser key={item.id} user={item} trialCreationResult={trialCreationResult.get(item.id)} />)}
|
|
</View>
|
|
</Stack>
|
|
</BottomSheet>;
|
|
};
|