feature/sidebar #8

Merged
ilia merged 50 commits from feature/sidebar into main 2026-01-03 10:56:23 +00:00
Showing only changes of commit 1ecbc9b9d7 - Show all commits

View File

@@ -1,4 +1,4 @@
import { derived, Readable, Writable, writable } from 'svelte/store';
import { derived, type Readable, type Writable, writable } from 'svelte/store';
export interface Category {
/**
@@ -12,7 +12,7 @@ export interface Category {
/**
* Category selected state
*/
selected: boolean;
selected?: boolean;
}
export interface FilterModel {
@@ -35,6 +35,11 @@ export interface FilterStore<T extends FilterModel> extends Writable<T> {
* @returns Readable store with filter data
*/
getStore: () => Readable<T>;
/**
* Get all categories.
* @returns Readable store with categories
*/
getAllCategories: () => Readable<Category[]>;
/**
* Get the selected categories.
* @returns Readable store with selected categories
@@ -83,7 +88,7 @@ export interface FilterStore<T extends FilterModel> extends Writable<T> {
* @returns FilterStore<T>
*/
export function createFilterStore<T extends FilterModel>(
initialState: T,
initialState?: T,
): FilterStore<T> {
const { subscribe, set, update } = writable<T>(initialState);
@@ -103,6 +108,14 @@ export function createFilterStore<T extends FilterModel>(
subscribe,
};
},
/**
* Get the filtered categories.
*/
getAllCategories: () => {
return derived({ subscribe }, $store => {
return $store.categories;
});
},
/**
* Get the selected categories.
*/