From 1c7b891b036226ae2beb30bfb4297c6fe5a0b622 Mon Sep 17 00:00:00 2001 From: Pep Villalonga Date: Wed, 17 Jun 2026 10:55:02 +0200 Subject: [PATCH] feat: implement validation aboutyou form + format --- .../project/PlatformUpdateCard.svelte | 1 + src/components/project/ProjectUpdate.svelte | 2 +- .../project/edit/OwnerInfoStep.svelte | 22 +++++++++++++------ 3 files changed, 17 insertions(+), 8 deletions(-) diff --git a/src/components/project/PlatformUpdateCard.svelte b/src/components/project/PlatformUpdateCard.svelte index f3c31210..45ec1b18 100644 --- a/src/components/project/PlatformUpdateCard.svelte +++ b/src/components/project/PlatformUpdateCard.svelte @@ -5,6 +5,7 @@ import { locale } from "../../i18n/store"; import { type ProjectUpdate } from "../../openapi/client/index"; import { formatDate } from "../../utils/dates.ts"; + import type { ProjectUpdateCardType } from "./ProjectUpdateCard.svelte"; const cardStyles = { diff --git a/src/components/project/ProjectUpdate.svelte b/src/components/project/ProjectUpdate.svelte index 948695de..a6028550 100644 --- a/src/components/project/ProjectUpdate.svelte +++ b/src/components/project/ProjectUpdate.svelte @@ -2,6 +2,7 @@ import { Modal } from "flowbite-svelte"; import { onDestroy, onMount } from "svelte"; + import PlatformUpdateCard from "./PlatformUpdateCard.svelte"; import ProjectUpdateCard, { type ProjectUpdateCardType } from "./ProjectUpdateCard.svelte"; import { t } from "../../i18n/store"; import { apiProjectUpdatesGetCollection } from "../../openapi/client/index"; @@ -12,7 +13,6 @@ import Button from "../library/Button.svelte"; import type { Project, ProjectUpdate } from "../../openapi/client/index"; - import PlatformUpdateCard from "./PlatformUpdateCard.svelte"; let { lang = $bindable(), diff --git a/src/components/project/edit/OwnerInfoStep.svelte b/src/components/project/edit/OwnerInfoStep.svelte index e68230d4..a51c7717 100644 --- a/src/components/project/edit/OwnerInfoStep.svelte +++ b/src/components/project/edit/OwnerInfoStep.svelte @@ -18,7 +18,12 @@ let { project: _project, onPublish }: { project: Project; onPublish?: () => void } = $props(); - type ContactEntry = { type: "email" | "phone" | "text"; value: string; preferred: boolean }; + type ContactEntry = { + id: string; + type: "email" | "phone" | "text"; + value: string; + preferred: boolean; + }; let legalEntityType = $state<"individual" | "organization">("individual"); // let prefill = $state(""); @@ -28,8 +33,8 @@ // let country = $state(""); // let teamDescription = $state(""); let privateContacts = $state([ - { type: "email", value: "", preferred: true }, - { type: "phone", value: "", preferred: false }, + { id: crypto.randomUUID(), type: "email", value: "", preferred: true }, + { id: crypto.randomUUID(), type: "phone", value: "", preferred: false }, ]); let preferredIndex = $state(0); let iban = $state(""); @@ -55,7 +60,10 @@ } function addContact() { - privateContacts = [...privateContacts, { type: "text", value: "", preferred: false }]; + privateContacts = [ + ...privateContacts, + { id: crypto.randomUUID(), type: "text", value: "", preferred: false }, + ]; } function deleteContact(i: number) { @@ -216,9 +224,9 @@

- {#each privateContacts as contact, i} + {#each privateContacts as contact, i (contact.id)}
-
touch(`contact-${i}`)}> +
touch(contact.id)}>