diff --git a/src/lib/elements/forms/inputSelect.svelte b/src/lib/elements/forms/inputSelect.svelte index f0cf489bf..14bd7505f 100644 --- a/src/lib/elements/forms/inputSelect.svelte +++ b/src/lib/elements/forms/inputSelect.svelte @@ -27,6 +27,14 @@ error = element.validationMessage; }; + $: if (element && required && !value) { + element.setCustomValidity('This field is required'); + } + + $: if (element && required && value) { + element.setCustomValidity(''); + } + $: if (value) { error = null; } diff --git a/src/routes/console/project-[project]/databases/database-[database]/collection-[collection]/document-[document]/attributes/enum.svelte b/src/routes/console/project-[project]/databases/database-[database]/collection-[collection]/document-[document]/attributes/enum.svelte index 0499984d0..839191430 100644 --- a/src/routes/console/project-[project]/databases/database-[database]/collection-[collection]/document-[document]/attributes/enum.svelte +++ b/src/routes/console/project-[project]/databases/database-[database]/collection-[collection]/document-[document]/attributes/enum.svelte @@ -7,6 +7,7 @@ export let value: string; export let attribute: Models.AttributeEnum; export let optionalText: string | undefined = undefined; + export let required = false; $: options = attribute.elements.map((element) => { return { @@ -22,5 +23,6 @@ {id} {label} {optionalText} + required={attribute.required} placeholder="Select a value" showLabel={!!label?.length} /> diff --git a/src/routes/console/project-[project]/functions/function-[function]/[[page]]/+page.svelte b/src/routes/console/project-[project]/functions/function-[function]/[[page]]/+page.svelte index abf5c880c..af41f1d46 100644 --- a/src/routes/console/project-[project]/functions/function-[function]/[[page]]/+page.svelte +++ b/src/routes/console/project-[project]/functions/function-[function]/[[page]]/+page.svelte @@ -156,7 +156,7 @@
Inactive
- {#if data.deployments.total > 1} + {#if data.deployments.total > 1 || (!activeDeployment && data.deployments.total === 1)} Deployment ID diff --git a/src/routes/console/project-[project]/functions/function-[function]/create.svelte b/src/routes/console/project-[project]/functions/function-[function]/create.svelte index 3f5ff6e0b..f296dd13d 100644 --- a/src/routes/console/project-[project]/functions/function-[function]/create.svelte +++ b/src/routes/console/project-[project]/functions/function-[function]/create.svelte @@ -3,7 +3,6 @@ import { Modal, Collapsible, CollapsibleItem, Tabs, Tab, Code } from '$lib/components'; import { sdkForProject } from '$lib/stores/sdk'; import { createEventDispatcher, onMount } from 'svelte'; - import { addNotification } from '$lib/stores/notifications'; import { page } from '$app/stores'; import GithubLight from '$lib/images/github-illustration-light.svg'; import GithubDark from '$lib/images/github-illustration-dark.svg'; @@ -27,6 +26,7 @@ let lang = 'js'; let codeSnippets = {}; let os = 'unknown'; + let error: string = null; const functionId = $page.params.function; const dispatch = createEventDispatcher(); @@ -97,16 +97,15 @@ files[0], active ); - await invalidate(Dependencies.FUNCTION); - files = entrypoint = active = null; + await invalidate(Dependencies.DEPLOYMENTS); + files = undefined; + entrypoint = null; + active = false; showCreate = false; dispatch('created'); trackEvent('submit_deployment_create'); - } catch (error) { - addNotification({ - type: 'error', - message: error.message - }); + } catch ({ message }) { + error = message; } } @@ -124,9 +123,16 @@ return index === 0; } } + + $: if (!showCreate) { + files = undefined; + entrypoint = null; + active = false; + error = null; + } - + Create Deployment (mode = Mode.CLI)} selected={mode === Mode.CLI} event="deploy_cli">