Initial commit

This commit is contained in:
janisslsm committed 2026-07-27 16:20:00 +03:00
commit af3b49f756
16065 files changed
+2938410

No files matched your search

@@ -0,0 +1,34 @@
/* Metro module 6544; source: modules/emoji_picker/EmojiPickerConstants.tsx; dependencies: [2] */
function _fun51621(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#51621, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6722:6, offset: 0x0123d0d6, size: 627 bytes, params: 8, frame: 19
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const object = {MEDIUM: 40};
object[40] = 'MEDIUM';
object.LARGE = 48;
object[48] = 'LARGE';
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/emoji_picker/EmojiPickerConstants.tsx');
exports.EmojiCategoryTypes = {GUILD: 'GUILD', UNICODE: 'UNICODE', RECENT: 'RECENT', CUSTOM: 'CUSTOM',
SEARCH_RESULTS: 'SEARCH_RESULTS', FAVORITES: 'FAVORITES', TOP_GUILD_EMOJI: 'TOP_GUILD_EMOJI',
PREMIUM_UPSELL: 'PREMIUM_UPSELL', SOUNDMOJI: 'SOUNDMOJI', KAOMOJI: 'KAOMOJI'};
exports.GRID_NAVIGATOR_ID = 'emoji-picker-grid';
exports.EmojiCategories = {RECENT: 'recent', FAVORITES: 'favorites', TOP_GUILD_EMOJI: 'top guild emoji',
CUSTOM: 'custom', PEOPLE: 'people', NATURE: 'nature', FOOD: 'food', ACTIVITY: 'activity', TRAVEL: 'travel',
OBJECTS: 'objects', SYMBOLS: 'symbols', FLAGS: 'flags', PREMIUM_UPSELL: 'premium emoji', SOUNDMOJI: 'soundmoji',
KAOMOJI: 'kaomoji'};
exports.EmojiSubCategory = {NONE: '', TOP_GUILD_EMOJI: 'top_server', NEWLY_ADDED_EMOJI: 'newly_added'};
exports.SEARCH_DEBOUNCE_MS = 200;
exports.INACTIVE_CATEGORY_INDEX = -1;
exports.EmojiSize = object;
exports.EMOJI_PICKER_PADDING = 100;
exports.EMOJI_PICKER_TAB_PANEL_ID = 'emoji-picker-tab-panel';
exports.EMOJI_PICKER_TAB_ID = 'emoji-picker-tab';
exports.SOUNDBOARD_PICKER_TAB_PANEL_ID = 'soundboard-picker-tab-panel';
exports.SOUNDBOARD_PICKER_TAB_ID = 'soundboard-picker-tab';
exports.KAOMOJI_PICKER_TAB_PANEL_ID = 'kaomoji-picker-tab-panel';
exports.KAOMOJI_PICKER_TAB_ID = 'kaomoji-picker-tab';
exports.GIF_PICKER_TAB_PANEL_ID = 'gif-picker-tab-panel';
exports.GIF_PICKER_TAB_ID = 'gif-picker-tab';
exports.EMOJI_SIZE_MAP = {'reaction': 40, 'default': 44, 'jumbo': 96};
exports.EMOJI_ROW_SIZE = 9;
}
@@ -0,0 +1,802 @@
/* Metro module 8533; source: modules/emoji_picker/EmojiPickerUtils.tsx; dependencies: [31, 6540, 1867, 4896, 1878, 6544, 661, 1881, 1346, 1880, 491, 8534, 4863, 8535, 8537, 8538, 566, 1900, 8539, 1244, 3801, 3797, 683, 22, 672, 1362, 2] */
function _fun67613(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#67613, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8718:6, offset: 0x01c2b20b, size: 803 bytes, params: 8, frame: 23
const env0_0 = require;
const _arrayLikeToArray_67616 = function(a0, a1) {
var r0;
var r1;
var r2;
var value3;
var length;
var value5;
var value = undefined;
var value2 = value == null;
reducibleJoin2: while (true) {
if (value2) {
r0 = value2;
break reducibleJoin2;
}
value3 = value > a0.length;
r0 = value3;
break reducibleJoin2;
}
reducibleJoin4: while (true) {
if (r0) {
length = a0.length;
r1 = length;
break reducibleJoin4;
}
r1 = value;
break reducibleJoin4;
}
value = (0, global.Array)(r1);
var value4 = 0;
if (value4 < r1) {
r2 = value4;
reducibleLoop5: while (true) {
value[r2] = a0[r2];
value5 = typeof r2 === 'bigint' ? r2 + 1n : +r2 + 1;
if (value5 < r1) {
r2 = value5;
continue reducibleLoop5;
}
break reducibleLoop5;
}
}
return value;
};
const searchTypeForIntention = function(a0) {
if (EmojiIntention.REACTION === a0) {
return SearchTypes.EMOJI_REACTION;
}
if (EmojiIntention.AUTO_SUGGESTION === a0) {
return SearchTypes.EMOJI_AUTO_SUGGESTION;
}
return SearchTypes.EMOJI;
};
const loadIdPayload = function(a0) {
return a0 == null ? {} : a0 !== '' ? {load_id: a0} : {};
};
const closure = useFrequentlyUsedEmojis;
const closure2 = useFrequentlyUsedReactionEmojis;
const closure3 = useFavoriteEmojis;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_3 = importAll(31) /* metro dependency 31 */;
const emojiStore = importDefault(6540) /* metro dependency 6540: EmojiStore */;
const guildStore = importDefault(1867) /* metro dependency 1867: GuildStore */;
const sortedGuildStore = importDefault(4896) /* metro dependency 4896: SortedGuildStore */;
const userStore = importDefault(1878) /* metro dependency 1878: UserStore */;
let value = require(6544) /* metro dependency 6544: EmojiPickerConstants */;
const env0_8 = value.EmojiCategories;
const env0_9 = value.EmojiCategoryTypes;
const env0_10 = value.EmojiSubCategory;
value = require(661) /* metro dependency 661: Constants */;
const env0_11 = value.AnalyticEvents;
const env0_12 = value.AnalyticsPages;
const env0_13 = value.AnalyticsSections;
const env0_14 = value.AutoCompleteResultTypes;
const env0_15 = value.SearchTypes;
value = require(1881) /* metro dependency 1881: EmojiConstants */;
const env0_16 = value.isExternalEmojiAllowedForIntention;
const env0_17 = value.EmojiIntention;
const env0_18 = (require(1346) /* metro dependency 1346: ExpressionPickerConstants */).ExpressionPickerViewType;
const env0_19 = (require(1880) /* metro dependency 1880: PremiumConstants */).PremiumUpsellTypes;
const env0_20 = RegExp('-', 'g');
const throttle = (require(22) /* metro dependency 22 */).throttle;
const Millis = (importDefault(672) /* metro dependency 672: Durations */).Millis;
const HALF_SECOND = Millis.HALF_SECOND;
value = Reflect.apply(throttle, value, [_fun67628, HALF_SECOND, {'leading': false, 'trailing': true}]);
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/emoji_picker/EmojiPickerUtils.tsx');
exports.initializeSearch = initializeSearch;
exports.useEmojiCategories = useEmojiCategories;
exports.getUnicodeEmojiCategories = getUnicodeEmojiCategories;
exports.trackPremiumSettingsPaneOpened = trackPremiumSettingsPaneOpened;
exports.trackEmojiSearchStart = function(a0, a1) {
var defaultImport = importDefault(dependencyMap[12]);
var SEARCH_STARTED = AnalyticEvents.SEARCH_STARTED;
var object = {};
object.search_type = searchTypeForIntention(a1);
object.location = a0;
var loadIdPayloadBinding = loadIdPayload;
var EmojiPickerStore = require(dependencyMap[11]).EmojiPickerStore;
copyDataProperties(object, loadIdPayloadBinding(EmojiPickerStore.getAnalyticsId()), dependencyMap);
defaultImport.trackWithMetadata(SEARCH_STARTED, object);
};
exports.trackEmojiSearchResultsViewed = trackEmojiSearchResultsViewed;
exports.trackEmojiSearchSelect = trackEmojiSearchSelect;
exports.trackEmojiSearchEmpty = function({location, searchQuery, intention, loadId}) {
var defaultImport = importDefault(dependencyMap[12]);
var SEARCH_RESULT_EMPTY = AnalyticEvents.SEARCH_RESULT_EMPTY;
var object = {};
object.search_type = searchTypeForIntention(intention);
object.query = searchQuery;
object.location = location;
copyDataProperties(object, loadIdPayload(loadId), intention);
defaultImport.trackWithMetadata(SEARCH_RESULT_EMPTY, object);
};
exports.trackEmojiFocus = trackEmojiFocus;
exports.trackEmojiSelect = trackEmojiSelect;
exports.trackEmojiFavorited = trackEmojiFavorited;
exports.throttledTrackEmojiAutoSuggestDisplayed = value;
exports.getAriaIdForEmojiCategory = getAriaIdForEmojiCategory;
exports.getStringForEmojiCategory = getStringForEmojiCategory;
exports.useEmojiSearchResults = useEmojiSearchResults;
exports.useFrequentlyUsedEmojis = closure;
exports.useFrequentlyUsedReactionEmojis = closure2;
exports.useFavoriteEmojis = closure3;
exports.useIsFavoriteEmoji = useIsFavoriteEmoji;
exports.useEmojiInPriorityOrder = useEmojiInPriorityOrder;
exports.getEmojiSubCategory = getEmojiSubCategory;
exports.getSearchPlaceholder = getSearchPlaceholder;
}
function _createForOfIteratorHelperLoose_67614(a0, a1) { // fn#67614, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8718:476, offset: 0x01c2b52e, size: 372 bytes, params: 3, frame: 20
var r6;
var r9;
var r5;
var value3;
var regexp;
const env0_0 = a0;
const Symbol = global.Symbol;
let value = typeof Symbol !== 'undefined';
let r1 = value && a0[global.Symbol.iterator];
r1 = !r1 ? a0['@@iterator'] : r1;
if (r1) {
value = r1.call(a0);
return value.next.bind(value);
}
const Array = global.Array;
if (Array.isArray(a0)) {
if (r1) {
}
return _fun67615;
}
value = undefined;
if (a0) {
if (typeof a0 === 'string') {
value = _arrayLikeToArray_67616(a0, value);
r5 = value;
} else {
value3 = ({}).toString.call(a0).slice(8, -1);
r6 = value3 === 'Object' && a0.constructor;
r9 = r6 ? a0.constructor.name : value3;
if (r9 === 'Map') {
r6 = global.Array.from(a0);
} else if (r9 === 'Set') {
r6 = global.Array.from(a0);
} else if (r9 === 'Arguments') {
value = _arrayLikeToArray_67616(a0, value);
r6 = value;
} else {
regexp = RegExp('^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$', '');
if (regexp.test(r9)) {
value = _arrayLikeToArray_67616(a0, value);
r6 = value;
} else {
r6 = value;
}
}
r5 = r6;
}
} else {
r5 = value;
}
if (r5) {
if (r5) {
}
return _fun67615;
}
const TypeError = global.TypeError;
throw new TypeError('Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.');
}
function useFrequentlyUsedEmojis(a0) { // fn#67619, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8718:1962, offset: 0x01c2b709, size: 93 bytes, params: 2, frame: 15
const env0_0 = a0;
env0_3.useEffect(function() {
var FrecencyUserSettingsActionCreators = require(dependencyMap[25]).FrecencyUserSettingsActionCreators;
FrecencyUserSettingsActionCreators.loadIfNecessary();
}, []);
return (require(566) /* metro dependency 566: flux */).useStateFromStoresArray([EmojiStore], _fun67621);
}
function useFrequentlyUsedReactionEmojis(a0) { // fn#67622, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8718:2218, offset: 0x01c2b7b8, size: 93 bytes, params: 2, frame: 15
const env0_0 = a0;
env0_3.useEffect(function() {
var FrecencyUserSettingsActionCreators = require(dependencyMap[25]).FrecencyUserSettingsActionCreators;
FrecencyUserSettingsActionCreators.loadIfNecessary();
}, []);
return (require(566) /* metro dependency 566: flux */).useStateFromStoresArray([EmojiStore], _fun67624);
}
function useFavoriteEmojis(a0) { // fn#67625, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8718:2490, offset: 0x01c2b83a, size: 93 bytes, params: 2, frame: 15
const env0_0 = a0;
env0_3.useEffect(function() {
var FrecencyUserSettingsActionCreators = require(dependencyMap[25]).FrecencyUserSettingsActionCreators;
FrecencyUserSettingsActionCreators.loadIfNecessary();
}, []);
return (require(566) /* metro dependency 566: flux */).useStateFromStoresArray([EmojiStore], _fun67627);
}
function _fun67628({emojiSuggestions, analyticsLocation}) { // fn#67628, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8718:1650, offset: 0x01c2b8b8, size: 153 bytes, params: 2, frame: 19
const defaultImport = importDefault(4863) /* metro dependency 4863: AppAnalyticsUtils */;
const trackWithMetadata = defaultImport.trackWithMetadata;
const AUTO_SUGGEST_DISPLAYED = AnalyticEvents.AUTO_SUGGEST_DISPLAYED;
const object2 = {};
const EMOJI = AutoCompleteResultTypes.EMOJI;
object2.suggestion_type = EMOJI;
let results = emojiSuggestions.results;
object2.suggestion_quantity = results.length;
results = emojiSuggestions.results;
object2.custom_quantity = results.filter(function(a0) {
return a0.emoji.id != null;
}).length;
object2.load_id = emojiSuggestions.loadId;
object2.location = analyticsLocation;
Reflect.apply(trackWithMetadata, defaultImport, [AUTO_SUGGEST_DISPLAYED, object2]);
}
function initializeSearch({intention, location}) { // fn#67630, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8718:2826, offset: 0x01c2b967, size: 162 bytes, params: 2, frame: 19
const value3 = (require(491) /* metro dependency 491 */).v4().replace(env0_20, '');
const EmojiPickerStore = (require(8534) /* metro dependency 8534: ExpressionPickerGridStores */).EmojiPickerStore;
EmojiPickerStore.setAnalyticsId(value3);
const defaultImport = importDefault(4863) /* metro dependency 4863: AppAnalyticsUtils */;
const trackWithMetadata = defaultImport.trackWithMetadata;
const SEARCH_OPENED = AnalyticEvents.SEARCH_OPENED;
const object2 = {};
object2.search_type = searchTypeForIntention(intention);
object2.load_id = value3;
object2.location = location;
Reflect.apply(trackWithMetadata, defaultImport, [SEARCH_OPENED, object2]);
}
function useEmojiCategories(a0, a1) { // fn#67631, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8718:3086, offset: 0x01c2ba09, size: 542 bytes, params: 3, frame: 30
const value = a2;
const value2 = a3;
const env0_0 = a0;
const env0_1 = a1;
const value3 = undefined;
const r14 = value !== value3 ? value : a1 == null ? value3 : a1.getGuildId();
const r4 = value2 !== value3 ? value2 : false;
const env0_3 = r4;
(require(8535) /* metro dependency 8535: TopEmojisUtils */).maybeFetchTopEmojisByGuild(r14);
const isExternalEmojiAllowedForIntention2 = isExternalEmojiAllowedForIntention(a0);
const value4 = useFrequentlyUsedEmojis(r14);
const value5 = useFrequentlyUsedReactionEmojis(r14);
const value6 = useFavoriteEmojis(r14);
const value7 = (importDefault(8537) /* metro dependency 8537: useTopAndNewlyAddedEmojis */)(r14, a0);
const allEmojis = (importDefault(8538) /* metro dependency 8538: useEmojiHotrail */)({topEmojis: value7.topEmojis,
newlyAddedEmojis: value7.newlyAddedEmojis}).allEmojis;
const value8 = (require(566) /* metro dependency 566: flux */).useStateFromStores([EmojiStore], _fun67632, [r14]);
const value9 = (require(566) /* metro dependency 566: flux */).useStateFromStores([GuildStore], _fun67633);
const currentUser = (require(566) /* metro dependency 566: flux */).useStateFromStores([UserStore], function() {
return UserStore.getCurrentUser();
});
return env0_3.useMemo(_fun67635, [value8, a1, r14, a0,
(require(1900) /* metro dependency 1900: PremiumTypeUtils */).isPremium(currentUser), allEmojis, value9, value5,
value4, value6, isExternalEmojiAllowedForIntention2,
(require(8539) /* metro dependency 8539: SoundmojiSendingExperiment */).useSoundmojiEmojiPickerSectionExperiment({location: 'useEmojiCategories'}),
r4]);
}
function getUnicodeEmojiCategories() { // fn#67639, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8718:5702, offset: 0x01c2c293, size: 56 bytes, params: 1, frame: 11
let value = importDefault(3797) /* metro dependency 3797: UnicodeEmojis */;
value = value.getCategories();
return value.map(function(a0) {
return {type: EmojiCategoryTypes.UNICODE, id: a0, name: a0, isNitroLocked: false};
});
}
function trackPremiumSettingsPaneOpened(a0) { // fn#67641, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8718:5823, offset: 0x01c2c2f2, size: 135 bytes, params: 2, frame: 20
const value = undefined;
const value3 = (a0 == null ? value : a0.getGuildId()) != null;
const defaultImport = importDefault(683) /* metro dependency 683: AnalyticsUtils */;
const track = defaultImport.track;
const PREMIUM_PROMOTION_OPENED = AnalyticEvents.PREMIUM_PROMOTION_OPENED;
Reflect.apply(track, defaultImport, [PREMIUM_PROMOTION_OPENED,
{location_page: value3 ? AnalyticsPages.GUILD_CHANNEL : AnalyticsPages.DM_CHANNEL,
location_section: a0 != null ? AnalyticsSections.EMOJI_PICKER_POPOUT : AnalyticsSections.CUSTOM_STATUS_MODAL}]);
return value;
}
function trackEmojiSearchResultsViewed({totalResults, numEmojiLocked, location, searchQuery, intention, loadId}) { // fn#67643, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8718:6256, offset: 0x01c2c3f4, size: 142 bytes, params: 2, frame: 22
const defaultImport = importDefault(4863) /* metro dependency 4863: AppAnalyticsUtils */;
const trackWithMetadata = defaultImport.trackWithMetadata;
const SEARCH_RESULT_VIEWED = AnalyticEvents.SEARCH_RESULT_VIEWED;
const object2 = {};
object2.search_type = searchTypeForIntention(intention);
object2.total_results = totalResults;
object2.num_results_locked = numEmojiLocked;
object2.query = searchQuery;
object2.location = location;
copyDataProperties(object2, loadIdPayload(loadId), intention);
Reflect.apply(trackWithMetadata, defaultImport, [SEARCH_RESULT_VIEWED, object2]);
}
function trackEmojiSearchSelect({emoji, emojiSuggestions, searchQuery, isLocked, location, intention, index, messageId}) { // fn#67644, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8718:6534, offset: 0x01c2c482, size: 390 bytes, params: 2, frame: 26
var r7;
var results;
const r14 = emoji.uniqueName ?? emoji.name;
var value;
const value3 = searchTypeForIntention(intention);
const defaultImport = importDefault(4863) /* metro dependency 4863: AppAnalyticsUtils */;
const trackWithMetadata = defaultImport.trackWithMetadata;
const SEARCH_RESULT_SELECTED = AnalyticEvents.SEARCH_RESULT_SELECTED;
const object2 = {search_type: value3, location: location};
object2.expression_guild_id = emoji.guildId;
object2.emoji_id = emoji.id;
object2.emoji_name = r14;
object2.is_custom = emoji.id != null;
object2.is_animated = emoji.animated;
object2.is_locked = isLocked;
object2.query = searchQuery;
object2.index_num = index;
copyDataProperties(object2,
loadIdPayload(emojiSuggestions?.loadId ?? (require(8534) /* metro dependency 8534: ExpressionPickerGridStores */).EmojiPickerStore.getAnalyticsId()),
value3);
object2['total_results'] = emojiSuggestions == null ? undefined : emojiSuggestions.results?.length;
if (emojiSuggestions == null) {
r7 = undefined;
} else {
results = emojiSuggestions.results;
if (results == null) {
r7 = undefined;
} else {
value = results.map(function(a0) {
return a0.emoji.id;
});
value = value.filter(_fun67646);
r7 = value;
}
}
object2['emoji_suggestion_ids'] = r7;
object2['message_id'] = messageId;
Reflect.apply(trackWithMetadata, defaultImport, [SEARCH_RESULT_SELECTED, object2]);
}
function trackEmojiFocus({emoji, subCategory, position, newlyAddedHighlight}) { // fn#67648, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8718:7424, offset: 0x01c2c68c, size: 143 bytes, params: 2, frame: 20
const defaultImport = importDefault(4863) /* metro dependency 4863: AppAnalyticsUtils */;
const trackWithMetadata = defaultImport.trackWithMetadata;
const EXPRESSION_PICKER_EXPRESSION_FOCUS = AnalyticEvents.EXPRESSION_PICKER_EXPRESSION_FOCUS;
Reflect.apply(trackWithMetadata, defaultImport, [EXPRESSION_PICKER_EXPRESSION_FOCUS,
{expression_section: subCategory?.toString(), newly_added_highlight: newlyAddedHighlight, emoji_id: emoji.id,
emoji_name: emoji.name, emoji_animated: emoji.animated, emoji_position: position}]);
}
function trackEmojiSelect({emoji, location, pickerIntention, category, subCategory, position, newlyAddedHighlight, isBurstReaction, messageId}) { // fn#67649, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8718:7719, offset: 0x01c2c71b, size: 322 bytes, params: 2, frame: 25
const r11 = subCategory !== undefined ? subCategory : EmojiSubCategory.NONE;
const REACTION = EmojiIntention.REACTION;
const r15 = REACTION === pickerIntention ? isBurstReaction ? PremiumUpsellTypes.EMOJI_PICKER_SUPER_REACTION_EMOJI_CLICKED : PremiumUpsellTypes.EMOJI_PICKER_REACTION_EMOJI_CLICKED : EmojiIntention.STATUS === pickerIntention ? PremiumUpsellTypes.EMOJI_PICKER_STATUS_EMOJI_CLICKED : PremiumUpsellTypes.EMOJI_PICKER_EMOJI_CLICKED;
const r13 = emoji.uniqueName ?? emoji.name;
const defaultImport = importDefault(4863) /* metro dependency 4863: AppAnalyticsUtils */;
const trackWithMetadata = defaultImport.trackWithMetadata;
const EXPRESSION_PICKER_EXPRESSION_SELECTED = AnalyticEvents.EXPRESSION_PICKER_EXPRESSION_SELECTED;
const object2 = {type: r15, location: location};
object2.expression_id = emoji.id;
object2.expression_name = r13;
object2.expression_guild_id = emoji.guildId;
object2.is_custom = emoji.id != null;
object2.is_animated = emoji.animated;
object2.expression_picker_section = category;
object2.expression_section = r11?.toString();
object2.emoji_position = position;
object2.newly_added_highlight = newlyAddedHighlight;
object2.is_burst = isBurstReaction;
object2.message_id = messageId;
Reflect.apply(trackWithMetadata, defaultImport, [EXPRESSION_PICKER_EXPRESSION_SELECTED, object2]);
}
function trackEmojiFavorited({emoji, location}) { // fn#67650, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8718:8481, offset: 0x01c2c85d, size: 151 bytes, params: 2, frame: 19
const r6 = emoji.uniqueName ?? emoji.name;
const defaultImport = importDefault(4863) /* metro dependency 4863: AppAnalyticsUtils */;
const trackWithMetadata = defaultImport.trackWithMetadata;
const EXPRESSION_FAVORITED = AnalyticEvents.EXPRESSION_FAVORITED;
const EMOJI = ExpressionPickerViewType.EMOJI;
Reflect.apply(trackWithMetadata, defaultImport, [EXPRESSION_FAVORITED, {location: location, expression_type: EMOJI,
expression_id: emoji.id, expression_name: r6, expression_guild_id: emoji.guildId, is_custom: emoji.id != null,
is_animated: emoji.animated}]);
}
function getAriaIdForEmojiCategory(a0, a1) { // fn#67651, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8718:8820, offset: 0x01c2c8f4, size: 58 bytes, params: 3, frame: 4
const type = a0.type;
const GUILD = EmojiCategoryTypes.GUILD;
return type === GUILD ? a1 != null ? a1.name : '' : a0.id;
}
function getStringForEmojiCategory(a0, a1) { // fn#67652, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8718:8896, offset: 0x01c2c92e, size: 1028 bytes, params: 3, frame: 17
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
const t = (require(1244) /* metro dependency 1244: indexNative */).t;
const value = a0;
const value2 = a1;
const TOP_GUILD_EMOJI = EmojiCategories.TOP_GUILD_EMOJI;
if (TOP_GUILD_EMOJI === value) {
return intl.formatToPlainString(t.W6Wi1X, {guildName: value2});
}
const RECENT = EmojiCategories.RECENT;
if (RECENT === value) {
return intl.string(t['5TvaSm']);
}
const FAVORITES = EmojiCategories.FAVORITES;
if (FAVORITES === value) {
return intl.string(t.y3LQCG);
}
const ACTIVITY = EmojiCategories.ACTIVITY;
if (ACTIVITY === value) {
return intl.string(t.O783tR);
}
const FLAGS = EmojiCategories.FLAGS;
if (FLAGS === value) {
return intl.string(t.vvaizu);
}
const FOOD = EmojiCategories.FOOD;
if (FOOD === value) {
return intl.string(t.ldm9aY);
}
const NATURE = EmojiCategories.NATURE;
if (NATURE === value) {
return intl.string(t.egIBDH);
}
const OBJECTS = EmojiCategories.OBJECTS;
if (OBJECTS === value) {
return intl.string(t.gWm7Mk);
}
const PEOPLE = EmojiCategories.PEOPLE;
if (PEOPLE === value) {
return intl.string(t.GX594D);
}
const SYMBOLS = EmojiCategories.SYMBOLS;
if (SYMBOLS === value) {
return intl.string(t.QXMYAb);
}
const TRAVEL = EmojiCategories.TRAVEL;
if (TRAVEL === value) {
return intl.string(t.w33hIP);
}
const PREMIUM_UPSELL = EmojiCategories.PREMIUM_UPSELL;
if (PREMIUM_UPSELL === value) {
return intl.string(t.pAF6xE);
}
const SOUNDMOJI = EmojiCategories.SOUNDMOJI;
if (SOUNDMOJI === value) {
return intl.string(t.f0Ezmv);
}
return value2 ?? value;
}
function useEmojiSearchResults(a0, a1, a2, a3) { // fn#67653, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8718:9841, offset: 0x01c2cd32, size: 172 bytes, params: 5, frame: 25
const env0_0 = a0;
const env0_1 = a1;
const env0_2 = a2;
a3.useEffect(function() {
var FrecencyUserSettingsActionCreators = require(dependencyMap[25]).FrecencyUserSettingsActionCreators;
FrecencyUserSettingsActionCreators.loadIfNecessary();
}, []);
return (require(566) /* metro dependency 566: flux */).useStateFromStores([EmojiStore], _fun67655, [a0, a1, a2,
isExternalEmojiAllowedForIntention(a2), a3],
(require(566) /* metro dependency 566: flux */).statesWillNeverBeEqual);
}
function useIsFavoriteEmoji(a0, a1) { // fn#67656, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8718:10426, offset: 0x01c2ce65, size: 99 bytes, params: 3, frame: 15
const env0_0 = a0;
const env0_1 = a1;
env0_3.useEffect(function() {
var FrecencyUserSettingsActionCreators = require(dependencyMap[25]).FrecencyUserSettingsActionCreators;
FrecencyUserSettingsActionCreators.loadIfNecessary();
}, []);
return (require(566) /* metro dependency 566: flux */).useStateFromStores([EmojiStore], _fun67658);
}
function useEmojiInPriorityOrder(a0) { // fn#67659, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8718:10704, offset: 0x01c2ceff, size: 93 bytes, params: 2, frame: 15
const env0_0 = a0;
env0_3.useEffect(function() {
var FrecencyUserSettingsActionCreators = require(dependencyMap[25]).FrecencyUserSettingsActionCreators;
FrecencyUserSettingsActionCreators.loadIfNecessary();
}, []);
return (require(566) /* metro dependency 566: flux */).useStateFromStoresArray([EmojiStore], _fun67661);
}
function getEmojiSubCategory(a0, a1, a2) { // fn#67662, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8718:10984, offset: 0x01c2cf83, size: 127 bytes, params: 4, frame: 14
if (a2 == null) {
return EmojiSubCategory.NONE;
}
let value = a0.map(function(a0) {
var r0;
r0 = a0.id ?? a0.uniqueName;
r0 = r0 ?? a0.name;
return r0;
});
const value2 = a1.map(function(a0) {
return a0.id;
});
value = value.includes(a2);
return value ? EmojiSubCategory.TOP_GUILD_EMOJI : value2.includes(a2) ? EmojiSubCategory.NEWLY_ADDED_EMOJI : EmojiSubCategory.NONE;
}
function getSearchPlaceholder(a0, a1) { // fn#67665, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8718:11253, offset: 0x01c2d021, size: 164 bytes, params: 3, frame: 15
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
const t = (require(1244) /* metro dependency 1244: indexNative */).t;
const REACTION = EmojiIntention.REACTION;
return a0 === REACTION ? a1 ? intl.string(t['h7ES+n']) : intl.string(t['6any2A']) : intl.string(t.KgK5qg);
}
function _fun67621() { // fn#67621, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8718:2131, offset: 0x01c2b791, size: 39 bytes, params: 1, frame: 11
const value = environment.__proto__;
return EmojiStore.getDisambiguatedEmojiContext(env0_0).getFrequentlyUsedEmojisWithoutFetchingLatest();
}
function _fun67624() { // fn#67624, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8718:2395, offset: 0x01c2b815, size: 37 bytes, params: 1, frame: 11
const value = environment.__proto__;
return EmojiStore.getDisambiguatedEmojiContext(env0_0).getFrequentlyUsedReactionEmojisWithoutFetchingLatest();
}
function _fun67627() { // fn#67627, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8718:2653, offset: 0x01c2b897, size: 33 bytes, params: 1, frame: 11
const getDisambiguatedEmojiContext = EmojiStore.getDisambiguatedEmojiContext;
return Reflect.apply(getDisambiguatedEmojiContext, EmojiStore, [env0_0]).favoriteEmojisWithoutFetchingLatest;
}
function _fun67632() { // fn#67632, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8718:3415, offset: 0x01c2bc27, size: 27 bytes, params: 1, frame: 11
return EmojiStore.getDisambiguatedEmojiContext(env0_2);
}
function _fun67633() { // fn#67633, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8718:3495, offset: 0x01c2bc42, size: 43 bytes, params: 1, frame: 11
const value = environment.__proto__;
return GuildStore.getGuild(env0_2)?.name;
}
function _fun67635() { // fn#67635, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8718:3744, offset: 0x01c2bc6d, size: 686 bytes, params: 1, frame: 43
var r11;
var r30;
var r32;
var r3;
var value9;
var GUILD2;
var guild;
var get;
var id;
var value11;
var length;
var value12;
var emojisDisabled;
var emojisUnfiltered;
var emojisPremiumLockedCount;
var emojiNitroLocked;
var getHiddenEmojiIds;
var value13;
var GUILD3;
var GUILD4;
var value14;
var value15;
var value16;
let binding = env0_9;
const groupedCustomEmoji = binding.getGroupedCustomEmoji();
const flattenedGuildIds = SortedGuildStore.getFlattenedGuildIds();
const items2 = [];
const object2 = {};
let SOUNDMOJI = EmojiCategoryTypes.SOUNDMOJI;
object2.type = SOUNDMOJI;
const value5 = undefined;
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
object2.name = intl.string((require(1244) /* metro dependency 1244: indexNative */).t.f0Ezmv);
SOUNDMOJI = EmojiCategories.SOUNDMOJI;
object2.id = SOUNDMOJI;
object2.isNitroLocked = false;
const closure = getEmojiUnavailableReasons_67636;
const GUILD = EmojiCategoryTypes.GUILD;
const value6 = _createForOfIteratorHelperLoose_67614(flattenedGuildIds);
const value7 = value6();
let done = value7.done;
const value8 = null;
if (!done) {
r11 = value7;
while (true) {
value9 = r11.value;
GUILD2 = EmojiCategoryTypes.GUILD;
if (GUILD !== GUILD2) {
r30 = value5;
} else {
guild = GuildStore.getGuild(value9);
r30 = guild;
}
if (value8 == r30) {
continue;
}
get = groupedCustomEmoji.get;
id = r30.id;
value11 = Reflect.apply(get, groupedCustomEmoji, [id]);
if (value8 == value11) {
continue;
}
length = value11.length;
if (length === 0) {
continue;
}
value12 = closure(value11);
emojisDisabled = value12.emojisDisabled;
emojisUnfiltered = value12.emojisUnfiltered;
emojisPremiumLockedCount = value12.emojisPremiumLockedCount;
emojiNitroLocked = value12.emojiNitroLocked;
length = emojisUnfiltered.length;
if (length === 0) {
continue;
}
getHiddenEmojiIds = EmojiStore.getHiddenEmojiIds;
id = r30.id;
value13 = Reflect.apply(getHiddenEmojiIds, EmojiStore, [id]);
GUILD3 = EmojiCategoryTypes.GUILD;
if (GUILD !== GUILD3) {
r3 = value8;
continue;
}
GUILD4 = EmojiCategoryTypes.GUILD;
binding = env0_11;
value14 = !binding;
if (binding) {
r32 = value14;
continue;
}
r32 = emojiNitroLocked;
continue;
if (!r32) {
continue;
}
length = value11.length;
value15 = emojisPremiumLockedCount === length;
r32 = value15;
r3 = {type: GUILD4, guild: r30, isNitroLocked: r32, emojis: value11, emojisDisabled: emojisDisabled,
emojisHidden: value13};
if (value8 == r3) {
continue;
}
id = r30.id;
if (id === env0_2) {
items2.unshift(r3);
} else {
items2.push(r3);
}
value16 = value6();
done = value16.done;
if (done) {
break;
}
r11 = value16;
continue;
}
}
const categories = EmojiStore.categories;
return categories.reduce(_fun67637, env0_12 && env0_3 ? [object2] : []);
}
function _fun67655() { // fn#67655, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8718:10020, offset: 0x01c2cdde, size: 135 bytes, params: 1, frame: 16
const value3 = env0_0.replace(RegExp('^:', ''), '').replace(RegExp(':$', ''), '');
return value3 === '' ? null : EmojiStore.searchWithoutFetchingLatest({channel: require, query: value3, count: 0,
intention: importDefault, includeExternalGuilds: env0_4, showOnlyUnicode: importAll});
}
function _fun67658() { // fn#67658, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8718:10587, offset: 0x01c2cec8, size: 55 bytes, params: 1, frame: 13
return require != null && EmojiStore.getDisambiguatedEmojiContext(env0_0).isFavoriteEmojiWithoutFetchingLatest(require);
}
function _fun67661() { // fn#67661, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8718:10873, offset: 0x01c2cf5c, size: 39 bytes, params: 1, frame: 11
const value = environment.__proto__;
return EmojiStore.getDisambiguatedEmojiContext(env0_0).getEmojiInPriorityOrderWithoutFetchingLatest();
}
function getEmojiUnavailableReasons_67636(a0) { // fn#67636, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8718:3940, offset: 0x01c2bf1b, size: 76 bytes, params: 2, frame: 13
const value = environment.__proto__.__proto__;
return (importDefault(3801) /* metro dependency 3801: EmojiUtils */).getEmojiUnavailableReasons({categoryEmojis: a0,
channel: require, guildId: env1_2, intention: env1_0});
}
function _fun67637(a0, a1) { // fn#67637, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8718:4597, offset: 0x01c2bf67, size: 761 bytes, params: 3, frame: 23
var environment;
var r4;
var push;
var object;
var binding;
var value2;
var getEmojiUnavailableReasons_67636Binding;
var value4;
var emojiUnavailableReasons_67636Binding;
var emojisDisabled;
var emojisUnfiltered;
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
const t = (require(1244) /* metro dependency 1244: indexNative */).t;
var includes;
var value6;
var emojiUnavailableReasons_67636;
var value10;
var emojiUnavailableReasons_67636Binding2;
const value = environment.__proto__.__proto__;
const TOP_GUILD_EMOJI = EmojiCategories.TOP_GUILD_EMOJI;
if (a1 === TOP_GUILD_EMOJI) {
getEmojiUnavailableReasons_67636Binding = getEmojiUnavailableReasons_67636;
value10 = environment.__proto__;
emojiUnavailableReasons_67636Binding2 = getEmojiUnavailableReasons_67636Binding(allEmojis);
emojisDisabled = emojiUnavailableReasons_67636Binding2.emojisDisabled;
emojisUnfiltered = emojiUnavailableReasons_67636Binding2.emojisUnfiltered;
if (emojisUnfiltered == null) {
return a0;
}
if (emojisUnfiltered.length === 0) {
return a0;
}
a0.push({type: EmojiCategoryTypes.TOP_GUILD_EMOJI, id: a1, name: intl.formatToPlainString(t.W6Wi1X,
{guildName: env1_10}), isNitroLocked: false, emojis: emojisUnfiltered, emojisDisabled: emojisDisabled});
} else {
var RECENT = EmojiCategories.RECENT;
if (a1 === RECENT) {
object = [EmojiIntention.REACTION];
object[1] = EmojiIntention.DEFAULT_REACT_EMOJI;
includes = object.includes;
value6 = environment.__proto__;
emojiUnavailableReasons_67636 = getEmojiUnavailableReasons_67636(Reflect.apply(includes, object,
[env1_0]) ? env1_6 : env1_5);
emojisDisabled = emojiUnavailableReasons_67636.emojisDisabled;
emojisUnfiltered = emojiUnavailableReasons_67636.emojisUnfiltered;
if (emojisUnfiltered == null) {
return a0;
}
if (emojisUnfiltered.length === 0) {
return a0;
}
push = a0.push;
object = {};
object.type = EmojiCategoryTypes.RECENT;
object.id = a1;
object.name = intl.string(t['5TvaSm']);
object.isNitroLocked = false;
object.emojis = emojisUnfiltered;
object.emojisDisabled = emojisDisabled;
Reflect.apply(push, a0, [object]);
return a0;
}
var FAVORITES = EmojiCategories.FAVORITES;
if (a1 === FAVORITES) {
getEmojiUnavailableReasons_67636Binding = getEmojiUnavailableReasons_67636;
value4 = environment.__proto__;
emojiUnavailableReasons_67636Binding = getEmojiUnavailableReasons_67636Binding(env1_7);
emojisDisabled = emojiUnavailableReasons_67636Binding.emojisDisabled;
emojisUnfiltered = emojiUnavailableReasons_67636Binding.emojisUnfiltered;
if (emojisUnfiltered == null) {
return a0;
}
if (emojisUnfiltered.length === 0) {
return a0;
}
a0.push({type: EmojiCategoryTypes.FAVORITES, id: a1, name: intl.string(t.y3LQCG), isNitroLocked: false,
emojis: emojisUnfiltered, emojisDisabled: emojisDisabled});
return a0;
}
var CUSTOM = EmojiCategories.CUSTOM;
if (a1 === CUSTOM) {
binding = env0_0;
value2 = environment.__proto__;
r4 = env1_4 ? binding : env0_0.filter(_fun67638);
push = a0.push;
object = [];
arraySpread(object, r4, 0, undefined);
apply(push, object, a0, undefined);
} else {
a0.push({type: EmojiCategoryTypes.UNICODE, id: a1, name: a1, isNitroLocked: false});
}
}
return a0;
}
function _fun67638(a0) { // fn#67638, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8718:5506, offset: 0x01c2c260, size: 51 bytes, params: 2, frame: 3
var r0;
var id;
const type = a0.type;
let value = environment.__proto__.__proto__.__proto__;
const GUILD = EmojiCategoryTypes.GUILD;
value = type === GUILD;
if (value) {
id = a0.guild.id;
value = environment.__proto__.__proto__;
value = id === env2_2;
r0 = value;
} else {
r0 = value;
}
return r0;
}
@@ -0,0 +1,92 @@
/* Metro module 8579; source: modules/emoji_picker/analytics/trackOnEmojiPickerOpened.tsx; dependencies: [31, 6540, 1379, 1934, 661, 1881, 1346, 8537, 8538, 4863, 3801, 2] */
function _fun67859(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#67859, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8764:6, offset: 0x01c35678, size: 252 bytes, params: 8, frame: 20
const env0_0 = require;
const closure = trackOnEmojiPickerOpened;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_3 = importAll(31) /* metro dependency 31 */;
const emojiStore = importDefault(6540) /* metro dependency 6540: EmojiStore */;
const channelStore = importDefault(1379) /* metro dependency 1379: ChannelStore */;
const selectedChannelStore = importDefault(1934) /* metro dependency 1934: SelectedChannelStore */;
const env0_7 = (require(661) /* metro dependency 661: Constants */).AnalyticEvents;
const env0_8 = (require(1881) /* metro dependency 1881: EmojiConstants */).EmojiIntention;
const env0_9 = (require(1346) /* metro dependency 1346: ExpressionPickerConstants */).ExpressionPickerViewType;
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/emoji_picker/analytics/trackOnEmojiPickerOpened.tsx');
exports.default = closure;
exports.useTrackOnEmojiPickerOpenedForReactions = useTrackOnEmojiPickerOpenedForReactions;
}
function trackOnEmojiPickerOpened({intention, containerWidth, rowSize, isBurstReaction, analyticsObject}) { // fn#67860, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8764:221, offset: 0x01c35774, size: 948 bytes, params: 2, frame: 31
const getChannel = ChannelStore.getChannel;
const getChannelId = SelectedChannelStore.getChannelId;
const value2 = Reflect.apply(getChannel, ChannelStore, [Reflect.apply(getChannelId, SelectedChannelStore, [])]);
const guildId = value2?.getGuildId();
let REACTION = EmojiIntention.REACTION;
const r11 = intention === REACTION ? EmojiStore.emojiReactionFrecencyWithoutFetchingLatest.frequently.slice() : EmojiStore.emojiFrecencyWithoutFetchingLatest.frequently.slice();
const r21 = value2 != null ? EmojiStore.getDisambiguatedEmojiContext(value2.getGuildId()).favoriteEmojisWithoutFetchingLatest : [];
REACTION = EmojiIntention.REACTION;
const value7 = r11.slice(0,
intention === REACTION ? EmojiStore.emojiReactionFrecencyWithoutFetchingLatest.numFrequentlyItems : EmojiStore.emojiFrecencyWithoutFetchingLatest.numFrequentlyItems);
const r13 = guildId != null ? EmojiStore.getGuildEmoji(guildId) : [];
const getDisambiguatedEmojiContext = EmojiStore.getDisambiguatedEmojiContext;
const customEmoji = Reflect.apply(getDisambiguatedEmojiContext, EmojiStore, [value2?.getGuildId()]).getCustomEmoji();
const {topEmojis,
newlyAddedEmojis} = (require(8537) /* metro dependency 8537: useTopAndNewlyAddedEmojis */).getTopAndNewlyAddedEmojis({guildId: value2?.getGuildId(),
pickerIntention: intention});
const {visibleTopEmojis,
visibleNewlyAddedEmojis} = (require(8538) /* metro dependency 8538: useEmojiHotrail */).getEmojiHotrail({topEmojis: topEmojis,
newlyAddedEmojis: newlyAddedEmojis, rowSize: rowSize});
const defaultImport = importDefault(4863) /* metro dependency 4863: AppAnalyticsUtils */;
const trackWithMetadata = defaultImport.trackWithMetadata;
REACTION = EmojiIntention.REACTION;
const r2 = intention === REACTION ? AnalyticEvents.REACTION_PICKER_OPENED : AnalyticEvents.EXPRESSION_PICKER_OPENED;
const object2 = {width: containerWidth};
const EMOJI = ExpressionPickerViewType.EMOJI;
object2.tab = EMOJI;
object2.badged = false;
object2.num_expressions_favorites = r21.length;
object2.num_animated_expressions_favorites = r21.filter(function(a0) {
return a0?.animated;
}).length;
object2.num_custom_expressions_favorites = r21.filter((importDefault(3801) /* metro dependency 3801: EmojiUtils */).isCustomEmoji).length;
object2.num_standard_expressions_favorites = r21.filter(function(a0) {
return a0.id == null;
}).length;
object2.num_expressions_frecent = value7.length;
object2.num_animated_expressions_frecent = value7.filter(function(a0) {
return a0?.animated;
}).length;
object2.num_custom_expressions_frecent = value7.filter((importDefault(3801) /* metro dependency 3801: EmojiUtils */).isCustomEmoji).length;
object2.num_standard_expressions_frecent = value7.filter(function(a0) {
return a0.id == null;
}).length;
object2.num_current_guild_expressions = r13.length;
object2.num_custom_expressions_total = customEmoji.size;
object2.num_expressions_top_server = visibleTopEmojis.length;
object2.num_animated_expressions_top_server = visibleTopEmojis.filter(function(a0) {
return a0.animated;
}).length;
object2.num_expressions_newly_added = visibleNewlyAddedEmojis.length;
object2.num_animated_expressions_newly_added = visibleNewlyAddedEmojis.filter(function(a0) {
return a0.animated;
}).length;
REACTION = EmojiIntention.REACTION;
copyDataProperties(object2, intention === REACTION && ({is_burst: isBurstReaction}), r21);
copyDataProperties(object2, analyticsObject != null && ({location_object: analyticsObject}), r21);
Reflect.apply(trackWithMetadata, defaultImport, [r2, object2]);
}
function useTrackOnEmojiPickerOpenedForReactions(a0) { // fn#67867, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8764:2307, offset: 0x01c35b4e, size: 52 bytes, params: 2, frame: 13
const binding = env0_3;
const env0_0 = binding.useRef(a0);
binding.useEffect(_fun67868, []);
}
function _fun67868() { // fn#67868, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8764:2390, offset: 0x01c35b82, size: 59 bytes, params: 1, frame: 12
const intention = env0_0.current.intention;
const REACTION = EmojiIntention.REACTION;
if (intention === REACTION) {
trackOnEmojiPickerOpened(env0_0.current);
}
}
@@ -0,0 +1,23 @@
/* Metro module 8538; source: modules/emoji_picker/hooks/useEmojiHotrail.tsx; dependencies: [31, 6544, 2] */
function _fun67698(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#67698, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8723:6, offset: 0x01c2da92, size: 145 bytes, params: 8, frame: 19
const closure = function({topEmojis, newlyAddedEmojis, rowSize = EMOJI_ROW_SIZE}) {
var value;
value = topEmojis.slice(0, rowSize - newlyAddedEmojis.length);
return {visibleTopEmojis: value, visibleNewlyAddedEmojis: newlyAddedEmojis,
allEmojis: value.concat(newlyAddedEmojis)};
};
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_0 = importAll(31) /* metro dependency 31 */;
const env0_1 = (require(6544) /* metro dependency 6544: EmojiPickerConstants */).EMOJI_ROW_SIZE;
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/emoji_picker/hooks/useEmojiHotrail.tsx');
exports.default = function(a0) {
return a0.useMemo(_fun67701, [a0]);
};
exports.getEmojiHotrail = closure;
}
function useEmojiHotrail(a0) { // fn#67700, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8723:395, offset: 0x01c2db78, size: 44 bytes, params: 2, frame: 14
return a0.useMemo(_fun67701, [a0]);
}
@@ -0,0 +1,38 @@
/* Metro module 8537; source: modules/emoji_picker/hooks/useTopAndNewlyAddedEmojis.tsx; dependencies: [6540, 1881, 632, 2] */
function _fun67694(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#67694, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8722:6, offset: 0x01c2d8f7, size: 161 bytes, params: 8, frame: 19
let env0_0 = require;
const closure = getTopAndNewlyAddedEmojis;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const emojiStore = importDefault(6540) /* metro dependency 6540: EmojiStore */;
const env0_3 = (require(1881) /* metro dependency 1881: EmojiConstants */).EmojiIntention;
const env0_4 = [];
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/emoji_picker/hooks/useTopAndNewlyAddedEmojis.tsx');
exports.default = function(a0, a1) {
var env0_0 = a0;
var env0_1 = a1;
return require(dependencyMap[2]).useStateFromStoresObject([EmojiStore], _fun67697, [a0, a1]);
};
exports.getTopAndNewlyAddedEmojis = closure;
}
function getTopAndNewlyAddedEmojis({emojiStoreInstance = EmojiStore, guildId, pickerIntention}) { // fn#67695, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8722:136, offset: 0x01c2d998, size: 116 bytes, params: 2, frame: 15
const object2 = {};
let REACTION = EmojiIntention.REACTION;
object2.topEmojis = pickerIntention !== REACTION ? emojiStoreInstance.getTopEmoji(guildId) : env0_4;
REACTION = EmojiIntention.REACTION;
object2.newlyAddedEmojis = pickerIntention !== REACTION ? emojiStoreInstance.getNewlyAddedEmoji(guildId) : env0_4;
return object2;
}
function useTopAndNewlyAddedEmojis(a0, a1) { // fn#67696, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8722:435, offset: 0x01c2da0c, size: 87 bytes, params: 3, frame: 17
const env0_0 = a0;
const env0_1 = a1;
return (require(632) /* metro dependency 632: useStateFromStores */).useStateFromStoresObject([EmojiStore],
_fun67697, [a0, a1]);
}
function _fun67697() { // fn#67697, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8722:520, offset: 0x01c2da63, size: 47 bytes, params: 1, frame: 12
return getTopAndNewlyAddedEmojis({emojiStoreInstance: EmojiStore, guildId: env0_0, pickerIntention: require});
}
@@ -0,0 +1,116 @@
/* Metro module 11033; source: modules/emoji_picker/native/components/EmojiPicker.tsx; dependencies: [31, 27, 661, 1881, 33, 4501, 697, 683, 4017, 8533, 6771, 6789, 8540, 11032, 6984, 1244, 8576, 8622, 4589, 4000, 8650, 2] */
function _fun84467(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#84467, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11219:6, offset: 0x01f4b672, size: 481 bytes, params: 8, frame: 25
var object2;
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
let value = importAll(31) /* metro dependency 31 */;
const value2 = require(27) /* metro dependency 27 */;
const StyleSheet = value2.StyleSheet;
const env0_4 = value2.View;
const constantsModule = require(661) /* metro dependency 661: Constants */;
const env0_5 = constantsModule.AnalyticEvents;
const env0_6 = constantsModule.ChatInputComponentViewedTypes;
const env0_7 = constantsModule.VerticalGradient;
const env0_8 = (require(1881) /* metro dependency 1881: EmojiConstants */).EmojiIntention;
const value4 = require(33) /* metro dependency 33 */;
const env0_9 = value4.jsx;
const env0_10 = value4.jsxs;
const createStylesModule = require(4501) /* metro dependency 4501: createStyles */;
const createStyles = createStylesModule.createStyles;
object2 = {};
object2.container = {flex: 1};
object2.list = {'overflow': 'hidden', 'flex': 1};
const object4 = {flexDirection: 'row'};
let PX_8 = (importDefault(697) /* metro dependency 697: native */).space.PX_8;
object4.paddingTop = PX_8;
const PX_12 = (importDefault(697) /* metro dependency 697: native */).space.PX_12;
object4.gap = PX_12;
object2.header = object4;
const MOBILE_EXPRESSION_PICKER_BACKGROUND_DEFAULT = (importDefault(697) /* metro dependency 697: native */).colors.MOBILE_EXPRESSION_PICKER_BACKGROUND_DEFAULT;
object2.headerGradientColor = {color: MOBILE_EXPRESSION_PICKER_BACKGROUND_DEFAULT};
const object6 = {};
copyDataProperties(object6, StyleSheet.absoluteFillObject, undefined);
PX_8 = (importDefault(697) /* metro dependency 697: native */).space.PX_8;
object6['height'] = PX_8 + 1;
object6['bottom'] = undefined;
object6['top'] = -1;
object2.headerGradient = object6;
const env0_11 = Reflect.apply(createStyles, createStylesModule, [object2]);
value = value.memo(EmojiPicker);
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/emoji_picker/native/components/EmojiPicker.tsx');
exports.default = value;
}
function EmojiPicker({bottomSheetRef, bottomSheetIndex, channel, onPressEmoji, onBackspace, inPortalKeyboard}) { // fn#84468, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11219:627, offset: 0x01f4b853, size: 934 bytes, params: 2, frame: 48
var environment;
let value = environment;
const styles = useStyles();
const binding = env0_3;
binding.useEffect(function() {
var defaultImport = importDefault(dependencyMap[7]);
var CHAT_INPUT_COMPONENT_VIEWED = AnalyticEvents.CHAT_INPUT_COMPONENT_VIEWED;
var channelBinding = channel;
defaultImport.track(CHAT_INPUT_COMPONENT_VIEWED, {type: ChatInputComponentViewedTypes.EMOJI,
channel_id: channelBinding.id, guild_id: channelBinding.guild_id});
}, [channel.id, channel.guild_id]);
const value2 = (require(4017) /* metro dependency 4017: ReanimatedRexport */).useSharedValue(0);
const emojiPickerUtilsModule = require(8533) /* metro dependency 8533: EmojiPickerUtils */;
const useEmojiCategories = emojiPickerUtilsModule.useEmojiCategories;
let CHAT = EmojiIntention.CHAT;
const value3 = Reflect.apply(useEmojiCategories, emojiPickerUtilsModule, [CHAT, channel]);
const value4 = binding.useRef(null);
const value5 = binding.useRef(null);
let defaultImport = importDefault(6771) /* metro dependency 6771: useAnalyticsLocations */;
const EMOJI_PICKER = (importDefault(6789) /* metro dependency 6789: AnalyticsLocation */).EMOJI_PICKER;
const analyticsLocations = defaultImport(EMOJI_PICKER).analyticsLocations;
const defaultImport2 = importDefault(8540) /* metro dependency 8540: useEmojiPickerSearchState */;
CHAT = EmojiIntention.CHAT;
const {handleTextChange, searchQueryRef, searchResults} = defaultImport2(channel, value2, CHAT);
const value7 = binding.useCallback(function() {
var channelBinding = channel;
var defaultImport = importDefault(dependencyMap[7]);
var CHAT_INPUT_COMPONENT_VIEWED = AnalyticEvents.CHAT_INPUT_COMPONENT_VIEWED;
defaultImport.track(CHAT_INPUT_COMPONENT_VIEWED, {type: ChatInputComponentViewedTypes.EMOJI_SEARCH,
channel_id: channelBinding.id, guild_id: channelBinding.guild_id});
}, [channel]);
const value8 = binding.useCallback(_fun84471, [handleTextChange]);
const {safeAreaStyle,
safeAreaBottomKeyboardAware} = (importDefault(11032) /* metro dependency 11032: useExpressionPickerInsets */)({hasCategories: true});
const AnalyticsLocationProvider = (require(6771) /* metro dependency 6771: useAnalyticsLocations */).AnalyticsLocationProvider;
const SearchField = (require(6984) /* metro dependency 6984: SearchFieldNative */).SearchField;
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
const string = intl.string;
const KgK5qg = (require(1244) /* metro dependency 1244: indexNative */).t.KgK5qg;
const items2 = [<View style={styles.header}><SearchField ref={value5} size="md" placeholder={Reflect.apply(string,
intl, [KgK5qg])} onChange={handleTextChange} onFocus={value7} isRound /></View>];
const EmojiPickerList = importDefault(8576) /* metro dependency 8576: EmojiPickerList */;
const openEmojiActionSheet = (require(8622) /* metro dependency 8622: openEmojiActionSheet */).openEmojiActionSheet;
CHAT = EmojiIntention.CHAT;
const emojiPickerList = <EmojiPickerList bottomSheetIndex={bottomSheetIndex} emojiPickerListRef={value4} categories={value3} categoryIndexActive={value2} emojis={searchResults} onPressEmoji={onPressEmoji} onLongPressEmoji={openEmojiActionSheet} channel={channel} emojiPickerIntention={CHAT} insetBottom={safeAreaBottomKeyboardAware} inPortalKeyboard={inPortalKeyboard} searchQueryRef={searchQueryRef} />;
const defaultImport5 = importDefault(4589) /* metro dependency 4589 */;
const {START, END} = VerticalGradient;
value = Reflect.apply((require(4000) /* metro dependency 4000: ColorUtils */).hexOpacityToRgba, value,
[styles.headerGradientColor.color, 100]);
const items3 = [value];
value = require(4000) /* metro dependency 4000: ColorUtils */;
items3[1] = value.hexOpacityToRgba(styles.headerGradientColor.color, 0);
items2[1] = <View style={styles.list}>{emojiPickerList}{((Component) => <Component style={styles.headerGradient} start={START} end={END} colors={items3} />)(defaultImport5)}</View>;
items2[2] = ((Component) => <Component bottomSheetRef={bottomSheetRef} bottomSheetIndex={bottomSheetIndex} style={safeAreaStyle} emojiPickerListRef={value4} categories={value3} categoryIndexActive={value2} onBackspace={onBackspace} inPortalKeyboard={inPortalKeyboard} isSearching={searchResults != null} onClearSearch={value8} />)(importDefault(8650) /* metro dependency 8650: EmojiPickerCategories */);
return (
<AnalyticsLocationProvider value={analyticsLocations}>
<View style={styles.container}>
{items2}
</View>
</AnalyticsLocationProvider>
);
}
function _fun84471() { // fn#84471, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11219:1313, offset: 0x01f4bcab, size: 50 bytes, params: 1, frame: 12
const current = env0_1.current;
if (current != null) {
current.setText('');
}
handleTextChange('');
}
@@ -0,0 +1,265 @@
/* Metro module 8531; source: modules/emoji_picker/native/components/EmojiPickerActionSheet.tsx; dependencies: [57, 31, 27, 1878, 8532, 661, 1881, 33, 4501, 697, 7152, 4017, 8533, 5463, 1585, 477, 6771, 6789, 8540, 4080, 8529, 8217, 4573, 1244, 6984, 8541, 3802, 8565, 1962, 4081, 4082, 8575, 6275, 4027, 8576, 8622, 8650, 2] */
function _fun67602(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#67602, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8716:6, offset: 0x01c2a474, size: 548 bytes, params: 8, frame: 22
var object2;
const env0_0 = require;
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 */;
const env0_5 = (require(27) /* metro dependency 27 */).View;
const userStore = importDefault(1878) /* metro dependency 1878: UserStore */;
const env0_7 = (require(8532) /* metro dependency 8532: EmojiPickerListConstants */).EmojiPickerSource;
const env0_8 = (require(661) /* metro dependency 661: Constants */).EXPRESSION_FOOTER_HEIGHT;
const env0_9 = (require(1881) /* metro dependency 1881: EmojiConstants */).EmojiIntention;
let value = require(33) /* metro dependency 33 */;
const env0_10 = value.jsx;
const env0_11 = value.jsxs;
value = require(4501) /* metro dependency 4501: createStyles */;
const createStyles = value.createStyles;
object2 = {};
object2.header = {flexDirection: 'column'};
let PX_16 = (importDefault(697) /* metro dependency 697: native */).space.PX_16;
object2.searchContainer = {'display': 'flex', 'flexDirection': 'row', marginBottom: -PX_16};
const object3 = {};
let PX_8 = (importDefault(697) /* metro dependency 697: native */).space.PX_8;
object3.paddingHorizontal = PX_8;
let MOBILE_EXPRESSION_PICKER_BACKGROUND_DEFAULT = (importDefault(697) /* metro dependency 697: native */).colors.MOBILE_EXPRESSION_PICKER_BACKGROUND_DEFAULT;
object3.backgroundColor = MOBILE_EXPRESSION_PICKER_BACKGROUND_DEFAULT;
object2.content = object3;
MOBILE_EXPRESSION_PICKER_BACKGROUND_DEFAULT = (importDefault(697) /* metro dependency 697: native */).colors.MOBILE_EXPRESSION_PICKER_BACKGROUND_DEFAULT;
object2.background = {backgroundColor: MOBILE_EXPRESSION_PICKER_BACKGROUND_DEFAULT};
PX_16 = (importDefault(697) /* metro dependency 697: native */).space.PX_16;
object2.headerText = {'flexDirection': 'column', 'alignItems': 'center', marginBottom: PX_16};
PX_8 = (importDefault(697) /* metro dependency 697: native */).space.PX_8;
object2.headerSpacer = {marginTop: PX_8};
const BACKGROUND_BRAND = (importDefault(697) /* metro dependency 697: native */).colors.BACKGROUND_BRAND;
object2.burstReaction = {borderColor: BACKGROUND_BRAND};
const env0_12 = Reflect.apply(createStyles, value, [object2]);
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/emoji_picker/native/components/EmojiPickerActionSheet.tsx');
exports.default = _default_67603;
}
function _default_67603({onClose, channel, guildId, onPressEmoji, pickerIntention, autoFocus, startExpanded, analyticsObject, messageId, source}) { // fn#67603, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8716:840, offset: 0x01c2a698, size: 1461 bytes, params: 2, frame: 47
var r9;
var unsafe_rawColors;
var TRANSPARENT;
const env0_3 = pickerIntention;
autoFocus = autoFocus === undefined || autoFocus;
startExpanded = startExpanded === undefined || startExpanded;
const env0_4 = source;
const styles = useStyles();
let binding = env0_4;
const useState = binding.useState;
const ReactionTypes = (require(7152) /* metro dependency 7152: MessageReactionsTypes */).ReactionTypes;
const NORMAL = ReactionTypes.NORMAL;
const value6 = env0_3(Reflect.apply(useState, binding, [NORMAL]), 2);
const property = value6[0];
const env0_6 = value6[1];
const BURST = ReactionTypes.BURST;
const value7 = property === BURST;
const value8 = binding.useRef(null);
const value9 = (require(4017) /* metro dependency 4017: ReanimatedRexport */).useSharedValue(0);
const value10 = (require(8533) /* metro dependency 8533: EmojiPickerUtils */).useEmojiCategories(pickerIntention,
channel, guildId);
const bottom = (importDefault(5463) /* metro dependency 5463: useSafeAreaInsetsKeyboardAwareNative */)().insets.bottom;
const bottom2 = (importDefault(1585) /* metro dependency 1585: useSafeAreaInsetsNative */)().bottom;
const platformUtilsModule = require(477) /* metro dependency 477: PlatformUtils */;
const value11 = (platformUtilsModule.isAndroid() ? bottom2 : bottom) + EXPRESSION_FOOTER_HEIGHT;
const PX_16 = (importDefault(697) /* metro dependency 697: native */).space.PX_16;
const value12 = value11 + PX_16;
const defaultImport = importDefault(6771) /* metro dependency 6771: useAnalyticsLocations */;
const EMOJI_PICKER = (importDefault(6789) /* metro dependency 6789: AnalyticsLocation */).EMOJI_PICKER;
const analyticsLocations = defaultImport(EMOJI_PICKER).analyticsLocations;
const {handleTextChange, searchQueryRef,
searchResults} = (importDefault(8540) /* metro dependency 8540: useEmojiPickerSearchState */)(channel, value9,
pickerIntention);
binding = env0_4;
const useCallback = binding.useCallback;
let items = [onClose];
const value14 = Reflect.apply(useCallback, binding, [function() {
if (onClose != null) {
onClose();
}
}, items]);
const value15 = binding.useCallback(_fun67605, [onPressEmoji, value7, guildId, pickerIntention, source]);
const value16 = binding.useMemo(_fun67606, [value7, bottom2]);
const env0_10 = binding.useRef(null);
const env0_11 = binding.useRef(autoFocus);
const value17 = binding.useCallback(_fun67607, []);
const value18 = binding.useCallback(_fun67608, []);
const value20 = binding.useMemo(_fun67610, [styles, handleTextChange, value7, pickerIntention,
binding.useMemo(_fun67609, [pickerIntention, styles]), source]);
if (value7) {
items = [styles.burstReaction.borderColor];
items[1] = (importDefault(697) /* metro dependency 697: native */).unsafe_rawColors.TRANSPARENT;
r9 = items;
} else {
unsafe_rawColors = (importDefault(697) /* metro dependency 697: native */).unsafe_rawColors;
TRANSPARENT = unsafe_rawColors.TRANSPARENT;
items = [TRANSPARENT];
unsafe_rawColors = (importDefault(697) /* metro dependency 697: native */).unsafe_rawColors;
TRANSPARENT = unsafe_rawColors.TRANSPARENT;
items[1] = TRANSPARENT;
r9 = items;
}
const value21 = (require(4017) /* metro dependency 4017: ReanimatedRexport */).useSharedValue(-1);
const value22 = env0_4.useRef(null);
const AnalyticsLocationProvider = (require(6771) /* metro dependency 6771: useAnalyticsLocations */).AnalyticsLocationProvider;
const r5 = platformUtilsModule.isIOS() && ((Component) => <Component portalHostName="EmojiPickerActionSheet" animatedSheetIndex={value21} />)(importDefault(8575) /* metro dependency 8575: PortalKeyboardFooterIOSIos */);
const BottomSheet = (require(6275) /* metro dependency 6275: BottomSheetNative */).BottomSheet;
const moduleValue6 = platformUtilsModule;
return (
<AnalyticsLocationProvider value={analyticsLocations}>
{r5}
<BottomSheet
backgroundStyles={styles.background}
ref={value22}
scrollable
header={value20}
footer={moduleValue6.isAndroid() ? ((PortalHost) => <PortalHost name="EmojiPickerActionSheet" />)((require(4027) /* metro dependency 4027 */).PortalHost) : undefined}
startExpanded={startExpanded}
onDismiss={value14}
animatedIndex={value21}
onExpand={value17}
borderGradient={r9}
contentStyles={[styles.content, {marginBottom: value11}]}
>
{((Component) => <Component bottomSheetIndex={value21} onPressEmoji={value15} onLongPressEmoji={(require(8622) /* metro dependency 8622: openEmojiActionSheet */).openEmojiActionSheet} emojiPickerListRef={value8} categories={value10} categoryIndexActive={value9} emojis={searchResults} emojiPickerIntention={pickerIntention} channel={channel} guildId={guildId} searchQueryRef={searchQueryRef} insetBottom={value12} analyticsObject={analyticsObject} messageId={messageId} />)(importDefault(8576) /* metro dependency 8576: EmojiPickerList */)}
{((Component) => <Component bottomSheetRef={value22} bottomSheetIndex={value21} style={value16} categories={value10} categoryIndexActive={value9} emojiPickerListRef={value8} portalHostName="EmojiPickerActionSheet" isSearching={searchResults != null} onClearSearch={value18} />)(importDefault(8650) /* metro dependency 8650: EmojiPickerCategories */)}
</BottomSheet>
</AnalyticsLocationProvider>
);
}
function _fun67605(a0) { // fn#67605, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8716:1467, offset: 0x01c2ac68, size: 214 bytes, params: 2, frame: 18
var moduleValue;
if (onPressEmoji != null) {
onPressEmoji(a0, env0_7);
}
const defaultImport = importDefault(4080) /* metro dependency 4080: ActionSheetActionCreators */;
const hideActionSheet = defaultImport.hideActionSheet;
const EMOJI_PICKER_ACTION_SHEET_KEY = (require(8529) /* metro dependency 8529: openEmojiPickerActionSheet */).EMOJI_PICKER_ACTION_SHEET_KEY;
Reflect.apply(hideActionSheet, defaultImport, [EMOJI_PICKER_ACTION_SHEET_KEY]);
const pickerIntentionBinding = pickerIntention;
const REACTION = EmojiIntention.REACTION;
let r2 = pickerIntentionBinding === REACTION && source !== EmojiPickerSource.NOTIFICATION && !env0_7;
if (r2) {
moduleValue = require(8217) /* metro dependency 8217: DoubleTapToReactUtils */;
r2 = moduleValue.canUpsellDoubleTapForEmoji(guildId, a0);
}
if (r2) {
(require(8217) /* metro dependency 8217: DoubleTapToReactUtils */).initializeDoubleTapEmojiAndUpsell(a0);
}
}
function _fun67606() { // fn#67606, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8716:1708, offset: 0x01c2ad3e, size: 84 bytes, params: 1, frame: 6
const value2 = 0;
const value5 = 2;
return {marginLeft: env0_7 ? 2 : value2, marginRight: env0_7 ? 2 : value2, paddingLeft: env0_7 ? value2 : value5,
paddingRight: env0_7 ? value2 : value5, paddingBottom: bottom};
}
function _fun67607() { // fn#67607, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8716:1860, offset: 0x01c2ad92, size: 56 bytes, params: 1, frame: 10
let current = env0_11.current;
if (current) {
current = env0_10.current;
if (current != null) {
current.focus();
}
env0_11.current = false;
}
}
function _fun67608() { // fn#67608, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8716:1951, offset: 0x01c2adca, size: 37 bytes, params: 1, frame: 11
const current = env0_10.current;
if (current != null) {
current.setText('');
}
}
function _fun67609() { // fn#67609, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8716:2016, offset: 0x01c2adef, size: 265 bytes, params: 1, frame: 24
var r0;
const Text = (require(4573) /* metro dependency 4573: Text */).Text;
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
var string;
const t = (require(1244) /* metro dependency 1244: indexNative */).t;
var items2;
var value;
const pickerIntentionBinding = pickerIntention;
const DEFAULT_REACT_EMOJI = EmojiIntention.DEFAULT_REACT_EMOJI;
if (pickerIntentionBinding !== DEFAULT_REACT_EMOJI) {
r0 = null;
} else {
var viewBindingProps = {style: styles.headerText};
string = intl.string;
value = <Text variant="heading-lg/bold" color="mobile-text-heading-primary">{Reflect.apply(string, intl,
[t.wHTk2C])}</Text>;
items2 = [value];
string = intl.string;
items2[1] = <Text variant="text-sm/medium" color="text-muted">{Reflect.apply(string, intl, [t.VrWSNn])}</Text>;
value = <View {...viewBindingProps}>{items2}</View>;
r0 = value;
}
return r0;
}
function _fun67610() { // fn#67610, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8716:2352, offset: 0x01c2aef8, size: 327 bytes, params: 1, frame: 24
var environment;
let value = environment.__proto__;
const binding = env0_12;
const items2 = [styles.searchContainer];
const value3 = null;
items2[1] = value3 !== env0_12 ? value3 : styles.headerSpacer;
const SearchField = (require(6984) /* metro dependency 6984: SearchFieldNative */).SearchField;
const searchFieldProps2 = {'ref': null, 'size': 'md', 'isRound': true, ref: env0_10, onChange: handleTextChange};
const emojiPickerUtilsModule = require(8533) /* metro dependency 8533: EmojiPickerUtils */;
const getSearchPlaceholder = emojiPickerUtilsModule.getSearchPlaceholder;
const pickerIntentionBinding = pickerIntention;
searchFieldProps2.placeholder = Reflect.apply(getSearchPlaceholder, emojiPickerUtilsModule, [pickerIntentionBinding,
env0_7]);
const searchField = <SearchField {...searchFieldProps2} />;
const REACTION = EmojiIntention.REACTION;
let r7 = pickerIntentionBinding === REACTION && source !== EmojiPickerSource.NOTIFICATION;
if (r7) {
value = importDefault(8541) /* metro dependency 8541: BurstReactionToggle */;
value = ((Component) => <Component onPress={onPress_67611} isActive={env0_7} />)(value);
r7 = value;
}
return (
<View style={styles.header}>
{binding}
<View style={items2}>
{searchField}
{r7}
</View>
</View>
);
}
function onPress_67611() { // fn#67611, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8716:2625, offset: 0x01c2b03f, size: 240 bytes, params: 1, frame: 16
var moduleValue2;
var value2;
var binding;
var binding2;
var ReactionTypes;
let value = environment.__proto__.__proto__;
const moduleValue = require(dependencyMap[26]);
const isPremium = moduleValue.isPremium;
const getCurrentUser = UserStore.getCurrentUser;
if (Reflect.apply(isPremium, moduleValue, [Reflect.apply(getCurrentUser, UserStore, [])])) {
moduleValue2 = require(dependencyMap[29]);
moduleValue2.triggerHapticFeedback(importDefault(dependencyMap[30]).IMPACT_LIGHT);
value2 = environment.__proto__;
binding = env1_6;
binding2 = env1_7;
ReactionTypes = require(dependencyMap[10]).ReactionTypes;
binding(binding2 ? ReactionTypes.NORMAL : ReactionTypes.BURST);
return undefined;
}
const defaultImport = importDefault(dependencyMap[19]);
const openLazy = defaultImport.openLazy;
value = require(dependencyMap[28]);
value = value(dependencyMap[27], dependencyMap.paths);
return Reflect.apply(openLazy, defaultImport, [value, 'SuperReactionUpsellActionSheet']);
}
@@ -0,0 +1,214 @@
/* Metro module 8576; source: modules/emoji_picker/native/components/EmojiPickerList.tsx; dependencies: [31, 8532, 661, 1881, 1346, 1880, 33, 6771, 6789, 8577, 8537, 8536, 8578, 8579, 8580, 7882, 7898, 7892, 4081, 4082, 3801, 4015, 8588, 3857, 1244, 8533, 8593, 3829, 8599, 8596, 8600, 8603, 8597, 8605, 8606, 8611, 8614, 8616, 2] */
function _fun67849(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#67849, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8761:6, offset: 0x01c34750, size: 321 bytes, params: 8, frame: 18
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
let value = importAll(31) /* metro dependency 31 */;
const env0_4 = (require(8532) /* metro dependency 8532: EmojiPickerListConstants */).IMAGE_SIZE;
const constantsModule = require(661) /* metro dependency 661: Constants */;
const env0_5 = constantsModule.AnalyticsObjects;
const env0_6 = constantsModule.AnalyticsPages;
const env0_7 = constantsModule.AnalyticsSections;
const env0_8 = constantsModule.UpsellTypes;
const emojiConstantsModule = require(1881) /* metro dependency 1881: EmojiConstants */;
const env0_9 = emojiConstantsModule.EmojiDisabledReasons;
const env0_10 = emojiConstantsModule.EmojiIntention;
const env0_11 = (require(1346) /* metro dependency 1346: ExpressionPickerConstants */).MIN_MARGIN;
const env0_12 = (require(1880) /* metro dependency 1880: PremiumConstants */).PremiumUpsellTypes;
const value4 = require(33) /* metro dependency 33 */;
const env0_13 = value4.jsx;
const env0_14 = value4.Fragment;
const env0_15 = value4.jsxs;
value = value.memo(EmojiPickerList);
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/emoji_picker/native/components/EmojiPickerList.tsx');
exports.default = value;
}
function EmojiPickerList({bottomSheetIndex, categories, categoryIndexActive, emojiPickerListRef, emojis, channel, guildId, onPressEmoji, onLongPressEmoji, emojiPickerIntention, insetBottom, insetTop, inPortalKeyboard, searchQueryRef, analyticsObject, messageId}) { // fn#67850, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8761:373, offset: 0x01c34891, size: 1160 bytes, params: 2, frame: 40
const env0_3 = onPressEmoji;
insetBottom = insetBottom === undefined ? 0 : insetBottom;
insetTop = insetTop === undefined ? 0 : insetTop;
inPortalKeyboard = !(inPortalKeyboard === undefined) && inPortalKeyboard;
const defaultImport = importDefault(dependencyMap[7]);
const EMOJI = importDefault(dependencyMap[8]).EMOJI;
const analyticsLocations = defaultImport(EMOJI).analyticsLocations;
const value6 = importDefault(dependencyMap[9])(inPortalKeyboard);
const Math = global.Math;
const value8 = Math.floor((value6 - MIN_MARGIN) / (IMAGE_SIZE + MIN_MARGIN));
const newlyAddedEmojis = importDefault(dependencyMap[10])(guildId, emojiPickerIntention).newlyAddedEmojis;
const id = newlyAddedEmojis.length > 0 ? newlyAddedEmojis[0].id : null;
let binding = env0_3;
binding.useEffect(_fun67851, [id, guildId]);
const value10 = importDefault(dependencyMap[12])();
require(dependencyMap[13]).useTrackOnEmojiPickerOpenedForReactions({intention: emojiPickerIntention,
rowSize: value8, analyticsObject: analyticsObject});
const value11 = importDefault(dependencyMap[14])();
const r2 = emojis != null ? value11.computeSearchResults({emojis: emojis, rowSize: value8,
limit: value10 ? 200 : undefined}) : value11.computeCategories({categories: categories, rowSize: value8,
isNativeEmojiPickerEnabled: value10});
const moduleValue2 = require(dependencyMap[15]);
const usePremiumUpsellConfig = moduleValue2.usePremiumUpsellConfig;
const moduleValue3 = require(dependencyMap[16]);
const getUpsellType = moduleValue3.getUpsellType;
const EntitlementFeatureNames = require(dependencyMap[17]).EntitlementFeatureNames;
const EMOJIS_EVERYWHERE = EntitlementFeatureNames.EMOJIS_EVERYWHERE;
const useTier0UpsellContent = Reflect.apply(usePremiumUpsellConfig, moduleValue2, [Reflect.apply(getUpsellType,
moduleValue3, [EMOJIS_EVERYWHERE])]).useTier0UpsellContent;
binding = env0_3;
const value13 = binding.useCallback(_fun67852, [searchQueryRef, channel, emojiPickerIntention, guildId,
onPressEmoji, analyticsLocations, messageId]);
const value14 = binding.useCallback(function(a0) {
if (onLongPressEmoji != null) {
onLongPressEmoji(a0);
}
}, [onLongPressEmoji]);
const value15 = importDefault(dependencyMap[26])({emojiSections: r2, rowSize: value8,
isNativeEmojiPickerEnabled: value10});
const AnimateEmoji = require(dependencyMap[27]).AnimateEmoji;
const value16 = AnimateEmoji.useSetting();
const value17 = binding.useCallback(_fun67854, [analyticsLocations, value13, value14, channel, value8, value6,
value16, emojiPickerListRef, useTier0UpsellContent]);
const {shouldShowUpsell, onShowNitroUpsell} = importDefault(dependencyMap[33])();
if (r2.length === 0) {
return ((Component) => <Component inActionSheet insetTop={insetTop} insetBottom={insetBottom} />)(importDefault(dependencyMap[34]));
}
return (
<>
{((Component) => <Component analyticsLocations={analyticsLocations} animateEmoji={value16} bottomSheetIndex={bottomSheetIndex} categoryIndexActive={categoryIndexActive} data={value15} guildId={guildId ?? channel?.guild_id} inPortalKeyboard={inPortalKeyboard} onPressEmoji={value13} onLongPressEmoji={value14} onShowNitroUpsell={onShowNitroUpsell} paddingBottom={insetBottom} paddingTop={insetTop} ref={emojiPickerListRef} renderItem={value17} useTier0UpsellContent={useTier0UpsellContent} />)(importDefault(value10 ? dependencyMap[35] : dependencyMap[36]))}
{((Component) => <Component bottomSheetIndex={bottomSheetIndex} inPortalKeyboard={inPortalKeyboard} shouldShow={shouldShowUpsell} />)(importDefault(dependencyMap[37]))}
</>
);
}
function _fun67851() { // fn#67851, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8761:819, offset: 0x01c34d19, size: 50 bytes, params: 1, frame: 14
let value = environment.__proto__;
value = require(8536) /* metro dependency 8536: TopEmojisActionCreators */;
value.updateNewlyAddedLastSeen(guildId, id);
}
function _fun67852(a0, a1) { // fn#67852, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8761:1304, offset: 0x01c34d4b, size: 989 bytes, params: 3, frame: 23
var r11;
var defaultImport2;
var open;
var intl;
var defaultImport3;
var handleShowUpsellAlert;
var animated;
var object2;
const searchQueryRefBinding = searchQueryRef;
const value2 = undefined;
const r5 = (searchQueryRefBinding == null ? value2 : searchQueryRef.current) ?? '';
const value4 = r5.length > 0;
const hapticUtilsNativeModule = require(4081) /* metro dependency 4081: HapticUtilsNative */;
const triggerHapticFeedback = hapticUtilsNativeModule.triggerHapticFeedback;
const IMPACT_LIGHT = (importDefault(4082) /* metro dependency 4082: HapticFeedbackTypes */).IMPACT_LIGHT;
Reflect.apply(triggerHapticFeedback, hapticUtilsNativeModule, [IMPACT_LIGHT]);
const defaultImport = importDefault(3801) /* metro dependency 3801: EmojiUtils */;
const getEmojiUnavailableReason = defaultImport.getEmojiUnavailableReason;
let object4 = {emoji: a0};
object4.channel = channel;
object4.intention = emojiPickerIntention;
object4.guildId = guildId;
const value6 = Reflect.apply(getEmojiUnavailableReason, defaultImport, [object4]);
if (value6 === null) {
if (onPressEmoji != null) {
onPressEmoji(a0);
}
} else if (EmojiDisabledReasons.ROLE_SUBSCRIPTION_LOCKED === value6) {
(require(4015) /* metro dependency 4015: ChatInputUtils */).dismissKeyboard();
if (a0.guildId != null) {
(importDefault(8588) /* metro dependency 8588: RoleSubscriptionUpsellUtils */).handleShowEmojiUpsellAlert({guildId: a0.guildId});
}
} else if (EmojiDisabledReasons.PREMIUM_LOCKED === value6) {
defaultImport3 = importDefault(7882) /* metro dependency 7882: PremiumUpsellUtils */;
handleShowUpsellAlert = defaultImport3.handleShowUpsellAlert;
object4 = {};
animated = a0.animated;
object4.initialUpsellKey = animated ? UpsellTypes.ANIMATED_EMOJI : UpsellTypes.GLOBAL_EMOJI;
r11 = (channel == null ? value2 : channel.guild_id) != null ? AnalyticsPages.GUILD_CHANNEL : AnalyticsPages.DM_CHANNEL;
object4.analyticsLocation = {page: r11, section: AnalyticsSections.EMOJI_PICKER_POPOUT,
object: AnalyticsObjects.EMOJI};
object4.analyticsLocations = analyticsLocations;
object2 = {};
r11 = emojiPickerIntention === EmojiIntention.REACTION ? PremiumUpsellTypes.EMOJI_PICKER_REACTION_EMOJI_CLICKED : PremiumUpsellTypes.EMOJI_PICKER_EMOJI_CLICKED;
object2.type = r11;
animated = a0.animated;
object2.is_animated = animated;
r11 = a0.guildId != null && a0.guildId !== (channel == null ? value2 : channel.guild_id);
object2.is_external = r11;
object2.has_search_query = value4;
object4.analyticsProperties = object2;
Reflect.apply(handleShowUpsellAlert, defaultImport3, [object4]);
} else {
defaultImport2 = importDefault(3857) /* metro dependency 3857: ToastActionCreators */;
open = defaultImport2.open;
object4 = {key: 'EMOJI_PICKER_LIST_PRESS_DISABLED'};
intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
object4.content = intl.string((require(1244) /* metro dependency 1244: indexNative */).t.VsE5yG);
Reflect.apply(open, defaultImport2, [object4]);
}
const emojiPickerUtilsModule = require(8533) /* metro dependency 8533: EmojiPickerUtils */;
if (value4) {
emojiPickerUtilsModule.trackEmojiSearchSelect({emoji: a0,
location: {page: (channel == null ? value2 : channel.guild_id) != null ? AnalyticsPages.GUILD_CHANNEL : AnalyticsPages.DM_CHANNEL,
section: AnalyticsSections.EMOJI_PICKER_POPOUT, object: AnalyticsObjects.EMOJI}, searchQuery: r5,
intention: emojiPickerIntention, messageId: messageId});
} else {
emojiPickerUtilsModule.trackEmojiSelect({emoji: a0, pickerIntention: emojiPickerIntention, category: a1,
location: {page: (channel == null ? value2 : channel.guild_id) != null ? AnalyticsPages.GUILD_CHANNEL : AnalyticsPages.DM_CHANNEL,
section: AnalyticsSections.EMOJI_PICKER_POPOUT, object: AnalyticsObjects.EMOJI}, messageId: messageId});
}
return value2;
}
function _fun67854({item, target, index}) { // fn#67854, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8761:2883, offset: 0x01c35147, size: 864 bytes, params: 2, frame: 24
var title;
var current;
const type = item.type;
const value = environment.__proto__;
const EmojiPickerItemType = (require(8593) /* metro dependency 8593: useEmojiPickerData */).EmojiPickerItemType;
const NATIVE_SECTION = EmojiPickerItemType.NATIVE_SECTION;
if (NATIVE_SECTION === type) {
return null;
}
const PLACEHOLDER = EmojiPickerItemType.PLACEHOLDER;
if (PLACEHOLDER === type) {
return null;
}
const EMOJI_ROW_SLIM = EmojiPickerItemType.EMOJI_ROW_SLIM;
if (EMOJI_ROW_SLIM === type) {
return null;
}
const TITLE = EmojiPickerItemType.TITLE;
if (TITLE === type) {
title = item.title;
if (target === 'StickyHeader') {
current = emojiPickerListRef.current;
if (current != null) {
current.onStickyHeaderRendered(index);
}
}
const Section = (require(8599) /* metro dependency 8599: EmojiPickerListComponents */).Section;
return (
<Section
label={title}
isSectionNitroLocked={item.isSectionNitroLocked}
useTier0UpsellContent={useTier0UpsellContent}
/>
);
}
const PREMIUM_INLINE_ROADBLOCK = EmojiPickerItemType.PREMIUM_INLINE_ROADBLOCK;
if (PREMIUM_INLINE_ROADBLOCK === type) {
return ((Component) => <Component position={item.position} useTier0UpsellContent={useTier0UpsellContent} />)(importDefault(8596) /* metro dependency 8596: PremiumUpsellSectionDivider */);
}
const EMOJI_ROW = EmojiPickerItemType.EMOJI_ROW;
return (
<>
{item.isSectionNitroLocked === true && ((PremiumUpsellGradientBackground) => <PremiumUpsellGradientBackground useTier0UpsellContent={useTier0UpsellContent} />)((require(8597) /* metro dependency 8597: PremiumUpsellGradientBackground */).PremiumUpsellGradientBackground)}
{EMOJI_ROW === type ? ((EmojiPickerListRow) => <EmojiPickerListRow emojis={item.emojis} emojisDisabled={item.emojisDisabled} category={item.footer} rowSize={env0_10} containerWidth={env0_9} onPressEmoji={env0_13} onLongPressEmoji={env0_14} animateEmoji={env0_15} row={item.row} isSectionNitroLocked={item.isSectionNitroLocked} />)((require(8600) /* metro dependency 8600: EmojiPickerListRow */).EmojiPickerListRow) : (require(8593) /* metro dependency 8593: useEmojiPickerData */).EmojiPickerItemType.EMOJI_ROW_NSFW === type ? ((NSFWRow) => <NSFWRow />)((require(8599) /* metro dependency 8599: EmojiPickerListComponents */).NSFWRow) : (require(8593) /* metro dependency 8593: useEmojiPickerData */).EmojiPickerItemType.FOOTER_UPSELL !== type ? undefined : ((PremiumSearchUpsell) => <PremiumSearchUpsell guildId={channel?.guild_id} analyticsLocations={analyticsLocations} useTier0UpsellContent={useTier0UpsellContent} />)((require(8603) /* metro dependency 8603: EmojiPickerPremiumSearchUpsell */).PremiumSearchUpsell)}
</>
);
}
@@ -0,0 +1,173 @@
/* Metro module 8611; source: modules/emoji_picker/native/components/EmojiPickerListComponent.android.tsx; dependencies: [31, 6540, 6544, 8532, 1346, 33, 4501, 4017, 8612, 6277, 1581, 3797, 8613, 8603, 2] */
function _fun67969(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#67969, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8796:6, offset: 0x01c3a2e0, size: 434 bytes, params: 8, frame: 22
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
let value = importAll(31) /* metro dependency 31 */;
const emojiStore = importDefault(6540) /* metro dependency 6540: EmojiStore */;
const env0_5 = (require(6544) /* metro dependency 6544: EmojiPickerConstants */).EmojiCategoryTypes;
const env0_6 = (require(8532) /* metro dependency 8532: EmojiPickerListConstants */).IMAGE_SIZE;
const env0_7 = (require(1346) /* metro dependency 1346: ExpressionPickerConstants */).PADDING_VERTICAL;
const value2 = require(33) /* metro dependency 33 */;
const env0_8 = value2.jsx;
const env0_9 = value2.Fragment;
const env0_10 = value2.jsxs;
const env0_11 = (require(4501) /* metro dependency 4501: createStyles */).createStyles({container: {flex: 1}});
const animatedComponent = (importDefault(4017) /* metro dependency 4017: ReanimatedRexport */).createAnimatedComponent(importDefault(8612) /* metro dependency 8612: EmojiPickerNativeComponent */);
const value5 = require(6277) /* metro dependency 6277 */;
const createBottomSheetScrollableComponent = value5.createBottomSheetScrollableComponent;
const SCROLLABLE_TYPE = value5.SCROLLABLE_TYPE;
const SCROLLVIEW = SCROLLABLE_TYPE.SCROLLVIEW;
const env0_12 = Reflect.apply(createBottomSheetScrollableComponent, value5, [SCROLLVIEW, animatedComponent]);
const env0_13 = (require(1581) /* metro dependency 1581: MetaQuestUtilsAndroid */).isMetaQuest();
object = {code: 'function EmojiPickerListComponentAndroidTsx1(){const{bottomSheetIndex}=this.__closure;return bottomSheetIndex.get();}'};
object = {code: 'function EmojiPickerListComponentAndroidTsx2(index){const{inPortalKeyboard,IS_META_QUEST,runOnJS,scrollingEnabled}=this.__closure;if(!inPortalKeyboard||index<0||IS_META_QUEST){return;}if(index===0){runOnJS(scrollingEnabled)(false);}else if(index===1){runOnJS(scrollingEnabled)(true);}}'};
value = value.forwardRef(_fun67970);
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/emoji_picker/native/components/EmojiPickerListComponent.android.tsx');
exports.default = value;
}
function _fun67970({analyticsLocations, bottomSheetIndex, categoryIndexActive, data, animateEmoji, guildId, inPortalKeyboard, paddingTop, paddingBottom, onPressEmoji, onLongPressEmoji, onShowNitroUpsell, useTier0UpsellContent}, a1) { // fn#67970, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8796:873, offset: 0x01c3a492, size: 732 bytes, params: 3, frame: 36
var object2;
const env0_3 = data;
const styles = useStyles();
const binding = env0_3;
const value2 = binding.useRef(null);
binding.useEffect(_fun67971, [value2, data]);
let closure = _fun67972;
const value3 = binding.useCallback(closure, []);
const env0_12 = value3;
const reanimatedRexportModule = require(4017) /* metro dependency 4017: ReanimatedRexport */;
const useAnimatedReaction = reanimatedRexportModule.useAnimatedReaction;
closure = function() {
return bottomSheetIndex.get();
};
closure.__closure = {bottomSheetIndex: bottomSheetIndex};
closure.__workletHash = 10656486632396;
closure.__initData = env0_14;
const closure2 = D_67974;
object2 = {inPortalKeyboard: inPortalKeyboard, IS_META_QUEST: env0_13};
object2.runOnJS = reanimatedRexportModule.runOnJS;
object2.scrollingEnabled = value3;
closure2.__closure = object2;
closure2.__workletHash = 2460528828147;
closure2.__initData = env0_15;
Reflect.apply(useAnimatedReaction, reanimatedRexportModule, [closure, closure2]);
const value4 = binding.useCallback(_fun67975, [guildId]);
const value5 = binding.useCallback(_fun67976, [onPressEmoji, value4]);
const value6 = binding.useCallback(_fun67977, [onLongPressEmoji, value4]);
const value7 = binding.useCallback(function({nativeEvent}) {
categoryIndexActive.set(nativeEvent.index);
}, [categoryIndexActive]);
const value8 = binding.useCallback(function({nativeEvent}) {
onShowNitroUpsell(nativeEvent.showNitroUpsell);
}, [onShowNitroUpsell]);
binding.useImperativeHandle(a1, function() {
return {scrollToHeaderIndex: _fun67981, forceUpdate: _fun67982, onStickyHeaderRendered: _fun67983};
});
let useMemo = binding.useMemo;
const env0_122 = ((Component) => <Component config={Reflect.apply(useMemo, binding, [function() {
return {'animateEmoji': null, 'scrollFastOptimizationEnabled': true, 'scrollFastVelocity': 8000,
'disableAnimationsOnScroll': true, animateEmoji: animateEmoji};
},
[animateEmoji]])} emojiData={data} emojiMargin={PADDING_VERTICAL} emojiSize={IMAGE_SIZE} onPressEmoji={value5} onLongPressEmoji={value6} onStickyHeaderRender={value7} onShowNitroUpsell={value8} paddingTop={paddingTop} paddingBottom={paddingBottom} useTier0UpsellContent={useTier0UpsellContent} ref={value2} style={styles.container} />)(env0_12);
useMemo = binding.useMemo;
return (
<>
{env0_122}
{Reflect.apply(useMemo, binding, [_fun67985, [guildId, analyticsLocations, useTier0UpsellContent,
data.hasSearchUpsell]])}
</>
);
}
function _fun67971() { // fn#67971, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8796:1147, offset: 0x01c3a76e, size: 85 bytes, params: 1, frame: 12
var Commands;
const binding = env0_11;
if (binding.current != null && data.hasGuildData) {
value = environment.__proto__;
Commands = (require(8612) /* metro dependency 8612: EmojiPickerNativeComponent */).Commands;
Commands.refreshEmojis(binding.current);
}
}
function _fun67972(a0) { // fn#67972, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8796:1269, offset: 0x01c3a7c3, size: 73 bytes, params: 2, frame: 13
var Commands;
const binding = env0_11;
if (binding.current != null) {
value = environment.__proto__;
Commands = (require(8612) /* metro dependency 8612: EmojiPickerNativeComponent */).Commands;
Commands.scrollingEnabled(binding.current, a0);
}
}
function D_67974(a0) { // fn#67974, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8796:1479, offset: 0x01c3a80c, size: 146 bytes, params: 2, frame: 13
var value5;
var value6;
const inPortalKeyboardBinding = inPortalKeyboard;
let r1 = inPortalKeyboardBinding ? a0 < 0 : !inPortalKeyboardBinding;
r1 = !r1 ? env1_13 : r1;
if (!r1) {
if (a0 === 0) {
value6 = environment.__proto__;
(require(4017) /* metro dependency 4017: ReanimatedRexport */).runOnJS(env0_12)(false);
} else if (a0 === 1) {
value5 = environment.__proto__;
(require(4017) /* metro dependency 4017: ReanimatedRexport */).runOnJS(env0_12)(true);
}
}
}
function _fun67975({emojiId, emojiName}) { // fn#67975, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8796:1726, offset: 0x01c3a89e, size: 97 bytes, params: 2, frame: 13
var r0;
var value;
if (emojiId != null) {
value = environment.__proto__;
value = EmojiStore.getDisambiguatedEmojiContext(guildId);
value = value.getById(emojiId);
r0 = value;
} else {
value = environment.__proto__;
value = importDefault(3797) /* metro dependency 3797: UnicodeEmojis */;
value = value.getByName(emojiName);
r0 = value;
}
return r0;
}
function _fun67976({nativeEvent}) { // fn#67976, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8796:1851, offset: 0x01c3a8ff, size: 40 bytes, params: 2, frame: 12
const value2 = env0_13(nativeEvent);
if (value2 != null) {
onPressEmoji(value2);
}
}
function _fun67977({nativeEvent}) { // fn#67977, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8796:1922, offset: 0x01c3a927, size: 40 bytes, params: 2, frame: 12
const value2 = env0_13(nativeEvent);
if (value2 != null) {
onLongPressEmoji(value2);
}
}
function _fun67980() { // fn#67980, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8796:2125, offset: 0x01c3a993, size: 42 bytes, params: 1, frame: 3
return {scrollToHeaderIndex: scrollToHeaderIndex_67981, forceUpdate: function() {
}, onStickyHeaderRendered: function() {
}};
}
function _fun67985() { // fn#67985, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8796:2664, offset: 0x01c3aa33, size: 132 bytes, params: 1, frame: 18
return data.hasSearchUpsell ? ((Component) => <Component portalId={EmojiCategoryTypes.PREMIUM_UPSELL}>{((PremiumSearchUpsell) => <PremiumSearchUpsell guildId={guildId} analyticsLocations={analyticsLocations} useTier0UpsellContent={useTier0UpsellContent} />)((require(8603) /* metro dependency 8603: EmojiPickerPremiumSearchUpsell */).PremiumSearchUpsell)}</Component>)(importDefault(8613) /* metro dependency 8613: PortalToNativeViewNative */) : null;
}
function scrollToHeaderIndex_67981({index, animated}) { // fn#67981, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8796:2151, offset: 0x01c3a9bd, size: 89 bytes, params: 2, frame: 17
var Commands;
animated = animated === undefined || animated;
let value = environment.__proto__;
const binding = env1_11;
if (binding.current != null) {
value = environment.__proto__.__proto__;
Commands = (require(8612) /* metro dependency 8612: EmojiPickerNativeComponent */).Commands;
Commands.scrollToHeaderIndex(binding.current, index, animated);
}
}
@@ -0,0 +1,115 @@
/* Metro module 8614; source: modules/emoji_picker/native/components/EmojiPickerListComponent.ios.tsx; dependencies: [31, 8532, 33, 8593, 8603, 8615, 8416, 2] */
function _fun67993(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#67993, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8799:6, offset: 0x01c3adec, size: 205 bytes, params: 8, frame: 18
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
let value = importAll(31) /* metro dependency 31 */;
const emojiPickerListConstantsModule = require(8532) /* metro dependency 8532: EmojiPickerListConstants */;
const env0_4 = emojiPickerListConstantsModule.ROW_HEIGHT;
const env0_5 = emojiPickerListConstantsModule.LABEL_HEIGHT;
const env0_6 = emojiPickerListConstantsModule.LABEL_TOP_PADDING;
const env0_7 = emojiPickerListConstantsModule.LABEL_BOTTOM_PADDING;
const env0_8 = (require(33) /* metro dependency 33 */).jsx;
value = value.forwardRef(_fun67994);
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/emoji_picker/native/components/EmojiPickerListComponent.ios.tsx');
exports.default = value;
}
function _fun67994({categoryIndexActive, data, onShowNitroUpsell, paddingTop, paddingBottom, renderItem}, a1) { // fn#67994, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8799:226, offset: 0x01c3aeb9, size: 338 bytes, params: 3, frame: 24
const data2 = data.data;
const headerIndices = data.headerIndices;
const binding = paddingBottom;
const value2 = binding.useRef(null);
const value3 = binding.useMemo(function() {
return {paddingTop: paddingTop, paddingBottom: paddingBottom};
}, [paddingTop, paddingBottom]);
const value4 = binding.useCallback(function(a0) {
return a0.type;
}, []);
const value5 = binding.useCallback(function({type}, a1) {
return '' + type + '-' + a1;
}, []);
const value6 = binding.useCallback(_fun67998, []);
binding.useImperativeHandle(a1, function() {
return {scrollToHeaderIndex: _fun68000, forceUpdate: _fun68001, onStickyHeaderRendered: _fun68002};
});
const onViewableItemsChanged = (importDefault(8615) /* metro dependency 8615: useEmojiPickerViewableItemsCallback */)(onShowNitroUpsell).onViewableItemsChanged;
const BottomSheetFlashList = (require(8416) /* metro dependency 8416: flashList */).BottomSheetFlashList;
return (
<BottomSheetFlashList
contentContainerStyle={value3}
data={data2}
estimatedItemSize={ROW_HEIGHT}
getItemType={value4}
keyboardShouldPersistTaps="always"
keyExtractor={value5}
onViewableItemsChanged={onViewableItemsChanged}
overrideItemLayout={value6}
ref={value2}
renderItem={renderItem}
stickyHeaderIndices={headerIndices}
/>
);
}
function _fun67998(a0, {type}) { // fn#67998, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8799:528, offset: 0x01c3b04d, size: 274 bytes, params: 3, frame: 15
const EmojiPickerItemType = (require(8593) /* metro dependency 8593: useEmojiPickerData */).EmojiPickerItemType;
const PLACEHOLDER = EmojiPickerItemType.PLACEHOLDER;
if (PLACEHOLDER === type) {
a0.size = 0;
} else if (EmojiPickerItemType.TITLE === type) {
a0.size = LABEL_HEIGHT + LABEL_TOP_PADDING + LABEL_BOTTOM_PADDING;
} else if (EmojiPickerItemType.EMOJI_ROW === type) {
a0.size = ROW_HEIGHT;
} else if (EmojiPickerItemType.EMOJI_ROW_NSFW === type) {
a0.size = ROW_HEIGHT;
} else if (EmojiPickerItemType.FOOTER_UPSELL === type) {
a0.size = (require(8603) /* metro dependency 8603: EmojiPickerPremiumSearchUpsell */).EMOJI_PICKER_PREMIUM_UPSELL_HEIGHT;
}
}
function _fun67999() { // fn#67999, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8799:904, offset: 0x01c3b15f, size: 42 bytes, params: 1, frame: 3
return {scrollToHeaderIndex: scrollToHeaderIndex_68000, forceUpdate: forceUpdate_68001,
onStickyHeaderRendered: function(a0) {
var r3;
var r4;
var r2;
var value3;
var headerIndicesBinding = headerIndices;
var value2 = 0;
if (value2 < headerIndicesBinding.length) {
r3 = value2;
r4 = value2;
while (true) {
r4 = a0 >= headerIndices[r3] ? r3 : r4;
value3 = typeof r3 === 'bigint' ? r3 + 1n : +r3 + 1;
if (value3 < headerIndices.length) {
r3 = value3;
continue;
}
r2 = r4;
break;
}
} else {
r2 = value2;
}
categoryIndexActive.set(r2);
}};
}
function scrollToHeaderIndex_68000({index, animated}) { // fn#68000, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8799:930, offset: 0x01c3b189, size: 84 bytes, params: 2, frame: 16
animated = animated === undefined || animated;
const value = environment.__proto__;
const current = env1_4.current;
if (current != null) {
current.scrollToIndex({index: headerIndices[index] ?? 0, animated: animated});
}
}
function forceUpdate_68001() { // fn#68001, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8799:1055, offset: 0x01c3b1dd, size: 38 bytes, params: 1, frame: 10
const current = env1_4.current;
if (current.forceUpdate != null) {
current.forceUpdate();
}
}
@@ -0,0 +1,38 @@
/* Metro module 8606; source: modules/emoji_picker/native/components/EmojiPickerListComponentEmpty.tsx; dependencies: [31, 27, 33, 4501, 697, 8607, 6277, 1305, 1244, 2] */
function _fun67956(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#67956, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8791:6, offset: 0x01c39e99, size: 285 bytes, params: 8, frame: 24
var object2;
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
let value = importAll(31) /* metro dependency 31 */;
const env0_3 = (require(27) /* metro dependency 27 */).ScrollView;
const env0_4 = (require(33) /* metro dependency 33 */).jsx;
const createStylesModule = require(4501) /* metro dependency 4501: createStyles */;
const createStyles = createStylesModule.createStyles;
object2 = {emptyStateContainer: {'padding': 0, 'flex': 1}};
const TEXT_SUBTLE = (importDefault(697) /* metro dependency 697: native */).colors.TEXT_SUBTLE;
object2.emptyStateBody = {color: TEXT_SUBTLE};
const PX_8 = (importDefault(697) /* metro dependency 697: native */).space.PX_8;
object2.emptyStateImage = {marginBottom: PX_8, marginTop: 0};
const env0_5 = Reflect.apply(createStyles, createStylesModule, [object2]);
value = value.memo(EmojiPickerListComponentEmpty);
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/emoji_picker/native/components/EmojiPickerListComponentEmpty.tsx');
exports.default = value;
}
function EmojiPickerListComponentEmpty({inActionSheet, insetTop, insetBottom}) { // fn#67957, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8791:332, offset: 0x01c39fb6, size: 299 bytes, params: 2, frame: 21
const styles = useStyles();
const value2 = env0_2.useMemo(function() {
return {marginBottom: insetBottom, marginTop: insetTop, flex: 1};
}, [insetBottom, insetTop]);
const value3 = (require(8607) /* metro dependency 8607: SearchEmpty */).useSearchEmptySource();
const r2 = inActionSheet ? (require(6277) /* metro dependency 6277 */).BottomSheetScrollView : ScrollView;
const RefreshEmptyState = (require(1305) /* metro dependency 1305: native */).RefreshEmptyState;
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
const string = intl.string;
const IxxiKF = (require(1244) /* metro dependency 1244: indexNative */).t.IxxiKF;
return ((Component) => <Component contentContainerStyle={value2} keyboardShouldPersistTaps="always"><RefreshEmptyState source={value3} body={Reflect.apply(string,
intl,
[IxxiKF])} bodyStyle={styles.emptyStateBody} containerStyle={styles.emptyStateContainer} imageStyle={styles.emptyStateImage} /></Component>)(r2);
}
@@ -0,0 +1,74 @@
/* Metro module 8599; source: modules/emoji_picker/native/components/EmojiPickerListComponents.tsx; dependencies: [31, 27, 8532, 33, 4501, 697, 1305, 8395, 4573, 1244, 8597, 2] */
function _fun67927(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#67927, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8784:6, offset: 0x01c38934, size: 409 bytes, params: 8, frame: 26
var object2;
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
let value = importAll(31) /* metro dependency 31 */;
const env0_3 = (require(27) /* metro dependency 27 */).View;
const {LABEL_BOTTOM_PADDING, LABEL_TOP_PADDING,
NSFW_ROW_HEIGHT} = require(8532) /* metro dependency 8532: EmojiPickerListConstants */;
const value3 = require(33) /* metro dependency 33 */;
const env0_4 = value3.jsx;
const env0_5 = value3.jsxs;
const createStylesModule = require(4501) /* metro dependency 4501: createStyles */;
const createStyles = createStylesModule.createStyles;
object2 = {};
const MOBILE_EXPRESSION_PICKER_BACKGROUND_DEFAULT = (importDefault(697) /* metro dependency 697: native */).colors.MOBILE_EXPRESSION_PICKER_BACKGROUND_DEFAULT;
object2.section = {'justifyContent': 'center', 'overflow': 'hidden',
backgroundColor: MOBILE_EXPRESSION_PICKER_BACKGROUND_DEFAULT, paddingTop: LABEL_TOP_PADDING,
paddingBottom: LABEL_BOTTOM_PADDING};
const object4 = {'flexDirection': 'row', 'height': null, 'alignItems': 'center', 'justifyContent': 'center',
'borderRadius': null, 'marginLeft': 12, 'marginRight': 12};
object4.height = NSFW_ROW_HEIGHT;
object4.borderRadius = (importDefault(697) /* metro dependency 697: native */).radii.sm;
const BACKGROUND_MOD_NORMAL = (importDefault(697) /* metro dependency 697: native */).colors.BACKGROUND_MOD_NORMAL;
object4.backgroundColor = BACKGROUND_MOD_NORMAL;
object2.nsfwContainer = object4;
object2.nsfwText = {'marginLeft': 4, 'textAlign': 'center'};
const env0_6 = Reflect.apply(createStyles, createStylesModule, [object2]);
const value5 = value.memo(_fun67928);
value = value.memo(_fun67929);
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/emoji_picker/native/components/EmojiPickerListComponents.tsx');
exports.NSFWRow = value5;
exports.Section = value;
}
function _fun67928() { // fn#67928, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8784:661, offset: 0x01c38acd, size: 246 bytes, params: 1, frame: 22
const styles = useStyles();
const Icon = (require(1305) /* metro dependency 1305: native */).Icon;
const iconProps = {source: importDefault(8395) /* metro dependency 8395 */};
const Icon2 = (require(1305) /* metro dependency 1305: native */).Icon;
const Sizes = Icon2.Sizes;
const SMALL = Sizes.SMALL;
iconProps.size = SMALL;
const icon = <Icon {...iconProps} />;
const Text = (require(4573) /* metro dependency 4573: Text */).Text;
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
const string = intl.string;
const SLzV5z = (require(1244) /* metro dependency 1244: indexNative */).t.SLzV5z;
return (
<View style={styles.nsfwContainer}>
{icon}
<Text
style={styles.nsfwText}
variant="text-sm/normal"
color="interactive-text-active"
>
{Reflect.apply(string, intl, [SLzV5z])}
</Text>
</View>
);
}
function _fun67929({label, isSectionNitroLocked, useTier0UpsellContent}) { // fn#67929, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8784:944, offset: 0x01c38bc3, size: 186 bytes, params: 2, frame: 21
const styles = useStyles();
const items2 = [isSectionNitroLocked && ((PremiumUpsellGradientBackground) => <PremiumUpsellGradientBackground useTier0UpsellContent={useTier0UpsellContent} />)((require(8597) /* metro dependency 8597: PremiumUpsellGradientBackground */).PremiumUpsellGradientBackground)];
items2[1] = label === '' ? null : ((Text) => <Text lineClamp={1} color="interactive-text-default" variant="heading-sm/semibold">{label}</Text>)((require(4573) /* metro dependency 4573: Text */).Text);
return (
<View style={styles.section}>
{items2}
</View>
);
}
@@ -0,0 +1,24 @@
/* Metro module 8532; source: modules/emoji_picker/native/components/EmojiPickerListConstants.tsx; dependencies: [1346, 2] */
function _fun67612(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#67612, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8717:6, offset: 0x01c2b12f, size: 220 bytes, params: 8, frame: 19
var object2;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const PADDING_VERTICAL = (require(1346) /* metro dependency 1346: ExpressionPickerConstants */).PADDING_VERTICAL;
const value = 2 * PADDING_VERTICAL;
object2 = {EMOJI: 0};
object2[0] = 'EMOJI';
object2.NSFW = 1;
object2[1] = 'NSFW';
object2.NATIVE_SECTION = 2;
object2[2] = 'NATIVE_SECTION';
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/emoji_picker/native/components/EmojiPickerListConstants.tsx');
exports.IMAGE_SIZE = 33;
exports.LABEL_TOP_PADDING = 8;
exports.LABEL_HEIGHT = 16;
exports.LABEL_BOTTOM_PADDING = 4;
exports.ROW_HEIGHT = 33 + value;
exports.EmojiPickerRenderingDataType = object2;
exports.NSFW_ROW_HEIGHT = 40;
exports.EmojiPickerSource = {NOTIFICATION: 'notification'};
}
@@ -0,0 +1,306 @@
/* Metro module 8600; source: modules/emoji_picker/native/components/EmojiPickerListRow.tsx; dependencies: [31, 27, 1310, 8532, 1346, 33, 4501, 697, 477, 674, 1423, 6705, 5278, 5475, 4002, 6740, 6741, 1305, 8601, 2] */
function _fun67930(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#67930, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8785:6, offset: 0x01c38c7d, size: 638 bytes, params: 8, frame: 26
var object2;
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
let value = importAll(31) /* metro dependency 31 */;
const value2 = require(27) /* metro dependency 27 */;
const env0_3 = value2.View;
const StyleSheet = value2.StyleSheet;
const themeStore = importDefault(1310) /* metro dependency 1310: ThemeStore */;
const {IMAGE_SIZE, ROW_HEIGHT} = require(8532) /* metro dependency 8532: EmojiPickerListConstants */;
const env0_6 = (require(1346) /* metro dependency 1346: ExpressionPickerConstants */).PADDING_VERTICAL;
const value4 = require(33) /* metro dependency 33 */;
const env0_7 = value4.jsx;
const env0_8 = value4.jsxs;
const createStylesModule = require(4501) /* metro dependency 4501: createStyles */;
const createStyles = createStylesModule.createStyles;
object2 = {};
object2.image = {height: IMAGE_SIZE, width: IMAGE_SIZE};
object2.surrogatesFrame = {height: IMAGE_SIZE, width: IMAGE_SIZE, alignItems: 'center', justifyContent: 'center'};
const object3 = {};
object3.borderRadius = (importDefault(697) /* metro dependency 697: native */).radii.sm;
object3.overflow = 'hidden';
object2.disabledOverlay = object3;
const object6 = {};
object6.fontSize = (require(477) /* metro dependency 477: PlatformUtils */).isAndroid() ? 26 : 28;
const TEXT_DEFAULT = (importDefault(697) /* metro dependency 697: native */).colors.TEXT_DEFAULT;
object6.color = TEXT_DEFAULT;
object2.surrogates = object6;
object2.row = {'height': null, 'flexDirection': 'row', 'alignItems': 'center', 'justifyContent': 'space-between',
height: ROW_HEIGHT};
const object8 = {'backgroundColor': null, 'alignItems': 'center', 'justifyContent': 'center'};
object8.backgroundColor = (importDefault(674) /* metro dependency 674 */)('#000000').alpha(0.2).hex();
copyDataProperties(object8, StyleSheet.absoluteFillObject, undefined);
object2.lockContainer = object8;
object2.lock = {'width': 16, 'height': 16, 'tintColor': 'white'};
const env0_9 = Reflect.apply(createStyles, createStylesModule, [object2]);
const env0_10 = value.memo(_fun67936);
const env0_11 = value.memo(_fun67941);
value = value.memo(_fun67942);
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/emoji_picker/native/components/EmojiPickerListRow.tsx');
exports.EmojiPickerListRow = value;
}
function getEmojiItemUrl(a0, a1) { // fn#67931, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8785:794, offset: 0x01c38efb, size: 112 bytes, params: 3, frame: 16
var r0;
let value = a1;
if (a0.id == null) {
r0 = a0.url ?? '';
} else {
value = (importDefault(1423) /* metro dependency 1423: AvatarUtils */).getEmojiURL({id: a0.id,
animated: value && a0.animated, size: IMAGE_SIZE});
r0 = value;
}
return r0;
}
function EmojiItemLockedOverlay() { // fn#67932, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8785:932, offset: 0x01c38f6b, size: 93 bytes, params: 1, frame: 18
const styles = useStyles();
const LockIcon = (require(6705) /* metro dependency 6705: LockIcon */).LockIcon;
return (
<View style={styles.lockContainer}>
<LockIcon style={styles.lock} />
</View>
);
}
function EmojiItem({emoji, category, disabled, onPressEmoji, onLongPressEmoji, animateEmoji, isSectionNitroLocked}) { // fn#67933, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8785:1057, offset: 0x01c38fc8, size: 464 bytes, params: 2, frame: 24
var r7;
var LegacyText;
var object;
var surrogates;
var FastImage;
var moduleValue;
const styles = useStyles();
const emojiItemUrl = getEmojiItemUrl(emoji, animateEmoji);
let r5 = disabled && !isSectionNitroLocked;
const PressableOpacity = (require(5278) /* metro dependency 5278: Pressables */).PressableOpacity;
const name = emoji.name;
const items2 = [styles.surrogatesFrame];
items2[1] = r5 && styles.disabledOverlay;
if (emoji.id != null) {
FastImage = importDefault(5475) /* metro dependency 5475: FastImage */;
var defaultImportProps = {resizeMode: 'contain', style: styles.image};
moduleValue = require(4002) /* metro dependency 4002: shared */;
defaultImportProps.placeholder = moduleValue.isThemeDark(ThemeStore.theme) ? importDefault(6740) /* metro dependency 6740 */ : importDefault(6741) /* metro dependency 6741 */;
defaultImportProps.source = {uri: emojiItemUrl};
defaultImportProps.usesSmallCache = true;
r7 = <FastImage {...defaultImportProps} />;
} else {
LegacyText = (require(1305) /* metro dependency 1305: native */).LegacyText;
object = {allowFontScaling: false};
surrogates = styles.surrogates;
object.style = surrogates;
surrogates = emoji.surrogates;
r7 = <LegacyText {...object}>{surrogates}</LegacyText>;
}
r5 = r5 && <EmojiItemLockedOverlay />;
return (
<PressableOpacity
accessibilityRole="button"
accessibilityLabel={name}
style={items2}
onPress={function() {
return onPressEmoji(emoji, category);
}}
onLongPress={function() {
return onLongPressEmoji(emoji);
}}
>
{r7}
{r5}
</PressableOpacity>
);
}
function _fun67936({emojis, emojisDisabled, category, rowSize, containerWidth, row, onPressEmoji, onLongPressEmoji, animateEmoji, isSectionNitroLocked}) { // fn#67936, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8785:1699, offset: 0x01c391ac, size: 419 bytes, params: 2, frame: 34
var r1;
var r19;
var r22;
var property;
var push;
var object2;
var id;
var name;
var animated;
var value5;
var value6;
var has;
var value7;
var value8;
const styles = useStyles();
const items2 = [];
let value2 = row * rowSize;
if (value2 < value2 + rowSize) {
r1 = value2;
while (true) {
property = emojis[r1];
if (property === undefined) {
items2.push({'id': null, 'name': '', 'url': '', 'animated': false, 'disabled': false});
} else {
push = items2.push;
object2 = {};
id = property.id;
if (id != null) {
r19 = id;
continue;
}
r19 = null;
continue;
object2.id = r19;
name = property.name;
if (name != null) {
r22 = name;
continue;
}
r22 = '';
continue;
object2.name = r22;
object2.url = getEmojiItemUrl(property, animateEmoji);
animated = property.animated;
value5 = animated === true;
if (value5) {
r22 = animateEmoji;
continue;
}
r22 = value5;
continue;
object2.animated = r22;
id = property.id;
value6 = id != null;
if (!value6) {
r22 = value6;
continue;
}
has = emojisDisabled.has;
id = property.id;
value7 = Reflect.apply(has, emojisDisabled, [id]);
r22 = value7;
object2.disabled = r22;
Reflect.apply(push, items2, [object2]);
}
value8 = typeof r1 === 'bigint' ? r1 + 1n : +r1 + 1;
if (value8 < value2 + rowSize) {
r1 = value8;
continue;
}
break;
}
}
return ((Component) => <Component style={styles.row} rowData={{rowContentWidth: containerWidth,
rowContentPaddingVertical: PADDING_VERTICAL, itemSize: IMAGE_SIZE, items: items2,
isSectionNitroLocked: isSectionNitroLocked}} onPressEmoji={function(a0) {
var env0_0 = a0;
var value2 = emojis.find(_fun67938);
if (value2 != null) {
onPressEmoji(value2, category);
}
}} onLongPressEmoji={function(a0) {
var env0_0 = a0;
var value2 = emojis.find(_fun67940);
if (value2 != null) {
onLongPressEmoji(value2);
}
}} />)(importDefault(8601) /* metro dependency 8601: EmojiPickerListRowView */);
}
function _fun67941({emojis, emojisDisabled, category, rowSize, row, onPressEmoji, onLongPressEmoji, animateEmoji, isSectionNitroLocked}) { // fn#67941, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8785:2451, offset: 0x01c393e3, size: 273 bytes, params: 2, frame: 32
var r2;
var r19;
var property;
var push;
var jsxRuntimeEnv0_7Binding;
var object2;
var id;
var value3;
var has;
var value4;
var value5;
const styles = useStyles();
const items2 = [];
const value2 = row * rowSize;
if (value2 < value2 + rowSize) {
r2 = value2;
while (true) {
property = emojis[r2];
if (property === undefined) {
push = items2.push;
jsxRuntimeEnv0_7Binding = jsxRuntimeEnv0_7;
Reflect.apply(push, items2, [<View style={styles.image} key={r2} />]);
} else {
push = items2.push;
jsxRuntimeEnv0_7Binding = jsxRuntimeEnv0_7;
object2 = {emoji: property, category: category, animateEmoji: animateEmoji};
id = property.id;
value3 = id != null;
if (!value3) {
r19 = value3;
continue;
}
has = emojisDisabled.has;
id = property.id;
value4 = Reflect.apply(has, emojisDisabled, [id]);
r19 = value4;
object2.disabled = r19;
object2.onPressEmoji = onPressEmoji;
object2.onLongPressEmoji = onLongPressEmoji;
object2.isSectionNitroLocked = isSectionNitroLocked;
Reflect.apply(push, items2, [<EmojiItem {...object2} key={r2} />]);
}
value5 = typeof r2 === 'bigint' ? r2 + 1n : +r2 + 1;
if (value5 < value2 + rowSize) {
r2 = value5;
continue;
}
break;
}
}
return (
<View style={styles.row}>
{items2}
</View>
);
}
function _fun67942(a0) { // fn#67942, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8785:2880, offset: 0x01c394f4, size: 112 bytes, params: 2, frame: 16
var r5;
var r1;
var value;
const nativeRow = a0.nativeRow;
if (nativeRow !== undefined) {
r1 = nativeRow;
} else {
value = require(dependencyMap[8]);
value = value.isAndroid();
r1 = value;
r5 = dependencyMap;
}
value = Object.create(null);
value.nativeRow = 0;
const value2 = copyDataProperties({}, a0, value, r5);
r1 = r1 ? env0_10 : env0_11;
return ((Component) => <Component {...value2} />)(r1);
}
function onPressEmoji(a0) { // fn#67937, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8785:2275, offset: 0x01c3934f, size: 60 bytes, params: 2, frame: 13
const env0_0 = a0;
const value2 = emojis.find(_fun67938);
if (value2 != null) {
onPressEmoji(value2, category);
}
}
function onLongPressEmoji(a0) { // fn#67939, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8785:2365, offset: 0x01c393ac, size: 55 bytes, params: 2, frame: 12
const env0_0 = a0;
const value2 = emojis.find(_fun67940);
if (value2 != null) {
onLongPressEmoji(value2);
}
}
function _fun67938({name}) { // fn#67938, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8785:2293, offset: 0x01c3938b, size: 33 bytes, params: 2, frame: 2
return name === env0_0.nativeEvent.emojiName;
}
@@ -0,0 +1,11 @@
/* Metro module 8601; source: modules/emoji_picker/native/components/EmojiPickerListRowView.tsx; dependencies: [27, 477, 8602, 2] */
function _fun67943(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#67943, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8786:6, offset: 0x01c39564, size: 135 bytes, params: 8, frame: 17
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const View = (require(27) /* metro dependency 27 */).View;
const platformUtilsModule = require(477) /* metro dependency 477: PlatformUtils */;
const r1 = platformUtilsModule.isAndroid() ? importDefault(8602) /* metro dependency 8602: EmojiPickerRowViewNativeComponent */ : View;
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/emoji_picker/native/components/EmojiPickerListRowView.tsx');
exports.default = r1;
}
@@ -0,0 +1,140 @@
/* Metro module 8603; source: modules/emoji_picker/native/components/EmojiPickerPremiumSearchUpsell.tsx; dependencies: [31, 27, 1878, 661, 1880, 33, 4501, 697, 683, 3802, 4080, 5080, 7028, 1962, 7940, 1305, 8604, 4573, 1244, 5278, 2] */
function _fun67946(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#67946, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8788:6, offset: 0x01c396cf, size: 524 bytes, params: 8, frame: 26
var object2;
const env0_0 = require;
const closure = useEmojiPickerPremiumSearchUpsellViewed;
const closure2 = useEmojiPickerPremiumSearchUpsellClick;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
let value = importAll(31) /* metro dependency 31 */;
const env0_4 = (require(27) /* metro dependency 27 */).View;
const userStore = importDefault(1878) /* metro dependency 1878: UserStore */;
const constantsModule = require(661) /* metro dependency 661: Constants */;
const env0_6 = constantsModule.AnalyticEvents;
const env0_7 = constantsModule.AnalyticsPages;
const env0_8 = constantsModule.AnalyticsSections;
const premiumConstantsModule = require(1880) /* metro dependency 1880: PremiumConstants */;
const env0_9 = premiumConstantsModule.PremiumSubscriptionSKUs;
const env0_10 = premiumConstantsModule.PremiumUpsellTypes;
const env0_11 = premiumConstantsModule.SubscriptionPlans;
const value4 = require(33) /* metro dependency 33 */;
const env0_12 = value4.jsx;
const env0_13 = value4.jsxs;
const createStylesModule = require(4501) /* metro dependency 4501: createStyles */;
const createStyles = createStylesModule.createStyles;
object2 = {};
let PX_8 = (importDefault(697) /* metro dependency 697: native */).space.PX_8;
object2.container = {paddingTop: PX_8};
const object4 = {'height': 56, 'padding': null, 'borderRadius': null, 'backgroundColor': null,
'flexDirection': 'row', 'justifyContent': 'space-between', 'alignItems': 'center', 'alignContent': 'center'};
PX_8 = (importDefault(697) /* metro dependency 697: native */).space.PX_8;
object4.padding = PX_8;
object4.borderRadius = (importDefault(697) /* metro dependency 697: native */).radii.xs;
const BACKGROUND_BASE_LOWEST = (importDefault(697) /* metro dependency 697: native */).colors.BACKGROUND_BASE_LOWEST;
object4.backgroundColor = BACKGROUND_BASE_LOWEST;
object2.premiumSearchUpsell = object4;
object2.premiumSearchUpsellContent = {'flex': 0.8, 'flexDirection': 'row'};
object2.nitroIcon = {'marginRight': 8, 'alignSelf': 'center'};
const env0_14 = Reflect.apply(createStyles, createStylesModule, [object2]);
value = value.memo(_fun67951);
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/emoji_picker/native/components/EmojiPickerPremiumSearchUpsell.tsx');
exports.EMOJI_PICKER_PREMIUM_UPSELL_HEIGHT = 56;
exports.useEmojiPickerPremiumSearchUpsellViewed = closure;
exports.useEmojiPickerPremiumSearchUpsellClick = closure2;
exports.PremiumSearchUpsell = value;
}
function useEmojiPickerPremiumSearchUpsellViewed({guildId, analyticsLocations, useTier0UpsellContent}) { // fn#67947, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8788:717, offset: 0x01c398db, size: 103 bytes, params: 2, frame: 17
const value2 = env0_3.useRef(false);
var env0_3 = value2;
env0_3.useEffect(_fun67948, [analyticsLocations, guildId, useTier0UpsellContent, value2]);
}
function useEmojiPickerPremiumSearchUpsellClick({analyticsLocations, useTier0UpsellContent}) { // fn#67949, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8788:1095, offset: 0x01c39a03, size: 64 bytes, params: 2, frame: 15
return env0_3.useCallback(_fun67950, [analyticsLocations, useTier0UpsellContent]);
}
function _fun67951(a0) { // fn#67951, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8788:1527, offset: 0x01c39b23, size: 590 bytes, params: 2, frame: 31
var r13;
var formatToPlainString;
var kWBwlJ;
var moduleValue;
const styles = useStyles();
const value2 = useEmojiPickerPremiumSearchUpsellClick(a0);
useEmojiPickerPremiumSearchUpsellViewed(a0);
const Icon = (require(1305) /* metro dependency 1305: native */).Icon;
const iconProps = {style: styles.nitroIcon, source: importDefault(8604) /* metro dependency 8604 */,
disableColor: true};
const Icon2 = (require(1305) /* metro dependency 1305: native */).Icon;
const Sizes = Icon2.Sizes;
const MEDIUM = Sizes.MEDIUM;
iconProps.size = MEDIUM;
const icon = <Icon {...iconProps} />;
const Text = (require(4573) /* metro dependency 4573: Text */).Text;
let useTier0UpsellContent = a0.useTier0UpsellContent;
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
if (useTier0UpsellContent) {
formatToPlainString = intl.formatToPlainString;
kWBwlJ = (require(1244) /* metro dependency 1244: indexNative */).t.kWBwlJ;
moduleValue = require(3802) /* metro dependency 3802: PremiumUtils */;
r13 = Reflect.apply(formatToPlainString, intl, [kWBwlJ,
{planName: moduleValue.getTierDisplayNameByPlanId(SubscriptionPlans.PREMIUM_MONTH_TIER_0)}]);
} else {
r13 = intl.string((require(1244) /* metro dependency 1244: indexNative */).t['5t3lw+']);
}
const view = <View style={styles.premiumSearchUpsellContent}>{icon}<Text lineClamp={2} variant="text-sm/medium" color="interactive-text-active">{r13}</Text></View>;
const PressableOpacity = (require(5278) /* metro dependency 5278: Pressables */).PressableOpacity;
useTier0UpsellContent = a0.useTier0UpsellContent;
const string = intl.string;
const t = (require(1244) /* metro dependency 1244: indexNative */).t;
return (
<View style={styles.container} collapsable={false}>
<PressableOpacity
style={styles.premiumSearchUpsell}
accessibilityRole="button"
onPress={value2}
>
{view}
<Text variant="text-sm/medium" color="text-link">
{useTier0UpsellContent ? Reflect.apply(string, intl, [t['9CM5v9']]) : Reflect.apply(string, intl,
[t.pj0XBN])}
</Text>
</PressableOpacity>
</View>
);
}
function _fun67948() { // fn#67948, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8788:856, offset: 0x01c39942, size: 193 bytes, params: 1, frame: 18
var value2;
var defaultImport;
if (!env0_3.current) {
env0_3.current = true;
value2 = environment.__proto__;
defaultImport = importDefault(683) /* metro dependency 683: AnalyticsUtils */;
defaultImport.track(AnalyticEvents.PREMIUM_UPSELL_VIEWED, {type: PremiumUpsellTypes.EMOJI_PICKER_SEARCH,
location: {page: guildId != null ? AnalyticsPages.GUILD_CHANNEL : AnalyticsPages.DM_CHANNEL,
section: AnalyticsSections.EMOJI_PICKER_POPOUT}, location_stack: analyticsLocations,
sku_id: useTier0UpsellContent ? PremiumSubscriptionSKUs.TIER_0 : PremiumSubscriptionSKUs.TIER_2});
}
}
function _fun67950() { // fn#67950, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8788:1213, offset: 0x01c39a43, size: 224 bytes, params: 1, frame: 18
var defaultImport3;
var pushLazy;
var value4;
var object2;
var PremiumFeatureCardOrder;
const currentUser = UserStore.getCurrentUser();
if (!(currentUser == null || importDefault(dependencyMap[9]).canUseEmojisEverywhere(currentUser))) {
importDefault(dependencyMap[10]).hideActionSheet();
defaultImport3 = importDefault(dependencyMap[11]);
pushLazy = defaultImport3.pushLazy;
value4 = require(dependencyMap[13])(dependencyMap[12], dependencyMap.paths);
object2 = {};
object2.analyticsLocations = analyticsLocations;
PremiumFeatureCardOrder = require(dependencyMap[14]).PremiumFeatureCardOrder;
object2.premiumFeatureCardOrder = useTier0UpsellContent ? PremiumFeatureCardOrder.TIER_0_LEADING : PremiumFeatureCardOrder.TIER_2_LEADING;
Reflect.apply(pushLazy, defaultImport3, [value4, object2]);
}
}
@@ -0,0 +1,372 @@
/* Metro module 8650; source: modules/emoji_picker/native/components/categories/EmojiPickerCategories.tsx; dependencies: [31, 6544, 661, 1346, 33, 4501, 697, 4017, 683, 4081, 4082, 8651, 8667, 5321, 8668, 8671, 8686, 8687, 2] */
function _fun68166(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#68166, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8835:6, offset: 0x01c41d93, size: 461 bytes, params: 8, frame: 24
var object2;
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
let value = importAll(31) /* metro dependency 31 */;
const env0_4 = (require(6544) /* metro dependency 6544: EmojiPickerConstants */).EmojiCategoryTypes;
const constantsModule = require(661) /* metro dependency 661: Constants */;
const env0_5 = constantsModule.AnalyticEvents;
const env0_6 = constantsModule.AnalyticsPages;
const CATEGORY_ICON_SIZE = constantsModule.CATEGORY_ICON_SIZE;
const EXPRESSION_FOOTER_HEIGHT = constantsModule.EXPRESSION_FOOTER_HEIGHT;
const env0_8 = (require(1346) /* metro dependency 1346: ExpressionPickerConstants */).ExpressionPickerViewType;
const value3 = require(33) /* metro dependency 33 */;
const env0_9 = value3.jsx;
const env0_10 = value3.Fragment;
const env0_11 = value3.jsxs;
const createStylesModule = require(4501) /* metro dependency 4501: createStyles */;
const createStyles = createStylesModule.createStyles;
object2 = {};
object2.list = {flex: 1, height: EXPRESSION_FOOTER_HEIGHT};
const BACKGROUND_MOD_MUTED = (importDefault(697) /* metro dependency 697: native */).colors.BACKGROUND_MOD_MUTED;
object2.listPlaceholder = {backgroundColor: BACKGROUND_MOD_MUTED};
object2.item = {height: EXPRESSION_FOOTER_HEIGHT, width: EXPRESSION_FOOTER_HEIGHT, justifyContent: 'center',
alignItems: 'center'};
object2.keyboardItem = {height: CATEGORY_ICON_SIZE, width: CATEGORY_ICON_SIZE};
const env0_12 = Reflect.apply(createStyles, createStylesModule, [object2]);
object2 = {code: 'function EmojiPickerCategoriesTsx1(){const{categoryIndexActive}=this.__closure;return categoryIndexActive.get();}'};
object2 = {code: 'function EmojiPickerCategoriesTsx2(categoryIndex,categoryIndexPrev){const{blockRef,EXPRESSION_FOOTER_HEIGHT,runOnJS,scrollToCategoryIndex}=this.__closure;const ref=blockRef.get();if(categoryIndexPrev==null||categoryIndex===categoryIndexPrev||ref==null){return;}const categoryScrollPos=categoryIndex*EXPRESSION_FOOTER_HEIGHT;if(categoryScrollPos>ref.end||categoryScrollPos<ref.start){runOnJS(scrollToCategoryIndex)(categoryIndex);}}'};
object2 = {code: 'function EmojiPickerCategoriesTsx3(){const{inPortalKeyboard,bottomSheetIndex}=this.__closure;return inPortalKeyboard?bottomSheetIndex.get()===1:bottomSheetIndex.get()===0;}'};
object2 = {code: 'function EmojiPickerCategoriesTsx4(){const{bottomSheetOpen}=this.__closure;return bottomSheetOpen.get();}'};
object2 = {code: 'function EmojiPickerCategoriesTsx5(open){const{runOnJS,handleScrollToCategoryIndex}=this.__closure;if(!open){return;}runOnJS(handleScrollToCategoryIndex)();}'};
value = value.memo(EmojiPickerCategories);
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/emoji_picker/native/components/categories/EmojiPickerCategories.tsx');
exports.default = value;
}
function EmojiPickerCategories({bottomSheetRef, bottomSheetIndex, categories, categoryIndexActive, style, emojiPickerListRef, onBackspace, portalHostName, inPortalKeyboard, isSearching, onClearSearch}) { // fn#68167, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8835:1583, offset: 0x01c41f60, size: 1333 bytes, params: 2, frame: 42
var object2;
var r8;
const env0_3 = categoryIndexActive;
portalHostName = portalHostName === undefined ? 'expression-footer' : portalHostName;
inPortalKeyboard = !(inPortalKeyboard === undefined) && inPortalKeyboard;
isSearching = !(isSearching === undefined) && isSearching;
let env0_14 = undefined;
let env0_15 = undefined;
var value;
const styles = useStyles();
const value2 = (require(4017) /* metro dependency 4017: ReanimatedRexport */).useSharedValue(undefined);
const binding = env0_3;
const env0_10 = binding.useRef(undefined);
const value4 = binding.useRef(null);
const {sections, firstUnicodeCategory, firstUnicodeCategoryIndex} = binding.useMemo(_fun68168, [categories]);
let closure = _fun68169;
const value6 = binding.useCallback(closure, []);
const reanimatedRexportModule = require(4017) /* metro dependency 4017: ReanimatedRexport */;
let useAnimatedReaction = reanimatedRexportModule.useAnimatedReaction;
closure = function() {
return categoryIndexActive.get();
};
closure.__closure = {categoryIndexActive: categoryIndexActive};
closure.__workletHash = 2293356797932;
closure.__initData = undefined;
const closure2 = EmojiPickerCategoriesJ;
object2 = {blockRef: value2};
object2.EXPRESSION_FOOTER_HEIGHT = EXPRESSION_FOOTER_HEIGHT;
object2.runOnJS = reanimatedRexportModule.runOnJS;
object2.scrollToCategoryIndex = value6;
closure2.__closure = object2;
closure2.__workletHash = 7148256102464;
closure2.__initData = env0_14;
Reflect.apply(useAnimatedReaction, reanimatedRexportModule, [closure, closure2]);
const value7 = binding.useCallback(_fun68172, [value2]);
const moduleValue3 = reanimatedRexportModule;
const useDerivedValue = moduleValue3.useDerivedValue;
closure = EmojiPickerCategoriesK;
closure.__closure = {inPortalKeyboard: inPortalKeyboard, bottomSheetIndex: bottomSheetIndex};
closure.__workletHash = 15413192314561;
closure.__initData = env0_15;
const value8 = Reflect.apply(useDerivedValue, moduleValue3, [closure]);
env0_14 = binding.useRef(undefined);
env0_15 = binding.useRef(false);
const value9 = binding.useCallback(_fun68174, [value8, bottomSheetRef, emojiPickerListRef, inPortalKeyboard,
isSearching, onClearSearch]);
const env0_16 = value9;
const moduleValue4 = reanimatedRexportModule;
useAnimatedReaction = moduleValue4.useAnimatedReaction;
closure = EmojiPickerCategoriesZ;
closure.__closure = {bottomSheetOpen: value8};
closure.__workletHash = 13172461706889;
closure.__initData = env0_16;
const closure3 = EmojiPickerCategoriesX;
closure3.__closure = {runOnJS: reanimatedRexportModule.runOnJS, handleScrollToCategoryIndex: value9};
closure3.__workletHash = 13670816929775;
closure3.__initData = undefined;
Reflect.apply(useAnimatedReaction, moduleValue4, [closure, closure3]);
binding.useEffect(_fun68177, [isSearching, categoryIndexActive, emojiPickerListRef]);
const value10 = binding.useCallback(_fun68178, [value9]);
const value11 = binding.useCallback(_fun68179, [value10, value6]);
const value12 = binding.useCallback(_fun68180, [value2]);
const value13 = binding.useCallback(_fun68181, [categories, categoryIndexActive, value10, styles]);
const value14 = (importDefault(8667) /* metro dependency 8667: useExpressionPickerCategoriesPlaceholderConfig */)();
const value15 = binding.useMemo(_fun68182, []);
const ExpressionPickerCategories = importDefault(8668) /* metro dependency 8668: ExpressionPickerCategories */;
const jsxRuntimeEnv0_10Binding = jsxRuntimeEnv0_10;
const GestureDetector = (require(5321) /* metro dependency 5321 */).GestureDetector;
const FastestListAndroid = importDefault(8671) /* metro dependency 8671: FastestListAndroid */;
const EMOJI = ExpressionPickerViewType.EMOJI;
const gestureDetector = <GestureDetector gesture={value15}><FastestListAndroid estimatedListSize="windowSize" horizontal itemSize={EXPRESSION_FOOTER_HEIGHT} keyboardShouldPersistTaps="always" listId={EMOJI} onLayout={value12} onScroll={value7} placeholderConfig={value14} ref={value4} renderItem={value13} scrollReporting="callbacks" sections={sections} showsHorizontalScrollIndicator={false} style={styles.list} /></GestureDetector>;
const r10 = firstUnicodeCategory != null ? ((Component) => <Component blockRef={value2} category={firstUnicodeCategory} categoryIndex={firstUnicodeCategoryIndex} onPress={value11} style={styles.item} />)(importDefault(8686) /* metro dependency 8686: EmojiPickerCategoriesUnicodeShortcutItem */) : null;
if (onBackspace != null) {
value = importDefault(8687) /* metro dependency 8687: EmojiPickerCategoriesBackspaceItem */;
value = ((Component) => <Component style={styles.item} iconStyle={styles.keyboardItem} onBackspace={onBackspace} />)(value);
r8 = value;
} else {
r8 = null;
}
return (
<ExpressionPickerCategories portalHostName={portalHostName} style={style}>
<>
{gestureDetector}
{r10}
{r8}
</>
</ExpressionPickerCategories>
);
}
function _fun68168() { // fn#68168, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8835:1919, offset: 0x01c42495, size: 132 bytes, params: 1, frame: 7
var r5;
var property;
var type;
var UNICODE;
var value4;
let length = categories.length;
const value2 = 0;
if (value2 < length) {
r5 = value2;
loopExit1: while (true) {
property = categories[r5];
type = property.type;
UNICODE = EmojiCategoryTypes.UNICODE;
if (type === UNICODE) {
return {sections: [categories.length], firstUnicodeCategory: property, firstUnicodeCategoryIndex: r5};
}
value4 = typeof r5 === 'bigint' ? r5 + 1n : +r5 + 1;
length = categories.length;
if (value4 < length) {
r5 = value4;
continue;
}
break loopExit1;
}
}
return {sections: [categories.length]};
}
function _fun68169(a0) { // fn#68169, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8835:2184, offset: 0x01c42519, size: 65 bytes, params: 2, frame: 12
let current = env0_10.current;
if (current != null) {
current = env0_11.current;
if (current != null) {
current.scrollToLocation({'section': 0, 'item': null, 'animated': false, item: a0});
}
}
}
function EmojiPickerCategoriesJ(a0, a1) { // fn#68171, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8835:2422, owner: EmojiPickerCategories.j, offset: 0x01c4255a, size: 116 bytes, params: 3, frame: 15
var value3;
var value4;
var moduleValue;
const value2 = env0_9.get();
if (a1 != null) {
if (a0 !== a1) {
if (value2 != null) {
value3 = environment.__proto__;
value4 = a0 * EXPRESSION_FOOTER_HEIGHT;
if (value4 > value2.end || value4 < value2.start) {
moduleValue = require(4017) /* metro dependency 4017: ReanimatedRexport */;
moduleValue.runOnJS(env0_12)(a0);
}
}
}
}
}
function _fun68172(a0) { // fn#68172, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8835:2709, offset: 0x01c425ce, size: 96 bytes, params: 2, frame: 14
var binding;
var set;
var object2;
var nativeEvent;
var contentOffset;
var x;
if (env0_10.current != null) {
binding = env0_9;
set = binding.set;
object2 = {};
nativeEvent = a0.nativeEvent;
contentOffset = nativeEvent.contentOffset;
x = contentOffset.x;
object2.start = x;
nativeEvent = a0.nativeEvent;
contentOffset = nativeEvent.contentOffset;
x = contentOffset.x;
object2.end = x + env0_10.current;
Reflect.apply(set, binding, [object2]);
}
}
function EmojiPickerCategoriesK() { // fn#68173, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8835:2856, owner: EmojiPickerCategories.K, offset: 0x01c4262e, size: 40 bytes, params: 1, frame: 10
const inPortalKeyboardBinding = inPortalKeyboard;
const value = bottomSheetIndex.get();
return inPortalKeyboardBinding ? value === 1 : value === 0;
}
function _fun68174() { // fn#68174, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8835:3037, offset: 0x01c42656, size: 234 bytes, params: 1, frame: 16
var r2;
var r5;
var current;
var value3;
const value = a0;
const value2 = undefined;
const r3 = value !== value2 ? value : env0_14.current;
if (r3 != null) {
var binding = env0_13;
var get = binding.get;
if (Reflect.apply(get, binding, [])) {
if (isSearching) {
if (onClearSearch != null) {
env0_14.current = r3;
env0_15.current = true;
onClearSearch();
return value2;
}
current = emojiPickerListRef.current;
if (current != null) {
env0_14.current = value2;
env0_15.current = false;
current = emojiPickerListRef.current;
current.scrollToHeaderIndex({index: r3});
}
return value2;
}
current = emojiPickerListRef.current;
if (current != null) {
env0_14.current = value2;
env0_15.current = false;
current = emojiPickerListRef.current;
current.scrollToHeaderIndex({index: r3});
}
return value2;
}
if (inPortalKeyboard) {
value3 = bottomSheetRef == null;
if (value3) {
r2 = value3;
r5 = value2;
} else {
current = bottomSheetRef.current;
r2 = current == null;
r5 = current;
}
if (!r2) {
r5.expandActionSheet();
}
env0_14.current = r3;
env0_15.current = false;
return value2;
}
if (isSearching) {
if (onClearSearch != null) {
env0_14.current = r3;
env0_15.current = true;
onClearSearch();
return value2;
}
current = emojiPickerListRef.current;
if (current != null) {
env0_14.current = value2;
env0_15.current = false;
current = emojiPickerListRef.current;
current.scrollToHeaderIndex({index: r3});
}
return value2;
}
current = emojiPickerListRef.current;
if (current != null) {
env0_14.current = value2;
env0_15.current = false;
current = emojiPickerListRef.current;
current.scrollToHeaderIndex({index: r3});
}
}
return value2;
}
function EmojiPickerCategoriesX(a0) { // fn#68176, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8835:3466, owner: EmojiPickerCategories.X, offset: 0x01c42752, size: 56 bytes, params: 2, frame: 12
var value;
if (a0) {
value = environment.__proto__;
value = require(4017) /* metro dependency 4017: ReanimatedRexport */;
value.runOnJS(env0_16)();
}
}
function _fun68177() { // fn#68177, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8835:3632, offset: 0x01c4278a, size: 118 bytes, params: 1, frame: 13
var current;
var current2;
if (!isSearching) {
current = env0_15.current;
if (current) {
current = env0_14.current;
if (current != null) {
current = env0_14.current;
env0_14.current = undefined;
env0_15.current = false;
categoryIndexActive.set(current);
current2 = emojiPickerListRef.current;
if (current2 != null) {
current2.scrollToHeaderIndex({index: current});
}
}
}
}
}
function _fun68178(a0, a1) { // fn#68178, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8835:3820, offset: 0x01c42800, size: 198 bytes, params: 3, frame: 17
var guild;
var defaultImport;
const type = a1.type;
const GUILD = EmojiCategoryTypes.GUILD;
if (type === GUILD) {
guild = a1.guild;
if (guild != null) {
defaultImport = importDefault(683) /* metro dependency 683: AnalyticsUtils */;
defaultImport.track(AnalyticEvents.EXPRESSION_PICKER_CATEGORY_SELECTED,
{location: {page: AnalyticsPages.EXPRESSION_PICKER}, tab: ExpressionPickerViewType.EMOJI,
guild_id: guild.id});
}
}
env0_16(a0);
const hapticUtilsNativeModule = require(4081) /* metro dependency 4081: HapticUtilsNative */;
const triggerHapticFeedback = hapticUtilsNativeModule.triggerHapticFeedback;
const IMPACT_LIGHT = (importDefault(4082) /* metro dependency 4082: HapticFeedbackTypes */).IMPACT_LIGHT;
Reflect.apply(triggerHapticFeedback, hapticUtilsNativeModule, [IMPACT_LIGHT]);
}
function _fun68179(a0, a1) { // fn#68179, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8835:4073, offset: 0x01c428c6, size: 32 bytes, params: 3, frame: 14
env0_17(a0, a1);
env0_12(a0);
}
function _fun68180({nativeEvent}) { // fn#68180, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8835:4119, offset: 0x01c428e6, size: 141 bytes, params: 2, frame: 19
env0_10.current = nativeEvent.layout.width;
const value2 = env0_9.get();
env0_9.set({start: value2?.start ?? 0, end: (value2?.start ?? 0) + env0_10.current});
}
function _fun68181(a0, a1) { // fn#68181, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8835:4312, offset: 0x01c42973, size: 122 bytes, params: 3, frame: 17
let value = environment.__proto__;
value = importDefault(8651) /* metro dependency 8651: EmojiPickerCategoriesItem */;
const categoriesBinding = categories;
return ((Component) => <Component category={categoriesBinding[a1]} categoryIndexActive={categoryIndexActive} index={a1} handlePressCategory={env0_17} loadingStyle={styles.listPlaceholder} locked={categoriesBinding[a1].isNitroLocked} style={styles.item} />)(value);
}
function _fun68182() { // fn#68182, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8835:4511, offset: 0x01c429ed, size: 56 bytes, params: 1, frame: 11
const value = environment.__proto__;
const Gesture = (require(5321) /* metro dependency 5321 */).Gesture;
return Gesture.Native().disallowInterruption(true);
}
@@ -0,0 +1,71 @@
/* Metro module 8687; source: modules/emoji_picker/native/components/categories/EmojiPickerCategoriesBackspaceItem.tsx; dependencies: [31, 27, 661, 33, 4041, 1244, 8688, 2] */
function _fun68287(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#68287, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8872:6, offset: 0x01c47742, size: 179 bytes, params: 8, frame: 18
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_2 = importAll(31) /* metro dependency 31 */;
const env0_3 = (require(27) /* metro dependency 27 */).Pressable;
const env0_4 = (require(661) /* metro dependency 661: Constants */).NODE_MARGIN;
const env0_5 = (require(33) /* metro dependency 33 */).jsx;
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/emoji_picker/native/components/categories/EmojiPickerCategoriesBackspaceItem.tsx');
exports.default = EmojiPickerCategoriesBackspaceItem;
}
function EmojiPickerCategoriesBackspaceItem({style, iconStyle, onBackspace}) { // fn#68288, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8872:294, offset: 0x01c477f5, size: 422 bytes, params: 2, frame: 23
let env0_2 = undefined;
const binding = env0_2;
let useRef = binding.useRef;
const Interval = (require(4041) /* metro dependency 4041: Timers */).Interval;
const value2 = Object.create(Interval.prototype, {constructor: {value: Interval}});
const interval = new Interval();
const env0_1 = Reflect.apply(useRef, binding, [interval instanceof Object ? interval : value2]);
useRef = binding.useRef;
const DelayedCall = (require(4041) /* metro dependency 4041: Timers */).DelayedCall;
const value4 = Object.create(DelayedCall.prototype, {constructor: {value: DelayedCall}});
const delayedCall = new DelayedCall(500, _fun68289);
env0_2 = Reflect.apply(useRef, binding, [delayedCall instanceof Object ? delayedCall : value4]);
const value6 = binding.useCallback(_fun68290, [onBackspace]);
const value7 = binding.useCallback(_fun68291, [onBackspace]);
binding.useEffect(_fun68292);
const pressableProps = {hitSlop: {top: NODE_MARGIN, bottom: NODE_MARGIN, right: NODE_MARGIN, left: NODE_MARGIN},
style: style, accessibilityRole: 'keyboardkey'};
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
pressableProps.accessibilityLabel = intl.string((require(1244) /* metro dependency 1244: indexNative */).t['4SnBzF']);
pressableProps.delayLongPress = 500;
pressableProps.onPressOut = value7;
pressableProps.onLongPress = value6;
const BackspaceIcon = (require(8688) /* metro dependency 8688: BackspaceIcon */).BackspaceIcon;
return (
<Pressable {...pressableProps}>
<BackspaceIcon style={[iconStyle, {opacity: 0.5}]} />
</Pressable>
);
}
function _fun68289() { // fn#68289, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8872:454, offset: 0x01c4799b, size: 53 bytes, params: 1, frame: 13
let current = env0_2.current;
current.cancel();
current = env0_1.current;
current.start(50, onBackspace);
}
function _fun68290() { // fn#68290, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8872:527, offset: 0x01c479d0, size: 34 bytes, params: 1, frame: 10
onBackspace();
env0_2.current.delay();
}
function _fun68291() { // fn#68291, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8872:578, offset: 0x01c479f2, size: 53 bytes, params: 1, frame: 10
env0_2.current.cancel();
env0_1.current.stop();
onBackspace();
}
function _fun68292() { // fn#68292, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8872:650, offset: 0x01c47a27, size: 40 bytes, params: 1, frame: 3
let current = env0_1.current;
current = env0_2.current;
return function() {
current.stop();
current.cancel();
};
}
@@ -0,0 +1,128 @@
/* Metro module 8651; source: modules/emoji_picker/native/components/categories/EmojiPickerCategoriesItem.tsx; dependencies: [57, 31, 27, 6544, 661, 33, 4501, 697, 4017, 4504, 4507, 5278, 6819, 8652, 6705, 2] */
function _fun68183(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#68183, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8836:6, offset: 0x01c42a25, size: 563 bytes, params: 8, frame: 25
var object2;
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_3 = importDefault(57) /* metro dependency 57 */;
let value = importAll(31) /* metro dependency 31 */;
const env0_5 = (require(27) /* metro dependency 27 */).View;
const env0_6 = (require(6544) /* metro dependency 6544: EmojiPickerConstants */).EmojiCategoryTypes;
const constantsModule = require(661) /* metro dependency 661: Constants */;
const env0_7 = constantsModule.CATEGORY_ICON_RIPPLE_CONFIG;
const CATEGORY_ICON_SIZE = constantsModule.CATEGORY_ICON_SIZE;
const NODE_SIZE = constantsModule.NODE_SIZE;
const value3 = require(33) /* metro dependency 33 */;
const env0_8 = value3.jsx;
const env0_9 = value3.jsxs;
const createStylesModule = require(4501) /* metro dependency 4501: createStyles */;
const createStyles = createStylesModule.createStyles;
object2 = {};
object2.itemInner = {'justifyContent': 'center', 'alignItems': 'center', height: NODE_SIZE, width: NODE_SIZE,
borderRadius: NODE_SIZE / 2};
const ICON_TRANSPARENT = (importDefault(697) /* metro dependency 697: native */).colors.ICON_TRANSPARENT;
object2.fadedItem = {backgroundColor: ICON_TRANSPARENT};
const INTERACTIVE_BACKGROUND_ACTIVE = (importDefault(697) /* metro dependency 697: native */).colors.INTERACTIVE_BACKGROUND_ACTIVE;
object2.activeItem = {backgroundColor: INTERACTIVE_BACKGROUND_ACTIVE};
object2.guildItem = {height: CATEGORY_ICON_SIZE, width: CATEGORY_ICON_SIZE, borderRadius: CATEGORY_ICON_SIZE / 2};
const object3 = {'width': 12, 'height': 12, 'position': 'absolute', 'bottom': 0, 'end': 0, 'backgroundColor': null,
'borderRadius': null, 'alignItems': 'center', 'justifyContent': 'center'};
const BACKGROUND_BASE_LOW = (importDefault(697) /* metro dependency 697: native */).colors.BACKGROUND_BASE_LOW;
object3.backgroundColor = BACKGROUND_BASE_LOW;
object3.borderRadius = (importDefault(697) /* metro dependency 697: native */).radii.round;
object2.lockContainer = object3;
const TEXT_DEFAULT = (importDefault(697) /* metro dependency 697: native */).colors.TEXT_DEFAULT;
object2.lock = {'width': 7.5, 'height': 7.5, tintColor: TEXT_DEFAULT};
const env0_10 = Reflect.apply(createStyles, createStylesModule, [object2]);
object2 = {code: 'function EmojiPickerCategoriesItemTsx1(){const{withTiming,categoryIndexActive,index,timingStandard,styleColorActive,styleColorTransparent}=this.__closure;return{opacity:withTiming(categoryIndexActive.get()===index?1:0.5,timingStandard),backgroundColor:categoryIndexActive.get()===index?styleColorActive:styleColorTransparent};}'};
object2 = {code: 'function EmojiPickerCategoriesItemTsx2(){const{categoryIndexActive,index}=this.__closure;return categoryIndexActive.get()===index;}'};
object2 = {code: 'function EmojiPickerCategoriesItemTsx3(active,prev){const{runOnJS,setIsSelected}=this.__closure;if(active!==prev){runOnJS(setIsSelected)(active);}}'};
value = value.memo(EmojiPickerCategoriesItem);
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/emoji_picker/native/components/categories/EmojiPickerCategoriesItem.tsx');
exports.default = value;
}
function EmojiPickerCategoriesItem({category, categoryIndexActive, handlePressCategory, index, loadingStyle, locked, style}) { // fn#68184, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8836:1481, offset: 0x01c42c58, size: 873 bytes, params: 2, frame: 32
const env0_3 = index;
const styles = useStyles();
const backgroundColor = styles.activeItem.backgroundColor;
const env0_4 = backgroundColor;
const backgroundColor2 = styles.fadedItem.backgroundColor;
const reanimatedRexportModule = require(4017) /* metro dependency 4017: ReanimatedRexport */;
const useAnimatedStyle = reanimatedRexportModule.useAnimatedStyle;
let closure = EmojiPickerCategoriesItemT;
const object3 = {};
object3.withTiming = (require(4504) /* metro dependency 4504: timing */).withTiming;
object3.categoryIndexActive = categoryIndexActive;
object3.index = index;
object3.timingStandard = (require(4507) /* metro dependency 4507: timingPresets */).timingStandard;
object3.styleColorActive = backgroundColor;
object3.styleColorTransparent = backgroundColor2;
closure.__closure = object3;
closure.__workletHash = 3335518235623;
closure.__initData = env0_11;
const value2 = Reflect.apply(useAnimatedStyle, reanimatedRexportModule, [closure]);
const binding = env0_4;
const [property, property2] = env0_3(binding.useState(function() {
return categoryIndexActive.get() === index;
}), 2);
const moduleValue2 = reanimatedRexportModule;
const useAnimatedReaction = moduleValue2.useAnimatedReaction;
closure = function() {
return categoryIndexActive.get() === index;
};
closure.__closure = {categoryIndexActive: categoryIndexActive, index: index};
closure.__workletHash = 12996370114251;
closure.__initData = env0_12;
const closure2 = EmojiPickerCategoriesItemE;
closure2.__closure = {runOnJS: reanimatedRexportModule.runOnJS, setIsSelected: property2};
closure2.__workletHash = 6056273557261;
closure2.__initData = env0_13;
Reflect.apply(useAnimatedReaction, moduleValue2, [closure, closure2]);
const value5 = binding.useCallback(function() {
return handlePressCategory(index, category);
}, [handlePressCategory, index, category]);
const PressableOpacity = (require(5278) /* metro dependency 5278: Pressables */).PressableOpacity;
let type = category.type;
let GUILD = EmojiCategoryTypes.GUILD;
const name = type === GUILD ? category.guild.name : category.name;
const object4 = {selected: property};
const View2 = (importDefault(4017) /* metro dependency 4017: ReanimatedRexport */).View;
type = category.type;
GUILD = EmojiCategoryTypes.GUILD;
return (
<PressableOpacity
androidRippleConfig={CATEGORY_ICON_RIPPLE_CONFIG}
style={style}
onPress={value5}
accessibilityRole="tab"
accessibilityLabel={name}
accessibilityState={object4}
>
<View2 style={[styles.itemInner, value2]}>
{type === GUILD ? ((Component) => <Component guild={category.guild} loadingStyle={loadingStyle} size={(require(6819) /* metro dependency 6819: GuildIcon */).GuildIconSizes.XSMALL} style={styles.guildItem} />)(importDefault(6819) /* metro dependency 6819: GuildIcon */) : ((Component) => <Component id={category.id} />)(importDefault(8652) /* metro dependency 8652: EmojiPickerCategoryIcon */)}
{locked && <View style={styles.lockContainer}>{((LockIcon) => <LockIcon style={styles.lock} />)((require(6705) /* metro dependency 6705: LockIcon */).LockIcon)}</View>}
</View2>
</PressableOpacity>
);
}
function EmojiPickerCategoriesItemT() { // fn#68185, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8836:1722, owner: EmojiPickerCategoriesItem.T, offset: 0x01c42fc1, size: 142 bytes, params: 1, frame: 18
const object2 = {};
const value = environment.__proto__;
const timingModule = require(4504) /* metro dependency 4504: timing */;
object2.opacity = timingModule.withTiming(categoryIndexActive.get() !== index ? 0.5 : 1,
(require(4507) /* metro dependency 4507: timingPresets */).timingStandard);
object2.backgroundColor = categoryIndexActive.get() === index ? backgroundColor : backgroundColor;
return object2;
}
function EmojiPickerCategoriesItemE(a0, a1) { // fn#68188, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8836:2233, owner: EmojiPickerCategoriesItem.E, offset: 0x01c43069, size: 61 bytes, params: 3, frame: 13
var value;
if (a0 !== a1) {
value = environment.__proto__;
value = require(4017) /* metro dependency 4017: ReanimatedRexport */;
value.runOnJS(env0_6)(a0);
}
}
@@ -0,0 +1,80 @@
/* Metro module 8686; source: modules/emoji_picker/native/components/categories/EmojiPickerCategoriesUnicodeShortcutItem.tsx; dependencies: [57, 31, 27, 661, 33, 4501, 4017, 7739, 5278, 1244, 8652, 2] */
function _fun68282(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#68282, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8871:6, offset: 0x01c47340, size: 319 bytes, params: 8, frame: 22
const env0_0 = require;
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 */;
const env0_5 = (require(27) /* metro dependency 27 */).View;
const constantsModule = require(661) /* metro dependency 661: Constants */;
const env0_6 = constantsModule.EXPRESSION_FOOTER_HEIGHT;
const NODE_SIZE = constantsModule.NODE_SIZE;
const env0_7 = (require(33) /* metro dependency 33 */).jsx;
const env0_8 = (require(4501) /* metro dependency 4501: createStyles */).createStyles({itemInner: {'justifyContent': 'center',
'alignItems': 'center', height: NODE_SIZE, width: NODE_SIZE,
borderRadius: NODE_SIZE / 2}, fadedItemOpacity: {opacity: 0.5}});
object = {code: 'function EmojiPickerCategoriesUnicodeShortcutItemTsx1(){const{blockRef}=this.__closure;return blockRef.get();}'};
object = {code: 'function EmojiPickerCategoriesUnicodeShortcutItemTsx2(blockRef,previous){const{cheapWorkletShallowEqual,categoryIndex,EXPRESSION_FOOTER_HEIGHT,unicodeShortcutVisible,runOnJS,setUnicodeShortcutVisible}=this.__closure;if(blockRef==null||cheapWorkletShallowEqual(blockRef,previous!==null&&previous!==void 0?previous:undefined)){return;}const categoryScrollPos=categoryIndex*EXPRESSION_FOOTER_HEIGHT;const categoryUnicodeShortcutVisible=categoryScrollPos>blockRef.end-(unicodeShortcutVisible?0:EXPRESSION_FOOTER_HEIGHT);runOnJS(setUnicodeShortcutVisible)(categoryUnicodeShortcutVisible);}'};
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/emoji_picker/native/components/categories/EmojiPickerCategoriesUnicodeShortcutItem.tsx');
exports.default = EmojiPickerCategoriesUnicodeShortcutItem;
}
function EmojiPickerCategoriesUnicodeShortcutItem({blockRef, category, categoryIndex, onPress, style}) { // fn#68283, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8871:1201, offset: 0x01c4747f, size: 531 bytes, params: 2, frame: 28
var r0;
var PressableOpacity;
var intl;
var object2;
const env0_3 = onPress;
var value;
const binding = env0_4;
const [property, property2] = env0_3(binding.useState(false), 2);
const reanimatedRexportModule = require(4017) /* metro dependency 4017: ReanimatedRexport */;
const useAnimatedReaction = reanimatedRexportModule.useAnimatedReaction;
const closure = function() {
return blockRef.get();
};
let object3 = {blockRef: blockRef};
closure.__closure = object3;
closure.__workletHash = 805688584630;
closure.__initData = env0_9;
const closure2 = EmojiPickerCategoriesUnicodeShortcutItemB;
closure2.__closure = {cheapWorkletShallowEqual: (require(7739) /* metro dependency 7739: cheapWorkletShallowEqual */).cheapWorkletShallowEqual,
categoryIndex: categoryIndex, EXPRESSION_FOOTER_HEIGHT: EXPRESSION_FOOTER_HEIGHT,
unicodeShortcutVisible: property, runOnJS: reanimatedRexportModule.runOnJS,
setUnicodeShortcutVisible: property2};
closure2.__workletHash = 4994136030029;
closure2.__initData = env0_10;
Reflect.apply(useAnimatedReaction, reanimatedRexportModule, [closure, closure2]);
const styles = useStyles();
const useCallback = binding.useCallback;
if (property) {
PressableOpacity = (require(5278) /* metro dependency 5278: Pressables */).PressableOpacity;
object3 = {style: style, onPress: Reflect.apply(useCallback, binding, [function() {
onPress(categoryIndex, category);
}, [categoryIndex, category, onPress]]), accessibilityRole: 'button'};
intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
object3.accessibilityLabel = intl.string((require(1244) /* metro dependency 1244: indexNative */).t.gg3lOG);
var viewProps = {style: [styles.itemInner, styles.fadedItemOpacity]};
value = importDefault(8652) /* metro dependency 8652: EmojiPickerCategoryIcon */;
value = <PressableOpacity {...object3}><View {...viewProps}>{((Component) => <Component id={category.id} />)(value)}</View></PressableOpacity>;
r0 = value;
} else {
r0 = null;
}
return r0;
}
function EmojiPickerCategoriesUnicodeShortcutItemB(a0, a1) { // fn#68285, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8871:1477, owner: EmojiPickerCategoriesUnicodeShortcutItem.b, offset: 0x01c47692, size: 151 bytes, params: 3, frame: 17
var value2;
var value3;
var moduleValue;
if (a0 != null) {
value2 = environment.__proto__;
value3 = undefined;
moduleValue = require(7739) /* metro dependency 7739: cheapWorkletShallowEqual */;
if (!moduleValue.cheapWorkletShallowEqual(a0, a1 ?? value3)) {
(require(4017) /* metro dependency 4017: ReanimatedRexport */).runOnJS(env0_5)(categoryIndex * EXPRESSION_FOOTER_HEIGHT > a0.end - (env0_4 ? 0 : EXPRESSION_FOOTER_HEIGHT));
}
}
}
@@ -0,0 +1,77 @@
/* Metro module 8652; source: modules/emoji_picker/native/components/categories/EmojiPickerCategoryIcon.tsx; dependencies: [31, 6544, 33, 8653, 8633, 4076, 7950, 8654, 8656, 8658, 8659, 8661, 8663, 8665, 7954, 2] */
function _fun68190(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#68190, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8837:6, offset: 0x01c430bf, size: 163 bytes, params: 8, frame: 18
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
let value = importAll(31) /* metro dependency 31 */;
const env0_2 = (require(6544) /* metro dependency 6544: EmojiPickerConstants */).EmojiCategories;
const env0_3 = (require(33) /* metro dependency 33 */).jsx;
value = value.memo(EmojiPickerCategoryIcon);
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/emoji_picker/native/components/categories/EmojiPickerCategoryIcon.tsx');
exports.default = value;
}
function EmojiPickerCategoryIcon({id}) { // fn#68191, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8837:160, offset: 0x01c43162, size: 723 bytes, params: 2, frame: 14
const TOP_GUILD_EMOJI = EmojiCategories.TOP_GUILD_EMOJI;
if (TOP_GUILD_EMOJI === id) {
const TrophyIcon = (require(8653) /* metro dependency 8653: TrophyIcon */).TrophyIcon;
return <TrophyIcon />;
}
const FAVORITES = EmojiCategories.FAVORITES;
if (FAVORITES === id) {
const StarIcon = (require(8633) /* metro dependency 8633: StarIcon */).StarIcon;
return <StarIcon />;
}
const RECENT = EmojiCategories.RECENT;
if (RECENT === id) {
const ClockIcon = (require(4076) /* metro dependency 4076: ClockIcon */).ClockIcon;
return <ClockIcon />;
}
const PEOPLE = EmojiCategories.PEOPLE;
if (PEOPLE === id) {
const ReactionIcon = (require(7950) /* metro dependency 7950: ReactionIcon */).ReactionIcon;
return <ReactionIcon />;
}
const NATURE = EmojiCategories.NATURE;
if (NATURE === id) {
const NatureIcon = (require(8654) /* metro dependency 8654: NatureIcon */).NatureIcon;
return <NatureIcon />;
}
const FOOD = EmojiCategories.FOOD;
if (FOOD === id) {
const FoodIcon = (require(8656) /* metro dependency 8656: FoodIcon */).FoodIcon;
return <FoodIcon />;
}
const ACTIVITY = EmojiCategories.ACTIVITY;
if (ACTIVITY === id) {
const GameControllerIcon = (require(8658) /* metro dependency 8658: GameControllerIcon */).GameControllerIcon;
return <GameControllerIcon />;
}
const TRAVEL = EmojiCategories.TRAVEL;
if (TRAVEL === id) {
const BicycleIcon = (require(8659) /* metro dependency 8659: BicycleIcon */).BicycleIcon;
return <BicycleIcon />;
}
const OBJECTS = EmojiCategories.OBJECTS;
if (OBJECTS === id) {
const ObjectIcon = (require(8661) /* metro dependency 8661: ObjectIcon */).ObjectIcon;
return <ObjectIcon />;
}
const SYMBOLS = EmojiCategories.SYMBOLS;
if (SYMBOLS === id) {
const HeartIcon = (require(8663) /* metro dependency 8663: HeartIcon */).HeartIcon;
return <HeartIcon />;
}
const FLAGS = EmojiCategories.FLAGS;
if (FLAGS === id) {
const FlagIcon = (require(8665) /* metro dependency 8665: FlagIcon */).FlagIcon;
return <FlagIcon />;
}
const CUSTOM = EmojiCategories.CUSTOM;
if (CUSTOM !== id) {
EmojiCategories.PREMIUM_UPSELL;
}
const NitroWheelIcon = (require(7954) /* metro dependency 7954: NitroWheelIcon */).NitroWheelIcon;
return <NitroWheelIcon />;
}
@@ -0,0 +1,21 @@
/* Metro module 8594; source: modules/emoji_picker/native/components/data/getEmojiPickerDataRowItemNativeSection.tsx; dependencies: [8593, 2] */
function _fun67915(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#67915, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8779:6, offset: 0x01c38024, size: 96 bytes, params: 8, frame: 18
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/emoji_picker/native/components/data/getEmojiPickerDataRowItemNativeSection.tsx');
exports.default = getEmojiPickerDataRowItemNativeSection;
}
function getEmojiPickerDataRowItemNativeSection({label, guildId, emojiCount, emojisDisabled, emojisHidden, isSectionNitroLocked}, a1, a2) { // fn#67916, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8779:222, offset: 0x01c38084, size: 180 bytes, params: 4, frame: 19
isSectionNitroLocked = !(isSectionNitroLocked === undefined) && isSectionNitroLocked;
const r3 = isSectionNitroLocked ? [] : global.Array.from(emojisDisabled);
const Array = global.Array;
const value = Array.from(emojisHidden);
const EmojiPickerItemType = (require(8593) /* metro dependency 8593: useEmojiPickerData */).EmojiPickerItemType;
const NATIVE_SECTION = EmojiPickerItemType.NATIVE_SECTION;
return {type: NATIVE_SECTION, title: label, guildId: guildId, emojiCount: emojiCount, emojisDisabled: r3,
emojisHidden: value, isSectionNitroLocked: isSectionNitroLocked, hasPremiumInlineRoadblockHeader: a1,
hasPremiumInlineRoadblockFooter: a2};
}
@@ -0,0 +1,41 @@
/* Metro module 8598; source: modules/emoji_picker/native/components/data/getEmojiPickerDataRowItemSlimEmoji.tsx; dependencies: [8593, 3800, 2] */
function _fun67924(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#67924, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8783:6, offset: 0x01c3877b, size: 96 bytes, params: 8, frame: 18
let env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/emoji_picker/native/components/data/getEmojiPickerDataRowItemSlimEmoji.tsx');
exports.default = function(a0) {
var env0_0 = a0;
var object = {};
object.type = require(dependencyMap[0]).EmojiPickerItemType.EMOJI_ROW_SLIM;
object.emojis = a0.emojis.map(_fun67926);
object.isSectionNitroLocked = a0.isSectionNitroLocked === true;
return object;
};
}
function getEmojiPickerDataRowItemSlimEmoji(a0) { // fn#67925, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8783:218, offset: 0x01c387db, size: 98 bytes, params: 2, frame: 14
const env0_0 = a0;
const object2 = {};
const EmojiPickerItemType = (require(8593) /* metro dependency 8593: useEmojiPickerData */).EmojiPickerItemType;
const EMOJI_ROW_SLIM = EmojiPickerItemType.EMOJI_ROW_SLIM;
object2.type = EMOJI_ROW_SLIM;
object2.emojis = a0.emojis.map(_fun67926);
object2.isSectionNitroLocked = a0.isSectionNitroLocked === true;
return object2;
}
function _fun67926(a0) { // fn#67926, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8783:341, offset: 0x01c3883d, size: 247 bytes, params: 2, frame: 13
const type = a0.type;
let value = environment.__proto__;
const EmojiTypes = (require(3800) /* metro dependency 3800: EmojiTypes */).EmojiTypes;
const UNICODE = EmojiTypes.UNICODE;
if (type === UNICODE) {
return {name: a0.name, surrogates: a0.surrogates};
}
const emojisDisabled = env0_0.emojisDisabled;
value = emojisDisabled.has(a0.id);
return a0.animated && value ? {id: a0.id, name: a0.name, animated: true, disabled: true} : a0.animated ? {id: a0.id,
name: a0.name, animated: true} : value ? {id: a0.id, name: a0.name, disabled: true} : {id: a0.id, name: a0.name};
}
@@ -0,0 +1,15 @@
/* Metro module 8595; source: modules/emoji_picker/native/components/data/getEmojiPickerDataRowPremiumInlineRoadblock.tsx; dependencies: [8593, 2] */
function _fun67917(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#67917, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8780:6, offset: 0x01c38138, size: 96 bytes, params: 8, frame: 18
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/emoji_picker/native/components/data/getEmojiPickerDataRowPremiumInlineRoadblock.tsx');
exports.default = function(a0) {
var object = {};
object.type = require(dependencyMap[0]).EmojiPickerItemType.PREMIUM_INLINE_ROADBLOCK;
object.position = a0;
object.isSectionNitroLocked = true;
return object;
};
}
@@ -0,0 +1,193 @@
/* Metro module 8593; source: modules/emoji_picker/native/components/data/useEmojiPickerData.tsx; dependencies: [31, 6540, 6544, 8532, 566, 8594, 8595, 8596, 8598, 2] */
function _fun67910(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#67910, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8778:6, offset: 0x01c37a4d, size: 336 bytes, params: 8, frame: 21
var object2;
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_3 = importAll(31) /* metro dependency 31 */;
const emojiStore = importDefault(6540) /* metro dependency 6540: EmojiStore */;
const env0_5 = (require(6540) /* metro dependency 6540: EmojiStore */).LoadState;
const env0_6 = (require(6544) /* metro dependency 6544: EmojiPickerConstants */).EmojiCategoryTypes;
const env0_7 = (require(8532) /* metro dependency 8532: EmojiPickerListConstants */).EmojiPickerRenderingDataType;
object2 = {PLACEHOLDER: 0};
object2[0] = 'PLACEHOLDER';
object2.TITLE = 1;
object2[1] = 'TITLE';
object2.EMOJI_ROW = 2;
object2[2] = 'EMOJI_ROW';
object2.EMOJI_ROW_SLIM = 3;
object2[3] = 'EMOJI_ROW_SLIM';
object2.EMOJI_ROW_NSFW = 4;
object2[4] = 'EMOJI_ROW_NSFW';
object2.FOOTER_UPSELL = 5;
object2[5] = 'FOOTER_UPSELL';
object2.PREMIUM_INLINE_ROADBLOCK = 6;
object2[6] = 'PREMIUM_INLINE_ROADBLOCK';
object2.NATIVE_SECTION = 7;
object2[7] = 'NATIVE_SECTION';
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/emoji_picker/native/components/data/useEmojiPickerData.tsx');
exports.default = useEmojiPickerData;
exports.EmojiPickerItemType = object2;
}
function useEmojiPickerData({emojiSections, rowSize, isNativeEmojiPickerEnabled}) { // fn#67911, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8778:638, offset: 0x01c37b9d, size: 138 bytes, params: 2, frame: 18
const value2 = (require(566) /* metro dependency 566: flux */).useStateFromStores([EmojiStore], _fun67912);
return value2.useMemo(_fun67913, [value2, emojiSections, rowSize, isNativeEmojiPickerEnabled]);
}
function _fun67912() { // fn#67912, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8778:762, offset: 0x01c37c27, size: 42 bytes, params: 1, frame: 2
const value = environment.__proto__;
const loadState = EmojiStore.loadState;
const Loaded = LoadState.Loaded;
return loadState === Loaded || !isNativeEmojiPickerEnabled;
}
function _fun67913() { // fn#67913, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8778:813, offset: 0x01c37c51, size: 113 bytes, params: 1, frame: 13
let object2 = {};
const PLACEHOLDER = env1_8.PLACEHOLDER;
object2.type = PLACEHOLDER;
object2.isSectionNitroLocked = false;
object2 = {data: [object2]};
object2.rowSize = rowSize;
object2.headerIndices = [];
object2.hasGuildData = env0_3;
object2.hasSearchData = false;
object2.hasSearchUpsell = false;
emojiSections.forEach(_fun67914);
return object2;
}
function _fun67914(a0, a1) { // fn#67914, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8778:978, offset: 0x01c37cc2, size: 866 bytes, params: 3, frame: 26
var r6;
var r12;
var binding;
var push;
const PremiumUpsellSectionDividerPosition = (require(8596) /* metro dependency 8596: PremiumUpsellSectionDivider */).PremiumUpsellSectionDividerPosition;
var length;
var Math;
var ceil;
var emojis;
var value12;
var value13;
var value14;
var EMOJI;
var NSFW;
var EMOJI_ROW_NSFW;
var EMOJI_ROW;
var emojisDisabled;
var footer;
var value16;
var value17;
var hasSearchData;
var SEARCH_RESULTS;
var value18;
var PREMIUM_UPSELL;
var value19;
var value20;
const value = a0.isSectionNitroLocked === true;
const value2 = !!value;
const r1 = value ? emojiSections[a1 - 1]?.isSectionNitroLocked !== true : value2;
const r2 = value ? emojiSections[a1 + 1]?.isSectionNitroLocked !== true : value2;
let type = a0.type;
const NATIVE_SECTION = EmojiPickerRenderingDataType.NATIVE_SECTION;
if (type !== NATIVE_SECTION) {
if (r1) {
binding = env0_0;
binding.push((importDefault(8595) /* metro dependency 8595: getEmojiPickerDataRowPremiumInlineRoadblock */)(PremiumUpsellSectionDividerPosition.START));
}
if (a0.label != null) {
binding = env0_0;
binding.push({type: env2_8.TITLE, title: a0.label, isSectionNitroLocked: value});
env0_1.headerIndices.push(binding.length - 1);
}
Math = global.Math;
ceil = Math.ceil;
emojis = a0.emojis;
length = emojis.length;
value12 = environment.__proto__;
value13 = Reflect.apply(ceil, Math, [length / rowSize]);
value14 = 0;
if (value14 < value13) {
r6 = value14;
while (true) {
if (isNativeEmojiPickerEnabled) {
value16 = value14 === r6;
if (!value16) {
r12 = value16;
continue;
}
value17 = a0.type === EmojiPickerRenderingDataType.EMOJI;
r12 = value17;
if (r12) {
binding = env0_1;
hasSearchData = binding.hasSearchData;
if (hasSearchData) {
r12 = hasSearchData;
continue;
}
footer = a0.footer;
SEARCH_RESULTS = EmojiCategoryTypes.SEARCH_RESULTS;
value18 = footer === SEARCH_RESULTS;
r12 = value18;
if (r12) {
continue;
}
footer = a0.footer;
PREMIUM_UPSELL = EmojiCategoryTypes.PREMIUM_UPSELL;
value19 = footer === PREMIUM_UPSELL;
r12 = value19;
binding.hasSearchData = r12;
binding = env0_0;
binding.push((importDefault(8598) /* metro dependency 8598: getEmojiPickerDataRowItemSlimEmoji */)(a0));
break;
}
break;
}
type = a0.type;
EMOJI = EmojiPickerRenderingDataType.EMOJI;
if (EMOJI === type) {
binding = env0_0;
push = binding.push;
EMOJI_ROW = env2_8.EMOJI_ROW;
emojis = a0.emojis;
emojisDisabled = a0.emojisDisabled;
footer = a0.footer;
Reflect.apply(push, binding, [{type: EMOJI_ROW, row: r6, emojis: emojis,
emojisDisabled: emojisDisabled,
footer: footer, isSectionNitroLocked: value}]);
break;
}
NSFW = EmojiPickerRenderingDataType.NSFW;
if (NSFW !== type) {
break;
}
binding = env0_0;
push = binding.push;
EMOJI_ROW_NSFW = env2_8.EMOJI_ROW_NSFW;
Reflect.apply(push, binding, [{type: EMOJI_ROW_NSFW, isSectionNitroLocked: value}]);
break;
value20 = typeof r6 === 'bigint' ? r6 + 1n : +r6 + 1;
if (value20 < value13) {
r6 = value20;
continue;
}
break;
}
}
footer = a0.footer;
PREMIUM_UPSELL = EmojiCategoryTypes.PREMIUM_UPSELL;
if (footer === PREMIUM_UPSELL) {
env0_1.hasSearchUpsell = true;
env0_0.push({type: env2_8.FOOTER_UPSELL, id: EmojiCategoryTypes.PREMIUM_UPSELL,
isSectionNitroLocked: value});
}
if (r2) {
binding = env0_0;
binding.push((importDefault(8595) /* metro dependency 8595: getEmojiPickerDataRowPremiumInlineRoadblock */)(PremiumUpsellSectionDividerPosition.END));
}
} else {
env0_0.push((importDefault(8594) /* metro dependency 8594: getEmojiPickerDataRowItemNativeSection */)(a0, r1,
r2));
}
}
@@ -0,0 +1,42 @@
/* Metro module 8622; source: modules/emoji_picker/native/components/openEmojiActionSheet.tsx; dependencies: [1881, 1423, 1848, 4080, 8623, 1962, 2] */
function _fun68053(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#68053, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8807:6, offset: 0x01c3ce1f, size: 124 bytes, params: 8, frame: 18
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_3 = (require(1881) /* metro dependency 1881: EmojiConstants */).EMOJI_URL_BASE_SIZE;
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/emoji_picker/native/components/openEmojiActionSheet.tsx');
exports.openEmojiActionSheet = openEmojiActionSheet;
}
function openEmojiActionSheet(a0) { // fn#68054, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8807:246, offset: 0x01c3ce9b, size: 323 bytes, params: 2, frame: 20
var r1;
var object2;
const r4 = a0.uniqueName == null ? a0.name : a0.uniqueName !== '' ? a0.uniqueName : a0.name;
let id = a0.id;
if (id != null) {
object2 = {};
id = a0.id;
object2.id = id;
object2.alt = r4;
id = a0.id;
object2.src = id != null ? importDefault(dependencyMap[1]).getEmojiURL({id: a0.id, animated: a0.animated,
size: EMOJI_URL_BASE_SIZE}) : a0.url;
r1 = object2;
} else if (a0.surrogates != null) {
r1 = {surrogate: a0.surrogates, content: ':' + r4 + ':'};
} else {
object2 = {};
id = a0.id;
object2.id = id;
object2.alt = r4;
id = a0.id;
object2.src = id != null ? importDefault(dependencyMap[1]).getEmojiURL({id: a0.id, animated: a0.animated,
size: EMOJI_URL_BASE_SIZE}) : a0.url;
r1 = object2;
}
require(dependencyMap[2]).dismissGlobalKeyboard();
const defaultImport = importDefault(dependencyMap[3]);
defaultImport.openLazy(require(dependencyMap[5])(dependencyMap[4], dependencyMap.paths), 'MessageEmojiActionSheet',
{emojiNode: r1}, 'stack');
}
@@ -0,0 +1,429 @@
/* Metro module 8580; source: modules/emoji_picker/native/components/useComputeEmojiPickerFunctions.tsx; dependencies: [57, 31, 6544, 8532, 8581, 3797, 22, 8533, 1944, 2] */
function _fun67869(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#67869, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8765:6, offset: 0x01c35bbd, size: 257 bytes, params: 8, frame: 19
const env0_0 = require;
const _arrayLikeToArray_67872 = function(a0, a1) {
var r0;
var r1;
var r2;
var value3;
var length;
var value5;
var value = undefined;
var value2 = value == null;
reducibleJoin2: while (true) {
if (value2) {
r0 = value2;
break reducibleJoin2;
}
value3 = value > a0.length;
r0 = value3;
break reducibleJoin2;
}
reducibleJoin4: while (true) {
if (r0) {
length = a0.length;
r1 = length;
break reducibleJoin4;
}
r1 = value;
break reducibleJoin4;
}
value = (0, global.Array)(r1);
var value4 = 0;
if (value4 < r1) {
r2 = value4;
reducibleLoop5: while (true) {
value[r2] = a0[r2];
value5 = typeof r2 === 'bigint' ? r2 + 1n : +r2 + 1;
if (value5 < r1) {
r2 = value5;
continue reducibleLoop5;
}
break reducibleLoop5;
}
}
return value;
};
const pushCategory = function(a0) {
var property = a0.renderingData.emojis;
if (property != null && property.length !== 0) {
a0.emojiSections.push(a0.renderingData);
}
};
const pushNativeCategory = function(a0) {
a0.emojiSections.push(a0.renderingData);
};
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 */;
const emojiPickerConstantsModule = require(6544) /* metro dependency 6544: EmojiPickerConstants */;
const env0_5 = emojiPickerConstantsModule.EmojiCategories;
const env0_6 = emojiPickerConstantsModule.EmojiCategoryTypes;
const env0_7 = (require(8532) /* metro dependency 8532: EmojiPickerListConstants */).EmojiPickerRenderingDataType;
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/emoji_picker/native/components/useComputeEmojiPickerFunctions.tsx');
exports.default = useComputeEmojiPickerFunctions;
}
function _createForOfIteratorHelperLoose_67870(a0, a1) { // fn#67870, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8765:215, offset: 0x01c35cbe, size: 372 bytes, params: 3, frame: 20
var r6;
var r9;
var r5;
var value3;
var regexp;
const env0_0 = a0;
const Symbol = global.Symbol;
let value = typeof Symbol !== 'undefined';
let r1 = value && a0[global.Symbol.iterator];
r1 = !r1 ? a0['@@iterator'] : r1;
if (r1) {
value = r1.call(a0);
return value.next.bind(value);
}
const Array = global.Array;
if (Array.isArray(a0)) {
if (r1) {
}
return _fun67871;
}
value = undefined;
if (a0) {
if (typeof a0 === 'string') {
value = _arrayLikeToArray_67872(a0, value);
r5 = value;
} else {
value3 = ({}).toString.call(a0).slice(8, -1);
r6 = value3 === 'Object' && a0.constructor;
r9 = r6 ? a0.constructor.name : value3;
if (r9 === 'Map') {
r6 = global.Array.from(a0);
} else if (r9 === 'Set') {
r6 = global.Array.from(a0);
} else if (r9 === 'Arguments') {
value = _arrayLikeToArray_67872(a0, value);
r6 = value;
} else {
regexp = RegExp('^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$', '');
if (regexp.test(r9)) {
value = _arrayLikeToArray_67872(a0, value);
r6 = value;
} else {
r6 = value;
}
}
r5 = r6;
}
} else {
r5 = value;
}
if (r5) {
if (r5) {
}
return _fun67871;
}
const TypeError = global.TypeError;
throw new TypeError('Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.');
}
function _computeCategories({categories, rowSize, isNativeEmojiPickerEnabled}) { // fn#67873, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8765:1125, offset: 0x01c35e32, size: 1365 bytes, params: 2, frame: 43
var r8;
var r30;
var length;
var r31;
var value6;
var type;
var TOP_GUILD_EMOJI;
var FAVORITES;
var RECENT;
var GUILD;
var UNICODE;
var defaultImport;
var getByCategory;
var name;
var value7;
var pushCategoryBinding;
var object5;
var object6;
var EMOJI;
var Set;
var prototype;
var value8;
var set;
var value9;
var defaultImport2;
var capitalize;
var pushNativeCategoryBinding;
var object8;
var object9;
var NATIVE_SECTION;
var defaultImport3;
var value10;
var value11;
var value12;
var value13;
var guild;
var emojis;
var emojisDisabled;
var emojisHidden;
var moduleValue;
var shouldNSFWGateGuild;
var id;
var isNitroLocked;
var object10;
var NSFW;
var emojiSections;
var push;
var renderingData;
var value14;
var value15;
const items2 = [];
const value3 = _createForOfIteratorHelperLoose_67870(categories);
const value4 = value3();
let done = value4.done;
if (!done) {
r8 = value4;
while (true) {
value6 = r8.value;
type = value6.type;
TOP_GUILD_EMOJI = EmojiCategoryTypes.TOP_GUILD_EMOJI;
if (TOP_GUILD_EMOJI !== type) {
FAVORITES = EmojiCategoryTypes.FAVORITES;
if (FAVORITES === type) {
pushCategoryBinding = pushCategory;
EMOJI = EmojiPickerRenderingDataType.EMOJI;
emojis = value6.emojis;
emojisDisabled = value6.emojisDisabled;
name = value6.name;
FAVORITES = EmojiCategoryTypes.FAVORITES;
pushCategoryBinding({emojiSections: items2, renderingData: {type: EMOJI, emojis: emojis,
emojisDisabled: emojisDisabled, label: name, footer: FAVORITES}, rowSize: rowSize});
break;
}
RECENT = EmojiCategoryTypes.RECENT;
if (RECENT === type) {
pushCategoryBinding = pushCategory;
EMOJI = EmojiPickerRenderingDataType.EMOJI;
emojisDisabled = value6.emojisDisabled;
emojis = value6.emojis;
name = value6.name;
RECENT = EmojiCategoryTypes.RECENT;
pushCategoryBinding({emojiSections: items2, renderingData: {type: EMOJI,
emojisDisabled: emojisDisabled,
emojis: emojis, label: name, footer: RECENT}, rowSize: rowSize});
break;
}
GUILD = EmojiCategoryTypes.GUILD;
if (GUILD === type) {
guild = value6.guild;
emojis = value6.emojis;
emojisDisabled = value6.emojisDisabled;
emojisHidden = value6.emojisHidden;
if (isNativeEmojiPickerEnabled) {
pushNativeCategoryBinding = pushNativeCategory;
NATIVE_SECTION = EmojiPickerRenderingDataType.NATIVE_SECTION;
name = guild.name;
id = guild.id;
length = emojis.length;
pushNativeCategoryBinding({emojiSections: items2, renderingData: {type: NATIVE_SECTION,
label: name,
guildId: id,
emojiCount: length, emojisDisabled: emojisDisabled, emojisHidden: emojisHidden,
isSectionNitroLocked: value6.isNitroLocked}});
break;
}
moduleValue = require(8581) /* metro dependency 8581: AgeGateUtils */;
shouldNSFWGateGuild = moduleValue.shouldNSFWGateGuild;
id = guild.id;
if (Reflect.apply(shouldNSFWGateGuild, moduleValue, [id])) {
object10 = {emojiSections: items2};
NSFW = EmojiPickerRenderingDataType.NSFW;
object10.renderingData = {type: NSFW, label: guild.name, footer: EmojiCategoryTypes.GUILD,
emojis: [],
isSectionNitroLocked: value6.isNitroLocked};
emojiSections = object10.emojiSections;
push = emojiSections.push;
renderingData = object10.renderingData;
Reflect.apply(push, emojiSections, [renderingData]);
break;
}
pushCategoryBinding = pushCategory;
EMOJI = EmojiPickerRenderingDataType.EMOJI;
name = guild.name;
GUILD = EmojiCategoryTypes.GUILD;
isNitroLocked = value6.isNitroLocked;
pushCategoryBinding({emojiSections: items2, renderingData: {type: EMOJI, emojis: emojis,
emojisDisabled: emojisDisabled, label: name, footer: GUILD,
isSectionNitroLocked: isNitroLocked},
rowSize: rowSize});
break;
}
UNICODE = EmojiCategoryTypes.UNICODE;
if (UNICODE !== type) {
break;
}
defaultImport = importDefault(3797) /* metro dependency 3797: UnicodeEmojis */;
getByCategory = defaultImport.getByCategory;
name = value6.name;
value7 = Reflect.apply(getByCategory, defaultImport, [name]);
if (isNativeEmojiPickerEnabled) {
pushNativeCategoryBinding = pushNativeCategory;
object8 = {emojiSections: items2};
object9 = {};
NATIVE_SECTION = EmojiPickerRenderingDataType.NATIVE_SECTION;
object9.type = NATIVE_SECTION;
defaultImport3 = importDefault(22) /* metro dependency 22 */;
object9.label = defaultImport3.capitalize(value6.name);
if (value7 == null) {
length = undefined;
continue;
}
length = value7.length;
if (length != null) {
r31 = length;
continue;
}
r31 = 0;
continue;
object9.emojiCount = r31;
Set = global.Set;
prototype = Set.prototype;
value10 = Object.create(prototype, {constructor: {value: Set}});
set = new Set();
value11 = set instanceof Object ? set : value10;
object9.emojisDisabled = value11;
Set = global.Set;
prototype = Set.prototype;
value12 = Object.create(prototype, {constructor: {value: Set}});
set = new Set();
value13 = set instanceof Object ? set : value12;
object9.emojisHidden = value13;
object8.renderingData = object9;
pushNativeCategoryBinding(object8);
break;
}
pushCategoryBinding = pushCategory;
object5 = {emojiSections: items2};
object6 = {};
EMOJI = EmojiPickerRenderingDataType.EMOJI;
object6.type = EMOJI;
if (value7 != null) {
r30 = value7;
continue;
}
object6.emojis = [];
Set = global.Set;
prototype = Set.prototype;
value8 = Object.create(prototype, {constructor: {value: Set}});
set = new Set();
value9 = set instanceof Object ? set : value8;
object6.emojisDisabled = value9;
defaultImport2 = importDefault(22) /* metro dependency 22 */;
capitalize = defaultImport2.capitalize;
name = value6.name;
object6.label = Reflect.apply(capitalize, defaultImport2, [name]);
UNICODE = EmojiCategoryTypes.UNICODE;
object6.footer = UNICODE;
object5.renderingData = object6;
object5.rowSize = rowSize;
pushCategoryBinding(object5);
break;
}
emojis = value6.emojis;
value14 = emojis.slice(0, rowSize);
pushCategoryBinding = pushCategory;
EMOJI = EmojiPickerRenderingDataType.EMOJI;
emojisDisabled = value6.emojisDisabled;
name = value6.name;
TOP_GUILD_EMOJI = EmojiCategoryTypes.TOP_GUILD_EMOJI;
pushCategoryBinding({emojiSections: items2, renderingData: {type: EMOJI, emojis: value14,
emojisDisabled: emojisDisabled, label: name, footer: TOP_GUILD_EMOJI}, rowSize: rowSize});
value15 = value3();
done = value15.done;
if (done) {
break;
}
r8 = value15;
continue;
}
}
return items2;
}
function _computeSearchResults({emojis, rowSize, limit = global.Number.MAX_SAFE_INTEGER}) { // fn#67874, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8765:2930, offset: 0x01c36387, size: 419 bytes, params: 2, frame: 22
var r2;
var value10;
var id;
var add;
var value11;
const locked = emojis.locked;
const unlocked = emojis.unlocked;
const items2 = [];
let pushCategoryBinding = pushCategory;
const object5 = {emojiSections: items2};
const object6 = {};
let EMOJI = EmojiPickerRenderingDataType.EMOJI;
object6.type = EMOJI;
object6.emojis = unlocked.length > limit ? unlocked.slice(0, limit) : unlocked;
let Set = global.Set;
const value3 = Object.create(Set.prototype, {constructor: {value: Set}});
let set = new Set();
object6.emojisDisabled = set instanceof Object ? set : value3;
object6.label = '';
const SEARCH_RESULTS = EmojiCategoryTypes.SEARCH_RESULTS;
object6.footer = SEARCH_RESULTS;
object5.renderingData = object6;
object5.rowSize = rowSize;
pushCategoryBinding(object5);
const r8 = locked.length > limit ? locked.slice(0, limit) : locked;
Set = global.Set;
set = new Set();
const value8 = _createForOfIteratorHelperLoose_67870(locked);
const value9 = value8();
let done = value9.done;
if (!done) {
r2 = value9;
while (true) {
value10 = r2.value;
id = value10.id;
if (id != null) {
add = set.add;
id = value10.id;
Reflect.apply(add, set, [id]);
}
value11 = value8();
done = value11.done;
if (done) {
break;
}
r2 = value11;
continue;
}
}
pushCategoryBinding = pushCategory;
const object7 = {emojiSections: items2};
const object8 = {};
EMOJI = EmojiPickerRenderingDataType.EMOJI;
object8.type = EMOJI;
object8.emojis = r8;
object8.emojisDisabled = set;
const emojiPickerUtilsModule = require(8533) /* metro dependency 8533: EmojiPickerUtils */;
const getStringForEmojiCategory = emojiPickerUtilsModule.getStringForEmojiCategory;
let PREMIUM_UPSELL = EmojiCategories.PREMIUM_UPSELL;
object8.label = Reflect.apply(getStringForEmojiCategory, emojiPickerUtilsModule, [PREMIUM_UPSELL]);
PREMIUM_UPSELL = EmojiCategoryTypes.PREMIUM_UPSELL;
object8.footer = PREMIUM_UPSELL;
object7.renderingData = object8;
object7.rowSize = rowSize;
pushCategoryBinding(object7);
return items2;
}
function useComputeEmojiPickerFunctions() { // fn#67877, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8765:3835, offset: 0x01c36587, size: 49 bytes, params: 1, frame: 13
return env0_3(env0_4.useState(function() {
var object = {};
object.computeCategories = require(dependencyMap[8]).cachedFunction(_computeCategories);
object.computeSearchResults = require(dependencyMap[8]).cachedFunction(_computeSearchResults);
return object;
}), 1)[0];
}
@@ -0,0 +1,63 @@
/* Metro module 8540; source: modules/emoji_picker/native/components/useEmojiPickerSearchState.tsx; dependencies: [57, 31, 6540, 690, 1362, 2] */
function _fun67706(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#67706, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8725:6, offset: 0x01c2dc9c, size: 149 bytes, params: 8, frame: 19
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_2 = importDefault(57) /* metro dependency 57 */;
const env0_3 = importAll(31) /* metro dependency 31 */;
const emojiStore = importDefault(6540) /* metro dependency 6540: EmojiStore */;
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/emoji_picker/native/components/useEmojiPickerSearchState.tsx');
exports.default = useEmojiPickerSearchState;
}
function useEmojiPickerSearchState(a0, a1, a2) { // fn#67707, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8725:238, offset: 0x01c2dd31, size: 145 bytes, params: 4, frame: 19
const env0_0 = a0;
const env0_1 = a1;
const env0_2 = a2;
const binding = env0_3;
const value2 = binding.useRef('');
const value = env0_2(binding.useState(null), 2);
const property = value[0];
const env0_4 = value[1];
const object2 = {};
object2.handleTextChange = binding.useCallback(_fun67708, [a1, a0, a2]);
object2.searchQueryRef = value2;
object2.searchResults = property;
return object2;
}
function _fun67708(a0) { // fn#67708, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8725:380, offset: 0x01c2ddc2, size: 220 bytes, params: 2, frame: 19
var environment;
var r9;
let value = a0;
if (value !== '') {
if (value[0] !== ':') {
r9 = value;
} else {
value = value.slice(1);
r9 = value;
}
value = environment.__proto__;
(require(1362) /* metro dependency 1362: UserSettingsProtoActionCreators */).FrecencyUserSettingsActionCreators.loadIfNecessary();
var env0_1 = EmojiStore.searchWithoutFetchingLatest({channel: value, query: r9, count: 0,
intention: importDefault});
value = require(690) /* metro dependency 690: ReactBatchUpdatesNative */;
value.batchUpdates(_fun67709);
} else {
value = environment.__proto__;
value = require(690) /* metro dependency 690: ReactBatchUpdatesNative */;
value.batchUpdates(_fun67710);
}
}
function _fun67709() { // fn#67709, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8725:590, offset: 0x01c2de9e, size: 37 bytes, params: 1, frame: 12
env1_3.current = env0_0;
env1_4(env0_1);
}
function _fun67710() { // fn#67710, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8725:642, offset: 0x01c2dec3, size: 48 bytes, params: 1, frame: 12
env1_3.current = '';
env1_4(null);
require.set(0);
}
@@ -0,0 +1,26 @@
/* Metro module 8578; source: modules/emoji_picker/native/components/useNativeAndroidEmojiPickerEnabled.tsx; dependencies: [1226, 477, 1926, 2] */
function _fun67857(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#67857, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8763:6, offset: 0x01c355a7, size: 118 bytes, params: 8, frame: 19
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const authenticationStore = importDefault(1226) /* metro dependency 1226: AuthenticationStore */;
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/emoji_picker/native/components/useNativeAndroidEmojiPickerEnabled.tsx');
exports.default = useNativeAndroidEmojiPickerEnabled;
}
function useNativeAndroidEmojiPickerEnabled() { // fn#67858, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8763:227, offset: 0x01c3561d, size: 91 bytes, params: 1, frame: 14
var r0;
var defaultImport;
var value;
const isAndroid2 = (require(477) /* metro dependency 477: PlatformUtils */).isAndroid();
if (isAndroid2) {
defaultImport = importDefault(1926) /* metro dependency 1926: DatabaseManager */;
value = defaultImport.database(AuthenticationStore.getId());
value = value != null;
r0 = value;
} else {
r0 = isAndroid2;
}
return r0;
}
@@ -0,0 +1,21 @@
/* Metro module 8529; source: modules/emoji_picker/native/openEmojiPickerActionSheet.tsx; dependencies: [1881, 8530, 4080, 8531, 1962, 2] */
function _fun67597(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#67597, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8714:6, offset: 0x01c2a294, size: 136 bytes, params: 8, frame: 18
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_3 = (require(1881) /* metro dependency 1881: EmojiConstants */).EmojiInteractionPoint;
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/emoji_picker/native/openEmojiPickerActionSheet.tsx');
exports.EMOJI_PICKER_ACTION_SHEET_KEY = 'EmojiPickerActionSheet';
exports.openEmojiPickerActionSheet = openEmojiPickerActionSheet;
}
function openEmojiPickerActionSheet(a0, a1) { // fn#67598, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8714:310, offset: 0x01c2a31c, size: 119 bytes, params: 3, frame: 18
const moduleValue = require(dependencyMap[1]);
const initiateEmojiInteraction = moduleValue.initiateEmojiInteraction;
const EmojiPickerActionSheetOpened = EmojiInteractionPoint.EmojiPickerActionSheetOpened;
Reflect.apply(initiateEmojiInteraction, moduleValue, [EmojiPickerActionSheetOpened]);
const defaultImport = importDefault(dependencyMap[2]);
defaultImport.openLazy(require(dependencyMap[4])(dependencyMap[3], dependencyMap.paths), 'EmojiPickerActionSheet',
a0, a1);
}