UNPKG

@replyke/core

Version:

Replyke: Build interactive apps with social features like comments, votes, feeds, user lists, notifications, and more.

427 lines (426 loc) 19.5 kB
import { PayloadAction } from "@reduxjs/toolkit"; import { Entity } from "../../interfaces/models/Entity"; import { EntityListSortByOptions, SortDirection, SortType } from "../../interfaces/EntityListSortByOptions"; import { LocationFilters } from "../../interfaces/entity-filters/LocationFilters"; import { TimeFrame } from "../../interfaces/TimeFrame"; import { MetadataFilters } from "../../interfaces/entity-filters/MetadataFilters"; import { TitleFilters } from "../../interfaces/entity-filters/TitleFilters"; import { ContentFilters } from "../../interfaces/entity-filters/ContentFilters"; import { AttachmentsFilters } from "../../interfaces/entity-filters/AttachmentsFilters"; import { KeywordsFilters } from "../../interfaces/entity-filters/KeywordsFilters"; export interface EntityListState { entities: Entity[]; page: number; loading: boolean; hasMore: boolean; error: string | null; lastFetched: number | null; sourceId: string | null; limit: number; sortBy: EntityListSortByOptions; sortDir: SortDirection | null; sortType: SortType; timeFrame: TimeFrame | null; userId: string | null; followedOnly: boolean; keywordsFilters: KeywordsFilters | null; titleFilters: TitleFilters | null; contentFilters: ContentFilters | null; attachmentsFilters: AttachmentsFilters | null; locationFilters: LocationFilters | null; metadataFilters: MetadataFilters | null; } export interface EntityListsState { lists: { [listId: string]: EntityListState; }; } export interface EntityListFilters { sortBy?: EntityListSortByOptions; sortDir?: SortDirection | null; sortType?: SortType; timeFrame?: TimeFrame | null; userId?: string | null; followedOnly?: boolean; keywordsFilters?: KeywordsFilters | null; titleFilters?: TitleFilters | null; contentFilters?: ContentFilters | null; attachmentsFilters?: AttachmentsFilters | null; locationFilters?: LocationFilters | null; metadataFilters?: MetadataFilters | null; } export interface EntityListConfig { sourceId?: string | null; limit?: number; } export interface EntityListFetchOptions { resetUnspecified?: boolean; immediate?: boolean; clearImmediately?: boolean; } export interface FilterUpdatePayload { listId: string; filters: Partial<EntityListFilters>; config?: EntityListConfig; options?: EntityListFetchOptions; } export interface InitializeListPayload { listId: string; } export interface KeywordsUpdatePayload { listId: string; type: "add" | "remove" | "reset" | "replace"; key: "includes" | "doesNotInclude" | "both"; value?: string | string[]; } export interface EntityAddPayload { listId: string; entity: Entity; insertPosition?: "first" | "last"; } export interface EntityRemovePayload { listId: string; entityId: string; } export interface EntitiesSetPayload { listId: string; entities: Entity[]; append?: boolean; } export declare const entityListsSlice: import("@reduxjs/toolkit").Slice<EntityListsState, { initializeList: (state: import("@reduxjs/toolkit").WritableDraft<EntityListsState>, action: PayloadAction<InitializeListPayload>) => void; updateFiltersAndSort: (state: import("@reduxjs/toolkit").WritableDraft<EntityListsState>, action: PayloadAction<FilterUpdatePayload>) => void; setEntityListLoading: (state: import("@reduxjs/toolkit").WritableDraft<EntityListsState>, action: PayloadAction<{ listId: string; loading: boolean; }>) => void; setEntityListEntities: (state: import("@reduxjs/toolkit").WritableDraft<EntityListsState>, action: PayloadAction<EntitiesSetPayload>) => void; incrementPage: (state: import("@reduxjs/toolkit").WritableDraft<EntityListsState>, action: PayloadAction<string>) => void; setEntityListHasMore: (state: import("@reduxjs/toolkit").WritableDraft<EntityListsState>, action: PayloadAction<{ listId: string; hasMore: boolean; }>) => void; setEntityListError: (state: import("@reduxjs/toolkit").WritableDraft<EntityListsState>, action: PayloadAction<{ listId: string; error: string | null; }>) => void; addEntity: (state: import("@reduxjs/toolkit").WritableDraft<EntityListsState>, action: PayloadAction<EntityAddPayload>) => void; removeEntity: (state: import("@reduxjs/toolkit").WritableDraft<EntityListsState>, action: PayloadAction<EntityRemovePayload>) => void; updateKeywordsFilters: (state: import("@reduxjs/toolkit").WritableDraft<EntityListsState>, action: PayloadAction<KeywordsUpdatePayload>) => void; cleanupList: (state: import("@reduxjs/toolkit").WritableDraft<EntityListsState>, action: PayloadAction<string>) => void; cleanupOldLists: (state: import("@reduxjs/toolkit").WritableDraft<EntityListsState>, action: PayloadAction<number>) => void; }, "entityLists", "entityLists", import("@reduxjs/toolkit").SliceSelectors<EntityListsState>>; export declare const initializeList: import("@reduxjs/toolkit").ActionCreatorWithPayload<InitializeListPayload, "entityLists/initializeList">, updateFiltersAndSort: import("@reduxjs/toolkit").ActionCreatorWithPayload<FilterUpdatePayload, "entityLists/updateFiltersAndSort">, setEntityListLoading: import("@reduxjs/toolkit").ActionCreatorWithPayload<{ listId: string; loading: boolean; }, "entityLists/setEntityListLoading">, setEntityListEntities: import("@reduxjs/toolkit").ActionCreatorWithPayload<EntitiesSetPayload, "entityLists/setEntityListEntities">, incrementPage: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, "entityLists/incrementPage">, setEntityListHasMore: import("@reduxjs/toolkit").ActionCreatorWithPayload<{ listId: string; hasMore: boolean; }, "entityLists/setEntityListHasMore">, setEntityListError: import("@reduxjs/toolkit").ActionCreatorWithPayload<{ listId: string; error: string | null; }, "entityLists/setEntityListError">, addEntity: import("@reduxjs/toolkit").ActionCreatorWithPayload<EntityAddPayload, "entityLists/addEntity">, removeEntity: import("@reduxjs/toolkit").ActionCreatorWithPayload<EntityRemovePayload, "entityLists/removeEntity">, updateKeywordsFilters: import("@reduxjs/toolkit").ActionCreatorWithPayload<KeywordsUpdatePayload, "entityLists/updateKeywordsFilters">, cleanupList: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, "entityLists/cleanupList">, cleanupOldLists: import("@reduxjs/toolkit").ActionCreatorWithPayload<number, "entityLists/cleanupOldLists">; export declare const selectEntityList: ((state: any, listId: string) => EntityListState | undefined) & { clearCache: () => void; resultsCount: () => number; resetResultsCount: () => void; } & { resultFunc: (resultFuncArgs_0: EntityListsState, resultFuncArgs_1: string) => EntityListState | undefined; memoizedResultFunc: ((resultFuncArgs_0: EntityListsState, resultFuncArgs_1: string) => EntityListState | undefined) & { clearCache: () => void; resultsCount: () => number; resetResultsCount: () => void; }; lastResult: () => EntityListState | undefined; dependencies: [(state: { entityLists: EntityListsState; }) => EntityListsState, (_: any, listId: string) => string]; recomputations: () => number; resetRecomputations: () => void; dependencyRecomputations: () => number; resetDependencyRecomputations: () => void; } & { memoize: typeof import("@reduxjs/toolkit").weakMapMemoize; argsMemoize: typeof import("@reduxjs/toolkit").weakMapMemoize; }; export declare const selectEntityListEntities: ((state: any, listId: string) => Entity[]) & { clearCache: () => void; resultsCount: () => number; resetResultsCount: () => void; } & { resultFunc: (resultFuncArgs_0: EntityListState | undefined) => Entity[]; memoizedResultFunc: ((resultFuncArgs_0: EntityListState | undefined) => Entity[]) & { clearCache: () => void; resultsCount: () => number; resetResultsCount: () => void; }; lastResult: () => Entity[]; dependencies: [((state: any, listId: string) => EntityListState | undefined) & { clearCache: () => void; resultsCount: () => number; resetResultsCount: () => void; } & { resultFunc: (resultFuncArgs_0: EntityListsState, resultFuncArgs_1: string) => EntityListState | undefined; memoizedResultFunc: ((resultFuncArgs_0: EntityListsState, resultFuncArgs_1: string) => EntityListState | undefined) & { clearCache: () => void; resultsCount: () => number; resetResultsCount: () => void; }; lastResult: () => EntityListState | undefined; dependencies: [(state: { entityLists: EntityListsState; }) => EntityListsState, (_: any, listId: string) => string]; recomputations: () => number; resetRecomputations: () => void; dependencyRecomputations: () => number; resetDependencyRecomputations: () => void; } & { memoize: typeof import("@reduxjs/toolkit").weakMapMemoize; argsMemoize: typeof import("@reduxjs/toolkit").weakMapMemoize; }]; recomputations: () => number; resetRecomputations: () => void; dependencyRecomputations: () => number; resetDependencyRecomputations: () => void; } & { memoize: typeof import("@reduxjs/toolkit").weakMapMemoize; argsMemoize: typeof import("@reduxjs/toolkit").weakMapMemoize; }; export declare const selectEntityListLoading: ((state: any, listId: string) => boolean) & { clearCache: () => void; resultsCount: () => number; resetResultsCount: () => void; } & { resultFunc: (resultFuncArgs_0: EntityListState | undefined) => boolean; memoizedResultFunc: ((resultFuncArgs_0: EntityListState | undefined) => boolean) & { clearCache: () => void; resultsCount: () => number; resetResultsCount: () => void; }; lastResult: () => boolean; dependencies: [((state: any, listId: string) => EntityListState | undefined) & { clearCache: () => void; resultsCount: () => number; resetResultsCount: () => void; } & { resultFunc: (resultFuncArgs_0: EntityListsState, resultFuncArgs_1: string) => EntityListState | undefined; memoizedResultFunc: ((resultFuncArgs_0: EntityListsState, resultFuncArgs_1: string) => EntityListState | undefined) & { clearCache: () => void; resultsCount: () => number; resetResultsCount: () => void; }; lastResult: () => EntityListState | undefined; dependencies: [(state: { entityLists: EntityListsState; }) => EntityListsState, (_: any, listId: string) => string]; recomputations: () => number; resetRecomputations: () => void; dependencyRecomputations: () => number; resetDependencyRecomputations: () => void; } & { memoize: typeof import("@reduxjs/toolkit").weakMapMemoize; argsMemoize: typeof import("@reduxjs/toolkit").weakMapMemoize; }]; recomputations: () => number; resetRecomputations: () => void; dependencyRecomputations: () => number; resetDependencyRecomputations: () => void; } & { memoize: typeof import("@reduxjs/toolkit").weakMapMemoize; argsMemoize: typeof import("@reduxjs/toolkit").weakMapMemoize; }; export declare const selectEntityListHasMore: ((state: any, listId: string) => boolean) & { clearCache: () => void; resultsCount: () => number; resetResultsCount: () => void; } & { resultFunc: (resultFuncArgs_0: EntityListState | undefined) => boolean; memoizedResultFunc: ((resultFuncArgs_0: EntityListState | undefined) => boolean) & { clearCache: () => void; resultsCount: () => number; resetResultsCount: () => void; }; lastResult: () => boolean; dependencies: [((state: any, listId: string) => EntityListState | undefined) & { clearCache: () => void; resultsCount: () => number; resetResultsCount: () => void; } & { resultFunc: (resultFuncArgs_0: EntityListsState, resultFuncArgs_1: string) => EntityListState | undefined; memoizedResultFunc: ((resultFuncArgs_0: EntityListsState, resultFuncArgs_1: string) => EntityListState | undefined) & { clearCache: () => void; resultsCount: () => number; resetResultsCount: () => void; }; lastResult: () => EntityListState | undefined; dependencies: [(state: { entityLists: EntityListsState; }) => EntityListsState, (_: any, listId: string) => string]; recomputations: () => number; resetRecomputations: () => void; dependencyRecomputations: () => number; resetDependencyRecomputations: () => void; } & { memoize: typeof import("@reduxjs/toolkit").weakMapMemoize; argsMemoize: typeof import("@reduxjs/toolkit").weakMapMemoize; }]; recomputations: () => number; resetRecomputations: () => void; dependencyRecomputations: () => number; resetDependencyRecomputations: () => void; } & { memoize: typeof import("@reduxjs/toolkit").weakMapMemoize; argsMemoize: typeof import("@reduxjs/toolkit").weakMapMemoize; }; export declare const selectEntityListFilters: ((state: any, listId: string) => { sortBy: EntityListSortByOptions; sortDir: SortDirection | null; sortType: SortType; timeFrame: TimeFrame | null; userId: string | null; followedOnly: boolean; keywordsFilters: KeywordsFilters | null; titleFilters: TitleFilters | null; contentFilters: ContentFilters | null; attachmentsFilters: AttachmentsFilters | null; locationFilters: LocationFilters | null; metadataFilters: MetadataFilters | null; } | null) & { clearCache: () => void; resultsCount: () => number; resetResultsCount: () => void; } & { resultFunc: (resultFuncArgs_0: EntityListState | undefined) => { sortBy: EntityListSortByOptions; sortDir: SortDirection | null; sortType: SortType; timeFrame: TimeFrame | null; userId: string | null; followedOnly: boolean; keywordsFilters: KeywordsFilters | null; titleFilters: TitleFilters | null; contentFilters: ContentFilters | null; attachmentsFilters: AttachmentsFilters | null; locationFilters: LocationFilters | null; metadataFilters: MetadataFilters | null; } | null; memoizedResultFunc: ((resultFuncArgs_0: EntityListState | undefined) => { sortBy: EntityListSortByOptions; sortDir: SortDirection | null; sortType: SortType; timeFrame: TimeFrame | null; userId: string | null; followedOnly: boolean; keywordsFilters: KeywordsFilters | null; titleFilters: TitleFilters | null; contentFilters: ContentFilters | null; attachmentsFilters: AttachmentsFilters | null; locationFilters: LocationFilters | null; metadataFilters: MetadataFilters | null; } | null) & { clearCache: () => void; resultsCount: () => number; resetResultsCount: () => void; }; lastResult: () => { sortBy: EntityListSortByOptions; sortDir: SortDirection | null; sortType: SortType; timeFrame: TimeFrame | null; userId: string | null; followedOnly: boolean; keywordsFilters: KeywordsFilters | null; titleFilters: TitleFilters | null; contentFilters: ContentFilters | null; attachmentsFilters: AttachmentsFilters | null; locationFilters: LocationFilters | null; metadataFilters: MetadataFilters | null; } | null; dependencies: [((state: any, listId: string) => EntityListState | undefined) & { clearCache: () => void; resultsCount: () => number; resetResultsCount: () => void; } & { resultFunc: (resultFuncArgs_0: EntityListsState, resultFuncArgs_1: string) => EntityListState | undefined; memoizedResultFunc: ((resultFuncArgs_0: EntityListsState, resultFuncArgs_1: string) => EntityListState | undefined) & { clearCache: () => void; resultsCount: () => number; resetResultsCount: () => void; }; lastResult: () => EntityListState | undefined; dependencies: [(state: { entityLists: EntityListsState; }) => EntityListsState, (_: any, listId: string) => string]; recomputations: () => number; resetRecomputations: () => void; dependencyRecomputations: () => number; resetDependencyRecomputations: () => void; } & { memoize: typeof import("@reduxjs/toolkit").weakMapMemoize; argsMemoize: typeof import("@reduxjs/toolkit").weakMapMemoize; }]; recomputations: () => number; resetRecomputations: () => void; dependencyRecomputations: () => number; resetDependencyRecomputations: () => void; } & { memoize: typeof import("@reduxjs/toolkit").weakMapMemoize; argsMemoize: typeof import("@reduxjs/toolkit").weakMapMemoize; }; export declare const selectEntityListConfig: ((state: any, listId: string) => { sourceId: string | null; limit: number; } | null) & { clearCache: () => void; resultsCount: () => number; resetResultsCount: () => void; } & { resultFunc: (resultFuncArgs_0: EntityListState | undefined) => { sourceId: string | null; limit: number; } | null; memoizedResultFunc: ((resultFuncArgs_0: EntityListState | undefined) => { sourceId: string | null; limit: number; } | null) & { clearCache: () => void; resultsCount: () => number; resetResultsCount: () => void; }; lastResult: () => { sourceId: string | null; limit: number; } | null; dependencies: [((state: any, listId: string) => EntityListState | undefined) & { clearCache: () => void; resultsCount: () => number; resetResultsCount: () => void; } & { resultFunc: (resultFuncArgs_0: EntityListsState, resultFuncArgs_1: string) => EntityListState | undefined; memoizedResultFunc: ((resultFuncArgs_0: EntityListsState, resultFuncArgs_1: string) => EntityListState | undefined) & { clearCache: () => void; resultsCount: () => number; resetResultsCount: () => void; }; lastResult: () => EntityListState | undefined; dependencies: [(state: { entityLists: EntityListsState; }) => EntityListsState, (_: any, listId: string) => string]; recomputations: () => number; resetRecomputations: () => void; dependencyRecomputations: () => number; resetDependencyRecomputations: () => void; } & { memoize: typeof import("@reduxjs/toolkit").weakMapMemoize; argsMemoize: typeof import("@reduxjs/toolkit").weakMapMemoize; }]; recomputations: () => number; resetRecomputations: () => void; dependencyRecomputations: () => number; resetDependencyRecomputations: () => void; } & { memoize: typeof import("@reduxjs/toolkit").weakMapMemoize; argsMemoize: typeof import("@reduxjs/toolkit").weakMapMemoize; }; declare const _default: import("@reduxjs/toolkit").Reducer<EntityListsState>; export default _default;