feat(web): show engine code in summary for all decode sources

The collapsed summary's "Motor kodu" read only PL24's rawData.engineCode, so it
was blank for emex/pcat/vin-api. Resolve it per source: PL24 engineCode, emex
parsedOptions.engine_type, vin-api engineModel, or the pcat "engine" parameter.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-25 03:48:10 +03:00
parent 8fe731b7e0
commit 0bd9165e66

View File

@@ -426,12 +426,25 @@ function VehicleAttributes({ vehicle }: { vehicle: any }) {
); );
} }
/** The engine code lives in a different spot per decode source. */
function getEngineCode(vehicle: any): string | undefined {
const rd = vehicle?.rawData;
if (rd?.engineCode) return rd.engineCode; // pl24
if (rd?.parsedOptions?.engine_type) return rd.parsedOptions.engine_type; // emex
if (rd?.engineModel) return rd.engineModel; // vin-api
// pcat — the "engine" parameter.
const param = rd?.pcatCar?.parameters?.find(
(p: any) => p?.key === "engine" || p?.name === "Engine",
);
return param?.value ? String(param.value) : undefined;
}
/** Compact at-a-glance fields shown on the collapsed Araç Bilgileri header. */ /** Compact at-a-glance fields shown on the collapsed Araç Bilgileri header. */
function VehicleSummary({ vehicle }: { vehicle: any }) { function VehicleSummary({ vehicle }: { vehicle: any }) {
const fields = [ const fields = [
{ label: "Model", value: vehicle?.model }, { label: "Model", value: vehicle?.model },
{ label: "Model yılı", value: vehicle?.year }, { label: "Model yılı", value: vehicle?.year },
{ label: "Motor kodu", value: vehicle?.rawData?.engineCode }, { label: "Motor kodu", value: getEngineCode(vehicle) },
].filter((f) => f.value != null && f.value !== ""); ].filter((f) => f.value != null && f.value !== "");
if (fields.length === 0) return null; if (fields.length === 0) return null;