/* Metro module 14536; source: modules/guild_sidebar/native/ChannelItem.tsx; dependencies: [29, 31, 27, 4396, 3793, 1878, 661, 1386, 4865, 33, 4501, 697, 6235, 11846, 1423, 5475, 14537, 6686, 6647, 566, 1305, 6632, 14538, 4805, 1230, 2] */
function _fun109989(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#109989, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:14733:6, offset: 0x023647d1, size: 594 bytes, params: 8, frame: 26
var object2;
const env0_0 = require;
const closure = getChannelMode;
const env0_3 = ['channel', 'subtitle', 'hideIcon', 'children', 'textStyle', 'channelInfo', 'onPress'];
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_4 = importDefault(29) /* metro dependency 29 */;
let value = importAll(31) /* metro dependency 31 */;
const env0_5 = (require(27) /* metro dependency 27 */).View;
const presenceStore = importDefault(4396) /* metro dependency 4396: PresenceStore */;
const relationshipStore = importDefault(3793) /* metro dependency 3793: RelationshipStore */;
const userStore = importDefault(1878) /* metro dependency 1878: UserStore */;
const constantsModule = require(661) /* metro dependency 661: Constants */;
const ChannelTypes = constantsModule.ChannelTypes;
const env0_10 = constantsModule.Routes;
const env0_11 = (require(1386) /* metro dependency 1386: ChannelConstants */).StaticChannelRoute;
const env0_12 = (require(4865) /* metro dependency 4865: ReadStateConstants */).UnreadSetting;
const value3 = require(33) /* metro dependency 33 */;
const env0_13 = value3.jsx;
const env0_14 = value3.jsxs;
const Set = global.Set;
const GUILD_VOICE = ChannelTypes.GUILD_VOICE;
const GUILD_STAGE_VOICE = ChannelTypes.GUILD_STAGE_VOICE;
const set = new Set([GUILD_VOICE, GUILD_STAGE_VOICE]);
const createStylesModule = require(4501) /* metro dependency 4501: createStyles */;
const createStyles = createStylesModule.createStyles;
object2 = {};
const GREEN_360 = (importDefault(697) /* metro dependency 697: native */).unsafe_rawColors.GREEN_360;
object2.channelIconLive = {tintColor: GREEN_360};
object2.dmAvatar = {marginRight: 8};
const BACKGROUND_BASE_LOW = (importDefault(697) /* metro dependency 697: native */).colors.BACKGROUND_BASE_LOW;
object2.avatarStatus = {backgroundColor: BACKGROUND_BASE_LOW};
object2.groupDmAvatar = {'width': 20, 'height': 20, 'borderRadius': 10, 'marginRight': 8};
object2.channelInfoContainer = {paddingStart: 4};
const DARK_393C42_LIGHT_DEE0E4 = (require(6235) /* metro dependency 6235: LegacyTokens */).DARK_393C42_LIGHT_DEE0E4;
object2.avatarStatusSelected = {backgroundColor: DARK_393C42_LIGHT_DEE0E4};
const env0_16 = Reflect.apply(createStyles, createStylesModule, [object2]);
value = value.memo(_fun109995);
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/guild_sidebar/native/ChannelItem.tsx');
exports.default = value;
exports.getChannelMode = closure;
}
function getChannelMode(a0) { // fn#109990, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:14733:772, offset: 0x02364a23, size: 333 bytes, params: 2, frame: 16
const ChannelModes = (require(11846) /* metro dependency 11846: BaseChannelItem */).ChannelModes;
const muted = a0.muted;
const selected = a0.selected;
const unread = a0.unread;
return selected ? a0.channel.isGuildVocal() ? unread ? ChannelModes.UNREAD_IMPORTANT : ChannelModes.RELEVANT : ChannelModes.SELECTED : a0.locked ? ChannelModes.LOCKED : muted ? ChannelModes.MUTED : unread ? a0.resolvedUnreadSetting === UnreadSetting.ALL_MESSAGES ? ChannelModes.UNREAD_IMPORTANT : ChannelModes.UNREAD_LESS_IMPORTANT : ChannelModes.DEFAULT;
}
function ChannelIcon_109991({channel, locked, isRulesChannel, isChannelLive, selected, mode}) { // fn#109991, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:14733:1206, offset: 0x02364b70, size: 495 bytes, params: 2, frame: 26
var r9;
var r11;
var object2;
var channelIcon;
var channelIconComponent;
var defaultImport2;
var BookCheckIcon;
const styles = useStyles();
let type = channel.type;
const DM = ChannelTypes.DM;
if (type === DM) {
return ;
}
type = channel.type;
const GROUP_DM = ChannelTypes.GROUP_DM;
if (type === GROUP_DM) {
var defaultImport = importDefault(1423) /* metro dependency 1423: AvatarUtils */;
var getChannelIconSource = defaultImport.getChannelIconSource;
object2 = {};
object2.id = channel.id;
object2.icon = channel.icon;
object2.applicationId = channel.getApplicationId();
object2.size = 20;
var value3 = Reflect.apply(getChannelIconSource, defaultImport, [object2]);
if (value3 != null) {
return ((Component) => )(importDefault(5475) /* metro dependency 5475: FastImage */);
}
}
if (isRulesChannel) {
defaultImport2 = importDefault(14537) /* metro dependency 14537 */;
BookCheckIcon = (require(6686) /* metro dependency 6686: BookCheckIcon */).BookCheckIcon;
r9 = defaultImport2;
r11 = BookCheckIcon;
} else {
channelIcon = (require(6647) /* metro dependency 6647: ChannelUtils */).getChannelIcon(channel,
{isRulesChannel: false, locked: locked});
channelIconComponent = (require(6647) /* metro dependency 6647: ChannelUtils */).getChannelIconComponent(channel,
{isRulesChannel: false, locked: locked});
r9 = channelIcon;
r11 = channelIconComponent;
}
const BaseChannelIcon = (require(11846) /* metro dependency 11846: BaseChannelItem */).BaseChannelIcon;
return (
);
}
function DMChannelIcon({userId, selected}) { // fn#109992, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:14733:1905, offset: 0x02364d5f, size: 279 bytes, params: 2, frame: 24
const styles = useStyles();
const value2 = (require(566) /* metro dependency 566: flux */).useStateFromStores([UserStore], function() {
return UserStore.getUser(userId);
}, [userId]);
const {status, isMobileOnline,
isVROnline} = (require(566) /* metro dependency 566: flux */).useStateFromStoresObject([PresenceStore],
function() {
var object = {};
var userIdBinding = userId;
object.status = PresenceStore.getStatus(userIdBinding);
object.isMobileOnline = PresenceStore.isMobileOnline(userIdBinding);
object.isVROnline = PresenceStore.isVROnline(userIdBinding);
return object;
}, [userId]);
const Avatar = (require(1305) /* metro dependency 1305: native */).Avatar;
const AvatarSizes = (require(1305) /* metro dependency 1305: native */).AvatarSizes;
const XSMALL_20 = AvatarSizes.XSMALL_20;
return (
);
}
function _fun109995(a0) { // fn#109995, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:14733:2414, offset: 0x02364ebf, size: 506 bytes, params: 2, frame: 32
const styles = useStyles();
const channel = a0.channel;
const subtitle = a0.subtitle;
const hideIcon = a0.hideIcon;
const children = a0.children;
const textStyle = a0.textStyle;
const channelInfo = a0.channelInfo;
const env0_1 = a0.onPress;
const value2 = env0_4(a0, env0_3);
const {isSubscriptionGated,
needSubscriptionToAccess} = (importDefault(6632) /* metro dependency 6632: useChannelRoleSubscriptionStatus */)(channel.id);
const channelMode = getChannelMode(a0);
const value5 = null;
const r7 = value5 != channelInfo || isSubscriptionGated ? {channelInfo}{isSubscriptionGated ? ((Component) => )(importDefault(14538) /* metro dependency 14538: GuildRoleSubscriptionGatedChannelIcon */) : value5} : value5;
const BaseChannelItem = importDefault(11846) /* metro dependency 11846: BaseChannelItem */;
const object2 = {mode: channelMode};
const ChannelModes = (require(11846) /* metro dependency 11846: BaseChannelItem */).ChannelModes;
const UNREAD_IMPORTANT = ChannelModes.UNREAD_IMPORTANT;
object2.unread = channelMode === UNREAD_IMPORTANT || channelMode === (require(11846) /* metro dependency 11846: BaseChannelItem */).ChannelModes.UNREAD_LESS_IMPORTANT;
object2.hideIcon = hideIcon;
const BaseChannelName = (require(11846) /* metro dependency 11846: BaseChannelItem */).BaseChannelName;
const useChannelNameModule = require(4805) /* metro dependency 4805: useChannelName */;
object2.name = ;
object2.icon = ;
object2.channelInfo = r7;
object2.onPress = onPress_109996;
copyDataProperties(object2, value2, undefined);
return (
{children}
);
}
function onPress_109996(a0) { // fn#109996, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:14733:3022, offset: 0x023650b9, size: 137 bytes, params: 2, frame: 15
var value2;
var binding;
var moduleValue;
if (needSubscriptionToAccess) {
value2 = environment.__proto__;
binding = env1_15;
if (binding.has(channel.type)) {
moduleValue = require(1230) /* metro dependency 1230: router_utils */;
moduleValue.transitionTo(Routes.CHANNEL(channel.guild_id, StaticChannelRoute.ROLE_SUBSCRIPTIONS));
} else if (onPress != null) {
onPress(a0);
}
} else if (onPress != null) {
onPress(a0);
}
}