fix(media-request): inconsistent sorting and reordering (#2464)
This commit is contained in:
@@ -2,7 +2,7 @@ import { observable } from "@trpc/server/observable";
|
|||||||
import { z } from "zod";
|
import { z } from "zod";
|
||||||
|
|
||||||
import { getIntegrationKindsByCategory } from "@homarr/definitions";
|
import { getIntegrationKindsByCategory } from "@homarr/definitions";
|
||||||
import { integrationCreator, MediaRequestStatus } from "@homarr/integrations";
|
import { integrationCreator } from "@homarr/integrations";
|
||||||
import type { MediaRequest } from "@homarr/integrations/types";
|
import type { MediaRequest } from "@homarr/integrations/types";
|
||||||
import { mediaRequestListRequestHandler } from "@homarr/request-handler/media-request-list";
|
import { mediaRequestListRequestHandler } from "@homarr/request-handler/media-request-list";
|
||||||
import { mediaRequestStatsRequestHandler } from "@homarr/request-handler/media-request-stats";
|
import { mediaRequestStatsRequestHandler } from "@homarr/request-handler/media-request-stats";
|
||||||
@@ -30,14 +30,12 @@ export const mediaRequestsRouter = createTRPCRouter({
|
|||||||
);
|
);
|
||||||
return results
|
return results
|
||||||
.flatMap(({ data, integration }) => data.map((request) => ({ ...request, integrationId: integration.id })))
|
.flatMap(({ data, integration }) => data.map((request) => ({ ...request, integrationId: integration.id })))
|
||||||
.sort(({ status: statusA }, { status: statusB }) => {
|
.sort((dataA, dataB) => {
|
||||||
if (statusA === MediaRequestStatus.PendingApproval) {
|
if (dataA.status === dataB.status) {
|
||||||
return -1;
|
return dataB.createdAt.getTime() - dataA.createdAt.getTime();
|
||||||
}
|
}
|
||||||
if (statusB === MediaRequestStatus.PendingApproval) {
|
|
||||||
return 1;
|
return dataA.status - dataB.status;
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
});
|
});
|
||||||
}),
|
}),
|
||||||
subscribeToLatestRequests: publicProcedure
|
subscribeToLatestRequests: publicProcedure
|
||||||
|
|||||||
@@ -41,14 +41,12 @@ export default function MediaServerWidget({
|
|||||||
const newData = filteredData.concat(
|
const newData = filteredData.concat(
|
||||||
data.requests.map((request) => ({ ...request, integrationId: data.integrationId })),
|
data.requests.map((request) => ({ ...request, integrationId: data.integrationId })),
|
||||||
);
|
);
|
||||||
return newData.sort(({ status: statusA }, { status: statusB }) => {
|
return newData.sort((dataA, dataB) => {
|
||||||
if (statusA === MediaRequestStatus.PendingApproval) {
|
if (dataA.status === dataB.status) {
|
||||||
return -1;
|
return dataB.createdAt.getTime() - dataA.createdAt.getTime();
|
||||||
}
|
}
|
||||||
if (statusB === MediaRequestStatus.PendingApproval) {
|
|
||||||
return 1;
|
return dataA.status - dataB.status;
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
@@ -69,7 +67,7 @@ export default function MediaServerWidget({
|
|||||||
{mediaRequests.map((mediaRequest) => (
|
{mediaRequests.map((mediaRequest) => (
|
||||||
<Card
|
<Card
|
||||||
className={`mediaRequests-list-item-wrapper mediaRequests-list-item-${mediaRequest.type} mediaRequests-list-item-${mediaRequest.status}`}
|
className={`mediaRequests-list-item-wrapper mediaRequests-list-item-${mediaRequest.type} mediaRequests-list-item-${mediaRequest.status}`}
|
||||||
key={mediaRequest.id}
|
key={`${mediaRequest.integrationId}-${mediaRequest.id}`}
|
||||||
h="20cqmin"
|
h="20cqmin"
|
||||||
radius="2cqmin"
|
radius="2cqmin"
|
||||||
p="2cqmin"
|
p="2cqmin"
|
||||||
|
|||||||
Reference in New Issue
Block a user