import { FetchStateAndError, FetchedState, ID } from '../../../commonStateTypes/common'; import { SortOrder } from '../../../commonStateTypes/selectorTypes/sortOrderTypes'; import { TimeframeTick } from '../../../commonStateTypes/timeframeTick'; import { JEScheduleKey, JEScheduleTransactionKey, ScheduleTypes } from '../../../entity/jeSchedules/jeSchedulesTypes'; import { ScheduleListKey, ScheduleListSortKey, ScheduleSubTabType } from './scheduleListTypes'; export interface ScheduleListUIState { currentSubTab: ScheduleSubTabType; scrollYOffset: Record; searchText: string; sortKey: ScheduleListSortKey; sortOrder: SortOrder; } export interface ScheduleListLocalData { selectedCategoryId: ID; selectedTimeframe: TimeframeTick; } export interface JESchedulesForTypeState extends FetchedState { jeScheduleTransactionKeys: JEScheduleTransactionKey[]; } export interface JEAccruedSchedulesForTypeState extends FetchedState { jeScheduleAccruedKeys: JEScheduleKey[]; } export interface ScheduleListForTypeState { downloadState: FetchStateAndError; jeScheduleKeysByListKey: Record; scheduleListLocalData: ScheduleListLocalData; selectedCategoryId: ID; selectedTimeframe: TimeframeTick; uiState: ScheduleListUIState; selectedScheduleId?: ID; } export interface ScheduleAccruedListForTypeState { downloadState: FetchStateAndError; jeScheduleAccruedByListKey: Record; scheduleListLocalData: ScheduleListLocalData; selectedCategoryId: ID; selectedTimeframe: TimeframeTick; uiState: ScheduleListUIState; selectedAccruedScheduleId?: ID; } export interface ScheduleListViewState { listByScheduleType: Record; }