mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
Fix complexity warnings in ViewItemsContainer
This commit is contained in:
parent
0e0a30a067
commit
448e3b1b86
1 changed files with 39 additions and 51 deletions
|
@ -1,4 +1,4 @@
|
||||||
import type { BaseItemDtoQueryResult } from '@jellyfin/sdk/lib/generated-client';
|
import { type BaseItemDtoQueryResult, ItemFields, ItemFilter } from '@jellyfin/sdk/lib/generated-client';
|
||||||
import React, { FC, useCallback, useEffect, useRef, useState } from 'react';
|
import React, { FC, useCallback, useEffect, useRef, useState } from 'react';
|
||||||
|
|
||||||
import loading from '../loading/loading';
|
import loading from '../loading/loading';
|
||||||
|
@ -33,6 +33,41 @@ const getDefaultSortBy = () => {
|
||||||
return 'SortName';
|
return 'SortName';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const getFields = (viewQuerySettings: ViewQuerySettings) => {
|
||||||
|
const fields: ItemFields[] = [
|
||||||
|
ItemFields.BasicSyncInfo,
|
||||||
|
ItemFields.MediaSourceCount
|
||||||
|
];
|
||||||
|
|
||||||
|
if (viewQuerySettings.imageType === 'primary') {
|
||||||
|
fields.push(ItemFields.PrimaryImageAspectRatio);
|
||||||
|
}
|
||||||
|
|
||||||
|
return fields.join(',');
|
||||||
|
};
|
||||||
|
|
||||||
|
const getFilters = (viewQuerySettings: ViewQuerySettings) => {
|
||||||
|
const filters: ItemFilter[] = [];
|
||||||
|
|
||||||
|
if (viewQuerySettings.IsPlayed) {
|
||||||
|
filters.push(ItemFilter.IsPlayed);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (viewQuerySettings.IsUnplayed) {
|
||||||
|
filters.push(ItemFilter.IsUnplayed);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (viewQuerySettings.IsFavorite) {
|
||||||
|
filters.push(ItemFilter.IsFavorite);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (viewQuerySettings.IsResumable) {
|
||||||
|
filters.push(ItemFilter.IsResumable);
|
||||||
|
}
|
||||||
|
|
||||||
|
return filters;
|
||||||
|
};
|
||||||
|
|
||||||
const getVisibleViewSettings = () => {
|
const getVisibleViewSettings = () => {
|
||||||
return [
|
return [
|
||||||
'showTitle',
|
'showTitle',
|
||||||
|
@ -228,33 +263,7 @@ const ViewItemsContainer: FC<ViewItemsContainerProps> = ({
|
||||||
}, [getCardOptions, getContext, itemsResult.Items, getNoItemsMessage, viewQuerySettings.imageType]);
|
}, [getCardOptions, getContext, itemsResult.Items, getNoItemsMessage, viewQuerySettings.imageType]);
|
||||||
|
|
||||||
const getQuery = useCallback(() => {
|
const getQuery = useCallback(() => {
|
||||||
let fields = 'BasicSyncInfo,MediaSourceCount';
|
const queryFilters = getFilters(viewQuerySettings);
|
||||||
|
|
||||||
if (viewQuerySettings.imageType === 'primary') {
|
|
||||||
fields += ',PrimaryImageAspectRatio';
|
|
||||||
}
|
|
||||||
|
|
||||||
if (viewQuerySettings.showYear) {
|
|
||||||
fields += ',ProductionYear';
|
|
||||||
}
|
|
||||||
|
|
||||||
const queryFilters: string[] = [];
|
|
||||||
|
|
||||||
if (viewQuerySettings.IsPlayed) {
|
|
||||||
queryFilters.push('IsPlayed');
|
|
||||||
}
|
|
||||||
|
|
||||||
if (viewQuerySettings.IsUnplayed) {
|
|
||||||
queryFilters.push('IsUnplayed');
|
|
||||||
}
|
|
||||||
|
|
||||||
if (viewQuerySettings.IsFavorite) {
|
|
||||||
queryFilters.push('IsFavorite');
|
|
||||||
}
|
|
||||||
|
|
||||||
if (viewQuerySettings.IsResumable) {
|
|
||||||
queryFilters.push('IsResumable');
|
|
||||||
}
|
|
||||||
|
|
||||||
let queryIsHD;
|
let queryIsHD;
|
||||||
|
|
||||||
|
@ -271,7 +280,7 @@ const ViewItemsContainer: FC<ViewItemsContainerProps> = ({
|
||||||
SortOrder: viewQuerySettings.SortOrder,
|
SortOrder: viewQuerySettings.SortOrder,
|
||||||
IncludeItemTypes: getItemTypes().join(','),
|
IncludeItemTypes: getItemTypes().join(','),
|
||||||
Recursive: true,
|
Recursive: true,
|
||||||
Fields: fields,
|
Fields: getFields(viewQuerySettings),
|
||||||
ImageTypeLimit: 1,
|
ImageTypeLimit: 1,
|
||||||
EnableImageTypes: 'Primary,Backdrop,Banner,Thumb,Disc,Logo',
|
EnableImageTypes: 'Primary,Backdrop,Banner,Thumb,Disc,Logo',
|
||||||
Limit: userSettings.libraryPageSize(undefined) || undefined,
|
Limit: userSettings.libraryPageSize(undefined) || undefined,
|
||||||
|
@ -293,28 +302,7 @@ const ViewItemsContainer: FC<ViewItemsContainerProps> = ({
|
||||||
ParentId: topParentId
|
ParentId: topParentId
|
||||||
};
|
};
|
||||||
}, [
|
}, [
|
||||||
viewQuerySettings.imageType,
|
viewQuerySettings,
|
||||||
viewQuerySettings.showYear,
|
|
||||||
viewQuerySettings.IsPlayed,
|
|
||||||
viewQuerySettings.IsUnplayed,
|
|
||||||
viewQuerySettings.IsFavorite,
|
|
||||||
viewQuerySettings.IsResumable,
|
|
||||||
viewQuerySettings.IsHD,
|
|
||||||
viewQuerySettings.IsSD,
|
|
||||||
viewQuerySettings.SortBy,
|
|
||||||
viewQuerySettings.SortOrder,
|
|
||||||
viewQuerySettings.VideoTypes,
|
|
||||||
viewQuerySettings.GenreIds,
|
|
||||||
viewQuerySettings.Is4K,
|
|
||||||
viewQuerySettings.Is3D,
|
|
||||||
viewQuerySettings.HasSubtitles,
|
|
||||||
viewQuerySettings.HasTrailer,
|
|
||||||
viewQuerySettings.HasSpecialFeature,
|
|
||||||
viewQuerySettings.HasThemeSong,
|
|
||||||
viewQuerySettings.HasThemeVideo,
|
|
||||||
viewQuerySettings.StartIndex,
|
|
||||||
viewQuerySettings.NameLessThan,
|
|
||||||
viewQuerySettings.NameStartsWith,
|
|
||||||
getItemTypes,
|
getItemTypes,
|
||||||
getBasekey,
|
getBasekey,
|
||||||
topParentId
|
topParentId
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue