mirror of
https://github.com/moku-project/Moku.git
synced 2026-06-14 01:39:56 -05:00
37 lines
964 B
TypeScript
37 lines
964 B
TypeScript
import type { Extension, Source, Manga } from "$lib/types";
|
|
|
|
export const extensionsState = $state({
|
|
items: [] as Extension[],
|
|
sources: [] as Source[],
|
|
activeSource: null as Source | null,
|
|
loading: false,
|
|
error: null as string | null,
|
|
|
|
filter: {
|
|
query: "",
|
|
installed: false,
|
|
language: "all",
|
|
},
|
|
|
|
browseResults: [] as Manga[],
|
|
browseLoading: false,
|
|
browseError: null as string | null,
|
|
browseHasMore: false,
|
|
});
|
|
|
|
export function filteredExtensions() {
|
|
let result = extensionsState.items;
|
|
|
|
if (extensionsState.filter.installed) {
|
|
result = result.filter(e => e.installed);
|
|
}
|
|
if (extensionsState.filter.language !== "all") {
|
|
result = result.filter(e => e.lang === extensionsState.filter.language);
|
|
}
|
|
if (extensionsState.filter.query) {
|
|
const q = extensionsState.filter.query.toLowerCase();
|
|
result = result.filter(e => e.name.toLowerCase().includes(q));
|
|
}
|
|
|
|
return result;
|
|
} |