From c4d942eb2eb2ce7e832dc741cc4230b51f21503e Mon Sep 17 00:00:00 2001 From: MathieuG-P <40181755+Zagrios@users.noreply.github.com> Date: Sat, 10 Dec 2022 01:29:46 +0100 Subject: [PATCH] search on sort change AND add search text --- .../download-maps-modal.component.tsx | 21 ++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/src/renderer/components/modal/modal-types/download-maps-modal.component.tsx b/src/renderer/components/modal/modal-types/download-maps-modal.component.tsx index 2a1573fe..946cabdd 100644 --- a/src/renderer/components/modal/modal-types/download-maps-modal.component.tsx +++ b/src/renderer/components/modal/modal-types/download-maps-modal.component.tsx @@ -12,7 +12,7 @@ import { MapsDownloaderService } from "renderer/services/maps-downloader.service import { MapsManagerService } from "renderer/services/maps-manager.service"; import { ModalComponent } from "renderer/services/modale.service"; import { BSVersion } from "shared/bs-version.interface"; -import { BsvMapCharacteristic, BsvMapDetail, MapFilter, SearchParams } from "shared/models/maps/beat-saver.model"; +import { BsvMapCharacteristic, BsvMapDetail, MapFilter, SearchOrder, SearchParams } from "shared/models/maps/beat-saver.model"; import BeatWaitingImg from "../../../../../assets/images/apngs/beat-waiting.png"; import equal from "fast-deep-equal/es6"; import { ProgressBarService } from "renderer/services/progress-bar.service"; @@ -25,11 +25,11 @@ export const DownloadMapsModal: ModalComponent = ({data}) => { const progressBar = ProgressBarService.getInstance(); const currentDownload = useObservable(mapsDownloader.currentMapDownload$); - const mapsInQueue = useObservable(mapsDownloader.mapsInQueue$) + const mapsInQueue = useObservable(mapsDownloader.mapsInQueue$); const [filter, setFilter] = useState({}); const [query, setQuery] = useState(""); const [maps, setMaps] = useState([]); - const [sortOrder, setSortOrder] = useState(BSV_SORT_ORDER.at(0)); + const [sortOrder, setSortOrder] = useState(BSV_SORT_ORDER.at(0)); const [ownedMapHashs, setOwnedMapHashs] = useState([]); const [searchParams, setSearchParams] = useState({ sortOrder: sortOrder, @@ -47,6 +47,7 @@ export const DownloadMapsModal: ModalComponent = ({data}) => { useEffect(() => { loadMaps(searchParams); }, [searchParams]); + useEffect(() => { mapsManager.getMaps(data, false).toPromise().then(maps => setOwnedMapHashs(maps.map(map => map.hash))); @@ -125,11 +126,17 @@ export const DownloadMapsModal: ModalComponent = ({data}) => { mapsDownloader.removeMapToDownload({map, version: data}); }, []); + const handleSortChange = (newSort: string) => { + setSortOrder(() => newSort as SearchOrder); + setMaps(() => []); + setSearchParams(() => ({...searchParams, sortOrder: (newSort as SearchOrder)})); + } + const handleSearch = () => { const searchParams: SearchParams = { sortOrder: sortOrder, filter: filter, - q: query, + q: query.trim(), page: 0, }; @@ -149,9 +156,9 @@ export const DownloadMapsModal: ModalComponent = ({data}) => { - setQuery(e.target.value.trim())}/> - {e.preventDefault(); handleSearch()}}/> - + setQuery(e.target.value)}/> + {e.preventDefault(); handleSearch()}}/> +
    {maps.length === 0 ? (