diff --git a/src/lib/elements/forms/inputFile.svelte b/src/lib/elements/forms/inputFile.svelte index 013e73f878..792da658cd 100644 --- a/src/lib/elements/forms/inputFile.svelte +++ b/src/lib/elements/forms/inputFile.svelte @@ -20,17 +20,6 @@ function setFiles(value: FileList) { if (!value) return; - const hasInvalidExt = Array.from(value).some((file) => { - const fileExtension = file.name.split('.').pop(); - return allowedFileExtensions?.length - ? !allowedFileExtensions.includes(fileExtension) - : false; - }); - if (hasInvalidExt) { - error = 'Invalid file extension'; - return; - } - files = value; input.files = value; } @@ -78,6 +67,20 @@ const handleChange = (event: Event) => { const target = event.currentTarget as HTMLInputElement; + + const isValidFiles = Array.from(target.files).every((file) => { + const fileExtension = file.name.split('.').pop(); + return allowedFileExtensions?.length + ? allowedFileExtensions.includes(fileExtension) + : true; + }); + + if (!isValidFiles) { + error = 'Invalid file extension'; + target.value = ''; + return; + } + setFiles(target.files); }; diff --git a/src/routes/console/project-[project]/functions/function-[function]/+page.svelte b/src/routes/console/project-[project]/functions/function-[function]/+page.svelte index 1462e407d6..aa0c3c17b2 100644 --- a/src/routes/console/project-[project]/functions/function-[function]/+page.svelte +++ b/src/routes/console/project-[project]/functions/function-[function]/+page.svelte @@ -25,7 +25,7 @@ TableRow, TableScroll } from '$lib/elements/table'; - import { deploymentList, execute, func, proxyRuleList } from './store'; + import { deploymentList, execute, func, proxyRuleList, showFunctionExecute } from './store'; import { Container, ContainerHeader } from '$lib/layout'; import { app } from '$lib/stores/app'; import { calculateSize, humanFileSize } from '$lib/helpers/sizeConvertion'; @@ -151,7 +151,10 @@ diff --git a/src/routes/console/project-[project]/functions/function-[function]/execute.svelte b/src/routes/console/project-[project]/functions/function-[function]/execute.svelte index 278a3ceabd..4c10082c4b 100644 --- a/src/routes/console/project-[project]/functions/function-[function]/execute.svelte +++ b/src/routes/console/project-[project]/functions/function-[function]/execute.svelte @@ -16,6 +16,7 @@ import { addNotification } from '$lib/stores/notifications'; import { sdk } from '$lib/stores/sdk'; import type { Models } from '@appwrite.io/console'; + import { showFunctionExecute } from './store'; export let selectedFunction: Models.Function = null; @@ -34,13 +35,8 @@ { label: 'OPTIONS', value: 'OPTIONS' } ]; - let show = false; let submitting = false; - $: if (selectedFunction && !show) { - show = true; - } - const handleSubmit = async () => { submitting = true; try { @@ -80,7 +76,7 @@ function close() { selectedFunction = null; - show = false; + $showFunctionExecute = false; } afterNavigate(close); @@ -89,10 +85,9 @@

Manually execute your function. (selectedFunction = $func)}> + buttonMethod={() => { + selectedFunction = $func; + $showFunctionExecute = true; + }}>

The {tier} plan has limits