Files
discord-decomp/sources/modules/user_profile/native/UserProfileMutualsActionSheet.tsx
T
2026-07-27 16:20:00 +03:00

164 lines
10 KiB
TypeScript

/* Metro module 8828; source: modules/user_profile/native/UserProfileMutualsActionSheet.tsx; dependencies: [57, 31, 27, 4396, 8516, 33, 4501, 697, 4618, 566, 6238, 1305, 4617, 8829, 6819, 4573, 8818, 8853, 8854, 8855, 8694, 8823, 8824, 1244, 8859, 8861, 2] */
function _fun68962(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#68962, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9013:6, offset: 0x01c62aed, size: 461 bytes, params: 8, frame: 24
var object2;
const env0_0 = require;
const closure = MutualGuildRow;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_3 = importDefault(57) /* metro dependency 57 */;
const env0_4 = importAll(31) /* metro dependency 31 */;
let value = require(27) /* metro dependency 27 */;
const env0_5 = value.View;
const env0_6 = value.ActivityIndicator;
const presenceStore = importDefault(4396) /* metro dependency 4396: PresenceStore */;
const env0_8 = (require(8516) /* metro dependency 8516: Constants */).UserProfileSections;
value = require(33) /* metro dependency 33 */;
const env0_9 = value.jsx;
const env0_10 = value.jsxs;
value = require(4501) /* metro dependency 4501: createStyles */;
const createStyles = value.createStyles;
object2 = {};
let PX_8 = (importDefault(697) /* metro dependency 697: native */).space.PX_8;
object2.container = {'flex': 1, 'gap': 20, paddingTop: PX_8};
PX_8 = (importDefault(697) /* metro dependency 697: native */).space.PX_8;
object2.loadingState = {paddingTop: PX_8, alignItems: 'center'};
object2.emptyState = {alignItems: 'center'};
const TEXT_SUBTLE = (importDefault(697) /* metro dependency 697: native */).colors.TEXT_SUBTLE;
object2.activityStatusText = {color: TEXT_SUBTLE};
const PX_4 = (importDefault(697) /* metro dependency 697: native */).space.PX_4;
object2.mutualGuildSubLabel = {'flexDirection': 'row', 'alignItems': 'center', gap: PX_4};
const env0_11 = Reflect.apply(createStyles, value, [object2]);
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/user_profile/native/UserProfileMutualsActionSheet.tsx');
exports.default = UserProfileMutualsActionSheet;
exports.MutualGuildRow = closure;
}
function MutualFriendRow(a0) { // fn#68963, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9013:543, offset: 0x01c62cba, size: 373 bytes, params: 2, frame: 31
const user = a0.mutualFriend.user;
const guildId = a0.guildId;
const onPress = a0.onPress;
const start = a0.start;
const end = a0.end;
const styles = useStyles();
const value2 = (require(4618) /* metro dependency 4618: useAvatarDecoration */).useAvatarDecoration(user);
const {status, isMobileOnline,
isVROnline} = (require(566) /* metro dependency 566: flux */).useStateFromStoresObject([PresenceStore],
function() {
var object = {};
var userBinding = user;
object.status = PresenceStore.getStatus(userBinding.id);
object.isMobileOnline = PresenceStore.isMobileOnline(userBinding.id);
object.isVROnline = PresenceStore.isVROnline(userBinding.id);
return object;
});
const TableRow = (require(6238) /* metro dependency 6238: TableRowNative */).TableRow;
const Avatar = (require(1305) /* metro dependency 1305: native */).Avatar;
const AvatarSizes = (require(1305) /* metro dependency 1305: native */).AvatarSizes;
const REFRESH_MEDIUM_32 = AvatarSizes.REFRESH_MEDIUM_32;
return (
<TableRow
onPress={onPress}
icon={<Avatar user={user} size={REFRESH_MEDIUM_32} avatarDecoration={value2} status={status} guildId={guildId} isMobileOnline={isMobileOnline} isVROnline={isVROnline} autoStatusCutout />}
label={(importDefault(4617) /* metro dependency 4617: NicknameUtils */).getName(guildId, undefined, user)}
subLabel={((Component) => <Component userId={user.id} guildId={guildId} textStyle={styles.activityStatusText} />)(importDefault(8829) /* metro dependency 8829: ActivityStatus */)}
start={start}
end={end}
key={user.id}
/>
);
}
function MutualGuildRow(a0) { // fn#68965, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9013:1193, offset: 0x01c62e87, size: 456 bytes, params: 2, frame: 31
const {guild, nick} = a0.mutualGuild;
const user = a0.user;
const onPress = a0.onPress;
const start = a0.start;
const end = a0.end;
const styles = useStyles();
const hasAvatarForGuild2 = user.hasAvatarForGuild(guild.id);
const TableRow = (require(6238) /* metro dependency 6238: TableRowNative */).TableRow;
const object2 = {onPress: onPress};
const GuildIcon = importDefault(6819) /* metro dependency 6819: GuildIcon */;
const GuildIconSizes = (require(6819) /* metro dependency 6819: GuildIcon */).GuildIconSizes;
const SMALL_32 = GuildIconSizes.SMALL_32;
object2.icon = <GuildIcon guild={guild} size={SMALL_32} />;
object2.label = guild.name;
const items2 = [hasAvatarForGuild2 && ((Avatar) => <Avatar size={(require(1305) /* metro dependency 1305: native */).AvatarSizes.SIZE_16} user={user} guildId={guild.id} />)((require(1305) /* metro dependency 1305: native */).Avatar)];
items2[1] = nick != null && ((Text) => <Text variant="text-xs/medium" color="text-subtle">{nick}</Text>)((require(4573) /* metro dependency 4573: Text */).Text);
items2[2] = nick == null && hasAvatarForGuild2 && ((Text) => <Text variant="text-xs/medium" color="text-subtle">{user.username}</Text>)((require(4573) /* metro dependency 4573: Text */).Text);
object2.subLabel = <View style={styles.mutualGuildSubLabel}>{items2}</View>;
object2.start = start;
object2.end = end;
return <TableRow {...object2} key={guild.id} />;
}
function UserProfileMutualsActionSheet({user, section, guildId, onPressMutualFriend, onPressMutualGuild}) { // fn#68966, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9013:1874, offset: 0x01c6304f, size: 998 bytes, params: 2, frame: 28
const styles = useStyles();
const [property, env0_4] = onPressMutualGuild(env0_4Binding.useState(0), 2);
const {mutualFriends, mutualGuilds} = (importDefault(8818) /* metro dependency 8818: useUserProfileMutuals */)(user);
const segmentedControlStateNativeModule = require(8853) /* metro dependency 8853: SegmentedControlStateNative */;
const useSegmentedControlState = segmentedControlStateNativeModule.useSegmentedControlState;
let object3 = {pageWidth: property};
const MUTUAL_GUILDS = UserProfileSections.MUTUAL_GUILDS;
object3.defaultIndex = section !== MUTUAL_GUILDS ? 0 : 1;
const object4 = {id: 'mutual-friends'};
object4.label = (importDefault(8854) /* metro dependency 8854: getMutualFriendsLabel */)(mutualFriends?.length);
object4.page = mutualFriends == null ? <View style={styles.loadingState}><ActivityIndicator /></View> : mutualFriends.length === 0 ? <View style={styles.emptyState}>{((NoMutualFriends) => <NoMutualFriends />)((require(8855) /* metro dependency 8855: NoMutualFriends */).NoMutualFriends)}</View> : ((UserProfileStackedActionSheetList) => <UserProfileStackedActionSheetList data={mutualFriends} keyExtractor={function(a0) {
return a0.user.id;
}} renderItem={renderItem_68968} />)((require(8694) /* metro dependency 8694: UserProfileStackedActionSheet */).UserProfileStackedActionSheetList);
const items2 = [object4];
const object5 = {id: 'mutual-guilds'};
object5.label = (importDefault(8823) /* metro dependency 8823: getMutualGuildsLabel */)(mutualGuilds?.length);
object5.page = mutualGuilds == null ? <View style={styles.loadingState}><ActivityIndicator /></View> : mutualGuilds.length === 0 ? <View style={styles.emptyState}>{((NoMutualServers) => <NoMutualServers />)((require(8824) /* metro dependency 8824: NoMutualServers */).NoMutualServers)}</View> : ((UserProfileStackedActionSheetList) => <UserProfileStackedActionSheetList data={mutualGuilds} keyExtractor={function(a0) {
return a0.guild.id;
}} renderItem={renderItem_68971} />)((require(8694) /* metro dependency 8694: UserProfileStackedActionSheet */).UserProfileStackedActionSheetList);
items2[1] = object5;
object3.items = items2;
const value14 = Reflect.apply(useSegmentedControlState, segmentedControlStateNativeModule, [object3]);
const value15 = env0_4Binding.useCallback(_fun68973, []);
const UserProfileStackedActionSheet = importDefault(8694) /* metro dependency 8694: UserProfileStackedActionSheet */;
object3 = {scrollable: true};
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
object3.title = intl.string((require(1244) /* metro dependency 1244: indexNative */).t['l2/aLi']);
const Tabs = (require(8859) /* metro dependency 8859: TabsNative */).Tabs;
const view = <View><Tabs state={value14} /></View>;
const SegmentedControlPages = (require(8861) /* metro dependency 8861: SegmentedControlPagesNative */).SegmentedControlPages;
return (
<UserProfileStackedActionSheet {...object3}>
<View style={styles.container} onLayout={value15}>
{view}
<SegmentedControlPages state={value14} />
</View>
</UserProfileStackedActionSheet>
);
}
function UserProfileMutualsActionSheetRenderItem({item, start, end}) { // fn#68968, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9013:2469, owner: UserProfileMutualsActionSheet.renderItem, offset: 0x01c63435, size: 82 bytes, params: 2, frame: 16
return (
<MutualFriendRow
mutualFriend={item}
guildId={guildId}
onPress={function() {
return onPressMutualFriend(item.user.id);
}}
start={start}
end={end}
/>
);
}
function UserProfileMutualsActionSheetRenderItem_68971({item, start, end}) { // fn#68971, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9013:2875, owner: UserProfileMutualsActionSheet.renderItem, offset: 0x01c634a8, size: 82 bytes, params: 2, frame: 17
return (
<MutualGuildRow
user={user}
mutualGuild={item}
onPress={function() {
return onPressMutualGuild(item.guild.id);
}}
start={start}
end={end}
/>
);
}