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

40 lines
1.7 KiB
TypeScript

// Metro module 11923 (f11924).
import GameStore from "../../games/GameStore";
import UserStore from "../../../stores/UserStore";
import { SIMILAR_GAMES_BLOCKED_GAME_IDS } from "../../../_bundle/Module8657";
import { useSimilarGameIds } from "../GameProfileHttpUtils";
import { useGames } from "../../games/hooks/useGame";
import { useStateFromStores, useStateFromStoresArray } from "../../../_bundle/Module589";
import { gameIsAcceptable } from "./useShouldOpenGameProfileModal";
import { isGameProfileObscured } from "./useGameProfileObscured";
let c8177_5 = [];
const similarGames = [];
export default function useSimilarGames(a0, a1) {
let r13;
const r2 = a1 ? !SIMILAR_GAMES_BLOCKED_GAME_IDS.has(a0) : a1;
const similarGameIds = useSimilarGameIds(a0, r2);
const { data, isLoading, error } = similarGameIds;
if (r2) {
r13 = data;
if (r13 == null) {
r13 = c8177_5;
}
} else {
r13 = c8177_5;
}
let c19274_0 = r13;
useGames(r13);
const stateFromStores = useStateFromStores([GameStore], () => c19274_0.some((item) => GameStore.getGame(item) == null && !GameStore.hasNoData(item) && !GameStore.didFetchingFail(item)), [r13]);
const stateFromStoresArray = useStateFromStoresArray([GameStore, UserStore], () => {
const nsfwAllowed = UserStore.getCurrentUser()?.nsfwAllowed;
return c19274_0.map((item) => GameStore.getGame(item)).filter((item) => item != null).filter((item) => gameIsAcceptable(item) && !isGameProfileObscured(item, nsfwAllowed));
}, [r13]);
return r2 ? {
isFetching: error == null && data == null || isLoading || stateFromStores,
similarGames: stateFromStoresArray
} : {
isFetching: false,
similarGames
};
};