You've already forked DataMate
refactor(annotation): 优化模板默认选择逻辑
- 添加 resolveTemplateTimestamp 函数解析模板时间戳 - 将默认模板选择逻辑从查找内置模板改为选择最新更新的模板 - 使用 reduce 方法实现按时间戳排序的模板选择 - 提高模板选择的准确性和时效性
This commit is contained in:
@@ -34,8 +34,20 @@ const resolveTemplateDataType = (datasetType?: DatasetType) => {
|
|||||||
return undefined;
|
return undefined;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
const resolveTemplateTimestamp = (template: AnnotationTemplate) => {
|
||||||
|
const timestamp = template.updatedAt || template.createdAt;
|
||||||
|
const parsed = Date.parse(timestamp);
|
||||||
|
return Number.isNaN(parsed) ? 0 : parsed;
|
||||||
|
};
|
||||||
const resolveDefaultTemplate = (items: AnnotationTemplate[]) =>
|
const resolveDefaultTemplate = (items: AnnotationTemplate[]) =>
|
||||||
items.find((template) => template.builtIn) || items[0];
|
items.reduce<AnnotationTemplate | undefined>((latest, current) => {
|
||||||
|
if (!latest) {
|
||||||
|
return current;
|
||||||
|
}
|
||||||
|
return resolveTemplateTimestamp(current) > resolveTemplateTimestamp(latest)
|
||||||
|
? current
|
||||||
|
: latest;
|
||||||
|
}, undefined);
|
||||||
|
|
||||||
export default function AnnotationTaskCreate() {
|
export default function AnnotationTaskCreate() {
|
||||||
const navigate = useNavigate();
|
const navigate = useNavigate();
|
||||||
|
|||||||
@@ -71,8 +71,20 @@ const resolveTemplateDataType = (datasetType?: DatasetType) => {
|
|||||||
return undefined;
|
return undefined;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
const resolveTemplateTimestamp = (template: AnnotationTemplate) => {
|
||||||
|
const timestamp = template.updatedAt || template.createdAt;
|
||||||
|
const parsed = Date.parse(timestamp);
|
||||||
|
return Number.isNaN(parsed) ? 0 : parsed;
|
||||||
|
};
|
||||||
const resolveDefaultTemplate = (items: AnnotationTemplate[]) =>
|
const resolveDefaultTemplate = (items: AnnotationTemplate[]) =>
|
||||||
items.find((template) => template.builtIn) || items[0];
|
items.reduce<AnnotationTemplate | undefined>((latest, current) => {
|
||||||
|
if (!latest) {
|
||||||
|
return current;
|
||||||
|
}
|
||||||
|
return resolveTemplateTimestamp(current) > resolveTemplateTimestamp(latest)
|
||||||
|
? current
|
||||||
|
: latest;
|
||||||
|
}, undefined);
|
||||||
|
|
||||||
export default function CreateAnnotationTask({
|
export default function CreateAnnotationTask({
|
||||||
open,
|
open,
|
||||||
|
|||||||
Reference in New Issue
Block a user