From 18835ba36b964dbca19fd8191a38d7486ad068cb Mon Sep 17 00:00:00 2001
From: Titus Kristiansen <titusk@stud.ntnu.no>
Date: Thu, 5 May 2022 14:59:52 +0200
Subject: [PATCH] Delete user modal added

---
 .../UserAuthComponents/DeleteUserModal.vue    | 59 +++++++++++++++++++
 .../UserProfileComponents/UserProfile.vue     | 20 +++++--
 src/services/user.service.js                  | 11 ++++
 3 files changed, 85 insertions(+), 5 deletions(-)
 create mode 100644 src/components/UserAuthComponents/DeleteUserModal.vue

diff --git a/src/components/UserAuthComponents/DeleteUserModal.vue b/src/components/UserAuthComponents/DeleteUserModal.vue
new file mode 100644
index 0000000..be010e6
--- /dev/null
+++ b/src/components/UserAuthComponents/DeleteUserModal.vue
@@ -0,0 +1,59 @@
+<template>
+  <!-- Main modal -->
+  <div
+      v-if="visible"
+      class="fixed grid place-items-center bg-gray-600 bg-opacity-50 top-0 left-0 right-0 z-50 w-full overflow-x-hidden overflow-y-auto inset-0 h-full"
+  >
+    <div class="relative w-full h-full max-w-2xl p-4 md:h-auto">
+      <!-- Modal content -->
+      <div class="relative bg-white rounded-lg shadow dark:bg-gray-700">
+        <!-- Modal header -->
+        <div
+            class="flex items-start justify-between p-4 border-b rounded-t dark:border-gray-600"
+        >
+          <h3 class="text-xl font-semibold text-gray-900 dark:text-white">
+            Er du helt sikker?
+          </h3>
+          <button
+              @click="close()"
+              class="text-gray-400 bg-transparent hover:bg-gray-200 hover:text-gray-900 rounded-lg text-sm p-1.5 ml-auto inline-flex items-center dark:hover:bg-gray-600 dark:hover:text-white"
+          >
+            <svg
+                class="w-5 h-5"
+                fill="currentColor"
+                viewBox="0 0 20 20"
+                xmlns="http://www.w3.org/2000/svg"
+            >
+              <path
+                  fill-rule="evenodd"
+                  d="M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z"
+                  clip-rule="evenodd"
+              ></path>
+            </svg>
+          </button>
+        </div>
+        <!-- Modal body -->
+        <div class="p-6 space-y-6">
+          <div click="deleteUser" class="text-xl text-error-dark cursor-pointer">Slett bruker</div>
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  name: "DeleteUserModal",
+  props: {
+    visible: Boolean,
+  },
+  methods: {
+    close() {
+      this.$emit("close");
+    },
+    deleteUser(){
+      this.$emit("deleteUser")
+    },
+  },
+};
+</script>
diff --git a/src/components/UserProfileComponents/UserProfile.vue b/src/components/UserProfileComponents/UserProfile.vue
index 142f3e6..a9f152f 100644
--- a/src/components/UserProfileComponents/UserProfile.vue
+++ b/src/components/UserProfileComponents/UserProfile.vue
@@ -2,6 +2,7 @@
   <div
     class="w-full max-w-xl m-auto md:ring-1 ring-gray-300 overflow-hidden rounded-xl p-4"
   >
+    <DeleteUserModal :visible="show" @close="this.show = false"/>
     <div v-show="isCurrentUser" class="float-right px-4 pt-4">
       <button
         id="dropdownDefault"
@@ -68,11 +69,11 @@
             >
           </li>
           <li>
-            <router-link
-              to=""
-              class="block py-2 px-4 text-sm text-error-dark hover:bg-gray-100 dark:hover:bg-gray-600 dark:text-gray-200 dark:hover:text-white"
-              >Slett bruker</router-link
-            >
+            <div class="block py-2 px-4 text-sm text-error-dark cursor-pointer"
+            @click="toggleModal"
+                 >
+              Slett bruker
+            </div>
           </li>
         </ul>
       </div>
@@ -108,6 +109,7 @@ import RatingComponent from "@/components/UserProfileComponents/RatingComponents
 import { parseCurrentUser } from "@/utils/token-utils";
 import { getUser } from "@/utils/apiutil";
 import UserService from "@/services/user.service";
+import DeleteUserModal from "@/components/UserAuthComponents/DeleteUserModal";
 
 export default {
   name: "LargeProfileCard",
@@ -123,10 +125,12 @@ export default {
       profileImage: {
         src: require("../../assets/defaultUserProfileImage.jpg"),
       },
+      show: false,
     };
   },
   components: {
     RatingComponent,
+    DeleteUserModal,
   },
   computed: {
     getProfilePicture() {
@@ -162,6 +166,12 @@ export default {
       this.$store.commit("logout");
       this.$router.push("/");
     },
+    toggleModal() {
+      this.show = !this.show;
+    },
+    deleteUser(){
+      console.log("Deleted")
+    },
   },
   beforeMount() {
     this.getUser();
diff --git a/src/services/user.service.js b/src/services/user.service.js
index 44b6159..6c54e82 100644
--- a/src/services/user.service.js
+++ b/src/services/user.service.js
@@ -100,5 +100,16 @@ class UserService {
       })
       .catch((err) => console.error(err));
   }
+
+  async deleteUser() {
+    return await axios
+        .get(API_URL + "user/delete", {
+          headers: tokenHeader(),
+        })
+        .then((res) => {
+          return res.data;
+        })
+        .catch((err) => console.error(err));
+  }
 }
 export default new UserService();
-- 
GitLab