feat: game-details call getRandomCall on button click

This commit is contained in:
Zamitto 2024-04-27 18:41:37 -03:00
parent 6068c506c3
commit 2426eab371

View file

@ -53,18 +53,10 @@ export function GameDetails() {
const [showRepacksModal, setShowRepacksModal] = useState(false); const [showRepacksModal, setShowRepacksModal] = useState(false);
const [showSelectFolderModal, setShowSelectFolderModal] = useState(false); const [showSelectFolderModal, setShowSelectFolderModal] = useState(false);
const randomGameObjectID = useRef<string | null>(null);
const dispatch = useAppDispatch(); const dispatch = useAppDispatch();
const { game: gameDownloading, startDownload, isDownloading } = useDownload(); const { game: gameDownloading, startDownload, isDownloading } = useDownload();
const getRandomGame = useCallback(() => {
window.electron.getRandomGame().then((objectID) => {
randomGameObjectID.current = objectID;
});
}, []);
const handleImageSettled = useCallback((url: string) => { const handleImageSettled = useCallback((url: string) => {
average(url, { amount: 1, format: "hex" }) average(url, { amount: 1, format: "hex" })
.then((color) => { .then((color) => {
@ -89,8 +81,6 @@ export function GameDetails() {
setIsGamePlaying(false); setIsGamePlaying(false);
dispatch(setHeaderTitle("")); dispatch(setHeaderTitle(""));
getRandomGame();
window.electron window.electron
.getGameShopDetails(objectID, "steam", getSteamLanguage(i18n.language)) .getGameShopDetails(objectID, "steam", getSteamLanguage(i18n.language))
.then((result) => { .then((result) => {
@ -114,7 +104,7 @@ export function GameDetails() {
getGame(); getGame();
setHowLongToBeat({ isLoading: true, data: null }); setHowLongToBeat({ isLoading: true, data: null });
}, [getGame, getRandomGame, dispatch, navigate, objectID, i18n.language]); }, [getGame, dispatch, navigate, objectID, i18n.language]);
const isGameDownloading = isDownloading && gameDownloading?.id === game?.id; const isGameDownloading = isDownloading && gameDownloading?.id === game?.id;
@ -158,16 +148,14 @@ export function GameDetails() {
}); });
}; };
const handleRandomizerClick = () => { const handleRandomizerClick = async () => {
if (!randomGameObjectID.current) return; const randomGameObjectID = await window.electron.getRandomGame();
const searchParams = new URLSearchParams({ const searchParams = new URLSearchParams({
fromRandomizer: "1", fromRandomizer: "1",
}); });
navigate( navigate(`/game/steam/${randomGameObjectID}?${searchParams.toString()}`);
`/game/steam/${randomGameObjectID.current}?${searchParams.toString()}`
);
}; };
const fromRandomizer = searchParams.get("fromRandomizer"); const fromRandomizer = searchParams.get("fromRandomizer");