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,13 @@
// Metro module 11272 (f11273).
import Dispatcher from "../../../../Dispatcher";
export function setLastSeenTimeMs() {
Dispatcher.dispatch({
type: "APP_LAUNCHER_ONBOARDING_SET_LAST_SEEN_TIME_MS"
});
}
export function setTriggeredOnboardingContentMetadata(a0) {
Dispatcher.dispatch({
type: "APP_LAUNCHER_ONBOARDING_SET_TRIGGERED_ONBOARDING_CONTENT_METADATA",
triggeredOnboardingContentMetadata: a0
});
}
@@ -0,0 +1,120 @@
// Metro module 11402 (f11403).
import { StyleSheet, View } from "react-native";
import AccessibilityStore from "../../../a11y/AccessibilityStore";
import { createStyles } from "../../../../design/components/Styles/native/createStyles";
import { SMALL_BUTTON_HEIGHT, SMALL_BUTTON_PADDING } from "../../../../design/components/Button/native/ButtonConstants.native";
import Module712 from "../../../../_bundle/Module712";
import * as _timing from "../../../../design/animation/reanimated/timing/timing";
import * as _timingPresets from "../../../../design/animation/reanimated/timing/timingPresets";
import { useStateFromStores } from "../../../../_bundle/Module589";
import { useGradientBottom } from "../../../client_themes/native/ClientThemesOverrides";
import useAppLauncherOnboardingContent from "./hooks/useAppLauncherOnboardingContent";
import ReanimatedRexport from "../../../reanimated/ReanimatedRexport";
import LottieAnimationView from "../../../../components_native/common/LottieAnimationView";
import * as _Module11403 from "../../../../_bundle/Module11403";
import * as _Module11236 from "../../../../_bundle/Module11236";
let EnteringAnimation, ExitingAnimation;
const useStyles = createStyles(() => {
const width = SMALL_BUTTON_HEIGHT + SMALL_BUTTON_PADDING + 2;
return {
fakeButton: {
zIndex: 3,
borderWidth: 1.5,
borderColor: Module712.colors.BACKGROUND_BRAND,
borderRadius: Module712.radii.round,
alignItems: "center",
justifyContent: "center",
width,
height: width,
marginLeft: 4
},
glowMask: {
zIndex: 1,
position: "absolute",
borderRadius: Module712.radii.round,
top: 0,
left: 0,
width,
height: width,
backgroundColor: Module712.colors.BACKGROUND_BASE_LOW,
marginLeft: 4
},
glowLottie: {
width: "150%",
height: "150%",
position: "absolute",
top: "-25%",
left: "-25%",
zIndex: 0,
opacity: 0.8
},
trinketsLottie: {
zIndex: 4,
position: "absolute",
pointerEvents: "none",
width: "175%",
height: "175%",
top: "-43%",
left: "-38%"
},
glowAnimation: {
pointerEvents: "none"
}
};
});
const EnteringAnimation2 = function EnteringAnimation() {
return {
initialValues: {
opacity: 0
},
animations: {
opacity: _timing.withTiming(1, _timingPresets.timingStandard)
}
};
};
EnteringAnimation2.__closure = {
withTiming: _timing.withTiming,
timingStandard: _timingPresets.timingStandard
};
EnteringAnimation2.__workletHash = 2327377243473;
EnteringAnimation2.__initData = {
code: "function EnteringAnimation_AppLauncherOnboardingChatInputButtonAnimationTsx1(){const{withTiming,timingStandard}=this.__closure;const initialValues={opacity:0};const animations={opacity:withTiming(1,timingStandard)};return{initialValues:initialValues,animations:animations};}"
};
EnteringAnimation = EnteringAnimation2;
const ExitingAnimation2 = function ExitingAnimation() {
return {
initialValues: {
opacity: 1
},
animations: {
opacity: _timing.withTiming(0, _timingPresets.timingStandard)
}
};
};
ExitingAnimation2.__closure = {
withTiming: _timing.withTiming,
timingStandard: _timingPresets.timingStandard
};
ExitingAnimation2.__workletHash = 1065249287738;
ExitingAnimation2.__initData = {
code: "function ExitingAnimation_AppLauncherOnboardingChatInputButtonAnimationTsx2(){const{withTiming,timingStandard}=this.__closure;const initialValues={opacity:1};const animations={opacity:withTiming(0,timingStandard)};return{initialValues:initialValues,animations:animations};}"
};
ExitingAnimation = ExitingAnimation2;
export const APP_LAUNCHER_ONBOARDING_CHAT_INPUT_BUTTON_ANIMATION_DURATION_MS = 7000;
export function AppLauncherOnboardingChatInputButtonAnimation(props) {
const channelId = props.channelId;
const styles = useStyles();
const stateFromStores = useStateFromStores([AccessibilityStore], () => AccessibilityStore.useReducedMotion);
const gradientBottom = useGradientBottom();
useAppLauncherOnboardingContent({
channelId
});
return <>
<ReanimatedRexport.View entering={EnteringAnimation} exiting={ExitingAnimation} style={[StyleSheet.absoluteFill, styles.glowAnimation]} collapsable={false}>
<LottieAnimationView collapsable={false} style={styles.glowLottie} source={_Module11403} autoPlay={!stateFromStores} />
<View collapsable={false} style={[styles.glowMask, gradientBottom]} />
<View collapsable={false} style={styles.fakeButton} />
</ReanimatedRexport.View>
<LottieAnimationView collapsable={false} style={styles.trinketsLottie} source={_Module11236} autoPlay={!stateFromStores} />
</>;
}
@@ -0,0 +1,15 @@
// Metro module 11223 (f11224).
import { useActivityApplications } from "../hooks/useActivityApplications";
import ApplicationsImage from "./ApplicationsImage";
import BannerBase from "./BannerBase";
import { intl, t } from "../../../../../intl/index.native";
export default function ActivitiesBanner(props) {
const [firstApplication, secondApplication] = useActivityApplications({
guildId: props.context.channel.guild_id,
fetchesShelf: false
});
const image = <ApplicationsImage firstApplication={firstApplication} secondApplication={secondApplication} />;
return firstApplication == null ? null : secondApplication == null ? null : <BannerBase image={image} text={intl.formatToPlainString(t.zHMWuV, {
activityName: firstApplication.name
})} />;
};
@@ -0,0 +1,56 @@
// Metro module 11289 (f11290).
import { useEffect } from "react";
import { View } from "react-native";
import { DEFAULT_CONTENT_PADDING } from "../../AppLauncherNativeConstants";
import { ContentDismissActionType } from "../../../../dismissible_content/DismissibleContentConstants";
import { createStyles } from "../../../../../design/components/Styles/native/createStyles";
import Module712 from "../../../../../_bundle/Module712";
import { AppsIcon } from "../../../../../design/components/Icon/native/redesign/generated/AppsIcon";
import { Coachmark } from "../../../../../design/components/Coachmark/native/Coachmark.native";
import { intl, t } from "../../../../../intl/index.native";
const useStyles = createStyles({
appsIcon: {
height: 40,
width: 40,
backgroundColor: Module712.colors.BACKGROUND_BRAND,
borderRadius: Module712.radii.round,
alignItems: "center",
justifyContent: "center"
},
appsIconImage: {
height: 24,
width: 24,
tintColor: Module712.unsafe_rawColors.WHITE
}
});
export default function GlobalSearchCoachmark(props) {
const { markAsDismissed, visible, windowDimensions } = props;
const styles = useStyles();
const width = windowDimensions.width - 2 * DEFAULT_CONTENT_PADDING;
useEffect(() => () => {
if (visible) {
markAsDismissed({
actionType: ContentDismissActionType.USER_DISMISS
});
}
}, [markAsDismissed, visible]);
return visible ? <Coachmark renderImgComponent={function appsIcon() {
return <View style={styles.appsIcon}>
<AppsIcon style={styles.appsIconImage} color={Module712.colors.INTERACTIVE_TEXT_ACTIVE} />
</View>;
}} title={intl.string(t.bCPN5y)} description={intl.string(t["0TBExc"])} onDismiss={() => {
markAsDismissed({
actionType: ContentDismissActionType.TAKE_ACTION
});
}} targetMeasurements={{
x: 0,
y: -40,
width,
height: 40
}} surfaceMeasurements={{
x: -140,
y: -40,
width,
height: windowDimensions.height
}} position="bottom" /> : null;
};
@@ -0,0 +1,18 @@
// Metro module 11222 (f11223).
import { DismissibleContent } from "../../../../../_bundle/Module1358";
import ActivitiesBanner from "./ActivitiesBanner";
import AppsBanner from "./AppsBanner";
import BotsBanner from "./BotsBanner";
export default function AppLauncherOnboardingBanner(props) {
const { context, visibleContent } = props;
if (DismissibleContent.APP_LAUNCHER_ONBOARDING_ACTIVITIES_BANNER === visibleContent) {
return <ActivitiesBanner context={context} />;
}
if (DismissibleContent.APP_LAUNCHER_ONBOARDING_APPS_BANNER === visibleContent) {
return <AppsBanner />;
}
if (DismissibleContent.APP_LAUNCHER_ONBOARDING_BOTS_BANNER === visibleContent) {
return <BotsBanner context={context} />;
}
return null;
};
@@ -0,0 +1,27 @@
// Metro module 11221 (f11222).
import { memo } from "react";
import { View } from "react-native";
import { useBestActiveChatInputContainerHeight } from "../../../../chat_input/native/useChatBottomManagerUIStore";
import { createStyles } from "../../../../../design/components/Styles/native/createStyles";
import Module712 from "../../../../../_bundle/Module712";
import AppLauncherOnboardingBanner from "./AppLauncherOnboardingBanner";
const useStyles = createStyles({
container: {
opacity: 1,
width: "100%",
position: "absolute",
left: 0,
top: 0,
backgroundColor: Module712.colors.BACKGROUND_SCRIM
}
});
const r36 = memo(function({ context, visibleContent, bottomOffset }) {
const styles = useStyles();
const bestActiveChatInputContainerHeight = useBestActiveChatInputContainerHeight();
return visibleContent != null ? <View style={[styles.container, {
bottom: bestActiveChatInputContainerHeight + bottomOffset
}]}>
<AppLauncherOnboardingBanner context={context} visibleContent={visibleContent} />
</View> : null;
});
export default r36;
@@ -0,0 +1,45 @@
// Metro module 11224 (f11225).
import { View } from "react-native";
import { createStyles } from "../../../../../design/components/Styles/native/createStyles";
import Module712 from "../../../../../_bundle/Module712";
import { getAppLauncherIconSource } from "../../AppLauncherNativeUtils";
import FastImage from "../../../../../components_native/common/FastImage";
const useStyles = createStyles({
appIconContainer: {
backgroundColor: Module712.colors.BACKGROUND_BRAND,
borderRadius: Module712.radii.sm + 3,
position: "absolute",
padding: 3
},
appIconLeftContainer: {
transform: [{
rotate: "-10deg"
}]
},
appIconRightContainer: {
left: Module712.space.PX_32,
transform: [{
rotate: "15deg"
}]
},
appIcon: {
borderRadius: Module712.radii.sm,
width: 36,
height: 36
}
});
export default function ApplicationsImage(props) {
const { firstApplication, secondApplication } = props;
const styles = useStyles();
const source = firstApplication != null ? getAppLauncherIconSource(firstApplication) : null;
const source2 = secondApplication != null ? getAppLauncherIconSource(secondApplication) : null;
return <>
<View style={[styles.appIconContainer, styles.appIconLeftContainer]}>
{source2 != null && <FastImage style={styles.appIcon} source={source2} />}
</View>
<View style={[styles.appIconContainer, styles.appIconRightContainer]}>
{source != null && <FastImage style={styles.appIcon} source={source} />}
</View>
</>;
};
export const APP_ICON_SIZE = 36;
@@ -0,0 +1,22 @@
// Metro module 11237 (f11238).
import { View } from "react-native";
import { createStyles } from "../../../../../design/components/Styles/native/createStyles";
import OnboardingAppsRocket from "../../images/OnboardingAppsRocket";
import BannerBase from "./BannerBase";
import { intl, t } from "../../../../../intl/index.native";
const useStyles = createStyles({
rocketIconContainer: {
position: "absolute",
top: -20
},
rocketIcon: {
width: 90,
height: 90
}
});
export default function AppsBaner() {
const styles = useStyles();
return <BannerBase image={<View style={styles.rocketIconContainer}>
<OnboardingAppsRocket style={styles.rocketIcon} />
</View>} text={intl.string(t.sjRwMJ)} />;
};
@@ -0,0 +1,131 @@
// Metro module 11235 (f11236).
import { useState } from "react";
import { View } from "react-native";
import AccessibilityStore from "../../../../a11y/AccessibilityStore";
import Module712 from "../../../../../_bundle/Module712";
import { createStyles } from "../../../../../design/components/Styles/native/createStyles";
import { APP_ICON_SIZE } from "./ApplicationsImage";
import * as _ReanimatedRexport from "../../../../reanimated/ReanimatedRexport";
import ReanimatedRexport, { useSharedValue, useAnimatedStyle } from "../../../../reanimated/ReanimatedRexport";
import useWindowDimensions_native from "../../../../screen/useWindowDimensions.native";
import { hexOpacityToRgba } from "../../../../../utils/ColorUtils";
import { useStateFromStores } from "../../../../../_bundle/Module589";
import * as _spring from "../../../../../design/animation/reanimated/spring/spring";
import Module4611 from "../../../../../_bundle/Module4611";
import LottieAnimationView from "../../../../../components_native/common/LottieAnimationView";
import * as _Module11236 from "../../../../../_bundle/Module11236";
import { Text } from "../../../../../design/components/Text/native/Text";
const PX_12 = Module712.space.PX_12;
const SPRING_CONFIG = {
mass: 1,
stiffness: 100,
damping: 15
};
const useStyles = createStyles({
banner: {
backgroundColor: Module712.colors.BACKGROUND_BRAND,
position: "absolute",
borderRadius: Module712.radii.lg,
paddingHorizontal: Module712.space.PX_16,
paddingVertical: PX_12,
flexDirection: "row",
minHeight: APP_ICON_SIZE + 2 * PX_12 + 4,
bottom: Module712.space.PX_16,
left: Module712.space.PX_16
},
bannerGradientColor: {
backgroundColor: "#7eaaff"
},
bannerBackgroundGradient: {
position: "absolute",
top: 0,
left: 0,
borderRadius: Module712.radii.lg
},
imageContainer: {
width: 72
},
trinketsLottie: {
width: 175,
height: 175,
position: "absolute",
top: -38,
left: -27,
zIndex: 1,
pointerEvents: "none"
},
bannerTextContainer: {
alignItems: "center",
justifyContent: "center",
marginLeft: Module712.space.PX_12,
flexShrink: 1
},
bannerText: {
width: "100%"
}
});
const __initData = {
code: "function BannerBaseTsx1(){const{bannerMeasured,withDelay,withSpring,SPRING_CONFIG}=this.__closure;return{opacity:bannerMeasured.get()?withDelay(150,withSpring(1,SPRING_CONFIG)):0,transform:[{translateY:bannerMeasured.get()?withDelay(150,withSpring(0,SPRING_CONFIG)):30}]};}"
};
export default function BannerBase(props) {
const { image, text } = props;
const styles = useStyles();
let opacity = 0;
const [height, setState] = useState(0);
const sharedValue = useSharedValue(false);
const width = useWindowDimensions_native().width - 2 * Module712.space.PX_16;
const backgroundColor = styles.bannerGradientColor.backgroundColor;
const colors = [hexOpacityToRgba(backgroundColor, 0.2), hexOpacityToRgba(backgroundColor, 0)];
const stateFromStores = useStateFromStores([AccessibilityStore], () => AccessibilityStore.useReducedMotion);
const _ = function _() {
return {
opacity: sharedValue.get() ? _ReanimatedRexport.withDelay(150, _spring.withSpring(1, SPRING_CONFIG)) : 0,
transform: [{
translateY: sharedValue.get() ? _ReanimatedRexport.withDelay(150, _spring.withSpring(0, SPRING_CONFIG)) : 30
}]
};
};
_.__closure = {
bannerMeasured: sharedValue,
withDelay: _ReanimatedRexport.withDelay,
withSpring: _spring.withSpring,
SPRING_CONFIG
};
_.__workletHash = 5314641176204;
_.__initData = __initData;
const animatedStyle = useAnimatedStyle(_);
const style = [styles.banner, , ,];
if (height > 0) {
opacity = 1;
}
style[1] = {
opacity,
width
};
style[2] = animatedStyle;
return <ReanimatedRexport.View style={style} onLayout={function onLayout(event) {
const height = event.nativeEvent.layout?.height;
if (height > 0) {
setState(height);
sharedValue.set(true);
}
}}>
<Module4611 start={{
x: 0,
y: 0
}} end={{
x: 0,
y: 1
}} colors={colors} style={[styles.bannerBackgroundGradient, {
height,
width
}]} />
<View style={styles.imageContainer}>
<LottieAnimationView style={styles.trinketsLottie} source={_Module11236} autoPlay={!stateFromStores} />
{image}
</View>
<View style={styles.bannerTextContainer}>
<Text variant="text-md/semibold" color="text-overlay-light" style={styles.bannerText}>{text}</Text>
</View>
</ReanimatedRexport.View>;
};
@@ -0,0 +1,16 @@
// Metro module 11239 (f11240).
import { useBannerBots } from "../hooks/useBannerBots";
import ApplicationsImage from "./ApplicationsImage";
import BannerBase from "./BannerBase";
import { intl, t } from "../../../../../intl/index.native";
export default function BotsBanner(props) {
const bannerBots = useBannerBots({
context: props.context
});
const { firstBotApplication, secondBotApplication } = bannerBots;
const image = <ApplicationsImage firstApplication={firstBotApplication} secondApplication={secondBotApplication} />;
return firstBotApplication == null ? null : secondBotApplication == null ? null : <BannerBase image={image} text={intl.formatToPlainString(t["9SN0xw"], {
firstApplicationName: firstBotApplication.name,
secondApplicationName: secondBotApplication.name
})} />;
};
@@ -0,0 +1,17 @@
// Metro module 11212 (f11213).
import { useEffect } from "react";
import useActivityShelfItems from "../../../../activities/useActivityShelfItems";
import { fetchShelf } from "../../../../activities/EmbeddedActivitiesActionCreators";
export function useActivityApplications({ guildId, fetchesShelf }) {
const r14 = useActivityShelfItems({
guildId
}).map((item) => item.application);
useEffect(() => {
if (fetchesShelf) {
fetchShelf({
guildId
});
}
}, [fetchesShelf, guildId]);
return r14;
}
@@ -0,0 +1,59 @@
// Metro module 11211 (f11212).
import _slicedToArray from "../../../../../_bundle/_slicedToArray";
import ApplicationFrecencyStore from "../../../../applications/ApplicationFrecencyStore";
import ChannelStore from "../../../../../stores/ChannelStore";
import { DismissibleContentGroupName } from "../../../../dismissible_content/DismissibleContentConstants";
import { useIsDismissibleContentDismissed_UNSAFE } from "../../../../dismissible_content/DismissibleContentUnsafeUtils";
import { DismissibleContent } from "../../../../../_bundle/Module1358";
import { useStateFromStores } from "../../../../../_bundle/Module589";
import { useActivityApplications } from "./useActivityApplications";
import useCanShowAppLauncherOnboarding from "./useCanShowAppLauncherOnboarding";
import { useSelectedDismissibleContent } from "../../../../dismissible_content/hooks/useSelectedDismissibleContent";
export default function useAppLauncherOnboardingContent({ channelId }) {
const r6 = [];
const hasUsedActivities = (function useHasUsedActivities({ channel }) {
let r29 = useIsDismissibleContentDismissed_UNSAFE(DismissibleContent.APP_LAUNCHER_ONBOARDING_ACTIVITIES_BANNER);
const isDismissibleContentDismissed_UNSAFE = useIsDismissibleContentDismissed_UNSAFE(DismissibleContent.APP_LAUNCHER_ONBOARDING_APPS_BANNER);
const stateFromStores = useStateFromStores([ApplicationFrecencyStore], () => ApplicationFrecencyStore.getApplicationFrecencyWithoutLoadingLatest());
const guild_id = channel?.guild_id;
if (r29) {
r29 = isDismissibleContentDismissed_UNSAFE;
}
const activityApplications = useActivityApplications({
guildId: guild_id,
fetchesShelf: !r29
});
let hasUsedActivities = false;
for (const item of activityApplications) {
if (stateFromStores.getEntry(item.id) == null) {
continue;
}
hasUsedActivities = true;
break;
}
return {
hasUsedActivities
};
})({
channel: useStateFromStores([ChannelStore], () => ChannelStore.getChannel(channelId))
}).hasUsedActivities;
const canShowAppLauncherOnboarding = useCanShowAppLauncherOnboarding({
channelId
});
const { canShowBotsBanner, canShowAppsOrActivitiesBanner } = canShowAppLauncherOnboarding;
if (canShowBotsBanner) {
r6.push(DismissibleContent.APP_LAUNCHER_ONBOARDING_BOTS_BANNER);
}
if (canShowAppsOrActivitiesBanner) {
if (hasUsedActivities) {
r6.push(DismissibleContent.APP_LAUNCHER_ONBOARDING_ACTIVITIES_BANNER);
} else {
r6.push(DismissibleContent.APP_LAUNCHER_ONBOARDING_APPS_BANNER);
}
}
const r49 = _slicedToArray(useSelectedDismissibleContent(r6, DismissibleContentGroupName.APP_LAUNCHER_ONBOARDING), 2);
return {
visibleContent: r49[0],
markAsDismissed: r49[1]
};
};
@@ -0,0 +1,113 @@
// Metro module 11240 (f11241).
import { useMemo } from "react";
import GuildStore from "../../../../../stores/GuildStore";
import AppLauncherOnboardingStore from "../stores/AppLauncherOnboardingStore";
import { useStateFromStores } from "../../../../../_bundle/Module589";
import { useTopCommands } from "../../../../application_commands/ApplicationCommandFrecencyHooks";
import { useApplicationsInContext, useApplicationCommandsInContext } from "../../../utils/AppLauncherSearchUtils";
import { useActivityApplications } from "./useActivityApplications";
export function useBannerBots({ context: context2 }) {
let c18650_0;
c18650_0 = void 0;
let secondBotApplication = void 0;
const r10 = (function useAppsMap({ context: context2 }) {
const apps = useApplicationsInContext({
context: context2,
onlyWithCommands: true,
includeBuiltIn: false,
includeEmbeddedApps: false,
includeNonEmbeddedApps: true
}).apps;
return useMemo(() => {
const map = new Map();
for (const app of apps) {
map.set(app.id, app);
}
return map;
}, [apps]);
})({
context: context2
});
const apps2 = useApplicationsInContext({
context: context2,
onlyWithCommands: true,
includeBuiltIn: false,
includeEmbeddedApps: false,
includeNonEmbeddedApps: true
}).apps;
const r40 = (function useCommandsMap({ context: context2 }) {
const commands = useApplicationCommandsInContext({
context: context2,
includeBuiltIn: false
}).commands;
return useMemo(() => {
const map = new Map();
for (const command of commands) {
map.set(command.id, command);
}
return map;
}, [commands]);
})({
context: context2
});
const r42 = (function useFrecencyCommandIds({ context }) {
return useTopCommands({
channel: context.channel,
guild: useStateFromStores([GuildStore], () => GuildStore.getGuild(context.channel?.guild_id))
});
})({
context: context2
});
const activityApplications = useActivityApplications({
guildId: context2.channel?.guild_id,
fetchesShelf: true
});
const stateFromStores = useStateFromStores([AppLauncherOnboardingStore], () => AppLauncherOnboardingStore.getRecentApplicationCommandMetadata());
const r56 = stateFromStores != null ? r10.get(stateFromStores.applicationId) : null;
let firstBotApplication = r56;
c18650_0 = r56;
for (const item of r42) {
const r67 = r40.get(item);
if (r67 == null) {
continue;
}
const r72 = r10.get(r67.applicationId);
if (r72 == null) {
continue;
}
if (firstBotApplication == null) {
firstBotApplication = r72;
c18650_0 = r72;
continue;
}
if (r72.id === firstBotApplication?.id) {
continue;
}
secondBotApplication = r72;
break;
}
if (firstBotApplication == null) {
if (apps2.length > 0) {
const r88 = apps2[0];
firstBotApplication = r88;
c18650_0 = r88;
}
if (apps2.length > 1) {
secondBotApplication = apps2[1];
}
} else if (secondBotApplication == null) {
secondBotApplication = apps2.find((item) => item.id !== c18650_0?.id);
}
if (firstBotApplication == null) {
const r93 = activityApplications[0];
firstBotApplication = r93;
c18650_0 = r93;
secondBotApplication = activityApplications[1];
} else if (secondBotApplication == null) {
secondBotApplication = activityApplications[0];
}
return {
firstBotApplication,
secondBotApplication
};
}
@@ -0,0 +1,96 @@
// Metro module 11217 (f11218).
import ChannelStore from "../../../../../stores/ChannelStore";
import GuildMemberCountStore from "../../../../../stores/GuildMemberCountStore";
import UserStore from "../../../../../stores/UserStore";
import AppLauncherOnboardingPersistedStore from "../stores/AppLauncherOnboardingPersistedStore";
import AppLauncherOnboardingStore from "../stores/AppLauncherOnboardingStore";
import { BuiltInSectionId } from "../../../../application_commands/ApplicationCommandConstants";
import Durations from "../../../../../utils/Durations";
import { useStateFromStores, useStateFromStoresObject } from "../../../../../_bundle/Module589";
import SnowflakeUtils from "../../../../../utils/SnowflakeUtils";
import { DismissibleContent } from "../../../../../_bundle/Module1358";
import { useSelectedDismissibleContent } from "../../../../dismissible_content/hooks/useSelectedDismissibleContent";
import { useIsDismissibleContentDismissed_UNSAFE } from "../../../../dismissible_content/DismissibleContentUnsafeUtils";
let c7596_10 = 5 * Durations.Millis.SECOND;
let c7596_11 = 5 * Durations.Millis.SECOND;
let c7596_12 = 14 * Durations.Millis.DAY;
const HOUR = Durations.Millis.HOUR;
const DAY = Durations.Millis.DAY;
export default function useCanShowAppLauncherOnboarding({ channelId }) {
const r19 = Date.now();
const stateFromStores = useStateFromStores([ChannelStore], () => ChannelStore.getChannel(channelId));
const guild_id2 = stateFromStores?.guild_id;
const stateFromStores2 = useStateFromStores([UserStore], () => UserStore.getCurrentUser());
let r39 = stateFromStores2?.createdAt != null && Date.now() < SnowflakeUtils.extractTimestamp(stateFromStores2.id) + c7596_12;
const guild_id = guild_id2;
const stateFromStores3 = useStateFromStores([GuildMemberCountStore], () => GuildMemberCountStore.getMemberCount(guild_id));
const r6 = stateFromStores3 != null && stateFromStores3 < 200;
const stateFromStores4 = useStateFromStores([AppLauncherOnboardingPersistedStore], () => AppLauncherOnboardingPersistedStore.getLastSeenTimeMs());
const r66 = stateFromStores4 != null && r19 < stateFromStores4 + HOUR;
const r69 = [];
if (!r66) {
r69.push(DismissibleContent.APP_LAUNCHER_GLOBAL_SEARCH_ONBOARDING);
}
const [r83] = useSelectedDismissibleContent(r69);
const APP_LAUNCHER_GLOBAL_SEARCH_ONBOARDING = DismissibleContent.APP_LAUNCHER_GLOBAL_SEARCH_ONBOARDING;
const stateFromStoresObject = useStateFromStoresObject([AppLauncherOnboardingStore], () => ({
recentMessageMetadata: AppLauncherOnboardingStore.getRecentMessageMetadata(),
recentApplicationCommandMetadata: AppLauncherOnboardingStore.getRecentApplicationCommandMetadata()
}));
const { recentMessageMetadata, recentApplicationCommandMetadata } = stateFromStoresObject;
const stateFromStores5 = useStateFromStores([AppLauncherOnboardingPersistedStore], () => AppLauncherOnboardingPersistedStore.getTriggeredOnboardingContentMetadata());
const r4 = recentMessageMetadata != null && r19 < recentMessageMetadata.timeMs + c7596_10 && recentMessageMetadata?.channelId === channelId;
const r104 = recentApplicationCommandMetadata != null && r19 < recentApplicationCommandMetadata.timeMs + c7596_11 && recentApplicationCommandMetadata?.channelId === channelId;
const applicationId = recentApplicationCommandMetadata?.applicationId;
const BUILT_IN = BuiltInSectionId.BUILT_IN;
const isDismissibleContentDismissed_UNSAFE = useIsDismissibleContentDismissed_UNSAFE(DismissibleContent.APP_LAUNCHER_ONBOARDING_BOTS_BANNER);
let r127 = useIsDismissibleContentDismissed_UNSAFE(DismissibleContent.APP_LAUNCHER_ONBOARDING_APPS_BANNER);
const isDismissibleContentDismissed_UNSAFE2 = useIsDismissibleContentDismissed_UNSAFE(DismissibleContent.APP_LAUNCHER_ONBOARDING_ACTIVITIES_BANNER);
const r136 = stateFromStores5 != null && stateFromStores5.channelId === channelId && stateFromStores5.timeMs + DAY > r19;
const r141 = {
canShowOnboarding: false,
canShowBotsBanner: false,
canShowAppsOrActivitiesBanner: false,
willShowGlobalSearchOnboarding: false,
fromTriggeredOnboarding: false
};
if (stateFromStores != null) {
if (!((r104 ? applicationId === BUILT_IN : !r104) || isDismissibleContentDismissed_UNSAFE || r66)) {
r141.canShowOnboarding = true;
r141.canShowBotsBanner = true;
}
if (!r39) {
r39 = !r4;
}
if (!r39) {
r39 = !r6;
}
if (!r39) {
r39 = r66;
}
if (!r39) {
if (r127) {
r127 = isDismissibleContentDismissed_UNSAFE2;
}
r39 = r127;
}
if (!r39) {
r141.canShowOnboarding = true;
r141.canShowAppsOrActivitiesBanner = true;
}
if (r83 === APP_LAUNCHER_GLOBAL_SEARCH_ONBOARDING) {
r141.willShowGlobalSearchOnboarding = true;
r141.canShowOnboarding = true;
}
const canShowOnboarding = r141.canShowOnboarding;
if (canShowOnboarding ? !canShowOnboarding : r136) {
r141.canShowOnboarding = true;
r141.canShowBotsBanner = stateFromStores5.canShowBotsBanner;
r141.canShowAppsOrActivitiesBanner = stateFromStores5.canShowAppsOrActivitiesBanner;
r141.willShowGlobalSearchOnboarding = stateFromStores5.willShowGlobalSearchOnboarding;
r141.fromTriggeredOnboarding = true;
}
}
return r141;
};
export { c7596_10 as RECENT_MESSAGE_MS };
@@ -0,0 +1,78 @@
// Metro module 11218 (f11219).
import Module589 from "../../../../../_bundle/Module589";
import Dispatcher from "../../../../../Dispatcher";
let c7597_0 = {
canShowBotsBanner: false,
canShowAppsOrActivitiesBanner: false,
willShowGlobalSearchOnboarding: false,
timeMs: 0,
channelId: "0"
};
let c7597_1 = {
lastSeenTimeMs: null,
triggeredOnboardingContentMetadata: c7597_0
};
class AppLauncherOnboardingPersistedStore extends Module589.PersistedStore {
static displayName = "AppLauncherOnboardingPersistedStore";
static persistKey = "AppLauncherOnboardingPersistedStore";
static migrations = [(a0) => {
let lastSeenTimeMs = a0?.lastSeenTimeMs;
if (lastSeenTimeMs == null) {
lastSeenTimeMs = null;
}
let canShowBotsBanner = a0 == null ? void 0 : a0.triggeredOnboardingContentMetadata?.canShowBotsBanner;
if (canShowBotsBanner == null) {
canShowBotsBanner = c7597_0.canShowBotsBanner;
}
let canShowAppsOrActivitiesBanner = a0 == null ? void 0 : a0.triggeredOnboardingContentMetadata?.canShowAppsOrActivitiesBanner;
if (canShowAppsOrActivitiesBanner == null) {
canShowAppsOrActivitiesBanner = c7597_0.canShowAppsOrActivitiesBanner;
}
let willShowGlobalSearchOnboarding = a0 == null ? void 0 : a0.triggeredOnboardingContentMetadata?.willShowGlobalSearchOnboarding;
if (willShowGlobalSearchOnboarding == null) {
willShowGlobalSearchOnboarding = c7597_0.willShowGlobalSearchOnboarding;
}
let timeMs = a0 == null ? void 0 : a0.triggeredOnboardingContentMetadata?.timeMs;
if (timeMs == null) {
timeMs = c7597_0.timeMs;
}
let channelId = a0 == null ? void 0 : a0.triggeredOnboardingContentMetadata?.channelId;
if (channelId == null) {
channelId = c7597_0.channelId;
}
return {
lastSeenTimeMs,
triggeredOnboardingContentMetadata: {
canShowBotsBanner,
canShowAppsOrActivitiesBanner,
willShowGlobalSearchOnboarding,
timeMs,
channelId
}
};
}];
initialize(a0) {
if (a0 != null) {
c7597_1.lastSeenTimeMs = a0.lastSeenTimeMs;
c7597_1.triggeredOnboardingContentMetadata = a0.triggeredOnboardingContentMetadata;
}
}
getState() {
return c7597_1;
}
getLastSeenTimeMs() {
return c7597_1.lastSeenTimeMs;
}
getTriggeredOnboardingContentMetadata() {
return c7597_1.triggeredOnboardingContentMetadata;
}
}
const appLauncherOnboardingPersistedStore = new AppLauncherOnboardingPersistedStore(Dispatcher, {
APP_LAUNCHER_ONBOARDING_SET_LAST_SEEN_TIME_MS: function handleSetLastSeenTimeMs() {
c7597_1.lastSeenTimeMs = Date.now();
},
APP_LAUNCHER_ONBOARDING_SET_TRIGGERED_ONBOARDING_CONTENT_METADATA: function handleSetTriggeredOnboardingContentMetadata(a0) {
c7597_1.triggeredOnboardingContentMetadata = a0.triggeredOnboardingContentMetadata;
}
});
export default appLauncherOnboardingPersistedStore;
@@ -0,0 +1,47 @@
// Metro module 11219 (f11220).
import UserStore from "../../../../../stores/UserStore";
import SnowflakeUtils from "../../../../../utils/SnowflakeUtils";
import { RECENT_MESSAGE_MS } from "../hooks/useCanShowAppLauncherOnboarding";
import { CommandOrigin } from "../../../../application_commands/ApplicationCommandTypes";
import Module589 from "../../../../../_bundle/Module589";
import Dispatcher from "../../../../../Dispatcher";
let c7598_3, c7598_4;
class AppLauncherOnboardingStore extends Module589.Store {
static displayName = "AppLauncherOnboardingStore";
initialize() {
this.waitFor(UserStore);
}
getRecentMessageMetadata() {
return c7598_3;
}
getRecentApplicationCommandMetadata() {
return c7598_4;
}
}
const appLauncherOnboardingStore = new AppLauncherOnboardingStore(Dispatcher, {
APPLICATION_COMMAND_USED: function handleApplicationCommandUsed(a0) {
const { command, context } = a0;
if (a0.commandOrigin !== CommandOrigin.APPLICATION_LAUNCHER && context.channel != null) {
c7598_4 = {
timeMs: Date.now(),
applicationId: command.applicationId,
guildId: context.guild?.id,
channelId: context.channel.id
};
}
},
MESSAGE_CREATE: function handleMessageCreate({ channelId, guildId, message }) {
const currentUser = UserStore.getCurrentUser();
if (currentUser != null && currentUser.id != null && message.author != null && currentUser.id === message.author.id) {
const timeMs = SnowflakeUtils.extractTimestamp(message.id);
if (!(Date.now() > timeMs + RECENT_MESSAGE_MS)) {
c7598_3 = {
timeMs,
guildId,
channelId
};
}
}
}
});
export default appLauncherOnboardingStore;
@@ -0,0 +1,14 @@
// Metro module 11220 (f11221).
import { UNSAFE_markDismissibleContentAsDismissed } from "../../../../dismissible_content/DismissibleContentUnsafeUtils";
import { DismissibleContent } from "../../../../../_bundle/Module1358";
export default function completeAppLauncherOnboarding(a0) {
UNSAFE_markDismissibleContentAsDismissed(DismissibleContent.APP_LAUNCHER_ONBOARDING_ACTIVITIES_BANNER, {
dismissAction: a0
});
UNSAFE_markDismissibleContentAsDismissed(DismissibleContent.APP_LAUNCHER_ONBOARDING_BOTS_BANNER, {
dismissAction: a0
});
UNSAFE_markDismissibleContentAsDismissed(DismissibleContent.APP_LAUNCHER_ONBOARDING_APPS_BANNER, {
dismissAction: a0
});
};