This commit is contained in:
janisslsm committed 2026-11-01 12:12:55 +02:00
1 parent 1781d25a15
commit 732c0ad767
33051 files changed
+2591613 -3019689

No files matched your search

@@ -0,0 +1,99 @@
// Metro module 11357 (f11358).
import { useState, useRef, useEffect } from "react";
import { RelationshipTypes } from "../../../../../Constants";
import { getApplicationCommandOptionQueryOptions } from "../../../../application_commands/ApplicationCommandUtils";
import AutocompleteUtils from "../../../../../utils/AutocompleteUtils";
import ActionSheetActionCreators from "../../../../action_sheet/native/ActionSheetActionCreators";
import { AppLauncherCommandOptionActionSheet } from "../AppLauncherCommandOptionActionSheet";
import { AppLauncherListSearchBar, AppLauncherListEmptyState, AppLauncherList } from "../../base_components/AppLauncherList";
import UserRow from "../../../../main_tabs_v2/native/shared_components/user_list/UserRow";
import { Text } from "../../../../../design/components/Text/native/Text";
import { getUserTag } from "../../../../../utils/UserUtils";
import { RoleRow, RoleIcon } from "../role/AppLauncherRoleListActionSheet";
import AutocompleteUtils2 from "../../../../../utils/native/AutocompleteUtils";
import AppLauncherOptionIcon from "../../base_components/AppLauncherOptionIcon";
import { UserCircleIcon } from "../../../../../design/components/Icon/native/redesign/generated/UserCircleIcon";
import { TableRow } from "../../../../../design/components/TableRow/native/TableRow.native";
let c7714_8 = "AppLauncherMentionableListActionSheet";
let c7714_9 = {
USER: "user",
ROLE: "role",
GLOBAL: "global"
};
export default function AppLauncherMentionableListActionSheet(props) {
const { onMentionablePress, onActionSheetDismiss, channel, option } = props;
const [state, setState] = useState("");
const ref = useRef(null);
const [state2, setState2] = useState([]);
const guild_id = channel.guild_id;
const length = state2.length;
useEffect(() => {
const applicationCommandOptionQueryOptions = getApplicationCommandOptionQueryOptions(option);
const r27 = AutocompleteUtils.queryMentionResults({
query: state,
channel,
canMentionEveryone: applicationCommandOptionQueryOptions.canMentionEveryone,
canMentionHere: applicationCommandOptionQueryOptions.canMentionHere,
canMentionUsers: applicationCommandOptionQueryOptions.canMentionUsers,
canMentionRoles: applicationCommandOptionQueryOptions.canMentionRoles,
includeAllGuildUsers: applicationCommandOptionQueryOptions.canMentionAnyGuildUser,
includeNonMentionableRoles: applicationCommandOptionQueryOptions.canMentionNonMentionableRoles,
request: true,
limit: 10,
allowSnowflake: true
});
setState2([...r27.users.map((user) => ({
type: c7714_9.USER,
result: user
})), ...r27.roles.map((role) => ({
type: c7714_9.ROLE,
result: role
})), ...r27.globals.map((global) => ({
type: c7714_9.GLOBAL,
result: global
}))]);
}, [state, option, channel]);
return <AppLauncherCommandOptionActionSheet option={option} onDismiss={onActionSheetDismiss}>
<AppLauncherListSearchBar onChange={function onChange(event) {
setState(event.toLowerCase());
const current = ref.current;
if (current != null) {
current.scrollToOffset({
offset: 0,
animated: false
});
}
}} />
{length === 0 ? <AppLauncherListEmptyState /> : <AppLauncherList ref={ref} data={state2} renderItem={function renderItem({ item, index }) {
const props = {
onPress: () => {
onMentionablePress({
mentionable: item
});
ActionSheetActionCreators.hideActionSheet(c7714_8);
onActionSheetDismiss();
},
start: index === 0,
end: index === state2.length - 1
};
const type = item.type;
if (c7714_9.USER === type) {
const result3 = item.result;
const user = result3.user;
return <UserRow key={user.id} type={RelationshipTypes.NONE} user={user} nickname={result3.nick} guildId={guild_id} subLabel={<Text color="text-subtle" variant="text-xs/normal">
{getUserTag(user)}
</Text>} {...props} />;
}
if (c7714_9.ROLE === type) {
const result2 = item.result;
return <RoleRow key={result2.id} guildRole={result2} guildId={guild_id} {...props} />;
}
if (c7714_9.GLOBAL === type) {
const result = item.result;
return <TableRow key={result.text} label={<Text lineClamp={1} variant="text-md/semibold" color="mobile-text-heading-primary">{result.text}</Text>} icon={result.text === AutocompleteUtils2.MENTION_EVERYONE().text ? <RoleIcon /> : <AppLauncherOptionIcon icon={<UserCircleIcon size="sm" color="interactive-text-default" />} />} {...props} />;
}
}} />}
</AppLauncherCommandOptionActionSheet>;
};
export const APP_LAUNCHER_MENTIONABLE_LIST_ACTION_SHEET_KEY = "AppLauncherMentionableListActionSheet";
export { c7714_9 as MentionableItemTypes };
@@ -0,0 +1,122 @@
// Metro module 11355 (f11356).
import { useState, useEffect, useMemo } from "react";
import AccessibilityStore from "../../../../a11y/AccessibilityStore";
import GuildRoleStore from "../../../../../stores/GuildRoleStore";
import UserStore from "../../../../../stores/UserStore";
import { StatusTypes } from "../../../../../_bundle/Module505";
import { createStyles } from "../../../../../design/components/Styles/native/createStyles";
import Module712 from "../../../../../_bundle/Module712";
import { useStateFromStores } from "../../../../../_bundle/Module589";
import AppLauncherOptionIcon from "../../base_components/AppLauncherOptionIcon";
import { UserCircleIcon } from "../../../../../design/components/Icon/native/redesign/generated/UserCircleIcon";
import { MentionableItemTypes, APP_LAUNCHER_MENTIONABLE_LIST_ACTION_SHEET_KEY } from "./AppLauncherMentionableListActionSheet";
import { Avatar, AvatarSizes } from "../../../../../design/void/native";
import { RoleIcon } from "../role/AppLauncherRoleListActionSheet";
import UsernameText from "../../base_components/UsernameText";
import AppLauncherSelectOptionFormRow from "../../base_components/AppLauncherSelectOptionFormRow";
import ActionSheetActionCreators from "../../../../action_sheet/native/ActionSheetActionCreators";
let useStyles;
const MentionableIcon = function MentionableIcon(props) {
const { mentionable, guildId } = props;
const styles = useStyles();
const stateFromStores = useStateFromStores([AccessibilityStore], () => AccessibilityStore.useReducedMotion);
const r28 = <AppLauncherOptionIcon icon={<UserCircleIcon size="sm" color="interactive-text-default" />} wrapperStyle={styles.iconWrapper} />;
if (mentionable == null) {
return r28;
}
const type = mentionable.type;
if (MentionableItemTypes.USER === type) {
return <Avatar user={mentionable.result.user} guildId={guildId} animate={!stateFromStores} size={AvatarSizes.REFRESH_MEDIUM_32} />;
}
if (MentionableItemTypes.ROLE === type) {
return <RoleIcon role={mentionable.result} />;
}
MentionableItemTypes.GLOBAL;
return r28;
};
useStyles = createStyles({
iconWrapper: {
backgroundColor: Module712.colors.BACKGROUND_MOD_SUBTLE
}
});
export default function AppLauncherMentionableOption(props) {
let state, setState;
const { style, option, initialValue, onMentionablePress: onMentionablePress2, onActionSheetDismiss, channel, autoFocus, hasError, onPress: onPress2 } = props;
state = void 0;
setState = void 0;
const guild_id = channel.guild_id;
[state, setState] = useState(() => {
if (initialValue != null) {
if (initialValue.type === "roleMention") {
const role = GuildRoleStore.getRole(guild_id, initialValue.roleId);
if (role != null) {
return {
type: MentionableItemTypes.ROLE,
result: role
};
}
} else if (initialValue.type === "userMention") {
const user = UserStore.getUser(initialValue.userId);
if (user != null) {
return {
type: MentionableItemTypes.USER,
result: {
user,
score: 0,
status: StatusTypes.UNKNOWN,
nick: ""
}
};
}
} else if (initialValue.type === "textMention") {
return {
type: MentionableItemTypes.GLOBAL,
result: {
text: initialValue.text,
test: initialValue.text,
description: ""
}
};
}
}
return null;
});
useEffect(() => {
if (initialValue != null && state == null) {
onMentionablePress2({
mentionable: null
});
}
}, [onMentionablePress2, option.name, initialValue, state]);
const memo = useMemo(() => {
if (state == null) {
return null;
}
const type = state.type;
if (MentionableItemTypes.USER === type) {
return <UsernameText guildId={guild_id} user={state.result.user} />;
}
if (MentionableItemTypes.ROLE === type) {
return state.result.name;
}
if (MentionableItemTypes.GLOBAL === type) {
return state.result.text;
}
}, [state, guild_id]);
return <AppLauncherSelectOptionFormRow style={style} option={option} hasError={hasError} selected={state != null} selectedItemName={state != null ? memo : void 0} leading={<MentionableIcon mentionable={state} guildId={guild_id} />} onPress={function onPress() {
if (onPress2 != null) {
onPress2();
}
ActionSheetActionCreators.openLazy(import("./AppLauncherMentionableListActionSheet"), APP_LAUNCHER_MENTIONABLE_LIST_ACTION_SHEET_KEY, {
option,
channel,
onMentionablePress: ({ mentionable }) => {
setState(mentionable);
onMentionablePress2({
mentionable
});
},
onActionSheetDismiss
});
}} autoFocus={autoFocus} />;
};