feat(manage slideover): show more request override details (#2772)
* feat(manage slideover): show the language profile if request is for a show * feat(manage slideover): show name of profiles instead of id
This commit is contained in:
committed by
GitHub
parent
14519ef555
commit
90095bb185
@@ -1,45 +1,61 @@
|
||||
import useSWR from 'swr';
|
||||
import { MediaRequest } from '../../server/entity/MediaRequest';
|
||||
import { ServiceCommonServer } from '../../server/interfaces/api/serviceInterfaces';
|
||||
import {
|
||||
ServiceCommonServer,
|
||||
ServiceCommonServerWithDetails,
|
||||
} from '../../server/interfaces/api/serviceInterfaces';
|
||||
|
||||
interface OverrideStatus {
|
||||
server: string | null;
|
||||
profile: number | null;
|
||||
rootFolder: string | null;
|
||||
server?: string;
|
||||
profile?: string;
|
||||
rootFolder?: string;
|
||||
languageProfile?: string;
|
||||
}
|
||||
|
||||
const useRequestOverride = (request: MediaRequest): OverrideStatus => {
|
||||
const { data } = useSWR<ServiceCommonServer[]>(
|
||||
const { data: allServers } = useSWR<ServiceCommonServer[]>(
|
||||
`/api/v1/service/${request.type === 'movie' ? 'radarr' : 'sonarr'}`
|
||||
);
|
||||
|
||||
if (!data) {
|
||||
return {
|
||||
server: null,
|
||||
profile: null,
|
||||
rootFolder: null,
|
||||
};
|
||||
const { data } = useSWR<ServiceCommonServerWithDetails>(
|
||||
`/api/v1/service/${request.type === 'movie' ? 'radarr' : 'sonarr'}/${
|
||||
request.serverId
|
||||
}`
|
||||
);
|
||||
|
||||
if (!data || !allServers) {
|
||||
return {};
|
||||
}
|
||||
|
||||
const defaultServer = data.find(
|
||||
const defaultServer = allServers.find(
|
||||
(server) => server.is4k === request.is4k && server.isDefault
|
||||
);
|
||||
|
||||
const activeServer = data.find((server) => server.id === request.serverId);
|
||||
const activeServer = allServers.find(
|
||||
(server) => server.id === request.serverId
|
||||
);
|
||||
|
||||
return {
|
||||
server:
|
||||
activeServer && request.serverId !== defaultServer?.id
|
||||
? activeServer.name
|
||||
: null,
|
||||
: undefined,
|
||||
profile:
|
||||
defaultServer?.activeProfileId !== request.profileId
|
||||
? request.profileId
|
||||
: null,
|
||||
? data.profiles.find((profile) => profile.id === request.profileId)
|
||||
?.name
|
||||
: undefined,
|
||||
rootFolder:
|
||||
defaultServer?.activeDirectory !== request.rootFolder
|
||||
? request.rootFolder
|
||||
: null,
|
||||
: undefined,
|
||||
languageProfile:
|
||||
request.type === 'tv' &&
|
||||
defaultServer?.activeLanguageProfileId !== request.languageProfileId
|
||||
? data.languageProfiles?.find(
|
||||
(profile) => profile.id === request.languageProfileId
|
||||
)?.name
|
||||
: undefined,
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user