From 2759e22ee0648b69d8007f37f08aa476e3f04c47 Mon Sep 17 00:00:00 2001
From: Cristiano Magro <cristiano.magro@vola.it>
Date: Mon, 30 Dec 2024 20:14:37 +0100
Subject: [PATCH] submit form new contact

---
 07 - development setup/vue-cli-01-a-new-vue-project/src/App.vue |   61 +++++++++++++++++++++++-------
 1 files changed, 46 insertions(+), 15 deletions(-)

diff --git a/07 - development setup/vue-cli-01-a-new-vue-project/src/App.vue b/07 - development setup/vue-cli-01-a-new-vue-project/src/App.vue
index a9ca593..9859157 100644
--- a/07 - development setup/vue-cli-01-a-new-vue-project/src/App.vue
+++ b/07 - development setup/vue-cli-01-a-new-vue-project/src/App.vue
@@ -3,17 +3,16 @@
     <header>
       <h1>My friends</h1>
     </header>
+    <new-friend @add-contact="addContact"></new-friend>
     <ul>
-      <friend-contact 
-      v-for="friend in friends"
-      :key="friend.id"
-      :id="friend.id"
-      :name="friend.name" 
-      :phone-number="friend.phone" 
-      :email-address="friend.email"
-      :is-favorite="friend.isFavorite"
-      @toggle-favorite="toggleFavoriteStatus"
-      ></friend-contact>
+      <friend-contact v-for="friend in friends" 
+        :key="friend.id" 
+        :id="friend.id" 
+        :name="friend.name"
+        :phone-number="friend.phone" 
+        :email-address="friend.email" 
+        :is-favorite="friend.isFavorite"
+        @toggle-favorite="toggleFavoriteStatus"></friend-contact>
     </ul>
   </section>
 </template>
@@ -35,18 +34,33 @@
           name: "Julie Jones",
           phone: "09876 543 221",
           email: "julie@localhost.com",
-          isFavorite: true,          
+          isFavorite: true,
         },
       ],
     }
   },
-  methods:{
-    toggleFavoriteStatus(friendId){
-      const found = this.friends.find( 
+  watch: {
+
+  },
+  methods: {
+    toggleFavoriteStatus(friendId) {
+      const found = this.friends.find(
         (friend) => friend.id === friendId
       );
       found.isFavorite = !found.isFavorite;
+    },
+
+    addContact(name, phone, email) {
+      const newFriendContact={
+        id: new Date().toISOString + name,
+        name: name,
+        phone: phone,
+        email:email,
+      };
+
+      this.friends.push(newFriendContact);
     }
+
   }
 };
 </script>
@@ -84,7 +98,8 @@
   list-style: none;
 }
 
-#app li {
+#app li,
+#app form {
   box-shadow: 0 2px 8px rgba(0, 0, 0, 0.26);
   margin: 1rem auto;
   border-radius: 10px;
@@ -117,4 +132,20 @@
   border-color: #ec3169;
   box-shadow: 1px 1px 4px rgba(0, 0, 0, 0.26);
 }
+
+#app input {
+  font: inherit;
+  padding: 0.15rem;
+}
+
+#app label {
+  font-weight: bold;
+  margin-right: 1rem;
+  width: 7rem;
+  display: inline-block;
+}
+
+#app form div {
+  margin: 1rem 0;
+}
 </style>
\ No newline at end of file

--
Gitblit v1.8.0