Skip to content
Snippets Groups Projects
Commit 45fc23d8 authored by Titus Netland's avatar Titus Netland
Browse files

Merge branch 'rental-image-chat' into 'main'

Rental image chat

See merge request !143
parents caf3b73a e11c942d
No related branches found
No related tags found
1 merge request!143Rental image chat
Pipeline #182000 failed
...@@ -58,18 +58,18 @@ export default { ...@@ -58,18 +58,18 @@ export default {
calculateTime() { calculateTime() {
var time = this?.message.timestamp; var time = this?.message.timestamp;
var date = new Date(time); var date = new Date(time);
var mmOfMessage = String(date.getMinutes()); var mmOfMessage = String(date.getMinutes());
var hhOfMessage = String(date.getHours()); var hhOfMessage = String(date.getHours());
if(mmOfMessage <= 9){ if (mmOfMessage <= 9) {
mmOfMessage = "0" + mmOfMessage; mmOfMessage = "0" + mmOfMessage;
} }
if(hhOfMessage<=9){ if (hhOfMessage <= 9) {
hhOfMessage = "0" + hhOfMessage; hhOfMessage = "0" + hhOfMessage;
} }
var ddOfMessage = String(date.getDate()).padStart(2, "0"); var ddOfMessage = String(date.getDate()).padStart(2, "0");
var dayOfMessage = date.toLocaleString("default", { weekday: "short" }); var dayOfMessage = date.toLocaleString("default", { weekday: "short" });
var monthOfMessage = String(date.getMonth() + 1).padStart(2, "0"); var monthOfMessage = String(date.getMonth() + 1).padStart(2, "0");
const shortMonthOfMessage = date.toLocaleString("default", { const shortMonthOfMessage = date.toLocaleString("default", {
month: "short", month: "short",
}); });
...@@ -77,7 +77,7 @@ export default { ...@@ -77,7 +77,7 @@ export default {
var today = new Date(); var today = new Date();
var dd = String(today.getDate()).padStart(2, "0"); var dd = String(today.getDate()).padStart(2, "0");
var mm = String(today.getMonth() + 1).padStart(2, "0"); var mm = String(today.getMonth() + 1).padStart(2, "0");
var yyyy = today.getFullYear(); var yyyy = today.getFullYear();
if (ddOfMessage == dd) { if (ddOfMessage == dd) {
return "" + hhOfMessage + ":" + mmOfMessage + ""; return "" + hhOfMessage + ":" + mmOfMessage + "";
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
<p>Pris: {{ price }}kr</p> <p>Pris: {{ price }}kr</p>
</div> </div>
<div class="img-container"> <div class="img-container">
<img class="img" :src="img" alt="Produkt Bilde" /> <img class="img" :src="image" alt="Produkt Bilde" />
</div> </div>
</div> </div>
<div> <div>
...@@ -19,11 +19,21 @@ ...@@ -19,11 +19,21 @@
</p> </p>
</div> </div>
</div> </div>
<div class="buttons" v-if="(!rent.isAccepted && !rent.deleted && this.rent.renterId != this.userID)"> <div
class="buttons"
v-if="
!rent.isAccepted && !rent.deleted && this.rent.renterId != this.userID
"
>
<button class="button green" @click="accept">Godta</button> <button class="button green" @click="accept">Godta</button>
<button class="button red" @click="reject">Avslå</button> <button class="button red" @click="reject">Avslå</button>
</div> </div>
<div class="waiting" v-if="!rent.isAccepted && !rent.deleted && this.rent.renterId == this.userID"> <div
class="waiting"
v-if="
!rent.isAccepted && !rent.deleted && this.rent.renterId == this.userID
"
>
Waiting for owner to accept Waiting for owner to accept
</div> </div>
<div class="" v-if="rent.isAccepted"> <div class="" v-if="rent.isAccepted">
...@@ -38,8 +48,8 @@ ...@@ -38,8 +48,8 @@
<script> <script>
import axios from "axios"; import axios from "axios";
import { tokenHeader } from "@/utils/token-utils"; import { tokenHeader, parseCurrentUser } from "@/utils/token-utils";
import { parseCurrentUser } from "@/utils/token-utils"; import { getItemPictures, } from "@/utils/apiutil";
export default { export default {
props: { props: {
...@@ -48,6 +58,11 @@ export default { ...@@ -48,6 +58,11 @@ export default {
required: true, required: true,
}, },
}, },
data() {
return {
image: null,
}
},
computed: { computed: {
userID() { userID() {
return parseCurrentUser().accountId; return parseCurrentUser().accountId;
...@@ -75,9 +90,8 @@ export default { ...@@ -75,9 +90,8 @@ export default {
return this.rent.message || "Ingen Melding"; return this.rent.message || "Ingen Melding";
}, },
side() { side() {
return this.rent.renterId == this.userID return this.rent.renterId == this.userID ? "flex-end" : "flex-start";
? "flex-end" : "flex-start"; },
}
}, },
methods: { methods: {
async accept() { async accept() {
...@@ -93,6 +107,19 @@ export default { ...@@ -93,6 +107,19 @@ export default {
{ headers: tokenHeader() } { headers: tokenHeader() }
); );
}, },
async getImage() {
let images = await getItemPictures(this.rent.listingId);
if (images.length > 0) {
this.image = images[0].picture;
} else {
this.image = "https://images.unsplash.com/photo-1453728013993-6d66e9c9123a?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxzZWFyY2h8Mnx8dmlld3xlbnwwfHwwfHw%3D&w=1000&q=80";
}
},
},
async beforeMount() {
await this.getImage();
}, },
}; };
</script> </script>
......
...@@ -98,7 +98,11 @@ ...@@ -98,7 +98,11 @@
<rating-component :rating="ownerRating" :ratingType="'Utleier'" /> <rating-component :rating="ownerRating" :ratingType="'Utleier'" />
</div> </div>
<div v-show="!isCurrentUser" @click="$router.push('/messages?userID=' + id)" class="flex mt-4 space-x-3 lg:mt-6"> <div
v-show="!isCurrentUser"
@click="$router.push('/messages?userID=' + id)"
class="flex mt-4 space-x-3 lg:mt-6"
>
<a <a
href="#" 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" 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"
......
...@@ -13,6 +13,15 @@ jest.mock("@/utils/token-utils", () => { ...@@ -13,6 +13,15 @@ jest.mock("@/utils/token-utils", () => {
}; };
}); });
jest.mock("@/utils/apiutil", () => {
return {
getItemPictures: () => {
return new Promise((resolve) => {
resolve([]);
});
},
};
});
jest.mock("axios"); jest.mock("axios");
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment