fix(media-request): inconsistent sorting and reordering (#2464)

This commit is contained in:
Meier Lukas
2025-03-01 22:44:26 +01:00
committed by GitHub
parent 6fad48f65a
commit 43619e0cc0
2 changed files with 12 additions and 16 deletions

View File

@@ -2,7 +2,7 @@ import { observable } from "@trpc/server/observable";
import { z } from "zod";
import { getIntegrationKindsByCategory } from "@homarr/definitions";
import { integrationCreator, MediaRequestStatus } from "@homarr/integrations";
import { integrationCreator } from "@homarr/integrations";
import type { MediaRequest } from "@homarr/integrations/types";
import { mediaRequestListRequestHandler } from "@homarr/request-handler/media-request-list";
import { mediaRequestStatsRequestHandler } from "@homarr/request-handler/media-request-stats";
@@ -30,14 +30,12 @@ export const mediaRequestsRouter = createTRPCRouter({
);
return results
.flatMap(({ data, integration }) => data.map((request) => ({ ...request, integrationId: integration.id })))
.sort(({ status: statusA }, { status: statusB }) => {
if (statusA === MediaRequestStatus.PendingApproval) {
return -1;
.sort((dataA, dataB) => {
if (dataA.status === dataB.status) {
return dataB.createdAt.getTime() - dataA.createdAt.getTime();
}
if (statusB === MediaRequestStatus.PendingApproval) {
return 1;
}
return 0;
return dataA.status - dataB.status;
});
}),
subscribeToLatestRequests: publicProcedure

View File

@@ -41,14 +41,12 @@ export default function MediaServerWidget({
const newData = filteredData.concat(
data.requests.map((request) => ({ ...request, integrationId: data.integrationId })),
);
return newData.sort(({ status: statusA }, { status: statusB }) => {
if (statusA === MediaRequestStatus.PendingApproval) {
return -1;
return newData.sort((dataA, dataB) => {
if (dataA.status === dataB.status) {
return dataB.createdAt.getTime() - dataA.createdAt.getTime();
}
if (statusB === MediaRequestStatus.PendingApproval) {
return 1;
}
return 0;
return dataA.status - dataB.status;
});
});
},
@@ -69,7 +67,7 @@ export default function MediaServerWidget({
{mediaRequests.map((mediaRequest) => (
<Card
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"
radius="2cqmin"
p="2cqmin"