40 lines
1.7 KiB
TypeScript
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
|
|
};
|
|
};
|