From dc94a886e6108ed2f4473022639dd2dc59758df8 Mon Sep 17 00:00:00 2001 From: Chubby Granny Chaser Date: Tue, 2 Jul 2024 17:34:46 +0100 Subject: [PATCH] fix: sorting repacks modal --- src/main/data-source.ts | 1 - .../src/pages/game-details/modals/repacks-modal.tsx | 13 +++++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/main/data-source.ts b/src/main/data-source.ts index b47ce2c0..cafb052b 100644 --- a/src/main/data-source.ts +++ b/src/main/data-source.ts @@ -27,7 +27,6 @@ export const createDataSource = ( DownloadQueue, UserAuth, ], - synchronize: true, database: databasePath, ...options, }); diff --git a/src/renderer/src/pages/game-details/modals/repacks-modal.tsx b/src/renderer/src/pages/game-details/modals/repacks-modal.tsx index feae8e0e..d2d8f5d9 100644 --- a/src/renderer/src/pages/game-details/modals/repacks-modal.tsx +++ b/src/renderer/src/pages/game-details/modals/repacks-modal.tsx @@ -1,4 +1,4 @@ -import { useCallback, useContext, useEffect, useState } from "react"; +import { useCallback, useContext, useEffect, useMemo, useState } from "react"; import { useTranslation } from "react-i18next"; import parseTorrent from "parse-torrent"; @@ -12,6 +12,7 @@ import { format } from "date-fns"; import { DownloadSettingsModal } from "./download-settings-modal"; import { gameDetailsContext } from "@renderer/context"; import { Downloader } from "@shared"; +import { orderBy } from "lodash-es"; export interface RepacksModalProps { visible: boolean; @@ -38,16 +39,20 @@ export function RepacksModal({ const { t } = useTranslation("game_details"); + const sortedRepacks = useMemo(() => { + return orderBy(repacks, (repack) => repack.uploadDate, "desc"); + }, [repacks]); + const getInfoHash = useCallback(async () => { const torrent = await parseTorrent(game?.uri ?? ""); if (torrent.infoHash) setInfoHash(torrent.infoHash); }, [game]); useEffect(() => { - setFilteredRepacks(repacks); + setFilteredRepacks(sortedRepacks); if (game?.uri) getInfoHash(); - }, [repacks, visible, game, getInfoHash]); + }, [sortedRepacks, visible, game, getInfoHash]); const handleRepackClick = (repack: GameRepack) => { setRepack(repack); @@ -58,7 +63,7 @@ export function RepacksModal({ const term = event.target.value.toLocaleLowerCase(); setFilteredRepacks( - repacks.filter((repack) => { + sortedRepacks.filter((repack) => { const lowerCaseTitle = repack.title.toLowerCase(); const lowerCaseRepacker = repack.repacker.toLowerCase();