From 96d6065fe35949b2945dd61148414cb818c1277e Mon Sep 17 00:00:00 2001
From: Gilgard <Hjelljord.alida@gmail.com>
Date: Mon, 25 Apr 2022 10:55:59 +0200
Subject: [PATCH] changed from vuetify to tailwind

---
 .../LargeProfileCard.vue                      | 173 +++++++++++++-----
 .../UserProfileComponents/RatingComponent.vue |  50 +++--
 src/views/ProfileView.vue                     |   6 +-
 3 files changed, 158 insertions(+), 71 deletions(-)

diff --git a/src/components/UserProfileComponents/LargeProfileCard.vue b/src/components/UserProfileComponents/LargeProfileCard.vue
index ddf52b1..2e4c3b5 100644
--- a/src/components/UserProfileComponents/LargeProfileCard.vue
+++ b/src/components/UserProfileComponents/LargeProfileCard.vue
@@ -1,68 +1,145 @@
 <template>
-  <v-card min-width="350" class="mx-auto py-2">
-    <v-img height="250" src="@/assets/defaultUserProfileImage.jpg"></v-img>
+  <div
+    class="max-w-sm bg-white rounded-lg border border-gray-200 shadow-md dark:bg-gray-800 dark:border-gray-700"
+  >
+    <div v-show="isCurrentUser" class="flex justify-end px-4 pt-4">
+      <button
+        id="dropdownButton"
+        data-dropdown-toggle="dropdown"
+        class="hidden sm:inline-block text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-1.5"
+        type="button"
+      >
+        <svg
+          class="w-6 h-6"
+          fill="currentColor"
+          viewBox="0 0 20 20"
+          xmlns="http://www.w3.org/2000/svg"
+        >
+          <path
+            d="M10 6a2 2 0 110-4 2 2 0 010 4zM10 12a2 2 0 110-4 2 2 0 010 4zM10 18a2 2 0 110-4 2 2 0 010 4z"
+          ></path>
+        </svg>
+      </button>
 
-    <v-card-title>{{ name }}</v-card-title>
+      <div
+        id="dropdown"
+        class="hidden z-10 w-44 text-base list-none bg-white rounded divide-y divide-gray-100 shadow dark:bg-gray-700"
+        data-popper-reference-hidden=""
+        data-popper-escaped=""
+        data-popper-placement="top"
+        style="
+          position: absolute;
+          inset: auto auto 0px 0px;
+          margin: 0px;
+          transform: translate3d(653.6px, 2976.8px, 0px);
+        "
+      >
+        <ul class="py-1" aria-labelledby="dropdownButton">
+          <li>
+            <router-link
+              to=""
+              class="block py-2 px-4 text-sm text-gray-700 hover:bg-gray-100 dark:hover:bg-gray-600 dark:text-gray-200 dark:hover:text-white"
+              >Mine gjenstander</router-link
+            >
+          </li>
+          <li>
+            <router-link
+              to=""
+              class="block py-2 px-4 text-sm text-gray-700 hover:bg-gray-100 dark:hover:bg-gray-600 dark:text-gray-200 dark:hover:text-white"
+              >Mine grupper
+            </router-link>
+          </li>
+          <li>
+            <router-link
+              to=""
+              class="block py-2 px-4 text-sm text-gray-700 hover:bg-gray-100 dark:hover:bg-gray-600 dark:text-gray-200 dark:hover:text-white"
+              >Leiehistorikk</router-link
+            >
+          </li>
+          <li>
+            <router-link
+              to=""
+              class="block py-2 px-4 text-sm text-gray-700 hover:bg-gray-100 dark:hover:bg-gray-600 dark:text-gray-200 dark:hover:text-white"
+              >Endre passord</router-link
+            >
+          </li>
+          <li>
+            <router-link
+              to=""
+              class="block py-2 px-4 text-sm text-red-600 hover:bg-gray-100 dark:hover:bg-gray-600 dark:text-gray-200 dark:hover:text-white"
+              >Slett bruker</router-link
+            >
+          </li>
+        </ul>
+      </div>
+    </div>
+    <div class="flex flex-col items-center pb-10">
+      <img
+        class="mb-3 w-24 h-24 rounded-full shadow-lg"
+        :src="getProfilePicture()"
+        alt="Profile picture"
+      />
+      <h5 class="mb-1 text-xl font-medium text-gray-900 dark:text-white">
+        {{ user.firstName }} {{ user.lastName }}
+      </h5>
+      <div>
+        <rating-component :rating="renterRating" :ratingType="'Leietaker'" />
+        <rating-component :rating="ownerRating" :ratingType="'Utleier'" />
+      </div>
 
-    <v-card-text>
-      <rating-component :rating="renterRating" :ratingType="'Leietaker'" />
-      <rating-component :rating="ownerRating" :ratingType="'Utleier'" />
-    </v-card-text>
-
-    <v-divider class="mx-4"></v-divider>
-
-    <v-card-text v-if="isCurrentUser">
-      <v-chip class="ma-2" color="primary" outlined pill>
-        Mine gjenstander
-        <v-icon right> mdi-archive-outline </v-icon>
-      </v-chip>
-
-      <v-chip class="ma-2" color="primary" outlined pill>
-        Mine grupper
-        <v-icon right> mdi-account-multiple-outline </v-icon>
-      </v-chip>
-
-      <v-chip class="ma-2" color="primary" outlined pill>
-        Leiehistorikk
-        <v-icon right> mdi-history </v-icon>
-      </v-chip>
-
-      <v-chip class="ma-2" color="primary" outlined pill>
-        Endre passord
-        <v-icon right> mdi-wrench-outline </v-icon>
-      </v-chip>
-    </v-card-text>
-
-    <v-card-text v-else>
-      <v-chip class="ma-2" color="primary" outlined pill>
-        Ã…pne chat
-        <v-icon right> mdi-chat </v-icon>
-      </v-chip>
-    </v-card-text>
-  </v-card>
+      <div v-show="!isCurrentUser" class="flex mt-4 space-x-3 lg:mt-6">
+        <a
+          href="#"
+          class="inline-flex items-center py-2 px-4 text-sm font-medium text-center text-gray-900 bg-white rounded-lg border border-gray-300 hover:bg-gray-100 focus:ring-4 focus:outline-none focus:ring-gray-200 dark:bg-gray-800 dark:text-white dark:border-gray-600 dark:hover:bg-gray-700 dark:hover:border-gray-700 dark:focus:ring-gray-700"
+          >Ã…pne chat</a
+        >
+      </div>
+    </div>
+  </div>
 </template>
 
 <script>
 import RatingComponent from "@/components/UserProfileComponents/RatingComponent.vue";
+import { parseUserFromToken } from "@/utils/token-utils";
+import { getUser /* getRenterRating, getOwnerRating */ } from "@/utils/apiutil";
+import router from "@/router";
 
 export default {
   name: "LargeProfileCard",
+  props: {
+    isCurrentUser: Boolean,
+  },
   data() {
     return {
-      name: "Navn Navnesen",
-      renterRating: 3.5,
-      ownerRating: 4.5,
+      user: this.getUser(),
+      renterRating: 3, //getRenterRating(this.userID),
+      ownerRating: 5, //getOwnerRating(this.userID),
     };
   },
-  computed: {
-    //user: getUser(userID),
-  },
   components: {
     RatingComponent,
   },
-  props: {
-    userID: Number,
-    isCurrentUser: Boolean,
+  methods: {
+    getUser() {
+      let id = router.currentRoute.value.params.id;
+      /* let user = {
+        id: router.currentRoute.value.params.id,
+        firstName: "Navn",
+        lastName: "Navnesen",
+        picture: "",
+      }; */
+      if (this.isCurrentUser) {
+        return parseUserFromToken();
+      }
+      return getUser(id);
+      //return user;
+    },
+    getProfilePicture() {
+      if (this.user.picture == "") {
+        return "../assets/defaultUserProfileImage.jpg";
+      }
+      return this.user.picture;
+    },
   },
 };
 </script>
diff --git a/src/components/UserProfileComponents/RatingComponent.vue b/src/components/UserProfileComponents/RatingComponent.vue
index 218b35c..f79ff22 100644
--- a/src/components/UserProfileComponents/RatingComponent.vue
+++ b/src/components/UserProfileComponents/RatingComponent.vue
@@ -1,22 +1,28 @@
 <template>
-  <v-row class="mb-6" justify="start" dense>
-    <v-col cols="5">
-      <div>{{ ratingType }} rating:</div>
-    </v-col>
-    <v-col cols="2">
-      <v-rating
-        v-model="compRating"
-        color="amber"
-        dense
-        half-increments
-        readonly
-        size="14"
-      ></v-rating>
-    </v-col>
-    <v-col cols="1">
-      <div class="grey--text ms-4">{{ compRating }}</div>
-    </v-col>
-  </v-row>
+  <ul class="flex justify-center">
+    <li>
+      <p class="ml-2 text-sm font-medium text-gray-500 dark:text-gray-400">
+        {{ ratingType }}:&nbsp;
+      </p>
+    </li>
+    <li v-for="i in 5" :key="i">
+      <svg
+        :class="getFill(i)"
+        fill="currentColor"
+        viewBox="0 0 20 20"
+        xmlns="http://www.w3.org/2000/svg"
+      >
+        <path
+          d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"
+        ></path>
+      </svg>
+    </li>
+    <li>
+      <p class="ml-2 text-sm font-medium text-gray-500 dark:text-gray-400">
+        {{ compRating }} out of 5
+      </p>
+    </li>
+  </ul>
 </template>
 
 <script>
@@ -31,5 +37,13 @@ export default {
     rating: Number,
     ratingType: String,
   },
+  methods: {
+    getFill(i) {
+      if (i <= this.rating) {
+        return "w-5 h-5 text-yellow-400";
+      }
+      return "w-5 h-5 text-gray-300 dark:text-gray-500";
+    },
+  },
 };
 </script>
diff --git a/src/views/ProfileView.vue b/src/views/ProfileView.vue
index 020125b..cfd2cef 100644
--- a/src/views/ProfileView.vue
+++ b/src/views/ProfileView.vue
@@ -1,10 +1,6 @@
 <!-- View for looking at different profile display methods -->
 <template>
-  <v-container>
-    <v-row align="center" class="pa-2">
-      <large-profile-card :isCurrentUser="true" :userID="2" />
-    </v-row>
-  </v-container>
+  <large-profile-card :isCurrentUser="true" />
 </template>
 
 <script>
-- 
GitLab