useProductCart.js 1.0KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import { reactive } from 'vue'
  2. import FormValidationError from '@/utils/FormValidationError'
  3. export function useProductCart(form) {
  4. const cartProduct = reactive([])
  5. const productAddValidation = () => {
  6. if (form.price) {
  7. throw new FormValidationError('Nilai tidak boleh kosong', 'price')
  8. } else if (form.qty) {
  9. throw new FormValidationError('Nilai tidak boleh kosong', 'qty')
  10. } else if (form.product) {
  11. throw new FormValidationError('Nilai tidak boleh kosong', 'product')
  12. }
  13. }
  14. const onAddProduct = () => {
  15. try {
  16. form.clearErrors(['price', 'qty', 'product'])
  17. productAddValidation()
  18. cartProduct.push({
  19. number: form.product.number,
  20. name: form.product.name,
  21. price: form.price,
  22. qty: form.qty,
  23. })
  24. } catch (e) {
  25. form.setError(e.field, e.message)
  26. }
  27. }
  28. const onDeleteProduct = (index) => {
  29. cartProduct.splice(index)
  30. }
  31. const onClearProduct = () => {}
  32. return {
  33. cartProduct,
  34. onAddProduct,
  35. onDeleteProduct,
  36. onClearProduct,
  37. }
  38. }