You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

89 lines
2.0 KiB

<template>
<div class="tw-cursor-pointer like">
<div v-if="childLiked" @click="removeServiceRelation">
<img
class="tw-w-[20px] tw-h-[18px] md:tw-w-[33px] md:tw-h-[30px]"
src="~/assets/svg/newHeart.svg"
alt=""
/>
</div>
<div v-else @click="buildServiceRelation">
<img
class="tw-w-[20px] tw-h-[18px] md:tw-w-[33px] md:tw-h-[30px]"
src="~/assets/svg/newHeartOutline.svg"
alt=""
/>
</div>
</div>
</template>
<script>
export default {
props: {
like: {
type: Boolean,
default: false,
},
serviceId: {
type: String,
default: "",
},
isForUserprofile: {
type: Boolean,
default: false,
},
},
data() {
return {
childLiked: false,
};
},
methods: {
removeServiceRelation() {
if (this.$auth.loggedIn) {
this.$axios
.delete(
`member/services/${this.serviceId}?jwt=${
this.$auth.$storage.getUniversal("jwt").token
}`
)
.then((result) => {
this.$emit("remove-relation");
this.$nextTick(() => {
this.childLiked = false;
});
})
.catch((err) => {
console.log(err);
});
} else {
this.$router.push(this.localePath("/user"));
}
},
buildServiceRelation() {
if (this.$auth.loggedIn) {
this.$axios
.patch(
`member/services/${this.serviceId}?jwt=${
this.$auth.$storage.getUniversal("jwt").token
}`
)
.then((result) => {
this.childLiked = true;
})
.catch((err) => {
console.log(err);
});
} else {
this.$router.push(this.localePath("/user"));
}
},
},
mounted() {
this.like ? (this.childLiked = true) : (this.childLiked = false);
},
updated() {
this.isForUserprofile ? (this.childLiked = true) : this.childLiked;
},
};
</script>
<style lang="scss" scoped></style>