Handle state issues

This commit is contained in:
Adria Navarro 2024-07-31 10:06:03 +02:00
parent 737b250b29
commit 780f672100
1 changed files with 19 additions and 27 deletions

View File

@ -100,51 +100,43 @@
async function handleFile(e) {
loading = true
error = null
const previousValidation = validation
validation = {}
try {
const response = await parseFile(e)
rows = response.rows
fileName = response.fileName
const newValidateHash = JSON.stringify(rows)
if (newValidateHash === validateHash) {
validation = previousValidation
} else {
await validate(rows)
validateHash = newValidateHash
}
} catch (e) {
error = e.message || e
} finally {
loading = false
error = e
}
}
async function validate(rows) {
loading = true
error = null
validation = {}
allValid = false
try {
if (rows.length > 0) {
const response = await API.validateExistingTableImport({
rows,
tableId,
})
if (rows.length > 0) {
const response = await API.validateExistingTableImport({
rows,
tableId,
})
validation = response.schemaValidation
invalidColumns = response.invalidColumns
allValid = response.allValid
}
} catch (e) {
error = e.message
validation = response.schemaValidation
invalidColumns = response.invalidColumns
allValid = response.allValid
}
loading = false
}
$: {
// binding in consumer is causing double renders here
const newValidateHash = JSON.stringify(rows)
if (newValidateHash !== validateHash) {
validate(rows)
}
validateHash = newValidateHash
}
</script>