add: copy cart logic

v0.8
rrr-marble 3 years ago
parent 8a61661004
commit 28a8d6c07a

@ -36,7 +36,7 @@
<va-button v-else @click="removeFromCart">Убрать из корзины</va-button>
</template>
<va-button @click="copyCart">Скопировать список образцов</va-button>
<va-button @click="copyCart">{{ copyCartText }}</va-button>
<va-button color="warning" @click="emptyCart">Очистить корзину</va-button>
</va-card-actions>
@ -72,6 +72,7 @@ export default {
"description",
],
itemsInCart: [],
cartListCopied: false,
}
},
methods: {
@ -82,6 +83,7 @@ export default {
.then(data => {
this.itemsInCart.push(data);
localStorage.setItem("cart", JSON.stringify(this.itemsInCart));
this.cartListCopied = false;
})
.catch((e) => console.log(e));
}
@ -90,13 +92,18 @@ export default {
const routeId = Number.parseInt(this.$route.params.id);
this.itemsInCart = this.itemsInCart.filter(item => item.id !== routeId)
localStorage.setItem("cart", JSON.stringify(this.itemsInCart));
this.cartListCopied = false;
},
copyCart() {
// TODO: actual copying logic
console.log("Copying item list from cart");
console.log("Text to copy: " + this.itemsInCart
const textToCopy = this.itemsInCart
.map(item => item.internal_id)
.reduce((list, item_id) => list + "," + item_id))
.reduce((list, item_id) => list + "," + item_id)
navigator.clipboard.writeText(textToCopy)
.then(() => this.cartListCopied = true)
.catch(e => console.log("Error copying item list ("
+ textToCopy
+ ") from cart: "
+ e))
},
emptyCart() {
this.itemsInCart = [];
@ -145,6 +152,9 @@ export default {
const routeId = Number.parseInt(this.$route.params.id);
return this.itemsInCart.some(item => item.id === routeId)
},
copyCartText() {
return (this.cartListCopied ? 'Скопировано ✓✓' : 'Скопировать список образцов')
}
},
}
</script>

Loading…
Cancel
Save