mirror of
https://github.com/Radarr/Radarr
synced 2026-01-27 09:54:27 +01:00
- Add TVShow, Season, Episode TypeScript types - Add TV state management (actions, reducers, selectors) - Add TVShowIndex and TVShowIndexRow components - Add TVShowDetails and TVShowDetailsPage components - Add TV routes to AppRoutes - Add TV Shows sidebar navigation - Add TV icon to icons 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
133 lines
4.2 KiB
TypeScript
133 lines
4.2 KiB
TypeScript
import AddAudiobookAppState from './AddAudiobookAppState';
|
|
import AddBookAppState from './AddBookAppState';
|
|
import { Error } from './AppSectionState';
|
|
import AudiobooksAppState from './AudiobooksAppState';
|
|
import AuthorsAppState from './AuthorsAppState';
|
|
import BlocklistAppState from './BlocklistAppState';
|
|
import BooksAppState from './BooksAppState';
|
|
import BookSeriesAppState from './BookSeriesAppState';
|
|
import CalendarAppState from './CalendarAppState';
|
|
import CaptchaAppState from './CaptchaAppState';
|
|
import CommandAppState from './CommandAppState';
|
|
import CustomFiltersAppState from './CustomFiltersAppState';
|
|
import DashboardAppState from './DashboardAppState';
|
|
import EpisodesAppState from './EpisodesAppState';
|
|
import ExtraFilesAppState from './ExtraFilesAppState';
|
|
import HistoryAppState, { MovieHistoryAppState } from './HistoryAppState';
|
|
import InteractiveImportAppState from './InteractiveImportAppState';
|
|
import MessagesAppState from './MessagesAppState';
|
|
import MovieBlocklistAppState from './MovieBlocklistAppState';
|
|
import MovieCollectionAppState from './MovieCollectionAppState';
|
|
import MovieCreditAppState from './MovieCreditAppState';
|
|
import MovieFilesAppState from './MovieFilesAppState';
|
|
import MoviesAppState, { MovieIndexAppState } from './MoviesAppState';
|
|
import OAuthAppState from './OAuthAppState';
|
|
import OrganizePreviewAppState from './OrganizePreviewAppState';
|
|
import ParseAppState from './ParseAppState';
|
|
import PathsAppState from './PathsAppState';
|
|
import ProviderOptionsAppState from './ProviderOptionsAppState';
|
|
import QueueAppState from './QueueAppState';
|
|
import ReleasesAppState from './ReleasesAppState';
|
|
import RootFolderAppState from './RootFolderAppState';
|
|
import SeasonsAppState from './SeasonsAppState';
|
|
import SettingsAppState from './SettingsAppState';
|
|
import SystemAppState from './SystemAppState';
|
|
import TagsAppState from './TagsAppState';
|
|
import TVShowsAppState from './TVShowsAppState';
|
|
import WantedAppState from './WantedAppState';
|
|
|
|
interface FilterBuilderPropOption {
|
|
id: string;
|
|
name: string;
|
|
}
|
|
|
|
export interface FilterBuilderProp<T> {
|
|
name: string;
|
|
label: string;
|
|
type: string;
|
|
valueType?: string;
|
|
optionsSelector?: (items: T[]) => FilterBuilderPropOption[];
|
|
}
|
|
|
|
export interface PropertyFilter {
|
|
key: string;
|
|
value: boolean | string | number | string[] | number[];
|
|
type: string;
|
|
}
|
|
|
|
export interface Filter {
|
|
key: string;
|
|
label: string | (() => string);
|
|
filters: PropertyFilter[];
|
|
}
|
|
|
|
export interface CustomFilter {
|
|
id: number;
|
|
type: string;
|
|
label: string;
|
|
filters: PropertyFilter[];
|
|
}
|
|
|
|
export interface AppSectionState {
|
|
isUpdated: boolean;
|
|
isConnected: boolean;
|
|
isDisconnected: boolean;
|
|
isReconnecting: boolean;
|
|
isSidebarVisible: boolean;
|
|
version: string;
|
|
prevVersion?: string;
|
|
dimensions: {
|
|
isSmallScreen: boolean;
|
|
isLargeScreen: boolean;
|
|
width: number;
|
|
height: number;
|
|
};
|
|
translations: {
|
|
error?: Error;
|
|
isPopulated: boolean;
|
|
};
|
|
messages: MessagesAppState;
|
|
}
|
|
|
|
interface AppState {
|
|
addAudiobook: AddAudiobookAppState;
|
|
addBook: AddBookAppState;
|
|
app: AppSectionState;
|
|
audiobooks: AudiobooksAppState;
|
|
authors: AuthorsAppState;
|
|
blocklist: BlocklistAppState;
|
|
books: BooksAppState;
|
|
calendar: CalendarAppState;
|
|
captcha: CaptchaAppState;
|
|
commands: CommandAppState;
|
|
customFilters: CustomFiltersAppState;
|
|
dashboard: DashboardAppState;
|
|
episodes: EpisodesAppState;
|
|
extraFiles: ExtraFilesAppState;
|
|
history: HistoryAppState;
|
|
interactiveImport: InteractiveImportAppState;
|
|
movieBlocklist: MovieBlocklistAppState;
|
|
movieCollections: MovieCollectionAppState;
|
|
movieCredits: MovieCreditAppState;
|
|
movieFiles: MovieFilesAppState;
|
|
movieHistory: MovieHistoryAppState;
|
|
movieIndex: MovieIndexAppState;
|
|
movies: MoviesAppState;
|
|
oAuth: OAuthAppState;
|
|
organizePreview: OrganizePreviewAppState;
|
|
parse: ParseAppState;
|
|
paths: PathsAppState;
|
|
providerOptions: ProviderOptionsAppState;
|
|
queue: QueueAppState;
|
|
releases: ReleasesAppState;
|
|
rootFolders: RootFolderAppState;
|
|
bookSeries: BookSeriesAppState;
|
|
seasons: SeasonsAppState;
|
|
settings: SettingsAppState;
|
|
system: SystemAppState;
|
|
tags: TagsAppState;
|
|
tvShows: TVShowsAppState;
|
|
wanted: WantedAppState;
|
|
}
|
|
|
|
export default AppState;
|