Files
fltr-app/utils/searchMapping.ts
DevOFVictory 9516642beb fixed search
2025-11-12 19:25:21 +01:00

52 lines
1.4 KiB
TypeScript

import { AutoCompleteItem } from "@/apis/autoCompleteApi";
export const getIconName = (type: AutoCompleteItem["type"]) => {
switch (type) {
case "PERSON":
return "user";
case "SHOW":
return "television";
case "YEAR":
return "calendar";
case "CUSTOM":
return "tag";
default:
return "tag";
}
};
// Helpers that adapt backend searchApi payloads (as in the prompt) to UI types used in our components
export function mapApiPersonToUI(data: any) {
return {
id: data?.id ?? data?.personId,
personId: data?.personId ?? data?.id,
name: data?.name ?? "",
birthDate: data?.birthDate ?? null,
imageUrl: data?.imageUrl ?? null,
};
}
export function mapApiSeasonToUI(data: any) {
return {
seasonId: data?.seasonId ?? data?.id,
showId: data?.showId,
startDate: data?.startDate ?? null,
endDate: data?.endDate ?? null,
seasonNumber: data?.seasonNumber ?? null,
participants: data?.seasonParticipants ?? data?.participants ?? [],
moderators: data?.moderators ?? [],
teams: data?.teams ?? [],
} as any;
}
export function mapApiShowToUI(data: any) {
return {
id: data.showId ?? data.id, // <-- hier der Fix
title: data?.title ?? data?.name ?? `Show #${data?.showId ?? data?.id ?? "?"}`,
description: data?.description ?? "",
genre: data?.genre ?? "",
thumbnailUri: data?.thumbnailUrl ?? data?.imageUrl ?? "",
running: data?.running ?? false,
} as any;
}