bazarr/frontend/src/@redux/redux.d.ts

63 lines
1.6 KiB
TypeScript
Raw Normal View History

2021-03-25 14:22:43 +00:00
interface ReduxStore {
system: ReduxStore.System;
series: ReduxStore.Series;
movie: ReduxStore.Movie;
site: ReduxStore.Site;
}
namespace ReduxStore {
interface Notification {
type: "error" | "warning" | "info";
2021-05-09 03:22:24 +00:00
id: string;
2021-03-25 14:22:43 +00:00
message: string;
2021-05-09 03:22:24 +00:00
timeout: number;
2021-03-25 14:22:43 +00:00
}
2021-05-09 08:41:19 +00:00
interface Progress {
id: string;
header: string;
2021-05-09 08:41:19 +00:00
name: string;
value: number;
count: number;
}
2021-03-25 14:22:43 +00:00
interface Site {
// Initialization state or error message
initialized: boolean | string;
auth: boolean;
2021-05-09 08:41:19 +00:00
progress: Progress[];
2021-03-25 14:22:43 +00:00
notifications: Notification[];
sidebar: string;
badges: Badge;
offline: boolean;
}
interface System {
languages: AsyncState<Array<Language>>;
enabledLanguage: AsyncState<Array<Language>>;
languagesProfiles: AsyncState<Array<Profile.Languages>>;
status: AsyncState<System.Status | undefined>;
health: AsyncState<Array<System.Health>>;
2021-03-25 14:22:43 +00:00
tasks: AsyncState<Array<System.Task>>;
providers: AsyncState<Array<System.Provider>>;
logs: AsyncState<Array<System.Log>>;
releases: AsyncState<Array<ReleaseInfo>>;
settings: AsyncState<Settings | undefined>;
}
interface Series {
seriesList: AsyncOrderState<Item.Series>;
wantedEpisodesList: AsyncOrderState<Wanted.Episode>;
episodeList: AsyncState<Item.Episode[]>;
2021-03-25 14:22:43 +00:00
historyList: AsyncState<Array<History.Episode>>;
blacklist: AsyncState<Array<Blacklist.Episode>>;
}
interface Movie {
movieList: AsyncOrderState<Item.Movie>;
wantedMovieList: AsyncOrderState<Wanted.Movie>;
2021-03-25 14:22:43 +00:00
historyList: AsyncState<Array<History.Movie>>;
blacklist: AsyncState<Array<Blacklist.Movie>>;
}
}