diff --git a/src/main/events/download-sources/put-download-source.ts b/src/main/events/download-sources/put-download-source.ts index 3aefd927..72297059 100644 --- a/src/main/events/download-sources/put-download-source.ts +++ b/src/main/events/download-sources/put-download-source.ts @@ -5,9 +5,13 @@ const putDownloadSource = async ( _event: Electron.IpcMainInvokeEvent, objectIds: string[] ) => { - return HydraApi.put<{ fingerprint: string }>("/download-sources", { - objectIds, - }); + return HydraApi.put<{ fingerprint: string }>( + "/download-sources", + { + objectIds, + }, + { needsAuth: false } + ); }; registerEvent("putDownloadSource", putDownloadSource); diff --git a/src/renderer/src/pages/catalogue/catalogue.tsx b/src/renderer/src/pages/catalogue/catalogue.tsx index 62bb3f79..96bb3dd2 100644 --- a/src/renderer/src/pages/catalogue/catalogue.tsx +++ b/src/renderer/src/pages/catalogue/catalogue.tsx @@ -305,6 +305,7 @@ export default function Catalogue() {
dispatch(setSearch({ genres: [] }))} color={filterCategoryColors.genres} onSelect={(value) => { if (filters.genres.includes(value)) { @@ -359,6 +360,7 @@ export default function Catalogue() { dispatch(setSearch({ tags: [] }))} onSelect={(value) => { if (filters.tags.includes(value)) { dispatch( @@ -382,6 +384,9 @@ export default function Catalogue() { + dispatch(setSearch({ downloadSourceFingerprints: [] })) + } onSelect={(value) => { if (filters.downloadSourceFingerprints.includes(value)) { dispatch( @@ -415,6 +420,7 @@ export default function Catalogue() { dispatch(setSearch({ developers: [] }))} onSelect={(value) => { if (filters.developers.includes(value)) { dispatch( @@ -440,6 +446,7 @@ export default function Catalogue() { dispatch(setSearch({ publishers: [] }))} onSelect={(value) => { if (filters.publishers.includes(value)) { dispatch( diff --git a/src/renderer/src/pages/catalogue/filter-section.tsx b/src/renderer/src/pages/catalogue/filter-section.tsx index 976b92c7..8448dd96 100644 --- a/src/renderer/src/pages/catalogue/filter-section.tsx +++ b/src/renderer/src/pages/catalogue/filter-section.tsx @@ -13,6 +13,7 @@ export interface FilterSectionProps { }[]; onSelect: (value: T) => void; color: string; + onClear: () => void; } export function FilterSection({ @@ -20,6 +21,7 @@ export function FilterSection({ items, color, onSelect, + onClear, }: FilterSectionProps) { const [search, setSearch] = useState(""); @@ -33,6 +35,10 @@ export function FilterSection({ return items; }, [items, search]); + const selectedItemsCount = useMemo(() => { + return items.filter((item) => item.checked).length; + }, [items]); + const onSearch = useCallback((value: string) => { setSearch(value); }, []); @@ -61,9 +67,26 @@ export function FilterSection({
- - {formatNumber(items.length)} disponíveis - + {selectedItemsCount > 0 ? ( + + ) : ( + + {formatNumber(items.length)} disponíveis + + )}