Files
discord-decomp/modules/app_launcher/hooks/useIsPrimaryEntryPointDisabled.tsx
T
2026-11-01 12:12:55 +02:00

47 lines
2.4 KiB
TypeScript

// Metro module 11320 (f11321).
import ApplicationRecord from "../../../records/ApplicationRecord";
import PermissionStore from "../../../stores/PermissionStore";
import { Permissions } from "../../../_bundle/Module505";
import { useStateFromStores } from "../../../_bundle/Module589";
import { useEmbeddedActivityLaunchability, EmbeddedActivityLaunchability } from "../../activities/utils/getEmbeddedActivityLaunchability";
import { ActivityAction } from "../../activities/utils/useActivityShelfItem";
import { isActivitiesInTextEnabled } from "../../activities/ActivitiesInTextUtils";
import getPlatform from "../../activities/utils/getPlatform";
import { getOS } from "../../../utils/PlatformUtils";
import { intl, t } from "../../../intl/index.native";
export default function useIsPrimaryEntryPointDisabled({ context, application, activityAction }) {
let disabled, reason;
const channel = context.type === "channel" ? context.channel : void 0;
const stateFromStores = useStateFromStores([PermissionStore], () => PermissionStore.can(Permissions.USE_EMBEDDED_ACTIVITIES, channel));
const embeddedActivityLaunchability = useEmbeddedActivityLaunchability(channel?.id);
const r0 = ActivityAction.LEAVE !== activityAction ? ActivityAction.START === activityAction ? channel == null ? false : (channel == null ? void 0 : channel.isGuildVoice()) ? embeddedActivityLaunchability !== EmbeddedActivityLaunchability.CAN_LAUNCH ? true : false : isActivitiesInTextEnabled(channel) ? false : true : ActivityAction.JOIN === activityAction ? (channel == null ? void 0 : channel.isGuildVoice()) ? !stateFromStores : isActivitiesInTextEnabled(channel) ? false : true : false : false;
L32: {
const LEAVE = ActivityAction.LEAVE;
disabled = r0;
reason = void 0;
if (activityAction !== LEAVE) {
const r67 = application instanceof ApplicationRecord ? application.embeddedActivityConfig : application.embedded_activity_config;
const platform2 = getPlatform(getOS());
if (r67 != null && !r67.supported_platforms.includes(platform2)) {
reason = intl.string(t.z2YTgJ);
disabled = false;
break L32;
}
const r87 = channel == null ? void 0 : channel.isThread();
disabled = r0;
reason = void 0;
if (r87) {
reason = intl.string(t.ddSR3v);
disabled = true;
}
}
}
if (disabled && reason == null) {
reason = intl.string(t.f41E1g);
}
return {
disabled,
reason
};
};