flowrix 1.0.1-beta.9 → 1.0.1-beta.92
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/module.d.mts +1 -6
- package/dist/module.json +1 -1
- package/dist/module.mjs +103 -34
- package/dist/runtime/composables/Blog/useBlogIndex.d.ts +2 -5
- package/dist/runtime/composables/Brand/brand.js +2 -0
- package/dist/runtime/composables/Cart/useCart.d.ts +40 -0
- package/dist/runtime/composables/Cart/useCart.js +10 -0
- package/dist/runtime/composables/Cart/useCartDetail.d.ts +15 -5
- package/dist/runtime/composables/Cart/useCartDetail.js +3 -0
- package/dist/runtime/composables/Checkout/PaymentMethods/useFlowrixpay.d.ts +40 -1
- package/dist/runtime/composables/Checkout/PaymentMethods/useFlowrixpay.js +2 -2
- package/dist/runtime/composables/Checkout/PaymentMethods/useOpayo.d.ts +40 -1
- package/dist/runtime/composables/Checkout/PaymentMethods/useOpayo.js +2 -2
- package/dist/runtime/composables/Checkout/PaymentMethods/usePaymentMethods.js +3 -14
- package/dist/runtime/composables/Checkout/PaymentMethods/useStripe.d.ts +2 -2
- package/dist/runtime/composables/Checkout/useCheckout.d.ts +84 -73
- package/dist/runtime/composables/Checkout/useCheckout.js +81 -34
- package/dist/runtime/composables/Checkout/useCheckoutBillingAddress.d.ts +43 -0
- package/dist/runtime/composables/Checkout/useCheckoutBillingAddress.js +84 -0
- package/dist/runtime/composables/Checkout/useCheckoutShippingAddress.d.ts +55 -0
- package/dist/runtime/composables/Checkout/useCheckoutShippingAddress.js +196 -0
- package/dist/runtime/composables/Checkout/useCreateAccount.d.ts +7 -7
- package/dist/runtime/composables/Checkout/useCreateAccount.js +3 -1
- package/dist/runtime/composables/Checkout/useDeliveryMethod.d.ts +2 -2
- package/dist/runtime/composables/Checkout/useDeliveryMethod.js +8 -7
- package/dist/runtime/composables/Customer/useBillingAddress.d.ts +112 -0
- package/dist/runtime/composables/Customer/useBillingAddress.js +93 -0
- package/dist/runtime/composables/Customer/useLogin.d.ts +9 -0
- package/dist/runtime/composables/Customer/useLogin.js +34 -0
- package/dist/runtime/composables/Customer/useOrders.d.ts +29 -0
- package/dist/runtime/composables/Customer/useOrders.js +56 -0
- package/dist/runtime/composables/Customer/usePasswordReset.d.ts +26 -0
- package/dist/runtime/composables/Customer/usePasswordReset.js +258 -0
- package/dist/runtime/composables/Customer/useProfile.d.ts +75 -0
- package/dist/runtime/composables/Customer/useProfile.js +106 -0
- package/dist/runtime/composables/Customer/useQuotations.d.ts +32 -0
- package/dist/runtime/composables/Customer/useQuotations.js +40 -0
- package/dist/runtime/composables/Customer/useRegister.d.ts +120 -11
- package/dist/runtime/composables/Customer/useRegister.js +311 -34
- package/dist/runtime/composables/Customer/useShippingAddress.d.ts +121 -0
- package/dist/runtime/composables/Customer/useShippingAddress.js +145 -0
- package/dist/runtime/composables/Customer/useUpdatePassword.d.ts +21 -0
- package/dist/runtime/composables/Customer/useUpdatePassword.js +94 -0
- package/dist/runtime/composables/Customer/useUserCards.d.ts +22 -0
- package/dist/runtime/composables/Customer/useUserCards.js +65 -0
- package/dist/runtime/composables/{useWishlists.d.ts → Customer/useWishlists.d.ts} +6 -19
- package/dist/runtime/composables/{useWishlists.js → Customer/useWishlists.js} +21 -29
- package/dist/runtime/composables/Extras/useCountry.d.ts +11 -6
- package/dist/runtime/composables/Extras/useCountry.js +5 -4
- package/dist/runtime/composables/Header/useHeader.d.ts +6 -20
- package/dist/runtime/composables/Header/useHeader.js +3 -2
- package/dist/runtime/composables/Product/CustomProduct/useCustomeScript.js +4 -4
- package/dist/runtime/composables/Product/CustomProduct/useSteps.d.ts +1 -1
- package/dist/runtime/composables/Product/useProductComponent.js +2 -0
- package/dist/runtime/composables/Product/useProductSlug.d.ts +8 -1
- package/dist/runtime/composables/Product/useQuickView.d.ts +8 -0
- package/dist/runtime/composables/Product/useQuickView.js +27 -0
- package/dist/runtime/composables/Product/useService.d.ts +1 -1
- package/dist/runtime/composables/Product/useService.js +0 -3
- package/dist/runtime/composables/SideBar/Filters/useFilters.d.ts +2 -2
- package/dist/runtime/composables/SideBar/Filters/useSorting.d.ts +2 -2
- package/dist/runtime/composables/index.d.ts +16 -12
- package/dist/runtime/composables/index.js +16 -12
- package/dist/runtime/composables/useAddresses.js +6 -6
- package/dist/runtime/composables/useCards.js +2 -2
- package/dist/runtime/composables/useDataLayer.js +2 -1
- package/dist/runtime/composables/useLocation.d.ts +2 -12
- package/dist/runtime/composables/useQuotationCheckout.d.ts +78 -0
- package/dist/runtime/composables/useQuotationCheckout.js +138 -0
- package/dist/runtime/middleware/flowrix.d.ts +5 -4
- package/dist/runtime/middleware/flowrix.js +41 -21
- package/dist/runtime/pages/flowrix-default.d.vue.ts +3 -0
- package/dist/runtime/pages/flowrix-default.vue +34 -0
- package/dist/runtime/pages/flowrix-default.vue.d.ts +3 -0
- package/dist/runtime/plugin.d.ts +1 -1
- package/dist/runtime/server/api/albums.d.ts +1 -0
- package/dist/runtime/server/api/albums.js +38 -12
- package/dist/runtime/server/api/auth/forgot.js +1 -1
- package/dist/runtime/server/api/auth/login.js +5 -6
- package/dist/runtime/server/api/auth/logout.js +1 -1
- package/dist/runtime/server/api/auth/register.js +1 -1
- package/dist/runtime/server/api/auth/session.get.js +1 -1
- package/dist/runtime/server/api/auth/user/reset-password.js +1 -1
- package/dist/runtime/server/api/auth/user/session.js +1 -1
- package/dist/runtime/server/api/auth/user/verify-token.js +1 -1
- package/dist/runtime/server/api/banners.js +15 -12
- package/dist/runtime/server/api/brand/[...slug].js +55 -0
- package/dist/runtime/server/api/brand/index.d.ts +3 -0
- package/dist/runtime/server/api/brand/index.js +49 -0
- package/dist/runtime/server/api/cache/[...slug].delete.d.ts +2 -0
- package/dist/runtime/server/api/cache/[...slug].delete.js +40 -0
- package/dist/runtime/server/api/cache/clean.get.d.ts +5 -0
- package/dist/runtime/server/api/cache/clean.get.js +16 -0
- package/dist/runtime/server/api/cart/[slug]/add.d.ts +1 -1
- package/dist/runtime/server/api/cart/[slug]/add.js +11 -11
- package/dist/runtime/server/api/cart/[slug]/update.d.ts +1 -1
- package/dist/runtime/server/api/cart/[slug]/update.js +11 -11
- package/dist/runtime/server/api/{blog/blog.d.ts → cart/related.d.ts} +0 -1
- package/dist/runtime/server/api/cart/related.js +21 -0
- package/dist/runtime/server/api/cart/remove.js +1 -1
- package/dist/runtime/server/api/cart/service/[slug]/add.d.ts +1 -1
- package/dist/runtime/server/api/cart/service/[slug]/add.js +12 -12
- package/dist/runtime/server/api/catalog/brands.d.ts +3 -0
- package/dist/runtime/server/api/catalog/brands.js +49 -0
- package/dist/runtime/server/api/catalog/categories.js +22 -16
- package/dist/runtime/server/api/catalog/categoriesall.d.ts +3 -0
- package/dist/runtime/server/api/catalog/categoriesall.js +49 -0
- package/dist/runtime/server/api/catalog/featured.js +22 -14
- package/dist/runtime/server/api/catalog/posts.d.ts +3 -0
- package/dist/runtime/server/api/catalog/posts.js +49 -0
- package/dist/runtime/server/api/catalog/samples.js +22 -16
- package/dist/runtime/server/api/catalog/search.js +21 -15
- package/dist/runtime/server/api/category/[...slug].js +22 -16
- package/dist/runtime/server/api/checkout/applyCoupon.d.ts +1 -1
- package/dist/runtime/server/api/checkout/applyCoupon.js +13 -13
- package/dist/runtime/server/api/checkout/configs.d.ts +1 -1
- package/dist/runtime/server/api/checkout/configs.js +11 -11
- package/dist/runtime/server/api/checkout/countries.d.ts +1 -1
- package/dist/runtime/server/api/checkout/countries.js +5 -9
- package/dist/runtime/server/api/checkout/paymentmethod.d.ts +1 -1
- package/dist/runtime/server/api/checkout/paymentmethod.js +16 -11
- package/dist/runtime/server/api/checkout/quotation/[slug].d.ts +2 -0
- package/dist/runtime/server/api/checkout/quotation/[slug].js +21 -0
- package/dist/runtime/server/api/checkout/quotation/guest/[slug].d.ts +2 -0
- package/dist/runtime/server/api/checkout/quotation/guest/[slug].js +37 -0
- package/dist/runtime/server/api/checkout/quotation/guest/customer.d.ts +2 -0
- package/dist/runtime/server/api/checkout/quotation/guest/customer.js +21 -0
- package/dist/runtime/server/api/checkout/quotation/submit/[slug].d.ts +2 -0
- package/dist/runtime/server/api/checkout/quotation/submit/[slug].js +23 -0
- package/dist/runtime/server/api/{blog/[slug].js → cmspost/[...slug].js} +19 -18
- package/dist/runtime/server/api/cmspost/all.d.ts +3 -0
- package/dist/runtime/server/api/cmspost/all.js +49 -0
- package/dist/runtime/server/api/company/profile.d.ts +1 -1
- package/dist/runtime/server/api/company/profile.js +9 -9
- package/dist/runtime/server/api/contact-center/webforms/[id]/details.d.ts +1 -1
- package/dist/runtime/server/api/contact-center/webforms/[id]/details.js +48 -15
- package/dist/runtime/server/api/contact-center/webforms/create.d.ts +1 -1
- package/dist/runtime/server/api/contact-center/webforms/create.js +10 -10
- package/dist/runtime/server/api/countries.d.ts +2 -0
- package/dist/runtime/server/api/countries.js +42 -0
- package/dist/runtime/server/api/customer/address/add.js +1 -1
- package/dist/runtime/server/api/customer/address/delete.js +2 -2
- package/dist/runtime/server/api/customer/address/setshipping.js +1 -1
- package/dist/runtime/server/api/customer/address/update.js +1 -1
- package/dist/runtime/server/api/customer/cards/delete.js +2 -2
- package/dist/runtime/server/api/customer/cards/get.js +2 -2
- package/dist/runtime/server/api/customer/change-password.js +2 -2
- package/dist/runtime/server/api/customer/checkout.js +1 -1
- package/dist/runtime/server/api/customer/orders.js +2 -2
- package/dist/runtime/server/api/customer/profile/update.js +1 -1
- package/dist/runtime/server/api/customer/quotations.js +2 -2
- package/dist/runtime/server/api/customer/search.js +1 -1
- package/dist/runtime/server/api/customer/tax-invoice.js +1 -1
- package/dist/runtime/server/api/customer/wishlist/add.js +1 -1
- package/dist/runtime/server/api/customer/wishlist/createWishList.js +1 -1
- package/dist/runtime/server/api/customer/wishlist/deleteFromWishList.js +1 -1
- package/dist/runtime/server/api/customer/wishlist/deleteWishList.js +1 -1
- package/dist/runtime/server/api/customer/wishlist/get.js +2 -2
- package/dist/runtime/server/api/customer/wishlist/getWishListItems.js +1 -1
- package/dist/runtime/server/api/customer/wishlist/updateWishList.js +2 -2
- package/dist/runtime/server/api/featured.d.ts +3 -0
- package/dist/runtime/server/api/featured.js +49 -0
- package/dist/runtime/server/api/generate/robots.get.d.ts +2 -0
- package/dist/runtime/server/api/generate/robots.get.js +20 -0
- package/dist/runtime/server/api/generate/sitemap.get.d.ts +2 -0
- package/dist/runtime/server/api/generate/sitemap.get.js +32 -0
- package/dist/runtime/server/api/location.d.ts +1 -1
- package/dist/runtime/server/api/location.js +20 -12
- package/dist/runtime/server/api/nav/[id]/links.d.ts +1 -0
- package/dist/runtime/server/api/nav/[id]/links.js +48 -14
- package/dist/runtime/server/api/page/{[slug].js → [...slug].js} +18 -17
- package/dist/runtime/server/api/product/[...slug].js +23 -9
- package/dist/runtime/server/api/{v2/[...slug].d.ts → quickview/[slug].d.ts} +0 -1
- package/dist/runtime/server/api/quickview/[slug].js +17 -0
- package/dist/runtime/server/api/reviews.d.ts +2 -0
- package/dist/runtime/server/api/reviews.js +18 -0
- package/dist/runtime/server/api/samples.d.ts +3 -0
- package/dist/runtime/server/api/samples.js +50 -0
- package/dist/runtime/server/api/search.d.ts +3 -0
- package/dist/runtime/server/api/search.js +50 -0
- package/dist/runtime/server/api/service/[slug].js +17 -13
- package/dist/runtime/server/api/service/availability.d.ts +1 -1
- package/dist/runtime/server/api/service/availability.js +11 -13
- package/dist/runtime/server/api/service/getall.d.ts +3 -0
- package/dist/runtime/server/api/service/getall.js +55 -0
- package/dist/runtime/server/api/shop.d.ts +3 -0
- package/dist/runtime/server/api/shop.js +50 -0
- package/dist/runtime/server/api/subscribe.d.ts +1 -1
- package/dist/runtime/server/api/subscribe.js +19 -14
- package/dist/runtime/server/api/v2/[...slug].get.d.ts +2 -0
- package/dist/runtime/server/api/v2/[...slug].get.js +16 -0
- package/dist/runtime/server/api/webform.d.ts +3 -0
- package/dist/runtime/server/api/webform.js +52 -0
- package/dist/runtime/server/tsconfig.json +3 -3
- package/dist/runtime/stores/Cart.d.ts +12 -0
- package/dist/runtime/stores/Cart.js +56 -19
- package/dist/runtime/stores/Checkout.d.ts +9 -15
- package/dist/runtime/stores/Checkout.js +19 -24
- package/dist/runtime/stores/Search.d.ts +1 -1
- package/dist/runtime/stores/Services.js +2 -2
- package/dist/runtime/stores/auth.d.ts +8 -11
- package/dist/runtime/stores/auth.js +390 -8
- package/dist/runtime/stores/countries.d.ts +1 -3
- package/dist/runtime/stores/countries.js +4 -8
- package/dist/runtime/stores/product/slug.d.ts +1 -17
- package/dist/runtime/stores/wishlists.d.ts +114 -6
- package/dist/runtime/stores/wishlists.js +209 -9
- package/dist/runtime/utils/api.js +9 -13
- package/dist/runtime/utils/htmlCache.d.ts +2 -2
- package/dist/runtime/utils/htmlCache.js +23 -13
- package/dist/types.d.mts +6 -2
- package/package.json +30 -20
- package/dist/runtime/composables/Checkout/useBillingAddress.d.ts +0 -19
- package/dist/runtime/composables/Checkout/useBillingAddress.js +0 -82
- package/dist/runtime/composables/Checkout/useShippingAddress.d.ts +0 -9
- package/dist/runtime/composables/Checkout/useShippingAddress.js +0 -121
- package/dist/runtime/composables/useAuth.d.ts +0 -45
- package/dist/runtime/composables/useAuth.js +0 -180
- package/dist/runtime/composables/useCountries.d.ts +0 -12
- package/dist/runtime/composables/useCountries.js +0 -50
- package/dist/runtime/composables/useOrders.d.ts +0 -21
- package/dist/runtime/composables/useOrders.js +0 -82
- package/dist/runtime/composables/useQuotations.d.ts +0 -14
- package/dist/runtime/composables/useQuotations.js +0 -50
- package/dist/runtime/plugins/fullReload.client.d.ts +0 -2
- package/dist/runtime/plugins/fullReload.client.js +0 -10
- package/dist/runtime/server/api/blog/blog.js +0 -17
- package/dist/runtime/server/api/brand/[slug].js +0 -58
- package/dist/runtime/server/api/v2/[...slug].js +0 -9
- /package/dist/runtime/server/api/brand/{[slug].d.ts → [...slug].d.ts} +0 -0
- /package/dist/runtime/server/api/{blog/[slug].d.ts → cmspost/[...slug].d.ts} +0 -0
- /package/dist/runtime/server/api/page/{[slug].d.ts → [...slug].d.ts} +0 -0
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { ref } from "vue";
|
|
2
|
+
import { useAuthStore } from "../../stores/auth.js";
|
|
3
|
+
export function useUpdatePassword() {
|
|
4
|
+
const authStore = useAuthStore();
|
|
5
|
+
const loading = ref(false);
|
|
6
|
+
const errorMessage = ref("");
|
|
7
|
+
const successMessage = ref("");
|
|
8
|
+
const form = ref({
|
|
9
|
+
currentPassword: "",
|
|
10
|
+
newPassword: "",
|
|
11
|
+
confirmPassword: ""
|
|
12
|
+
});
|
|
13
|
+
const clearMessages = () => {
|
|
14
|
+
errorMessage.value = "";
|
|
15
|
+
successMessage.value = "";
|
|
16
|
+
};
|
|
17
|
+
const resetForm = () => {
|
|
18
|
+
form.value = {
|
|
19
|
+
currentPassword: "",
|
|
20
|
+
newPassword: "",
|
|
21
|
+
confirmPassword: ""
|
|
22
|
+
};
|
|
23
|
+
clearMessages();
|
|
24
|
+
};
|
|
25
|
+
const validateForm = () => {
|
|
26
|
+
if (!form.value.currentPassword?.trim() || !form.value.newPassword?.trim() || !form.value.confirmPassword?.trim()) {
|
|
27
|
+
errorMessage.value = "All password fields are required!";
|
|
28
|
+
return false;
|
|
29
|
+
}
|
|
30
|
+
if (form.value.newPassword !== form.value.confirmPassword) {
|
|
31
|
+
errorMessage.value = "New password and confirm password do not match!";
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
if (form.value.newPassword.length < 8) {
|
|
35
|
+
errorMessage.value = "New password must be at least 8 characters long!";
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
38
|
+
return true;
|
|
39
|
+
};
|
|
40
|
+
const updatePassword = async () => {
|
|
41
|
+
if (!validateForm()) {
|
|
42
|
+
return false;
|
|
43
|
+
}
|
|
44
|
+
loading.value = true;
|
|
45
|
+
clearMessages();
|
|
46
|
+
try {
|
|
47
|
+
const requestBody = {
|
|
48
|
+
current_password: form.value.currentPassword.trim(),
|
|
49
|
+
password: form.value.newPassword.trim(),
|
|
50
|
+
password_confirmation: form.value.confirmPassword.trim()
|
|
51
|
+
};
|
|
52
|
+
const response = await authStore.changePassword(requestBody);
|
|
53
|
+
if (response && response?.status === "Success") {
|
|
54
|
+
successMessage.value = response.message || "Password updated successfully!";
|
|
55
|
+
resetForm();
|
|
56
|
+
return true;
|
|
57
|
+
}
|
|
58
|
+
if (response) {
|
|
59
|
+
successMessage.value = response.message || "Password updated successfully!";
|
|
60
|
+
resetForm();
|
|
61
|
+
return true;
|
|
62
|
+
} else if (response && response.status === "Error") {
|
|
63
|
+
errorMessage.value = response.message || "Failed to update password. Please try again.";
|
|
64
|
+
return false;
|
|
65
|
+
} else {
|
|
66
|
+
errorMessage.value = "Unexpected response from server. Please try again.";
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
} catch (err) {
|
|
70
|
+
console.error("Unexpected error:", err);
|
|
71
|
+
if (err.data && err.data.status === "Error") {
|
|
72
|
+
errorMessage.value = err.data.message || "Failed to update password. Please try again.";
|
|
73
|
+
} else if (err.message) {
|
|
74
|
+
errorMessage.value = err.message;
|
|
75
|
+
} else {
|
|
76
|
+
errorMessage.value = "An unexpected error occurred while updating your password.";
|
|
77
|
+
}
|
|
78
|
+
return false;
|
|
79
|
+
} finally {
|
|
80
|
+
loading.value = false;
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
return {
|
|
84
|
+
// State
|
|
85
|
+
form,
|
|
86
|
+
loading,
|
|
87
|
+
errorMessage,
|
|
88
|
+
successMessage,
|
|
89
|
+
// Methods
|
|
90
|
+
updatePassword,
|
|
91
|
+
clearMessages,
|
|
92
|
+
resetForm
|
|
93
|
+
};
|
|
94
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export interface Card {
|
|
2
|
+
id: string;
|
|
3
|
+
holder_name: string;
|
|
4
|
+
last_four_digits: string;
|
|
5
|
+
[key: string]: any;
|
|
6
|
+
}
|
|
7
|
+
export declare function useUserCards(): {
|
|
8
|
+
cards: import("vue").ComputedRef<{
|
|
9
|
+
[x: string]: any;
|
|
10
|
+
id: string;
|
|
11
|
+
holder_name: string;
|
|
12
|
+
last_four_digits: string;
|
|
13
|
+
}[]>;
|
|
14
|
+
loading: import("vue").Ref<boolean, boolean>;
|
|
15
|
+
deletingCardId: import("vue").Ref<string | null, string | null>;
|
|
16
|
+
errorMessage: import("vue").Ref<string, string>;
|
|
17
|
+
successMessage: import("vue").Ref<string, string>;
|
|
18
|
+
hasCards: import("vue").ComputedRef<boolean>;
|
|
19
|
+
fetchCards: () => Promise<void>;
|
|
20
|
+
deleteCard: (cardId: string) => Promise<boolean>;
|
|
21
|
+
clearMessages: () => void;
|
|
22
|
+
};
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { ref, computed } from "vue";
|
|
2
|
+
import { useAuthStore } from "../../stores/auth.js";
|
|
3
|
+
export function useUserCards() {
|
|
4
|
+
const authStore = useAuthStore();
|
|
5
|
+
const cards = ref([]);
|
|
6
|
+
const loading = ref(false);
|
|
7
|
+
const deletingCardId = ref(null);
|
|
8
|
+
const errorMessage = ref("");
|
|
9
|
+
const successMessage = ref("");
|
|
10
|
+
const cardsData = computed(() => cards.value || []);
|
|
11
|
+
const hasCards = computed(() => cards.value && cards.value.length > 0);
|
|
12
|
+
const clearMessages = () => {
|
|
13
|
+
errorMessage.value = "";
|
|
14
|
+
successMessage.value = "";
|
|
15
|
+
};
|
|
16
|
+
const fetchCards = async () => {
|
|
17
|
+
loading.value = true;
|
|
18
|
+
clearMessages();
|
|
19
|
+
try {
|
|
20
|
+
const cardsData2 = await authStore.fetchUserCards();
|
|
21
|
+
cards.value = Array.isArray(cardsData2) ? cardsData2 : [];
|
|
22
|
+
} catch (error) {
|
|
23
|
+
console.error("Failed to fetch cards:", error);
|
|
24
|
+
cards.value = [];
|
|
25
|
+
errorMessage.value = "Failed to load cards. Please try again.";
|
|
26
|
+
} finally {
|
|
27
|
+
loading.value = false;
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
const deleteCard = async (cardId) => {
|
|
31
|
+
deletingCardId.value = cardId;
|
|
32
|
+
clearMessages();
|
|
33
|
+
try {
|
|
34
|
+
const response = await authStore.deleteCard(cardId);
|
|
35
|
+
if (response.status === "Success") {
|
|
36
|
+
successMessage.value = response.message || "Card deleted successfully!";
|
|
37
|
+
cards.value = cards.value.filter((card) => card.id !== cardId);
|
|
38
|
+
return true;
|
|
39
|
+
} else {
|
|
40
|
+
errorMessage.value = response.message || "Failed to delete card. Please try again.";
|
|
41
|
+
return false;
|
|
42
|
+
}
|
|
43
|
+
} catch (error) {
|
|
44
|
+
console.error("Delete card error:", error);
|
|
45
|
+
errorMessage.value = error.message || "Failed to delete card. Please try again.";
|
|
46
|
+
return false;
|
|
47
|
+
} finally {
|
|
48
|
+
deletingCardId.value = null;
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
return {
|
|
52
|
+
// State
|
|
53
|
+
cards: cardsData,
|
|
54
|
+
loading,
|
|
55
|
+
deletingCardId,
|
|
56
|
+
errorMessage,
|
|
57
|
+
successMessage,
|
|
58
|
+
// Computed
|
|
59
|
+
hasCards,
|
|
60
|
+
// Methods
|
|
61
|
+
fetchCards,
|
|
62
|
+
deleteCard,
|
|
63
|
+
clearMessages
|
|
64
|
+
};
|
|
65
|
+
}
|
|
@@ -1,21 +1,6 @@
|
|
|
1
|
-
import { type Wishlist, type WishlistProduct } from '
|
|
2
|
-
export interface ApiResponse<T> {
|
|
3
|
-
status: string;
|
|
4
|
-
message: string | Record<string, string[]> | null;
|
|
5
|
-
data: T | null;
|
|
6
|
-
}
|
|
7
|
-
export interface CreateWishlistData {
|
|
8
|
-
title: string;
|
|
9
|
-
default: boolean;
|
|
10
|
-
}
|
|
11
|
-
export interface UpdateWishlistData {
|
|
12
|
-
title: string;
|
|
13
|
-
default: boolean;
|
|
14
|
-
}
|
|
15
|
-
export interface AddToWishlistData {
|
|
16
|
-
}
|
|
1
|
+
import { type Wishlist, type WishlistProduct, type CreateWishlistData, type UpdateWishlistData, type AddToWishlistData, type ApiResponse } from '../../stores/wishlists.js';
|
|
17
2
|
export declare function useWishlists(): {
|
|
18
|
-
fetchWishlists: () => Promise<ApiResponse<Wishlist[]>>;
|
|
3
|
+
fetchWishlists: (force?: boolean) => Promise<ApiResponse<Wishlist[]>>;
|
|
19
4
|
fetchWishlistProducts: (listId: number) => Promise<ApiResponse<{
|
|
20
5
|
id: number;
|
|
21
6
|
title: string;
|
|
@@ -30,9 +15,11 @@ export declare function useWishlists(): {
|
|
|
30
15
|
deleteWishlist: (id: number) => Promise<ApiResponse<void>>;
|
|
31
16
|
wishlists: import("vue").ComputedRef<{
|
|
32
17
|
id: number;
|
|
33
|
-
|
|
18
|
+
title: string;
|
|
19
|
+
default: boolean;
|
|
20
|
+
created_at: string;
|
|
34
21
|
}[]>;
|
|
35
|
-
wishlistProducts:
|
|
22
|
+
wishlistProducts: (listId: number) => WishlistProduct[];
|
|
36
23
|
loading: import("vue").ComputedRef<boolean>;
|
|
37
24
|
error: import("vue").ComputedRef<string | null>;
|
|
38
25
|
};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { computed } from "vue";
|
|
2
|
-
import {
|
|
3
|
-
|
|
2
|
+
import {
|
|
3
|
+
useWishlistsStore
|
|
4
|
+
} from "../../stores/wishlists.js";
|
|
4
5
|
function formatErrorMessage(message) {
|
|
5
6
|
if (!message) return "An error occurred";
|
|
6
7
|
if (typeof message === "string") {
|
|
@@ -18,14 +19,12 @@ function formatErrorMessage(message) {
|
|
|
18
19
|
}
|
|
19
20
|
export function useWishlists() {
|
|
20
21
|
const store = useWishlistsStore();
|
|
21
|
-
|
|
22
|
-
async function fetchWishlists() {
|
|
22
|
+
async function fetchWishlists(force) {
|
|
23
23
|
store.setLoading(true);
|
|
24
24
|
store.setError(null);
|
|
25
25
|
try {
|
|
26
|
-
const response = await
|
|
27
|
-
if (response.status === "Success"
|
|
28
|
-
store.setWishlists(response.data);
|
|
26
|
+
const response = await store.fetchWishlists(force || false);
|
|
27
|
+
if (response.status === "Success") {
|
|
29
28
|
return response;
|
|
30
29
|
} else {
|
|
31
30
|
const errorMessage = formatErrorMessage(response.message);
|
|
@@ -45,10 +44,8 @@ export function useWishlists() {
|
|
|
45
44
|
store.setLoading(true);
|
|
46
45
|
store.setError(null);
|
|
47
46
|
try {
|
|
48
|
-
const response = await
|
|
49
|
-
if (response.status === "Success"
|
|
50
|
-
const products = response.data.products || [];
|
|
51
|
-
store.setWishlistProducts(listId, products);
|
|
47
|
+
const response = await store.fetchWishlistProducts(listId);
|
|
48
|
+
if (response.status === "Success") {
|
|
52
49
|
return response;
|
|
53
50
|
} else {
|
|
54
51
|
const errorMessage = formatErrorMessage(response.message);
|
|
@@ -68,9 +65,8 @@ export function useWishlists() {
|
|
|
68
65
|
store.setLoading(true);
|
|
69
66
|
store.setError(null);
|
|
70
67
|
try {
|
|
71
|
-
const response = await
|
|
72
|
-
if (response.status === "Success"
|
|
73
|
-
store.addWishlist(response.data);
|
|
68
|
+
const response = await store.createWishlist(data);
|
|
69
|
+
if (response.status === "Success") {
|
|
74
70
|
return response;
|
|
75
71
|
} else {
|
|
76
72
|
const errorMessage = formatErrorMessage(response.message);
|
|
@@ -90,9 +86,8 @@ export function useWishlists() {
|
|
|
90
86
|
store.setLoading(true);
|
|
91
87
|
store.setError(null);
|
|
92
88
|
try {
|
|
93
|
-
const response = await
|
|
94
|
-
if (response.status === "Success"
|
|
95
|
-
store.addWishlistProduct(listId, response.data);
|
|
89
|
+
const response = await store.addToWishlist(listId, productSlug, data);
|
|
90
|
+
if (response.status === "Success") {
|
|
96
91
|
return response;
|
|
97
92
|
} else {
|
|
98
93
|
const errorMessage = formatErrorMessage(response.message);
|
|
@@ -112,9 +107,8 @@ export function useWishlists() {
|
|
|
112
107
|
store.setLoading(true);
|
|
113
108
|
store.setError(null);
|
|
114
109
|
try {
|
|
115
|
-
const response = await
|
|
110
|
+
const response = await store.removeFromWishlist(listId, productSlug);
|
|
116
111
|
if (response.status === "Success") {
|
|
117
|
-
store.removeWishlistProduct(listId, productSlug);
|
|
118
112
|
return response;
|
|
119
113
|
} else {
|
|
120
114
|
const errorMessage = formatErrorMessage(response.message);
|
|
@@ -134,9 +128,8 @@ export function useWishlists() {
|
|
|
134
128
|
store.setLoading(true);
|
|
135
129
|
store.setError(null);
|
|
136
130
|
try {
|
|
137
|
-
const response = await
|
|
138
|
-
if (response.status === "Success"
|
|
139
|
-
store.updateWishlist(response.data);
|
|
131
|
+
const response = await store.updateWishlist(id, data);
|
|
132
|
+
if (response.status === "Success") {
|
|
140
133
|
return response;
|
|
141
134
|
} else {
|
|
142
135
|
const errorMessage = formatErrorMessage(response.message);
|
|
@@ -156,10 +149,8 @@ export function useWishlists() {
|
|
|
156
149
|
store.setLoading(true);
|
|
157
150
|
store.setError(null);
|
|
158
151
|
try {
|
|
159
|
-
const response = await
|
|
152
|
+
const response = await store.deleteWishlist(id);
|
|
160
153
|
if (response.status === "Success") {
|
|
161
|
-
store.removeWishlist(id);
|
|
162
|
-
store.clearWishlistProducts(id);
|
|
163
154
|
return response;
|
|
164
155
|
} else {
|
|
165
156
|
const errorMessage = formatErrorMessage(response.message);
|
|
@@ -183,9 +174,10 @@ export function useWishlists() {
|
|
|
183
174
|
removeFromWishlist,
|
|
184
175
|
updateWishlist,
|
|
185
176
|
deleteWishlist,
|
|
186
|
-
wishlists: computed(() => store.
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
177
|
+
wishlists: computed(() => store.getWishlists),
|
|
178
|
+
// Fixed: Remove extra computed wrapper - direct getter for reactivity
|
|
179
|
+
wishlistProducts: (listId) => store.getWishlistProducts(listId),
|
|
180
|
+
loading: computed(() => store.isLoading),
|
|
181
|
+
error: computed(() => store.getError)
|
|
190
182
|
};
|
|
191
183
|
}
|
|
@@ -1,6 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
interface Country {
|
|
2
|
+
id: number;
|
|
3
|
+
name: string;
|
|
4
|
+
}
|
|
5
|
+
interface UseCountryReturn {
|
|
6
|
+
data: Ref<Country[] | null>;
|
|
7
|
+
error: Ref<Error | null>;
|
|
8
|
+
refresh: () => Promise<void>;
|
|
9
|
+
}
|
|
10
|
+
export declare const useCountry: () => UseCountryReturn;
|
|
11
|
+
export {};
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
+
import { useFetch } from "#imports";
|
|
1
2
|
export const useCountry = () => {
|
|
2
|
-
const { data, error, refresh
|
|
3
|
-
server: true
|
|
3
|
+
const { data, error, refresh } = useFetch("/api/checkout/countries", {
|
|
4
|
+
server: true,
|
|
5
|
+
key: "countries"
|
|
4
6
|
});
|
|
5
7
|
return {
|
|
6
8
|
data,
|
|
7
9
|
error,
|
|
8
|
-
refresh
|
|
9
|
-
execute
|
|
10
|
+
refresh
|
|
10
11
|
};
|
|
11
12
|
};
|
|
@@ -1,28 +1,14 @@
|
|
|
1
1
|
export default function (): {
|
|
2
|
-
NavMenu:
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
userData: {};
|
|
8
|
-
menuData: import("vue").ComputedRef<{
|
|
9
|
-
location: string;
|
|
10
|
-
items: {
|
|
11
|
-
title: string;
|
|
12
|
-
url: string;
|
|
13
|
-
sortorder: number;
|
|
14
|
-
children?: /*elided*/ any[] | undefined;
|
|
15
|
-
}[];
|
|
16
|
-
} | undefined>;
|
|
2
|
+
NavMenu: any;
|
|
3
|
+
companyProfile: import("vue").ComputedRef<any>;
|
|
4
|
+
cartStore: any;
|
|
5
|
+
userData: any;
|
|
6
|
+
menuData: import("vue").ComputedRef<any>;
|
|
17
7
|
mobile_menu: import("vue").Ref<boolean, boolean>;
|
|
18
8
|
MainMenu: any;
|
|
19
9
|
wordpressUrl: any;
|
|
20
10
|
OpenMobileMenu: () => void;
|
|
21
|
-
useSearch:
|
|
22
|
-
data: any[];
|
|
23
|
-
}, {}, {
|
|
24
|
-
fetchSearchData(query: string): Promise<any[]>;
|
|
25
|
-
}>;
|
|
11
|
+
useSearch: any;
|
|
26
12
|
getSearchData: (value: string) => void;
|
|
27
13
|
handleSeachInput: (searchValue: string) => void;
|
|
28
14
|
};
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { defineAsyncComponent, ref, computed } from "vue";
|
|
2
|
-
import { useNavMenu, useCompanyProfile,
|
|
2
|
+
import { useNavMenu, useCompanyProfile, useCartStore, useSearchStore } from "#imports";
|
|
3
|
+
import { useAuthStore } from "../../stores/auth.js";
|
|
3
4
|
export default function() {
|
|
4
5
|
const wordpressUrl = import.meta.env.VITE_APP_WORDPRESS_URL;
|
|
5
6
|
const NavMenu = useNavMenu();
|
|
6
7
|
const CompanyProfile = useCompanyProfile();
|
|
7
|
-
const { user } =
|
|
8
|
+
const { user } = useAuthStore();
|
|
8
9
|
const cartStore = useCartStore();
|
|
9
10
|
const useSearch = useSearchStore();
|
|
10
11
|
const companyProfile = computed(() => CompanyProfile.profile);
|
|
@@ -240,7 +240,7 @@ export const useCustomScript = defineStore("CustomScript", {
|
|
|
240
240
|
showValue(h_aid, h_vid) {
|
|
241
241
|
const element = document.querySelector(`${this.attributeClass + h_aid} [data-value="${h_vid}"]`);
|
|
242
242
|
if (element) {
|
|
243
|
-
element.parentElement.style.display = "
|
|
243
|
+
element.parentElement.style.display = "";
|
|
244
244
|
element.removeAttribute("disabled");
|
|
245
245
|
element.style.display = "";
|
|
246
246
|
}
|
|
@@ -316,10 +316,10 @@ export const useCustomScript = defineStore("CustomScript", {
|
|
|
316
316
|
markSelected(h_aid, h_vid) {
|
|
317
317
|
const element = document.querySelector(`${this.attributeClass}${h_aid} [data-value="${h_vid}"]`);
|
|
318
318
|
if (element) {
|
|
319
|
-
element.parentElement.style.display = "
|
|
319
|
+
element.parentElement.style.display = "";
|
|
320
320
|
element.setAttribute("selected", true);
|
|
321
321
|
element.checked = true;
|
|
322
|
-
element.style.display = "
|
|
322
|
+
element.style.display = "";
|
|
323
323
|
element.classList.add("active");
|
|
324
324
|
if (element.getAttribute("customselect") == "true") {
|
|
325
325
|
element.dispatchEvent(new Event("change"));
|
|
@@ -336,7 +336,7 @@ export const useCustomScript = defineStore("CustomScript", {
|
|
|
336
336
|
if (dataValueElement) {
|
|
337
337
|
dataValueElement.setAttribute("selected", true);
|
|
338
338
|
dataValueElement.checked = true;
|
|
339
|
-
dataValueElement.style.display = "
|
|
339
|
+
dataValueElement.style.display = "";
|
|
340
340
|
dataValueElement.classList.add("active");
|
|
341
341
|
}
|
|
342
342
|
if (value == 0 || value == "0") {
|
|
@@ -66,7 +66,7 @@ export default function (product: any, template?: string): {
|
|
|
66
66
|
}>;
|
|
67
67
|
activeStep: import("vue").Ref<number, number>;
|
|
68
68
|
NextStep: (id: number) => false | undefined;
|
|
69
|
-
sortedGroups: (groups: any) =>
|
|
69
|
+
sortedGroups: (groups: any) => never[];
|
|
70
70
|
scrollToPosition: () => void;
|
|
71
71
|
SingleStep: import("vue").Raw<object>;
|
|
72
72
|
AddToCart: import("vue").Raw<object>;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { defineAsyncComponent } from "vue";
|
|
2
|
+
import { GTM_view_item } from "../useDataLayer.js";
|
|
2
3
|
export function useProductComponent(product) {
|
|
3
4
|
const templateName = "Template-" + product.template;
|
|
4
5
|
const components = import.meta.glob(
|
|
@@ -15,6 +16,7 @@ export function useProductComponent(product) {
|
|
|
15
16
|
}
|
|
16
17
|
}
|
|
17
18
|
});
|
|
19
|
+
GTM_view_item(product, product.rrpfloat, product.rpfloat);
|
|
18
20
|
return {
|
|
19
21
|
Template
|
|
20
22
|
};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { useFetch } from "#imports";
|
|
2
|
+
import { readonly } from "vue";
|
|
3
|
+
export const useQuickView = (slug) => {
|
|
4
|
+
const { data, error, refresh, execute, pending } = useFetch(
|
|
5
|
+
`/api/quickview/${slug}`,
|
|
6
|
+
{
|
|
7
|
+
method: "POST",
|
|
8
|
+
body: { slug },
|
|
9
|
+
lazy: true,
|
|
10
|
+
server: false,
|
|
11
|
+
default: () => null
|
|
12
|
+
}
|
|
13
|
+
);
|
|
14
|
+
return {
|
|
15
|
+
data: readonly(data),
|
|
16
|
+
error: readonly(error),
|
|
17
|
+
refresh,
|
|
18
|
+
execute,
|
|
19
|
+
pending: readonly(pending)
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
export const useSendQuickValues = async (attributes, slug) => {
|
|
23
|
+
return await $fetch(`/api/quickview/${slug}`, {
|
|
24
|
+
method: "POST",
|
|
25
|
+
body: attributes
|
|
26
|
+
});
|
|
27
|
+
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export default function (props: any): {
|
|
2
|
-
useCartStore: import("pinia").StoreDefinition<"cart", import("../../stores/
|
|
2
|
+
useCartStore: import("pinia").StoreDefinition<"cart", import("../../stores/Cart.js").CartState, {}, {}>;
|
|
3
3
|
ServiceStore: import("pinia").Store<"ServiceStore", {
|
|
4
4
|
services: never[];
|
|
5
5
|
availability: boolean;
|
|
@@ -2,7 +2,6 @@ import { ref, watch, onMounted, computed } from "vue";
|
|
|
2
2
|
import { useServiceStore } from "../../stores/Services.js";
|
|
3
3
|
import { useCartStore } from "../../stores/Cart.js";
|
|
4
4
|
import { useIpLocation } from "../../stores/IpLocation.js";
|
|
5
|
-
import LocationScript from "../Location";
|
|
6
5
|
export default function(props) {
|
|
7
6
|
const CurrentService = ref([]);
|
|
8
7
|
const ServiceStore = useServiceStore();
|
|
@@ -50,8 +49,6 @@ export default function(props) {
|
|
|
50
49
|
}
|
|
51
50
|
});
|
|
52
51
|
const GetServiceLocations = async () => {
|
|
53
|
-
const { GetLocation } = LocationScript.setup();
|
|
54
|
-
GetLocation();
|
|
55
52
|
};
|
|
56
53
|
return {
|
|
57
54
|
useCartStore,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export default function (): {
|
|
2
|
-
route:
|
|
3
|
-
router:
|
|
2
|
+
route: any;
|
|
3
|
+
router: any;
|
|
4
4
|
isChecked: (slug: any, dynamicQueryParam: any) => any;
|
|
5
5
|
toggleCheckbox: (slug: any, parent_slug: any) => void;
|
|
6
6
|
};
|
|
@@ -10,14 +10,12 @@ export * from './Cart/useCartDetail.js';
|
|
|
10
10
|
export * from './Category/useCategoryContent.js';
|
|
11
11
|
export * from './Category/useCategoryGrid.js';
|
|
12
12
|
export * from './Category/useCategoryIndex.js';
|
|
13
|
-
export * from './Category/useCategoryTemplate2.js';
|
|
14
|
-
export * from './Category/useCategoryTemplate3.js';
|
|
15
13
|
export * from './Category/useCategoryTop.js';
|
|
16
|
-
export * from './Checkout/
|
|
14
|
+
export * from './Checkout/useCheckoutBillingAddress.js';
|
|
17
15
|
export * from './Checkout/useCheckout.js';
|
|
18
16
|
export * from './Checkout/useCreateAccount.js';
|
|
19
17
|
export * from './Checkout/useDeliveryMethod.js';
|
|
20
|
-
export * from './Checkout/
|
|
18
|
+
export * from './Checkout/useCheckoutShippingAddress.js';
|
|
21
19
|
export * from './Checkout/PaymentMethods/useDirectDeposit.js';
|
|
22
20
|
export * from './Checkout/PaymentMethods/useEway.js';
|
|
23
21
|
export * from './Checkout/PaymentMethods/useFlowrixpay.js';
|
|
@@ -27,6 +25,16 @@ export * from './Checkout/PaymentMethods/usePaypal.js';
|
|
|
27
25
|
export * from './Checkout/PaymentMethods/useStripe.js';
|
|
28
26
|
export * from './Checkout/PaymentMethods/useZippay.js';
|
|
29
27
|
export * from './Customer/useRegister.js';
|
|
28
|
+
export * from './Customer/useLogin.js';
|
|
29
|
+
export * from './Customer/useProfile.js';
|
|
30
|
+
export * from './Customer/useOrders.js';
|
|
31
|
+
export * from './Customer/useQuotations.js';
|
|
32
|
+
export * from './Customer/useBillingAddress.js';
|
|
33
|
+
export * from './Customer/useShippingAddress.js';
|
|
34
|
+
export * from './Customer/useUpdatePassword.js';
|
|
35
|
+
export * from './Customer/useUserCards.js';
|
|
36
|
+
export * from './Customer/useWishlists.js';
|
|
37
|
+
export * from './Customer/usePasswordReset.js';
|
|
30
38
|
export * from './Extras/useCountry.js';
|
|
31
39
|
export * from './Extras/useDateFormatter.js';
|
|
32
40
|
export * from './Extras/useNumberOnly.js';
|
|
@@ -55,20 +63,16 @@ export * from './SideBar/useSideBar.js';
|
|
|
55
63
|
export * from './SideBar/Filters/useFilters.js';
|
|
56
64
|
export * from './SideBar/Filters/useSorting.js';
|
|
57
65
|
export { useAddresses } from './useAddresses.js';
|
|
66
|
+
export { useQuickView } from './Product/useQuickView.js';
|
|
67
|
+
export { useSendQuickValues } from './Product/useQuickView.js';
|
|
58
68
|
export { useAddToCart } from './useAddToCart.js';
|
|
59
|
-
export { useAuth } from './useAuth.js';
|
|
60
69
|
export { useCards } from './useCards.js';
|
|
61
70
|
export { useClientApi } from './useClientApi.js';
|
|
62
|
-
export {
|
|
63
|
-
export { useDataLayer } from './useDataLayer.js';
|
|
71
|
+
export { GTM_page_view, GTM_view_item, GTM_view_item_list, GTM_view_cart, GTM_add_to_cart, GTM_remove_from_cart, GTM_begin_checkout, GTM_add_shipping_info, GTM_add_payment_info, GTM_purchase, GTM_select_item_color, GTM_select_item_collection, GTM_Attribute_Content } from './useDataLayer.js';
|
|
64
72
|
export { useDynamicHtmlRenderer } from './useDynamicHtmlRenderer.js';
|
|
65
73
|
export { useLocation } from './useLocation.js';
|
|
66
74
|
export { useLocations } from './useLocations.js';
|
|
67
|
-
export {
|
|
68
|
-
export { useOrders } from './useOrders.js';
|
|
69
|
-
export { useQuotations } from './useQuotations.js';
|
|
75
|
+
export { useQuotationCheckout } from './useQuotationCheckout.js';
|
|
70
76
|
export { useSearch } from './useSearch.js';
|
|
71
77
|
export { useSubscriptions } from './useSubscriptions.js';
|
|
72
|
-
export { useTikTokDatalayer } from './useTikTokDatalayer.js';
|
|
73
78
|
export { useWebforms } from './useWebforms.js';
|
|
74
|
-
export { useWishlists } from './useWishlists.js';
|