Files
discord-decomp/modules/avatar/native/components/PresetAvatarSelect.tsx
T
2026-11-01 12:12:55 +02:00

117 lines
4.1 KiB
TypeScript

// Metro module 16261 (f16262).
import { View } from "react-native";
import defaultAvatar1 from "../../images/defaultAvatar1";
import defaultAvatar2 from "../../images/defaultAvatar2";
import defaultAvatar3 from "../../images/defaultAvatar3";
import defaultAvatar4 from "../../images/defaultAvatar4";
import defaultAvatar5 from "../../images/defaultAvatar5";
import defaultAvatar6 from "../../images/defaultAvatar6";
import defaultAvatar7 from "../../images/defaultAvatar7";
import defaultAvatar8 from "../../images/defaultAvatar8";
import { intl, t } from "../../../../intl/index.native";
import { createStyles } from "../../../../design/components/Styles/native/createStyles";
import Module712 from "../../../../_bundle/Module712";
import { Text } from "../../../../design/components/Text/native/Text";
import { PressableOpacity } from "../../../../design/void/Pressables/native/Pressables";
import FastImage from "../../../../components_native/common/FastImage";
let c11688_6, useStyles;
const DefaultAvatarButton = function DefaultAvatarButton(props) {
const { source, onSelect: onSelect2, selected, accessibilityLabel } = props;
const styles = useStyles();
return <PressableOpacity style={[styles.defaultAvatarContainer, selected ? styles.defaultAvatarSelected : void 0]} accessibilityRole="button" accessibilityLabel={accessibilityLabel} accessibilityState={{
selected
}} accessibilityHint={intl.string(t.vw2RsD)} onPress={onSelect2}>
<FastImage style={styles.defaultAvatarButton} source={{
uri: source
}} />
</PressableOpacity>;
};
const r28 = [defaultAvatar1, defaultAvatar2, defaultAvatar3, defaultAvatar4, defaultAvatar5, defaultAvatar6, defaultAvatar7, defaultAvatar8];
c11688_6 = [{
avatar: defaultAvatar1,
label: () => intl.string(t["u/VENK"])
}, {
avatar: defaultAvatar2,
label: () => intl.string(t["pBx+d8"])
}, {
avatar: defaultAvatar3,
label: () => intl.string(t.vbERmz)
}, {
avatar: defaultAvatar4,
label: () => intl.string(t.Ecxz3Z)
}, {
avatar: defaultAvatar5,
label: () => intl.string(t.Jb8PYM)
}, {
avatar: defaultAvatar6,
label: () => intl.string(t["3h0yoI"])
}, {
avatar: defaultAvatar7,
label: () => intl.string(t.frIpZ5)
}, {
avatar: defaultAvatar8,
label: () => intl.string(t.zpfUeg)
}];
useStyles = createStyles({
container: {
display: "flex",
alignItems: "center",
flex: 1
},
buttonsContainer: {
display: "flex",
flexDirection: "row",
marginTop: 20,
justifyContent: "space-between"
},
defaultAvatarButton: {
height: 48,
width: 48,
borderRadius: Module712.radii.xl
},
defaultAvatarContainer: {
marginHorizontal: 8,
width: 56,
height: 56,
padding: 2,
borderWidth: 2,
borderRadius: 28,
borderColor: "transparent",
display: "flex",
alignItems: "center",
justifyContent: "center"
},
defaultAvatarSelected: {
borderColor: Module712.colors.INTERACTIVE_TEXT_ACTIVE
}
});
export default function PresetAvatarSelect(props) {
const { onAvatarSelect, selectedAvatar } = props;
const styles = useStyles();
return <View style={styles.container} accessibilityRole="list">
<Text variant="text-sm/medium" color="text-default">
{intl.string(t.yP28YL)}
</Text>
<View style={styles.buttonsContainer}>
{[0, 1, 2, 3].map((item) => {
const r12 = c11688_6[item];
return <DefaultAvatarButton key={item} source={r12.avatar} onSelect={() => onAvatarSelect(item)} selected={selectedAvatar === item} accessibilityLabel={intl.formatToPlainString(t["1K8jaQ"], {
index: item + 1,
description: r12.label()
})} />;
})}
</View>
<View style={styles.buttonsContainer}>
{[4, 5, 6, 7].map((item) => {
const r12 = c11688_6[item];
return <DefaultAvatarButton key={item} source={r12.avatar} onSelect={() => onAvatarSelect(item)} selected={selectedAvatar === item} accessibilityLabel={intl.formatToPlainString(t["1K8jaQ"], {
index: item + 1,
description: r12.label()
})} />;
})}
</View>
</View>;
};
export { r28 as DEFAULT_AVATARS };
export { c11688_6 as DEFAULT_AVATARS_WITH_LABELS };