Modules/api: export constraints, filter by inventory

This commit is contained in:
Johannes Kirschbauer
2024-11-19 10:36:29 +01:00
parent cfe9dbf117
commit 3a46119722
3 changed files with 18 additions and 3 deletions

View File

@@ -2,7 +2,13 @@ import { createQuery } from "@tanstack/solid-query";
import { callApi } from "../api";
import toast from "solid-toast";
export const createModulesQuery = (uri: string | null) =>
export interface ModulesFilter {
features: string[];
}
export const createModulesQuery = (
uri: string | null,
filter?: ModulesFilter,
) =>
createQuery(() => ({
queryKey: [uri, "list_modules"],
placeholderData: [],
@@ -17,7 +23,12 @@ export const createModulesQuery = (uri: string | null) =>
if (response.status === "error") {
toast.error("Failed to fetch data");
} else {
return Object.entries(response.data);
if (!filter) {
return Object.entries(response.data);
}
return Object.entries(response.data).filter(([key, value]) =>
filter.features.every((f) => (value.features || []).includes(f)),
);
}
}
return [];