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
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>
|