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)}>