Files
discord-decomp/sources/modules/user_profile/native/UserProfileMutualsActionSheet.tsx
T
2026-07-28 01:06:53 +03:00

235 lines
14 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] */
import Module00057 from '../../../by-id/module-00057.js'; /* Metro dependency 57 */
import PresenceStore from '../../../stores/PresenceStore.tsx'; /* Metro dependency 4396 */
import NicknameUtils from '../../../utils/NicknameUtils.tsx'; /* Metro dependency 4617 */
import GuildIcon from '../../guild/native/GuildIcon.tsx'; /* Metro dependency 6819 */
import UserProfileStackedActionSheet from './UserProfileStackedActionSheet.tsx'; /* Metro dependency 8694 */
import UseUserProfileMutuals from '../hooks/useUserProfileMutuals.tsx'; /* Metro dependency 8818 */
import ActivityStatus from '../../activity_status/native/ActivityStatus.tsx'; /* Metro dependency 8829 */
import * as FileImportTrackerModule from '../../../by-id/module-00002-FileImportTracker.js'; /* Metro dependency 2 */
import * as ReactNativeModule from '../../../by-id/module-00027-ReactNative.js'; /* Metro dependency 27 */
import * as ReactModule from '../../../by-id/module-00031-React.js'; /* Metro dependency 31 */
import * as NativeModule from '../../../design/void/native.tsx'; /* Metro dependency 1305 */
import * as UseAvatarDecorationModule from '../../collectibles/avatar_decorations/useAvatarDecoration.tsx'; /* Metro dependency 4618 */
import * as TableRowNativeModule from '../../../design/components/TableRow/native/TableRow.native.tsx'; /* Metro dependency 6238 */
import * as GuildIconModule from '../../guild/native/GuildIcon.tsx'; /* Metro dependency 6819 */
import * as ConstantsModule from '../Constants.tsx'; /* Metro dependency 8516 */
import * as SegmentedControlStateNativeModule from '../../../design/components/SegmentedControl/native/SegmentedControlState.native.tsx'; /* Metro dependency 8853 */
import * as TabsNativeModule from '../../../design/components/Tabs/native/Tabs.native.tsx'; /* Metro dependency 8859 */
import * as SegmentedControlPagesNativeModule from '../../../design/components/SegmentedControl/native/SegmentedControlPages.native.tsx'; /* Metro dependency 8861 */
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
const env0_0 = require;
const MutualGuildRow2 = MutualGuildRow;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
let value = ReactNativeModule;
const env0_5 = value.View;
const env0_6 = value.ActivityIndicator;
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;
object = {};
let PX_8 = (importDefault(697) /* metro dependency 697: native */).space.PX_8;
object.container = {'flex': 1, 'gap': 20, paddingTop: PX_8};
PX_8 = (importDefault(697) /* metro dependency 697: native */).space.PX_8;
object.loadingState = {paddingTop: PX_8, alignItems: 'center'};
object.emptyState = {alignItems: 'center'};
const TEXT_SUBTLE = (importDefault(697) /* metro dependency 697: native */).colors.TEXT_SUBTLE;
object.activityStatusText = {color: TEXT_SUBTLE};
const PX_4 = (importDefault(697) /* metro dependency 697: native */).space.PX_4;
object.mutualGuildSubLabel = {'flexDirection': 'row', 'alignItems': 'center', gap: PX_4};
const env0_11 = Reflect.apply(createStyles, value, [object]);
(FileImportTrackerModule).fileFinishedImporting('modules/user_profile/native/UserProfileMutualsActionSheet.tsx');
exports.default = UserProfileMutualsActionSheet;
exports.MutualGuildRow = MutualGuildRow2;
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 = (UseAvatarDecorationModule).useAvatarDecoration(user);
const {status, isMobileOnline,
isVROnline} = (require(566) /* metro dependency 566: flux */).useStateFromStoresObject([PresenceStore],
function() {
var object = {};
var presenceStoreBinding = PresenceStore;
var userBinding = user;
object.status = presenceStoreBinding.getStatus(userBinding.id);
object.isMobileOnline = PresenceStore.isMobileOnline(userBinding.id);
object.isVROnline = PresenceStore.isVROnline(userBinding.id);
return object;
});
const TableRow = (TableRowNativeModule).TableRow;
const Avatar = (NativeModule).Avatar;
const AvatarSizes = (NativeModule).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={(NicknameUtils).getName(guildId, undefined, user)}
subLabel={((Component) => <Component userId={user.id} guildId={guildId} textStyle={styles.activityStatusText} />)(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 = (TableRowNativeModule).TableRow;
const object = {onPress: onPress};
const GuildIconSizes = (GuildIconModule).GuildIconSizes;
const SMALL_32 = GuildIconSizes.SMALL_32;
object.icon = <GuildIcon guild={guild} size={SMALL_32} />;
object.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);
object.subLabel = (
<View style={styles.mutualGuildSubLabel}>
{items2}
</View>
);
object.start = start;
object.end = end;
return <TableRow {...object} 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} = (UseUserProfileMutuals)(user);
const useSegmentedControlState = SegmentedControlStateNativeModule.useSegmentedControlState;
let object = {pageWidth: property};
const MUTUAL_GUILDS = UserProfileSections.MUTUAL_GUILDS;
object.defaultIndex = section !== MUTUAL_GUILDS ? 0 : 1;
const object2 = {id: 'mutual-friends'};
object2.label = (importDefault(8854) /* metro dependency 8854: getMutualFriendsLabel */)(mutualFriends?.length);
object2.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 = [object2];
const object6 = {id: 'mutual-guilds'};
object6.label = (importDefault(8823) /* metro dependency 8823: getMutualGuildsLabel */)(mutualGuilds?.length);
object6.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] = object6;
object.items = items2;
const value14 = Reflect.apply(useSegmentedControlState, SegmentedControlStateNativeModule, [object]);
const value15 = env0_4Binding.useCallback(_fun68973, []);
object = {scrollable: true};
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
object.title = intl.string((require(1244) /* metro dependency 1244: indexNative */).t['l2/aLi']);
const Tabs = (TabsNativeModule).Tabs;
const view = (
<View>
<Tabs state={value14} />
</View>
);
const SegmentedControlPages = (SegmentedControlPagesNativeModule).SegmentedControlPages;
return (
<UserProfileStackedActionSheet {...object}>
<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}
/>
);
}
function _fun68973({nativeEvent}) { // fn#68973, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9013:3005, offset: 0x01c6351b, size: 36 bytes, params: 2, frame: 11
env0_4(nativeEvent.layout.width);
}
}
}
global.__d(_fun68962, 8828, [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]) /* metro module 8828, 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] */;