66 lines
1.8 KiB
TypeScript
66 lines
1.8 KiB
TypeScript
import type { ItemFilter } from '@jellyfin/sdk/lib/generated-client/models/item-filter';
|
|
import type { VideoType } from '@jellyfin/sdk/lib/generated-client/models/video-type';
|
|
import type { SortOrder } from '@jellyfin/sdk/lib/generated-client/models/sort-order';
|
|
import type { SeriesStatus } from '@jellyfin/sdk/lib/generated-client/models/series-status';
|
|
import type { ImageType } from '@jellyfin/sdk/lib/generated-client';
|
|
import { ItemSortBy } from '@jellyfin/sdk/lib/models/api/item-sort-by';
|
|
|
|
export type ParentId = string | null | undefined;
|
|
|
|
export interface LibraryViewProps {
|
|
parentId: ParentId;
|
|
}
|
|
|
|
export enum FeatureFilters {
|
|
HasSubtitles = 'HasSubtitles',
|
|
HasTrailer = 'HasTrailer',
|
|
HasSpecialFeature = 'HasSpecialFeature',
|
|
HasThemeSong = 'HasThemeSong',
|
|
HasThemeVideo = 'HasThemeVideo',
|
|
}
|
|
|
|
export enum EpisodeFilter {
|
|
ParentIndexNumber = 'ParentIndexNumber',
|
|
IsMissing = 'IsMissing',
|
|
IsUnaired = 'IsUnaired',
|
|
}
|
|
|
|
export enum VideoBasicFilter {
|
|
IsSD = 'IsSD',
|
|
IsHD = 'IsHD',
|
|
Is4K = 'Is4K',
|
|
Is3D = 'Is3D',
|
|
}
|
|
|
|
export interface Filters {
|
|
Features?: FeatureFilters[];
|
|
Genres?: string[];
|
|
OfficialRatings?: string[];
|
|
EpisodeFilter?: EpisodeFilter[];
|
|
Status?: ItemFilter[];
|
|
EpisodesStatus?: string[];
|
|
SeriesStatus?: SeriesStatus[];
|
|
StudioIds?: string[];
|
|
Tags?: string[];
|
|
VideoBasicFilter?: VideoBasicFilter[];
|
|
VideoTypes?: VideoType[];
|
|
Years?: number[];
|
|
}
|
|
|
|
export enum ViewMode {
|
|
GridView = 'grid',
|
|
ListView = 'list',
|
|
}
|
|
|
|
export interface LibraryViewSettings {
|
|
SortBy: ItemSortBy;
|
|
SortOrder: SortOrder;
|
|
StartIndex: number;
|
|
CardLayout: boolean;
|
|
ImageType: ImageType;
|
|
ViewMode: ViewMode;
|
|
ShowTitle: boolean;
|
|
ShowYear?: boolean;
|
|
Filters?: Filters;
|
|
Alphabet?: string | null;
|
|
}
|