diff --git a/src/shared/store/createFilterStore.ts b/src/shared/store/createFilterStore.ts index b632f53..8a27d0e 100644 --- a/src/shared/store/createFilterStore.ts +++ b/src/shared/store/createFilterStore.ts @@ -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 extends Writable { * @returns Readable store with filter data */ getStore: () => Readable; + /** + * Get all categories. + * @returns Readable store with categories + */ + getAllCategories: () => Readable; /** * Get the selected categories. * @returns Readable store with selected categories @@ -83,7 +88,7 @@ export interface FilterStore extends Writable { * @returns FilterStore */ export function createFilterStore( - initialState: T, + initialState?: T, ): FilterStore { const { subscribe, set, update } = writable(initialState); @@ -103,6 +108,14 @@ export function createFilterStore( subscribe, }; }, + /** + * Get the filtered categories. + */ + getAllCategories: () => { + return derived({ subscribe }, $store => { + return $store.categories; + }); + }, /** * Get the selected categories. */