111 lines
5.0 KiB
TypeScript
111 lines
5.0 KiB
TypeScript
// Metro module 9964 (f9965).
|
|
import { useMemo, useEffect } from "react";
|
|
import { View } from "react-native";
|
|
import UserRecord from "../../../records/UserRecord";
|
|
import GuildStore from "../../../stores/GuildStore";
|
|
import UserStore from "../../../stores/UserStore";
|
|
import { createStyles } from "../../../design/components/Styles/native/createStyles";
|
|
import useSafeAreaInsets_native from "../../safe_area/useSafeAreaInsets.native";
|
|
import ContextMenuSubmenuActionSheetHeader from "../../action_sheet/native/components/ContextMenuSubmenuActionSheetHeader";
|
|
import { ApplicationIntegrationType } from "../../../_bundle/Module8028";
|
|
import { useStateFromStores } from "../../../_bundle/Module589";
|
|
import { getUser } from "../../../actions/UserActionCreators";
|
|
import GuildIcon, { GuildIconSizes } from "../../guild/native/GuildIcon";
|
|
import { Text } from "../../../design/components/Text/native/Text";
|
|
import { intl, t } from "../../../intl/index.native";
|
|
import { PressableOpacity } from "../../../design/void/Pressables/native/Pressables";
|
|
import showUserProfileActionSheet from "../../user_profile/native/showUserProfileActionSheet";
|
|
import { Avatar, AvatarSizes } from "../../../design/void/native";
|
|
import { BottomSheet } from "../../../design/components/Sheet/native/BottomSheet.native";
|
|
const useStyles = createStyles({
|
|
itemContainer: {
|
|
flexDirection: "row",
|
|
paddingVertical: 12,
|
|
paddingHorizontal: 16,
|
|
alignItems: "center"
|
|
},
|
|
itemLabel: {
|
|
flexDirection: "column",
|
|
alignItems: "flex-start",
|
|
paddingLeft: 12
|
|
}
|
|
});
|
|
export default function AppInteractionInfoActionSheet(props) {
|
|
let c17588_2, c17588_3, id, stateFromStores, stateFromStores2;
|
|
const { message, guildId, onBack } = props;
|
|
c17588_2 = void 0;
|
|
c17588_3 = void 0;
|
|
id = void 0;
|
|
stateFromStores = void 0;
|
|
stateFromStores2 = void 0;
|
|
const styles = useStyles();
|
|
const bottom = useSafeAreaInsets_native().bottom;
|
|
const memo = useMemo(() => <ContextMenuSubmenuActionSheetHeader onBack={onBack} />, [onBack]);
|
|
const interactionMetadata = message.interactionMetadata;
|
|
const r42 = interactionMetadata == null ? void 0 : interactionMetadata.authorizing_integration_owners[ApplicationIntegrationType.USER_INSTALL];
|
|
c17588_2 = r42;
|
|
const interactionMetadata2 = message.interactionMetadata;
|
|
c17588_3 = interactionMetadata2 == null ? void 0 : interactionMetadata2.authorizing_integration_owners[ApplicationIntegrationType.GUILD_INSTALL];
|
|
const interactionMetadata3 = message.interactionMetadata;
|
|
id = interactionMetadata3 == null ? void 0 : interactionMetadata3.user.id;
|
|
stateFromStores = useStateFromStores([UserStore], () => UserStore.getUser(c17588_2));
|
|
const stateFromStores3 = useStateFromStores([GuildStore], () => GuildStore.getGuild(c17588_3));
|
|
const stateFromStores4 = useStateFromStores([UserStore], () => UserStore.getUser(id));
|
|
stateFromStores2 = stateFromStores4;
|
|
useEffect(() => {
|
|
if (stateFromStores == null && c17588_2 != null) {
|
|
getUser(c17588_2);
|
|
}
|
|
}, [stateFromStores, r42]);
|
|
let user = stateFromStores4;
|
|
if (user == null) {
|
|
const userRecord = new UserRecord(message.interactionMetadata?.user);
|
|
stateFromStores2 = userRecord;
|
|
user = userRecord;
|
|
}
|
|
return <BottomSheet header={memo} bodyStyles={{
|
|
paddingBottom: bottom
|
|
}}>
|
|
{stateFromStores3 != null ? <View style={styles.itemContainer}>
|
|
<GuildIcon guild={stateFromStores3} size={GuildIconSizes.SMALL_32} />
|
|
<View style={styles.itemLabel}>
|
|
<Text variant="text-md/semibold" color="mobile-text-heading-primary">{stateFromStores3.name}</Text>
|
|
<Text variant="text-xs/medium" color="text-subtle">
|
|
{intl.format(t.ShLXXB, {
|
|
application: message.author.username
|
|
})}
|
|
</Text>
|
|
</View>
|
|
</View> : stateFromStores != null ? <PressableOpacity onPress={() => showUserProfileActionSheet({
|
|
userId: stateFromStores.id,
|
|
channelId: message.channel_id
|
|
})}>
|
|
<View style={styles.itemContainer}>
|
|
<Avatar user={stateFromStores} size={AvatarSizes.REFRESH_MEDIUM_32} guildId={guildId} />
|
|
<View style={styles.itemLabel}>
|
|
<Text variant="text-md/semibold" color="mobile-text-heading-primary">{stateFromStores.username}</Text>
|
|
<Text variant="text-xs/medium" color="text-subtle">
|
|
{intl.format(t.ShLXXB, {
|
|
application: message.author.username
|
|
})}
|
|
</Text>
|
|
</View>
|
|
</View>
|
|
</PressableOpacity> : null}
|
|
{user != null ? <PressableOpacity onPress={() => showUserProfileActionSheet({
|
|
userId: stateFromStores2.id,
|
|
channelId: message.channel_id
|
|
})}>
|
|
<View style={styles.itemContainer}>
|
|
<Avatar user={user} size={AvatarSizes.REFRESH_MEDIUM_32} guildId={guildId} />
|
|
<View style={styles.itemLabel}>
|
|
<Text variant="text-md/semibold" color="mobile-text-heading-primary">{user.username}</Text>
|
|
<Text variant="text-xs/medium" color="text-subtle">
|
|
{intl.string(t["04gxNg"])}
|
|
</Text>
|
|
</View>
|
|
</View>
|
|
</PressableOpacity> : null}
|
|
</BottomSheet>;
|
|
};
|