diff --git a/packages/client/hmi-client/src/components/project/tera-upload-resources-modal.vue b/packages/client/hmi-client/src/components/project/tera-upload-resources-modal.vue index 71c5ae300b..d8038d9e59 100644 --- a/packages/client/hmi-client/src/components/project/tera-upload-resources-modal.vue +++ b/packages/client/hmi-client/src/components/project/tera-upload-resources-modal.vue @@ -83,6 +83,7 @@ import DatasetIcon from '@/assets/svg/icons/dataset.svg?component'; import { uploadArtifactToProject } from '@/services/artifact'; import { createModel, createModelAndModelConfig, processAndAddModelToProject, validateAMRFile } from '@/services/model'; import { createProvenance, RelationshipType } from '@/services/provenance'; +import { isTextFile } from '@/utils/file'; defineProps<{ visible: boolean; @@ -216,9 +217,7 @@ async function upload() { const createdAssets = await Promise.all(createAssetsPromises); createdAssets.forEach((_, index) => { const { name, id } = (results.value ?? [])[index]; - if (name && name.toLowerCase().endsWith('.pdf')) { - extractPDF(id); - } + if (name && isTextFile(name)) extractPDF(id); }); emit('close'); const resourceMsg = createdAssets.length > 1 ? 'resources were' : 'resource was'; diff --git a/packages/client/hmi-client/src/utils/file.ts b/packages/client/hmi-client/src/utils/file.ts index 0591de6629..c8f07d4ef2 100644 --- a/packages/client/hmi-client/src/utils/file.ts +++ b/packages/client/hmi-client/src/utils/file.ts @@ -11,3 +11,10 @@ export async function fileToJson(file: File): Promise> { reader.readAsText(file); }); } + +/** + * Check if a filename ends with a pdf, txt, or md extension + */ +export function isTextFile(filename: string): boolean { + return /\.(pdf|txt|md)$/.test(filename.trim()); +}