84 lines
4.0 KiB
TypeScript
84 lines
4.0 KiB
TypeScript
// Metro module 15723 (f15724).
|
|
import { useCallback } from "react";
|
|
import { View } from "react-native";
|
|
import { MOBILE_MESSAGE_REQUESTS_MODAL_KEY } from "../MessageRequestConstants";
|
|
import { createStyles } from "../../../design/components/Styles/native/createStyles";
|
|
import Module712 from "../../../_bundle/Module712";
|
|
import useAnalyticsLocations from "../../app_analytics/useAnalyticsLocations";
|
|
import UserUtils from "../../../utils/UserUtils";
|
|
import showUserProfileActionSheet from "../../user_profile/native/showUserProfileActionSheet";
|
|
import { copy } from "../../../utils/ClipboardUtils.native";
|
|
import { presentUsernameCopied } from "../../toast/native/ToastUtils";
|
|
import ActionSheetActionCreators from "../../action_sheet/native/ActionSheetActionCreators";
|
|
import { trackUserProfileAction } from "../../user_profile/UserProfileAnalyticsUtils";
|
|
import { transitionToGuild } from "../../routing/transitionToGuild.native";
|
|
import ModalActionCreators from "../../../actions/ModalActionCreators";
|
|
import { PressableOpacity } from "../../../design/void/Pressables/native/Pressables";
|
|
import { intl, t } from "../../../intl/index.native";
|
|
import { Avatar, AvatarSizes } from "../../../design/void/native";
|
|
import { Text } from "../../../design/components/Text/native/Text";
|
|
import MessageRequestMutualServers from "./MessageRequestMutualServers";
|
|
import { GuildIconSizes } from "../../guild/native/GuildIcon";
|
|
import RestrictedMessagePreviewActions from "./RestrictedMessagePreviewActions";
|
|
const useStyles = createStyles({
|
|
container: {
|
|
alignItems: "flex-start",
|
|
gap: Module712.space.PX_8,
|
|
paddingVertical: Module712.space.PX_12
|
|
},
|
|
avatar: {
|
|
marginBottom: Module712.space.PX_4
|
|
}
|
|
});
|
|
export default function RestrictedMessagePreviewHeader(props) {
|
|
const { channel, user } = props;
|
|
const styles = useStyles();
|
|
const analyticsLocations = useAnalyticsLocations().analyticsLocations;
|
|
const name = UserUtils.getName(user);
|
|
const userTag = UserUtils.getUserTag(user, {
|
|
decoration: "never",
|
|
identifiable: "always"
|
|
});
|
|
const callback2 = useCallback(() => {
|
|
showUserProfileActionSheet({
|
|
userId: user.id,
|
|
channelId: channel.id,
|
|
sourceAnalyticsLocations: analyticsLocations
|
|
});
|
|
}, [user.id, channel.id, analyticsLocations]);
|
|
const callback3 = useCallback(() => {
|
|
copy(userTag);
|
|
presentUsernameCopied();
|
|
}, [userTag]);
|
|
const callback = useCallback(() => {
|
|
ActionSheetActionCreators.openLazy(import("../../user_profile/native/UserProfileMutualGuildsActionSheet"), "MutualGuildsActionSheet", {
|
|
user,
|
|
onPressMutualGuild: (a0) => {
|
|
trackUserProfileAction({
|
|
action: "PRESS_MUTUAL_GUILD"
|
|
});
|
|
transitionToGuild(a0);
|
|
ActionSheetActionCreators.hideActionSheet();
|
|
ModalActionCreators.popWithKey(MOBILE_MESSAGE_REQUESTS_MODAL_KEY);
|
|
}
|
|
});
|
|
}, [user]);
|
|
const r70 = [<PressableOpacity accessibilityRole="button" accessibilityLabel={intl.string(t.iXAna6)} onPress={callback2}>
|
|
<Avatar style={styles.avatar} user={user} guildId={channel.guild_id} size={AvatarSizes.XXLARGE} avatarDecoration={user.avatarDecoration} />
|
|
</PressableOpacity>, <PressableOpacity accessibilityRole="button" accessibilityLabel={intl.string(t.iXAna6)} onPress={callback2}>
|
|
<Text variant="heading-xxl/extrabold" color="mobile-text-heading-primary">{name}</Text>
|
|
</PressableOpacity>, , , , ,];
|
|
const isProvisional = user.isProvisional;
|
|
r70[2] = isProvisional ? !isProvisional : <PressableOpacity accessibilityRole="button" accessibilityHint={intl.string(t.y5MwJy)} onPress={callback3}>
|
|
<Text variant="heading-lg/medium" color="text-default">{userTag}</Text>
|
|
</PressableOpacity>;
|
|
r70[3] = <Text variant="text-md/medium" color="text-default">
|
|
{intl.formatToPlainString(t["Qvg+6+"], {
|
|
username: name
|
|
})}
|
|
</Text>;
|
|
r70[4] = <MessageRequestMutualServers userId={user.id} onPress={callback} iconSize={GuildIconSizes.XSMALL} textVariant="text-md/medium" />;
|
|
r70[5] = <RestrictedMessagePreviewActions channel={channel} user={user} />;
|
|
return <View style={styles.container}>{r70}</View>;
|
|
};
|