Compare commits

...

2 Commits

Author SHA1 Message Date
Josh Hawkins
726ded74b6 improve i18n key fallback when translation files aren't loaded
just display a valid time now instead of "invalid time"
2025-12-28 08:48:51 -06:00
Nicolas Mowen
0f4ebb812e Show event in all cases, even without non-none match 2025-12-28 06:39:54 -07:00
3 changed files with 32 additions and 26 deletions

View File

@ -925,11 +925,11 @@ function FaceAttemptGroup({
[onRefresh, t],
);
// Create ClassifiedEvent from Event (face recognition uses sub_label)
const classifiedEvent: ClassifiedEvent | undefined = useMemo(() => {
if (!event || !event.sub_label || event.sub_label === "none") {
if (!event) {
return undefined;
}
return {
id: event.id,
label: event.sub_label,

View File

@ -79,6 +79,24 @@ i18n
parseMissingKeyHandler: (key: string) => {
const parts = key.split(".");
// eslint-disable-next-line no-console
console.warn(`Missing translation key: ${key}`);
if (parts[0] === "time" && parts[1]?.includes("formattedTimestamp")) {
// Extract the format type from the last part (12hour, 24hour)
const formatType = parts[parts.length - 1];
// Return actual date-fns format strings as fallbacks
const formatDefaults: Record<string, string> = {
"12hour": "h:mm aaa",
"24hour": "HH:mm",
};
if (formatDefaults[formatType]) {
return formatDefaults[formatType];
}
}
// Handle special cases for objects and audio
if (parts[0] === "object" || parts[0] === "audio") {
return (

View File

@ -1043,34 +1043,22 @@ function ObjectTrainGrid({
return undefined;
}
const classificationType = model.object_config.classification_type;
let label: string | undefined = undefined;
let score: number | undefined = undefined;
if (classificationType === "attribute") {
// For attribute type, look at event.data[model.name]
const attributeValue = event.data[model.name] as string | undefined;
const attributeScore = event.data[`${model.name}_score`] as
| number
| undefined;
if (attributeValue && attributeValue !== "none") {
return {
id: event.id,
label: attributeValue,
score: attributeScore,
};
}
if (model.object_config.classification_type === "attribute") {
label = event.data[model.name] as string | undefined;
score = event.data[`${model.name}_score`] as number | undefined;
} else {
// For sub_label type, use event.sub_label
if (event.sub_label && event.sub_label !== "none") {
return {
id: event.id,
label: event.sub_label,
score: event.data?.sub_label_score,
};
}
label = event.sub_label;
score = event.data.sub_label_score;
}
return undefined;
return {
id: event.id,
label: label,
score: score,
};
},
[model],
);