Files
discord-decomp/modules/quests/experiments/index.tsx
T
2026-11-01 12:12:55 +02:00

331 lines
7.8 KiB
TypeScript

// Metro module 10494 (f10495).
import { useState, useEffect } from "react";
import { createApexExperiment } from "../../experiments/apex/index";
import { useQuestOrbMultiplierEligibility } from "../hooks/QuestOrbMultiplierHooks";
import { QuestOrbMultiplierEligibilityType } from "../utils/QuestOrbMultiplierUtils";
import { QuestOrbsMultiplier } from "../../../_bundle/Module10495";
import Durations from "../../../utils/Durations";
const apexExperiment7 = createApexExperiment({
name: "2025-11-video-end-card-v2",
kind: "user",
defaultConfig: {
enabled: false
},
variations: {
1: {
enabled: true
}
}
});
const apexExperiment6 = createApexExperiment({
name: "2026-02-new-video-quest-progress-bar-styling",
kind: "user",
defaultConfig: {
enabled: false
},
variations: {
0: {
enabled: false
},
1: {
enabled: true
}
}
});
const apexExperiment5 = createApexExperiment({
name: "2026-05-app-store-overlay-feature-gate",
kind: "user",
defaultConfig: {
enabled: false
},
variations: {
1: {
enabled: true
}
}
});
const apexExperiment4 = createApexExperiment({
name: "2026-03-quest-reload-video-on-obscured",
kind: "user",
defaultConfig: {
enabled: false
},
variations: {
1: {
enabled: true
}
}
});
const r16 = {
DEFAULT: 0,
0: "DEFAULT",
AUTO_ENABLE_CAPTIONS: 1,
1: "AUTO_ENABLE_CAPTIONS",
AUTO_UNMUTE: 2,
2: "AUTO_UNMUTE"
};
const apexExperiment3 = createApexExperiment({
name: "2026-03-muted-video-quest-new-defaults",
kind: "user",
defaultConfig: {
enabled: false,
variant: r16.DEFAULT
},
variations: {
0: {
enabled: false,
variant: r16.DEFAULT
},
1: {
enabled: true,
variant: r16.AUTO_ENABLE_CAPTIONS
},
2: {
enabled: true,
variant: r16.AUTO_UNMUTE
}
}
});
const apexExperiment = createApexExperiment({
name: "2026-04-quests-premium-orb-multiplier-marketing",
kind: "user",
defaultConfig: {
enabled: false
},
variations: {
0: {
enabled: false
},
1: {
enabled: true
}
}
});
const apexExperiment8 = createApexExperiment({
name: "2026-03-video-quest-player-refactor",
kind: "user",
defaultConfig: {
enabled: false
},
variations: {
1: {
enabled: true
}
}
});
const apexExperiment9 = createApexExperiment({
name: "2026-04-composed-quest-player",
kind: "user",
defaultConfig: {
enabled: false
},
variations: {
1: {
enabled: true
}
}
});
const apexExperiment10 = createApexExperiment({
name: "2026-03-mobile-quest-home-red-dot-notification",
kind: "user",
defaultConfig: {
enabled: false
},
variations: {
0: {
enabled: false
},
1: {
enabled: true
}
}
});
const apexExperiment11 = createApexExperiment({
name: "2026-05-quest-home-tile-redesign",
kind: "user",
defaultConfig: {
useNewLayoutWithSearch: false,
useNewTile: false,
useLargeFeaturedTiles: false,
ctaOnHover: false,
clickableTile: false
},
variations: {
0: {
useNewLayoutWithSearch: false,
useNewTile: false,
useLargeFeaturedTiles: false,
ctaOnHover: false,
clickableTile: false
},
1: {
useNewLayoutWithSearch: true,
useNewTile: false,
useLargeFeaturedTiles: false,
ctaOnHover: false,
clickableTile: false
},
2: {
useNewLayoutWithSearch: true,
useNewTile: true,
useLargeFeaturedTiles: true,
ctaOnHover: true,
clickableTile: false
},
3: {
useNewLayoutWithSearch: true,
useNewTile: true,
useLargeFeaturedTiles: false,
ctaOnHover: true,
clickableTile: false
},
4: {
useNewLayoutWithSearch: true,
useNewTile: true,
useLargeFeaturedTiles: true,
ctaOnHover: false,
clickableTile: false
},
5: {
useNewLayoutWithSearch: true,
useNewTile: true,
useLargeFeaturedTiles: true,
ctaOnHover: true,
clickableTile: true
}
}
});
const apexExperiment12 = createApexExperiment({
name: "2026-05-bounty-stale-refresh-quest-home",
kind: "user",
defaultConfig: {
enabled: false
},
variations: {
0: {
enabled: false
},
1: {
enabled: true
}
}
});
const apexExperiment2 = createApexExperiment({
name: "2026-06-remove-quest-home-hero",
kind: "user",
defaultConfig: {
enabled: false
},
variations: {
0: {
enabled: false
},
1: {
enabled: true
}
}
});
let c7040_6 = new Date("2026-08-01T10:00:00-07:00");
let c7040_7 = new Date("2026-08-07T10:00:00-07:00");
let c7040_8 = 5 * Durations.Millis.MINUTE;
const r156 = {
CONTROL: 0,
0: "CONTROL",
NEW_LAYOUT_WITH_SEARCH: 1,
1: "NEW_LAYOUT_WITH_SEARCH",
LARGE_MASK_MARGIN: 2,
2: "LARGE_MASK_MARGIN",
REMOVE_QUEST_TITLE_SUFFIX: 3,
3: "REMOVE_QUEST_TITLE_SUFFIX",
REPLACE_QUEST_NAME_WITH_GAME_PUBLISHER: 4,
4: "REPLACE_QUEST_NAME_WITH_GAME_PUBLISHER"
};
const apexExperiment13 = createApexExperiment({
name: "2026-06-quest-home-layout-visual-tweaks",
kind: "user",
defaultConfig: {
enabled: false,
variant: r156.CONTROL
},
variations: {
0: {
enabled: false,
variant: r156.CONTROL
},
1: {
enabled: true,
variant: r156.NEW_LAYOUT_WITH_SEARCH
},
2: {
enabled: true,
variant: r156.LARGE_MASK_MARGIN
},
3: {
enabled: true,
variant: r156.REMOVE_QUEST_TITLE_SUFFIX
},
4: {
enabled: true,
variant: r156.REPLACE_QUEST_NAME_WITH_GAME_PUBLISHER
}
}
});
const apexExperiment14 = createApexExperiment({
name: "2026-07-quest-bar-secondary-cta",
kind: "user",
defaultConfig: {
enabled: false,
showPlayInstantlyLabel: false
},
variations: {
0: {
enabled: false,
showPlayInstantlyLabel: false
},
1: {
enabled: true,
showPlayInstantlyLabel: false
},
2: {
enabled: true,
showPlayInstantlyLabel: true
}
}
});
export { apexExperiment7 as VideoEndCardV2Experiment };
export { apexExperiment6 as NewVideoQuestProgressBarStylingExperiment };
export { apexExperiment5 as AppStoreBottomSheetOverlayFeatureGate };
export { apexExperiment4 as QuestReloadVideoOnObscuredExperiment };
export { r16 as MutedVideoQuestNewDefaultsVariant };
export { apexExperiment3 as MutedVideoQuestNewDefaultsExperiment };
export function useQuestOrbsMultiplierMarketing(a0) {
const enabled = apexExperiment.useConfig({
location: a0
}).enabled;
const questOrbMultiplierEligibility = useQuestOrbMultiplierEligibility();
return {
shouldShowBonusOrbsUX: questOrbMultiplierEligibility !== QuestOrbMultiplierEligibilityType.INELIGIBLE && questOrbMultiplierEligibility !== QuestOrbMultiplierEligibilityType.CREPE && enabled,
multiplier: QuestOrbsMultiplier.PREMIUM_TIER_2_MULTIPLIER_PERCENTAGE_POINTS / 100
};
}
export { apexExperiment8 as VideoQuestPlayerRefactorExperiment };
export { apexExperiment9 as ComposedQuestPlayerExperiment };
export { apexExperiment10 as MobileQuestHomeRedDotNotificationExperiment };
export { apexExperiment11 as QuestHomeTileRedesignExperiment };
export { apexExperiment12 as BountyStaleRefreshQuestHomeExperiment };
export function useShouldRemoveQuestHomeHero() {
const [state, setState] = useState(() => new Date());
useEffect(() => {
let c26697_0 = setInterval(() => setState(new Date()), c7040_8);
return () => clearInterval(c26697_0);
}, []);
const r18 = state >= c7040_6 && state < c7040_7;
const enabled = apexExperiment2.useConfig({
location: r18 ? "remove-quest-home-hero-eligible" : "remove-quest-home-hero-ineligible"
}).enabled;
return !!r18 && enabled;
}
export { r156 as QuestHomeLayoutVisualTweakVariant };
export { apexExperiment13 as QuestHomeLayoutVisualTweaksExperiment };
export { apexExperiment14 as QuestBarSecondaryCtaExperiment };