diff --git a/src/app/portfolio/[slug]/components/InputFile.tsx b/src/app/portfolio/[slug]/components/InputFile.tsx index 60b0dad7..70c7487a 100644 --- a/src/app/portfolio/[slug]/components/InputFile.tsx +++ b/src/app/portfolio/[slug]/components/InputFile.tsx @@ -6,10 +6,12 @@ export function InputFile({ onFileSelect, isValidating, isValid, + errorMessage, }: { onFileSelect: (file: File) => void; isValidating: boolean; isValid: boolean | null; + errorMessage: string | null; }) { function handleOnChange(e: React.ChangeEvent) { const file = e.target.files?.[0]; @@ -18,14 +20,11 @@ export function InputFile({ const validExtensions = ["csv", "xls", "xlsx"]; const fileExtension = file.name.split(".").pop()?.toLowerCase(); - console.log("Extension: ", fileExtension); - if (!fileExtension || !validExtensions.includes(fileExtension)) { console.error("Unsupported file type"); e.target.value = ""; return; } - console.log("TRIGGER"); onFileSelect(file); } @@ -46,9 +45,7 @@ export function InputFile({ )} {isValid === false && !isValidating && ( - - File validation failed - + {errorMessage} )} ); diff --git a/src/app/portfolio/[slug]/components/UploadCsvModal.tsx b/src/app/portfolio/[slug]/components/UploadCsvModal.tsx index f2093121..b5093ff8 100644 --- a/src/app/portfolio/[slug]/components/UploadCsvModal.tsx +++ b/src/app/portfolio/[slug]/components/UploadCsvModal.tsx @@ -168,12 +168,13 @@ export async function validateClientFile(file: File): Promise<{ sheetRowCounts[sheetName] = rowCount; } - console.log("Sheet Counts", sheetRowCounts); - if (!isStandardised) { + // Explain why the file is not standardised + return { isValid: false, - error: "Excel file is not a valid domna asset list.", + error: + "Excel file is not a valid domna asset list - either no 'Standardised Asset List' tab or no domna property ID reference.", file_type: "xlsx", sheetNames, sheetRowCounts, @@ -369,6 +370,7 @@ export default function UploadCsvModal({ const [isValidating, setIsValidating] = useState(false); const [fileIsValid, setFileIsValid] = useState(null); const [sheetCounts, setSheetCounts] = useState>({}); + const [errorMessage, setErrorMessage] = useState(null); const scenarioOptions = useMemo( () => @@ -482,6 +484,10 @@ export default function UploadCsvModal({ if (!result.isValid) { setFileIsValid(false); + // Set validation message + setErrorMessage( + result.error || "File validation failed" + ); setCsvFile(null); setSheetNames([]); setSelectedSheet(""); @@ -504,6 +510,7 @@ export default function UploadCsvModal({ }} isValidating={isValidating} isValid={fileIsValid} + errorMessage={errorMessage} />