jellyfish-web/src/types/library.ts

67 lines
1.8 KiB
TypeScript
Raw Normal View History

2023-07-09 01:43:08 +03:00
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';
2023-07-09 01:43:08 +03:00
import { ItemSortBy } from '@jellyfin/sdk/lib/models/api/item-sort-by';
2023-07-12 18:37:04 +03:00
export type ParentId = string | null | undefined;
export interface LibraryViewProps {
2023-10-04 23:14:14 +03:00
parentId: ParentId;
}
2023-07-09 01:43:08 +03:00
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[];
2023-07-09 01:43:08 +03:00
Genres?: string[];
OfficialRatings?: string[];
EpisodeFilter?: EpisodeFilter[];
2023-07-09 01:43:08 +03:00
Status?: ItemFilter[];
EpisodesStatus?: string[];
SeriesStatus?: SeriesStatus[];
StudioIds?: string[];
Tags?: string[];
VideoBasicFilter?: VideoBasicFilter[];
2023-07-09 01:43:08 +03:00
VideoTypes?: VideoType[];
Years?: number[];
}
2023-09-13 06:13:05 +03:00
export enum ViewMode {
GridView = 'grid',
ListView = 'list',
}
2023-07-09 01:43:08 +03:00
export interface LibraryViewSettings {
SortBy: ItemSortBy;
SortOrder: SortOrder;
StartIndex: number;
CardLayout: boolean;
2023-09-13 06:13:05 +03:00
ImageType: ImageType;
ViewMode: ViewMode;
2023-07-09 01:43:08 +03:00
ShowTitle: boolean;
ShowYear?: boolean;
Filters?: Filters;
2023-09-17 23:27:02 +03:00
Alphabet?: string | null;
2023-07-09 01:43:08 +03:00
}