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
+
+ )}