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

326 lines
21 KiB
TypeScript

/* Metro module 15331; source: modules/launchpad/native/LaunchPadSearchResults.tsx; dependencies: [31, 27, 1949, 5214, 1867, 4865, 33, 4501, 697, 15332, 6947, 566, 4584, 15333, 5278, 15334, 15336, 6819, 15337, 15339, 7234, 15340, 15346, 15347, 15349, 14532, 4573, 1357, 1244, 1478, 15335, 8140, 2] */
import MobileVisualRefreshExperiment from '../../themes/experiments/MobileVisualRefreshExperiment.tsx'; /* Metro dependency 1357 */
import UseWindowDimensionsNative from '../../screen/useWindowDimensions.native.tsx'; /* Metro dependency 1478 */
import GuildStore from '../../../stores/GuildStore.tsx'; /* Metro dependency 1867 */
import LocaleStore from '../../user_settings/LocaleStore.tsx'; /* Metro dependency 1949 */
import GuildReadStateStore from '../../../stores/GuildReadStateStore.tsx'; /* Metro dependency 5214 */
import GetLayoutStyles from './shared/getLayoutStyles.tsx'; /* Metro dependency 15332 */
import RenderChannelPressableWrapper from './shared/renderChannelPressableWrapper.tsx'; /* Metro dependency 15333 */
import RenderChannelWrapper from './shared/renderChannelWrapper.tsx'; /* Metro dependency 15334 */
import UnreadBadge from './shared/UnreadBadge.tsx'; /* Metro dependency 15336 */
import * as FileImportTrackerModule from '../../../by-id/module-00002-FileImportTracker.js'; /* Metro dependency 2 */
import * as ReactNativeModule from '../../../by-id/module-00027-ReactNative.js'; /* Metro dependency 27 */
import * as ReactModule from '../../../by-id/module-00031-React.js'; /* Metro dependency 31 */
import * as JsxRuntimeModule from '../../../by-id/module-00033-JsxRuntime.js'; /* Metro dependency 33 */
import * as FluxModule from '../../../external/discord_common/js/packages/flux/index.tsx'; /* Metro dependency 566 */
import * as IndexNativeModule from '../../../intl/index.native.tsx'; /* Metro dependency 1244 */
import * as CreateStylesModule from '../../../design/components/Styles/native/createStyles.tsx'; /* Metro dependency 4501 */
import * as TextModule from '../../../design/components/Text/native/Text.tsx'; /* Metro dependency 4573 */
import * as UseFontScaleModule from '../../screen/native/useFontScale.tsx'; /* Metro dependency 4584 */
import * as ReadStateConstantsModule from '../../read_states/ReadStateConstants.tsx'; /* Metro dependency 4865 */
import * as PressablesModule from '../../../design/void/Pressables/native/Pressables.tsx'; /* Metro dependency 5278 */
import * as AutocompleterModule from '../../autocompleter/index.tsx'; /* Metro dependency 7234 */
import * as RedesignCategoryModule from '../../channel_list_v2/native/items/RedesignCategory.tsx'; /* Metro dependency 14532 */
function _fun117237(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#117237, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15528:6, offset: 0x024aa538, size: 531 bytes, params: 8, frame: 24
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
let value = ReactModule;
object = {bottom: 24};
const createStyles = CreateStylesModule.createStyles;
object = {};
object.listContainer = {minHeight: 16};
object.list = {'flex': -1, 'marginTop': 8};
const object3 = {};
object3.borderRadius = (importDefault(697) /* metro dependency 697: native */).radii.sm;
object.guildIcon = object3;
const BACKGROUND_BASE_LOW = (importDefault(697) /* metro dependency 697: native */).colors.BACKGROUND_BASE_LOW;
object.categoryWrapper = {backgroundColor: BACKGROUND_BASE_LOW};
object.pressable = {flex: 1};
const INTERACTIVE_BACKGROUND_ACTIVE = (importDefault(697) /* metro dependency 697: native */).colors.INTERACTIVE_BACKGROUND_ACTIVE;
object.pressableUnderlayColor = {backgroundColor: INTERACTIVE_BACKGROUND_ACTIVE};
const env0_13 = Reflect.apply(createStyles, CreateStylesModule, [object]);
const env0_14 = value.memo(_fun117240);
const env0_15 = value.memo(_fun117244);
const value4 = value.memo(InitialResultsInner);
value = value.memo(SearchResultsInner);
(FileImportTrackerModule).fileFinishedImporting('modules/launchpad/native/LaunchPadSearchResults.tsx');
exports.InitialResults = value4;
exports.SearchResults = value;
function renderItemJSX({result, categoryStyles, isRefreshEnabled}) { // fn#117238, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15528:1414, offset: 0x024aa74b, size: 612 bytes, params: 2, frame: 19
if (result == null) {
return null;
}
const type = result.type;
const AutocompleterResultTypes = (AutocompleterModule).AutocompleterResultTypes;
const GUILD = AutocompleterResultTypes.GUILD;
if (GUILD === type) {
return ((Component) => <Component guild={result.record} />)(env0_14);
}
const TEXT_CHANNEL = AutocompleterResultTypes.TEXT_CHANNEL;
if (TEXT_CHANNEL === type) {
return ((Component) => <Component channel={result.record} navigationReplace showGuildBadgeIcon />)(importDefault(15340) /* metro dependency 15340: TextChannel */);
}
const GROUP_DM = AutocompleterResultTypes.GROUP_DM;
if (GROUP_DM === type) {
return ((Component) => <Component channel={result.record} navigationReplace />)(importDefault(15346) /* metro dependency 15346: DMChannel */);
}
const VOICE_CHANNEL = AutocompleterResultTypes.VOICE_CHANNEL;
if (VOICE_CHANNEL === type) {
return ((Component) => <Component channel={result.record} />)(importDefault(15347) /* metro dependency 15347: VoiceOrStageChannel */);
}
const USER = AutocompleterResultTypes.USER;
if (USER === type) {
return ((Component) => <Component user={result.record} comparator={result.comparator} />)(importDefault(15349) /* metro dependency 15349: LaunchPadSearchResultUser */);
}
const HEADER = AutocompleterResultTypes.HEADER;
if (HEADER === type) {
return (require(14532) /* metro dependency 14532: RedesignCategory */).renderCategoryItem({name: result.record.text,
styles: categoryStyles, isRefreshEnabled: isRefreshEnabled});
}
const Text = (TextModule).Text;
return (
<Text variant="text-sm/semibold">
{result.type}
</Text>
);
}
function renderSearchResultsSection() { // fn#117239, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15528:4144, offset: 0x024aa9af, size: 82 bytes, params: 1, frame: 18
const binding = env0_15;
const intl = (IndexNativeModule).intl;
return ((Component) => <Component name={intl.string((IndexNativeModule).t['zkoeq/'])} />)(binding);
}
function _fun117240({guild}) { // fn#117240, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15528:537, offset: 0x024aaa01, size: 571 bytes, params: 2, frame: 32
const styles = useStyles();
const value2 = (GetLayoutStyles)();
const value3 = env0_3.useCallback(_fun117241, [guild.id]);
const {unread, mentionCount,
isMentionLowImportance} = (require(566) /* metro dependency 566: flux */).useStateFromStoresObject([GuildReadStateStore],
function() {
var object = {};
var guildReadStateStoreBinding = GuildReadStateStore;
var guildBinding = guild;
object.unread = guildReadStateStoreBinding.hasUnread(guildBinding.id);
object.mentionCount = guildReadStateStoreBinding.getMentionCount(guildBinding.id);
object.isMentionLowImportance = guildReadStateStoreBinding.getIsMentionLowImportance(guildBinding.id);
return object;
});
const value5 = (UseFontScaleModule).useFontScale();
const locale = (require(566) /* metro dependency 566: flux */).useStateFromStores([LocaleStore], function() {
return LocaleStore.locale;
});
const defaultImport = RenderChannelPressableWrapper;
const PressableHighlight = (PressablesModule).PressableHighlight;
const backgroundColor = styles.pressableUnderlayColor.backgroundColor;
const items3 = [styles.pressable];
items3[1] = {borderRadius: value2.container.borderRadius};
const defaultImport2 = RenderChannelWrapper;
const jsxRuntimeEnv0_10Binding = jsxRuntimeEnv0_10;
const ALL_MESSAGES = UnreadSetting.ALL_MESSAGES;
const items2 = [
<UnreadBadge unread={unread} resolvedUnreadSetting={ALL_MESSAGES} />,
];
items2[1] = ((Component) => <Component size={value2.icon.guildIconSize} guild={guild} style={[styles.guildIcon,
value2.icon.margin]} />)(importDefault(6819) /* metro dependency 6819: GuildIcon */);
value = importDefault(15337) /* metro dependency 15337: renderChannelContent */;
const object2 = {};
object2.name = guild.name;
object2.mentionBadge = (importDefault(15339) /* metro dependency 15339: renderChannelBadge */)({mentionCount: mentionCount,
locale: locale, isMentionLowImportance: isMentionLowImportance});
items2[2] = value(object2);
return defaultImport(<PressableHighlight onPress={value3} underlayColor={backgroundColor} style={items3}>{defaultImport2(<>{items2}</>,
{fontScale: value5})}</PressableHighlight>);
function _fun117241() { // fn#117241, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15528:596, offset: 0x024aac3c, size: 50 bytes, params: 1, frame: 12
let value = environment.__proto__;
value = require(6947) /* metro dependency 6947: transitionToGuildNative */;
value.transitionToGuild(guild.id);
}
}
function _fun117244({name, onPress, note}) { // fn#117244, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15528:2254, offset: 0x024aacbf, size: 166 bytes, params: 2, frame: 21
const styles = useStyles();
const value2 = (RedesignCategoryModule).useCategoryStyles();
const value3 = (MobileVisualRefreshExperiment)('WrappedCategoryItem');
return (
<View style={styles.categoryWrapper}>
{RedesignCategoryModule.renderCategoryItem({name: name, onPress: onPress, note: note, styles: value2,
isRefreshEnabled: value3})}
</View>
);
}
function InitialResultsInner({history, unreads, toggleExpandedHistory, expandedHistory, selectedGuildId}) { // fn#117245, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15528:2516, offset: 0x024aad65, size: 669 bytes, params: 2, frame: 30
var r4;
var defaultImport2;
const expandedHistory2 = expandedHistory;
var value;
const styles = useStyles();
const value2 = (RedesignCategoryModule).useCategoryStyles();
const value3 = (MobileVisualRefreshExperiment)('InitialResults');
const value4 = (FluxModule).useStateFromStores([GuildStore], _fun117246);
const height = (UseWindowDimensionsNative)().height;
const binding = expandedHistory2;
const value5 = binding.useCallback(_fun117247, [history, unreads, value2, value3]);
const value7 = binding.useCallback(_fun117249, [toggleExpandedHistory, expandedHistory, value4,
unreads.some(function({type}) {
return type === require(dependencyMap[20]).AutocompleterResultTypes.VOICE_CHANNEL;
})]);
const value8 = (GetLayoutStyles)();
const value10 = binding.useCallback(_fun117250,
[(UseFontScaleModule).useFontScale(), history, unreads, value8]);
const Math = global.Math;
const value12 = Math.min(history.length, expandedHistory ? history.length : global.Math.max(5 - unreads.length, 2));
if (history.length > 0) {
defaultImport2 = importDefault(8140) /* metro dependency 8140: FastList */;
value = 'default';
value = ((Component) => <Component optimizeListItemRender batchesToRender={6} style={styles.list} sectionSize={value8.category.height} itemSize={value10} renderItem={value5} renderSection={value7} sections={[value12,
unreads.length]} sectionFooterSize={8} footerSize={8} scrollIndicatorInsets={env0_12} chunkBase={height} keyboardShouldPersistTaps="always" key={selectedGuildId ?? value} />)(defaultImport2);
r4 = value;
} else if (unreads.length > 0) {
defaultImport2 = importDefault(8140) /* metro dependency 8140: FastList */;
value = 'default';
value = ((Component) => <Component optimizeListItemRender batchesToRender={6} style={styles.list} sectionSize={value8.category.height} itemSize={value10} renderItem={value5} renderSection={value7} sections={[value12,
unreads.length]} sectionFooterSize={8} footerSize={8} scrollIndicatorInsets={env0_12} chunkBase={height} keyboardShouldPersistTaps="always" key={selectedGuildId ?? value} />)(defaultImport2);
r4 = value;
} else {
r4 = null;
}
return (
<View style={styles.listContainer}>
{r4}
</View>
);
function _fun117246() { // fn#117246, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15528:2733, offset: 0x024ab002, size: 55 bytes, params: 1, frame: 12
var value2;
var guildStoreBinding;
if (selectedGuildId != null) {
value2 = environment.__proto__;
guildStoreBinding = GuildStore;
return guildStoreBinding.getGuild(selectedGuildId)?.name;
}
}
function _fun117247(a0, a1) { // fn#117247, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15528:2840, offset: 0x024ab039, size: 80 bytes, params: 3, frame: 13
return renderItemJSX({result: a0 === 0 ? history[a1] : unreads[a1], categoryStyles: env0_5,
isRefreshEnabled: env0_6});
}
function _fun117249(a0) { // fn#117249, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15528:3024, offset: 0x024ab0bc, size: 452 bytes, params: 2, frame: 24
var r0;
var r1;
var object;
const intl = (IndexNativeModule).intl;
var string;
const t = (IndexNativeModule).t;
var expandedHistoryBinding;
var Text;
var object3;
const value = environment.__proto__;
const binding = env1_15;
if (a0 === 0) {
object = {};
object.name = intl.string(t['Xmh+5e']);
expandedHistoryBinding = expandedHistory;
Text = (require(4573) /* metro dependency 4573: Text */).Text;
object3 = {'variant': 'text-xs/semibold', 'color': 'text-brand'};
string = intl.string;
if (expandedHistoryBinding) {
object3.children = Reflect.apply(string, intl, [t['3BdvgI']]);
} else {
object3.children = Reflect.apply(string, intl, [t['/XSoJ+']]);
}
object.note = <Text {...object3} />;
object.onPress = toggleExpandedHistory;
r1 = object;
} else {
if (env0_7 != null) {
r0 = intl.formatToPlainString(ReadStateConstantsModule.UnreadSetting ? t['+DrQVp'] : t['+lFj35'], {guildName: env0_7});
} else {
string = intl.string;
r0 = ReadStateConstantsModule.UnreadSetting ? t.C5viSQ : t.ieCAhD;
r0 = Reflect.apply(string, intl, [r0]);
}
r1 = {name: r0};
}
return ((Component) => <Component {...r1} />)(binding);
}
function _fun117250(a0, a1) { // fn#117250, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15528:3578, offset: 0x024ab280, size: 193 bytes, params: 3, frame: 14
var r1;
var r0;
var type;
let value = 0;
if (a1 == null) {
r0 = value;
} else {
r1 = value === a0 ? history[a1] : unreads[a1];
type = r1.type;
value = environment.__proto__;
if (type === (require(7234) /* metro dependency 7234: autocompleter */).AutocompleterResultTypes.VOICE_CHANNEL) {
value = importDefault(15335) /* metro dependency 15335: getScaledChannelRowHeight */;
value = value(JsxRuntimeModule.Fragment);
value = value + JsxRuntimeModule.jsx.voiceUsers.height - 2;
r1 = value;
} else {
value = importDefault(15335) /* metro dependency 15335: getScaledChannelRowHeight */;
value = value(JsxRuntimeModule.Fragment);
r1 = value;
}
r0 = r1;
}
return r0;
}
}
function SearchResultsInner({results, query}) { // fn#117251, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15528:4258, offset: 0x024ab341, size: 470 bytes, params: 2, frame: 26
const styles = useStyles();
const value2 = (RedesignCategoryModule).useCategoryStyles();
const value3 = (MobileVisualRefreshExperiment)('SearchResults');
const height = (UseWindowDimensionsNative)().height;
const binding = env0_3;
const value4 = binding.useCallback(_fun117252, [results, value2, value3]);
const value6 = binding.useRef(null);
binding.useEffect(_fun117253, [query]);
const value7 = (GetLayoutStyles)();
return (
<View style={styles.listContainer}>
{
results.length > 0
? ((Component) => <Component ref={value6} optimizeListItemRender batchesToRender={6} style={styles.list} sectionSize={value7.category.height} itemSize={binding.useCallback(_fun117254,
[(require(4584) /* metro dependency 4584: useFontScale */).useFontScale(), results,
value7])} renderSection={renderSearchResultsSection} renderItem={value4} sections={[results.length]} footerSize={16} scrollIndicatorInsets={env0_12} chunkBase={height} keyboardShouldPersistTaps="always" />)(importDefault(8140) /* metro dependency 8140: FastList */)
: null
}
</View>
);
function _fun117252(a0, a1) { // fn#117252, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15528:4413, offset: 0x024ab517, size: 55 bytes, params: 3, frame: 13
return renderItemJSX({result: results[a1], categoryStyles: env0_1, isRefreshEnabled: env0_2});
}
function _fun117253() { // fn#117253, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15528:4525, offset: 0x024ab54e, size: 51 bytes, params: 1, frame: 12
const current = env0_3.current;
if (!(current == null || current.scrollToTop == null)) {
current.scrollToTop(false);
}
}
function _fun117254(a0, a1) { // fn#117254, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15528:4662, offset: 0x024ab581, size: 165 bytes, params: 3, frame: 15
return a1 == null ? 0 : results[a1].type === (require(7234) /* metro dependency 7234: autocompleter */).AutocompleterResultTypes.VOICE_CHANNEL ? (importDefault(15335) /* metro dependency 15335: getScaledChannelRowHeight */)(env0_5) + ReactNativeModule.View.voiceUsers.height - 2 : (importDefault(15335) /* metro dependency 15335: getScaledChannelRowHeight */)(env0_5);
}
}
}
global.__d(_fun117237, 15331, [31, 27, 1949, 5214, 1867, 4865, 33, 4501, 697, 15332, 6947, 566, 4584, 15333, 5278,
15334, 15336, 6819, 15337, 15339, 7234, 15340, 15346, 15347, 15349, 14532, 4573, 1357, 1244, 1478, 15335, 8140,
2]) /* metro module 15331, dependencies: [31, 27, 1949, 5214, 1867, 4865, 33, 4501, 697, 15332, 6947, 566, 4584, 15333, 5278, 15334, 15336, 6819, 15337, 15339, 7234, 15340, 15346, 15347, 15349, 14532, 4573, 1357, 1244, 1478, 15335, 8140, 2] */;