hey-pharmacist-ecommerce 1.1.42 → 1.1.44
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/README.md +70 -8
- package/dist/index.d.mts +2550 -3081
- package/dist/index.d.ts +2550 -3081
- package/dist/index.js +506 -399
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +506 -397
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
- package/src/components/AccountOverviewTab.tsx +5 -5
- package/src/components/AccountReviewsTab.tsx +4 -4
- package/src/components/CartItem.tsx +15 -15
- package/src/components/Header.tsx +1 -1
- package/src/components/Notification.tsx +3 -3
- package/src/components/OrderCard.tsx +1 -1
- package/src/components/ProductCard.tsx +11 -11
- package/src/components/QuickViewModal.tsx +16 -16
- package/src/components/RatingDistribution.tsx +2 -2
- package/src/components/ReviewCard.tsx +2 -2
- package/src/components/ReviewForm.tsx +3 -3
- package/src/components/ReviewPromptBanner.tsx +4 -4
- package/src/components/ReviewsList.tsx +9 -11
- package/src/components/StarRating.tsx +3 -3
- package/src/hooks/useProducts.ts +0 -1
- package/src/hooks/useSmartSearch.ts +68 -0
- package/src/lib/Apis/api.ts +1 -1
- package/src/lib/Apis/apis/analytics-api.ts +809 -0
- package/src/lib/Apis/apis/notifications-api.ts +8 -6
- package/src/lib/Apis/apis/products-api.ts +390 -15
- package/src/lib/Apis/apis/stores-api.ts +26 -149
- package/src/lib/Apis/apis/web-hooks-api.ts +8 -17
- package/src/lib/Apis/models/analytics-period-dto.ts +45 -0
- package/src/lib/Apis/models/appointment-overview-dto.ts +71 -0
- package/src/lib/Apis/models/category-sales-dto.ts +51 -0
- package/src/lib/Apis/models/create-store-dto.ts +12 -0
- package/src/lib/Apis/models/customer-overview-dto.ts +96 -0
- package/src/lib/Apis/models/{country-stats-response-dto.ts → customer-segment-dto.ts} +12 -13
- package/src/lib/Apis/models/dashboard-overview-dto.ts +70 -0
- package/src/lib/Apis/models/discount-overview-dto.ts +71 -0
- package/src/lib/Apis/models/group-with-no-users-dto.ts +0 -6
- package/src/lib/Apis/models/group-with-users-dto.ts +0 -6
- package/src/lib/Apis/models/index.ts +29 -38
- package/src/lib/Apis/models/{single-recipient-dto.ts → inline-response200.ts} +11 -10
- package/src/lib/Apis/models/{create-contact-dto.ts → inline-response2001.ts} +11 -11
- package/src/lib/Apis/models/inventory-alert-dto.ts +67 -0
- package/src/lib/Apis/models/notification-dto.ts +107 -0
- package/src/lib/Apis/models/notifications-paginated-response-dto.ts +58 -0
- package/src/lib/Apis/models/order-overview-dto.ts +89 -0
- package/src/lib/Apis/models/{single-link-stats-dto.ts → order-status-count-dto.ts} +10 -10
- package/src/lib/Apis/models/order.ts +0 -6
- package/src/lib/Apis/models/payout-history-item-dto.ts +45 -0
- package/src/lib/Apis/models/{single-country-stats-dto.ts → popular-time-slot-dto.ts} +10 -10
- package/src/lib/Apis/models/populated-order.ts +0 -6
- package/src/lib/Apis/models/preference-update-item.ts +1 -0
- package/src/lib/Apis/models/product-overview-dto.ts +90 -0
- package/src/lib/Apis/models/product.ts +6 -0
- package/src/lib/Apis/models/{create-contact-list-dto.ts → products-aidraft-body.ts} +4 -4
- package/src/lib/Apis/models/{schedule-campaign-draft-dto.ts → products-processimage-body.ts} +5 -5
- package/src/lib/Apis/models/{contact-full-response-dto.ts → rating-distribution-dto.ts} +9 -10
- package/src/lib/Apis/models/recent-review-dto.ts +63 -0
- package/src/lib/Apis/models/review-overview-dto.ts +65 -0
- package/src/lib/Apis/models/store-balance-dto.ts +39 -0
- package/src/lib/Apis/models/store-entity.ts +12 -0
- package/src/lib/Apis/models/{link-stats-response-dto.ts → store-finance-overview-dto.ts} +10 -15
- package/src/lib/Apis/models/store.ts +12 -0
- package/src/lib/Apis/models/{add-contact-to-list-dto.ts → time-series-point-dto.ts} +9 -9
- package/src/lib/Apis/models/{create-email-template-dto.ts → top-customer-dto.ts} +20 -14
- package/src/lib/Apis/models/{marketing-list-contact-dto.ts → top-discount-dto.ts} +12 -12
- package/src/lib/Apis/models/{single-browser-stats-dto.ts → top-product-dto.ts} +18 -12
- package/src/lib/Apis/models/{marketing-campaign-content-dto.ts → unread-count-dto.ts} +6 -6
- package/src/lib/Apis/models/update-store-dto.ts +12 -0
- package/src/lib/Apis/models/update-user-dto.ts +0 -6
- package/src/lib/Apis/models/user-group.ts +0 -6
- package/src/lib/Apis/models/user-with-no-id.ts +0 -6
- package/src/lib/Apis/sharedConfig.ts +1 -1
- package/src/screens/CartScreen.tsx +10 -10
- package/src/screens/CheckoutScreen.tsx +12 -12
- package/src/screens/OrderReviewsScreen.tsx +6 -6
- package/src/screens/ProductDetailScreen.tsx +40 -40
- package/src/screens/SearchResultsScreen.tsx +17 -21
- package/src/screens/ShopScreen.tsx +20 -82
- package/src/lib/Apis/apis/marketing-api.ts +0 -3099
- package/src/lib/Apis/models/api-key-info-dto.ts +0 -49
- package/src/lib/Apis/models/browser-stats-response-dto.ts +0 -40
- package/src/lib/Apis/models/campaign-content-response-dto.ts +0 -40
- package/src/lib/Apis/models/campaign-draft-dto.ts +0 -175
- package/src/lib/Apis/models/campaign-draft-response-dto.ts +0 -40
- package/src/lib/Apis/models/campaign-draft-schedule-dto.ts +0 -49
- package/src/lib/Apis/models/campaign-draft-schedule-response-dto.ts +0 -40
- package/src/lib/Apis/models/campaign-draft-sending-dto.ts +0 -43
- package/src/lib/Apis/models/campaign-draft-sending-response-dto.ts +0 -40
- package/src/lib/Apis/models/contact-aggregated-stats-response-dto.ts +0 -40
- package/src/lib/Apis/models/contact-full-dto.ts +0 -93
- package/src/lib/Apis/models/contact-list-stats-response-dto.ts +0 -40
- package/src/lib/Apis/models/contact-lists-response-dto.ts +0 -40
- package/src/lib/Apis/models/create-marketing-campaign-dto.ts +0 -81
- package/src/lib/Apis/models/email-template-response-dto.ts +0 -117
- package/src/lib/Apis/models/general-stats-response-dto.ts +0 -40
- package/src/lib/Apis/models/send-test-email-dto.ts +0 -28
- package/src/lib/Apis/models/single-contact-aggregated-stats-dto.ts +0 -129
- package/src/lib/Apis/models/single-contact-list-stats-dto.ts +0 -117
- package/src/lib/Apis/models/single-general-stats.ts +0 -153
- package/src/lib/Apis/models/store-api-keys-response-dto.ts +0 -34
- package/src/lib/Apis/models/update-api-keys-dto.ts +0 -39
- package/src/lib/Apis/models/update-campaign-draft-content-dto.ts +0 -27
- package/src/lib/Apis/models/update-marketing-camp-draft-dto.ts +0 -81
|
@@ -11,30 +11,25 @@
|
|
|
11
11
|
* https://github.com/swagger-api/swagger-codegen.git
|
|
12
12
|
* Do not edit the class manually.
|
|
13
13
|
*/
|
|
14
|
-
import {
|
|
14
|
+
import { PayoutHistoryItemDto } from './payout-history-item-dto';
|
|
15
|
+
import { StoreBalanceDto } from './store-balance-dto';
|
|
15
16
|
/**
|
|
16
17
|
*
|
|
17
18
|
* @export
|
|
18
|
-
* @interface
|
|
19
|
+
* @interface StoreFinanceOverviewDto
|
|
19
20
|
*/
|
|
20
|
-
export interface
|
|
21
|
+
export interface StoreFinanceOverviewDto {
|
|
21
22
|
_id?: string;
|
|
22
23
|
/**
|
|
23
24
|
*
|
|
24
|
-
* @type {
|
|
25
|
-
* @memberof
|
|
25
|
+
* @type {StoreBalanceDto}
|
|
26
|
+
* @memberof StoreFinanceOverviewDto
|
|
26
27
|
*/
|
|
27
|
-
|
|
28
|
+
balance: StoreBalanceDto;
|
|
28
29
|
/**
|
|
29
30
|
*
|
|
30
|
-
* @type {Array<
|
|
31
|
-
* @memberof
|
|
31
|
+
* @type {Array<PayoutHistoryItemDto>}
|
|
32
|
+
* @memberof StoreFinanceOverviewDto
|
|
32
33
|
*/
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
*
|
|
36
|
-
* @type {number}
|
|
37
|
-
* @memberof LinkStatsResponseDTO
|
|
38
|
-
*/
|
|
39
|
-
total: number;
|
|
34
|
+
payoutHistory: Array<PayoutHistoryItemDto>;
|
|
40
35
|
}
|
|
@@ -97,6 +97,18 @@ export interface Store {
|
|
|
97
97
|
* @memberof Store
|
|
98
98
|
*/
|
|
99
99
|
stripeWebhookSecret: string;
|
|
100
|
+
/**
|
|
101
|
+
*
|
|
102
|
+
* @type {string}
|
|
103
|
+
* @memberof Store
|
|
104
|
+
*/
|
|
105
|
+
stripeAccountId: string;
|
|
106
|
+
/**
|
|
107
|
+
*
|
|
108
|
+
* @type {boolean}
|
|
109
|
+
* @memberof Store
|
|
110
|
+
*/
|
|
111
|
+
stripeOnboardingCompleted: boolean;
|
|
100
112
|
/**
|
|
101
113
|
*
|
|
102
114
|
* @type {string}
|
|
@@ -14,20 +14,20 @@
|
|
|
14
14
|
/**
|
|
15
15
|
*
|
|
16
16
|
* @export
|
|
17
|
-
* @interface
|
|
17
|
+
* @interface TimeSeriesPointDto
|
|
18
18
|
*/
|
|
19
|
-
export interface
|
|
19
|
+
export interface TimeSeriesPointDto {
|
|
20
20
|
_id?: string;
|
|
21
21
|
/**
|
|
22
|
-
*
|
|
23
|
-
* @type {
|
|
24
|
-
* @memberof
|
|
22
|
+
* Date/period label
|
|
23
|
+
* @type {string}
|
|
24
|
+
* @memberof TimeSeriesPointDto
|
|
25
25
|
*/
|
|
26
|
-
|
|
26
|
+
date: string;
|
|
27
27
|
/**
|
|
28
|
-
*
|
|
28
|
+
* Value for this period
|
|
29
29
|
* @type {number}
|
|
30
|
-
* @memberof
|
|
30
|
+
* @memberof TimeSeriesPointDto
|
|
31
31
|
*/
|
|
32
|
-
|
|
32
|
+
value: number;
|
|
33
33
|
}
|
|
@@ -14,38 +14,44 @@
|
|
|
14
14
|
/**
|
|
15
15
|
*
|
|
16
16
|
* @export
|
|
17
|
-
* @interface
|
|
17
|
+
* @interface TopCustomerDto
|
|
18
18
|
*/
|
|
19
|
-
export interface
|
|
19
|
+
export interface TopCustomerDto {
|
|
20
20
|
_id?: string;
|
|
21
21
|
/**
|
|
22
22
|
*
|
|
23
23
|
* @type {string}
|
|
24
|
-
* @memberof
|
|
24
|
+
* @memberof TopCustomerDto
|
|
25
25
|
*/
|
|
26
|
-
|
|
26
|
+
userId: string;
|
|
27
27
|
/**
|
|
28
28
|
*
|
|
29
29
|
* @type {string}
|
|
30
|
-
* @memberof
|
|
30
|
+
* @memberof TopCustomerDto
|
|
31
31
|
*/
|
|
32
|
-
|
|
32
|
+
name: string;
|
|
33
33
|
/**
|
|
34
34
|
*
|
|
35
35
|
* @type {string}
|
|
36
|
-
* @memberof
|
|
36
|
+
* @memberof TopCustomerDto
|
|
37
37
|
*/
|
|
38
|
-
|
|
38
|
+
email: string;
|
|
39
39
|
/**
|
|
40
40
|
*
|
|
41
|
-
* @type {
|
|
42
|
-
* @memberof
|
|
41
|
+
* @type {number}
|
|
42
|
+
* @memberof TopCustomerDto
|
|
43
43
|
*/
|
|
44
|
-
|
|
44
|
+
totalSpent: number;
|
|
45
45
|
/**
|
|
46
46
|
*
|
|
47
|
-
* @type {
|
|
48
|
-
* @memberof
|
|
47
|
+
* @type {number}
|
|
48
|
+
* @memberof TopCustomerDto
|
|
49
|
+
*/
|
|
50
|
+
orderCount: number;
|
|
51
|
+
/**
|
|
52
|
+
*
|
|
53
|
+
* @type {Date}
|
|
54
|
+
* @memberof TopCustomerDto
|
|
49
55
|
*/
|
|
50
|
-
|
|
56
|
+
lastOrderDate?: Date;
|
|
51
57
|
}
|
|
@@ -14,38 +14,38 @@
|
|
|
14
14
|
/**
|
|
15
15
|
*
|
|
16
16
|
* @export
|
|
17
|
-
* @interface
|
|
17
|
+
* @interface TopDiscountDto
|
|
18
18
|
*/
|
|
19
|
-
export interface
|
|
19
|
+
export interface TopDiscountDto {
|
|
20
20
|
_id?: string;
|
|
21
21
|
/**
|
|
22
22
|
*
|
|
23
23
|
* @type {string}
|
|
24
|
-
* @memberof
|
|
24
|
+
* @memberof TopDiscountDto
|
|
25
25
|
*/
|
|
26
|
-
|
|
26
|
+
discountId: string;
|
|
27
27
|
/**
|
|
28
28
|
*
|
|
29
29
|
* @type {string}
|
|
30
|
-
* @memberof
|
|
30
|
+
* @memberof TopDiscountDto
|
|
31
31
|
*/
|
|
32
|
-
|
|
32
|
+
name: string;
|
|
33
33
|
/**
|
|
34
34
|
*
|
|
35
35
|
* @type {string}
|
|
36
|
-
* @memberof
|
|
36
|
+
* @memberof TopDiscountDto
|
|
37
37
|
*/
|
|
38
|
-
|
|
38
|
+
code?: string;
|
|
39
39
|
/**
|
|
40
40
|
*
|
|
41
41
|
* @type {number}
|
|
42
|
-
* @memberof
|
|
42
|
+
* @memberof TopDiscountDto
|
|
43
43
|
*/
|
|
44
|
-
|
|
44
|
+
usageCount: number;
|
|
45
45
|
/**
|
|
46
46
|
*
|
|
47
47
|
* @type {number}
|
|
48
|
-
* @memberof
|
|
48
|
+
* @memberof TopDiscountDto
|
|
49
49
|
*/
|
|
50
|
-
|
|
50
|
+
totalSavings: number;
|
|
51
51
|
}
|
|
@@ -14,32 +14,38 @@
|
|
|
14
14
|
/**
|
|
15
15
|
*
|
|
16
16
|
* @export
|
|
17
|
-
* @interface
|
|
17
|
+
* @interface TopProductDto
|
|
18
18
|
*/
|
|
19
|
-
export interface
|
|
19
|
+
export interface TopProductDto {
|
|
20
20
|
_id?: string;
|
|
21
21
|
/**
|
|
22
22
|
*
|
|
23
|
-
* @type {
|
|
24
|
-
* @memberof
|
|
23
|
+
* @type {string}
|
|
24
|
+
* @memberof TopProductDto
|
|
25
|
+
*/
|
|
26
|
+
productId: string;
|
|
27
|
+
/**
|
|
28
|
+
*
|
|
29
|
+
* @type {string}
|
|
30
|
+
* @memberof TopProductDto
|
|
25
31
|
*/
|
|
26
|
-
|
|
32
|
+
name: string;
|
|
27
33
|
/**
|
|
28
34
|
*
|
|
29
35
|
* @type {number}
|
|
30
|
-
* @memberof
|
|
36
|
+
* @memberof TopProductDto
|
|
31
37
|
*/
|
|
32
|
-
|
|
38
|
+
totalSold: number;
|
|
33
39
|
/**
|
|
34
40
|
*
|
|
35
|
-
* @type {
|
|
36
|
-
* @memberof
|
|
41
|
+
* @type {number}
|
|
42
|
+
* @memberof TopProductDto
|
|
37
43
|
*/
|
|
38
|
-
|
|
44
|
+
revenue: number;
|
|
39
45
|
/**
|
|
40
46
|
*
|
|
41
47
|
* @type {string}
|
|
42
|
-
* @memberof
|
|
48
|
+
* @memberof TopProductDto
|
|
43
49
|
*/
|
|
44
|
-
|
|
50
|
+
imageUrl?: string;
|
|
45
51
|
}
|
|
@@ -14,14 +14,14 @@
|
|
|
14
14
|
/**
|
|
15
15
|
*
|
|
16
16
|
* @export
|
|
17
|
-
* @interface
|
|
17
|
+
* @interface UnreadCountDto
|
|
18
18
|
*/
|
|
19
|
-
export interface
|
|
19
|
+
export interface UnreadCountDto {
|
|
20
20
|
_id?: string;
|
|
21
21
|
/**
|
|
22
|
-
*
|
|
23
|
-
* @type {
|
|
24
|
-
* @memberof
|
|
22
|
+
* Number of unread notifications
|
|
23
|
+
* @type {number}
|
|
24
|
+
* @memberof UnreadCountDto
|
|
25
25
|
*/
|
|
26
|
-
|
|
26
|
+
unreadCount: number;
|
|
27
27
|
}
|
|
@@ -67,6 +67,18 @@ export interface UpdateStoreDto {
|
|
|
67
67
|
* @memberof UpdateStoreDto
|
|
68
68
|
*/
|
|
69
69
|
stripeWebhookSecret?: string;
|
|
70
|
+
/**
|
|
71
|
+
*
|
|
72
|
+
* @type {string}
|
|
73
|
+
* @memberof UpdateStoreDto
|
|
74
|
+
*/
|
|
75
|
+
stripeAccountId?: string;
|
|
76
|
+
/**
|
|
77
|
+
*
|
|
78
|
+
* @type {boolean}
|
|
79
|
+
* @memberof UpdateStoreDto
|
|
80
|
+
*/
|
|
81
|
+
stripeOnboardingCompleted?: boolean;
|
|
70
82
|
/**
|
|
71
83
|
*
|
|
72
84
|
* @type {string}
|
|
@@ -109,14 +109,14 @@ export function CartScreen() {
|
|
|
109
109
|
|
|
110
110
|
return (
|
|
111
111
|
<div className="min-h-screen bg-white">
|
|
112
|
-
<div className="max-w-[1400px] mx-auto px-
|
|
113
|
-
<div className="
|
|
112
|
+
<div className="max-w-[1400px] mx-auto px-4 md:px-12">
|
|
113
|
+
<div className="py-8">
|
|
114
114
|
{/* Header */}
|
|
115
|
-
<div className="mb-12">
|
|
116
|
-
<h1 className="font-
|
|
115
|
+
<div className="mb-8 md:mb-12">
|
|
116
|
+
<h1 className="font-semibold text-hsecondary tracking-[-1px] md:tracking-[-2px] mb-2 text-3xl md:text-4xl">
|
|
117
117
|
Shopping Cart
|
|
118
118
|
</h1>
|
|
119
|
-
<p className="
|
|
119
|
+
<p className="text-[14px] md:text-[16px] text-hmuted">
|
|
120
120
|
{itemCount} {itemCount === 1 ? 'item' : 'items'} in your cart
|
|
121
121
|
</p>
|
|
122
122
|
</div>
|
|
@@ -148,15 +148,15 @@ export function CartScreen() {
|
|
|
148
148
|
initial={{ opacity: 0, y: 24 }}
|
|
149
149
|
animate={{ opacity: 1, y: 0 }}
|
|
150
150
|
transition={{ delay: 0.1 }}
|
|
151
|
-
className="
|
|
151
|
+
className="lg:sticky lg:top-24 h-fit lg:col-span-1"
|
|
152
152
|
>
|
|
153
|
-
<div className="bg-linear-to-br from-hsecondary/10 to-hsecondary/10 rounded-[24px] p-8 border-2 border-hsecondary/20 sticky top-24">
|
|
154
|
-
<h2 className="font-
|
|
153
|
+
<div className="bg-hsecondary/[0.03] md:bg-linear-to-br md:from-hsecondary/10 md:to-hsecondary/10 rounded-[24px] p-6 md:p-8 border-2 border-hsecondary/10 md:border-hsecondary/20 lg:sticky lg:top-24">
|
|
154
|
+
<h2 className="font-semibold text-hsecondary mb-6">Order Summary</h2>
|
|
155
155
|
|
|
156
156
|
<div className="space-y-4 mb-6">
|
|
157
157
|
<div className="flex items-center justify-between">
|
|
158
|
-
<span className="
|
|
159
|
-
<span className="font-
|
|
158
|
+
<span className="text-[14px] text-hmuted">Subtotal ({itemCount} {itemCount === 1 ? 'item' : 'items'})</span>
|
|
159
|
+
<span className="font-semibold text-[14px] text-hsecondary">{formatPrice(subtotal)}</span>
|
|
160
160
|
</div>
|
|
161
161
|
<div className="flex items-center justify-between text-sm">
|
|
162
162
|
<span className="text-gray-600">Shipping</span>
|
|
@@ -557,10 +557,10 @@ export function CheckoutScreen() {
|
|
|
557
557
|
>
|
|
558
558
|
{/* Header */}
|
|
559
559
|
<div className="mb-12">
|
|
560
|
-
<h1 className="font-
|
|
560
|
+
<h1 className="font-semibold text-[#2B4B7C] mb-2 text-3xl">
|
|
561
561
|
Checkout
|
|
562
562
|
</h1>
|
|
563
|
-
<p className="
|
|
563
|
+
<p className="text-[14px] text-[#676c80] text-md leading-relaxed">
|
|
564
564
|
Complete your order information below
|
|
565
565
|
</p>
|
|
566
566
|
</div>
|
|
@@ -694,7 +694,7 @@ export function CheckoutScreen() {
|
|
|
694
694
|
<section className="bg-white border-2 border-gray-100 rounded-[24px] p-8 text-[#2B4B7C]">
|
|
695
695
|
<div className="flex flex-wrap items-center justify-between gap-4">
|
|
696
696
|
<div>
|
|
697
|
-
<h2 className="font-
|
|
697
|
+
<h2 className="font-semibold text-[#2B4B7C] mb-2 text-2xl">
|
|
698
698
|
{isDelivery ? 'Delivery Address' : 'Contact Information'}
|
|
699
699
|
</h2>
|
|
700
700
|
<p className="text-sm text-slate-500">
|
|
@@ -828,7 +828,7 @@ export function CheckoutScreen() {
|
|
|
828
828
|
<div className="bg-white border-2 border-gray-100 rounded-[24px] p-8 text-[#2B4B7C]">
|
|
829
829
|
<div className="flex items-center gap-3 text-xl font-semibold text-gray-900 pb-4 mb-8 border-b">
|
|
830
830
|
<Truck className="w-8 h-8 flex items-center justify-center text-[#2B4B7C]" />
|
|
831
|
-
<h2 className="font-
|
|
831
|
+
<h2 className="font-semibold text-[#2B4B7C] text-2xl">Shipping Options</h2>
|
|
832
832
|
</div>
|
|
833
833
|
|
|
834
834
|
{shippingRatesLoading ? (
|
|
@@ -980,7 +980,7 @@ export function CheckoutScreen() {
|
|
|
980
980
|
>
|
|
981
981
|
{/* Order Summary */}
|
|
982
982
|
<div className="bg-linear-to-br from-hsecondary/10 to-hsecondary/10 rounded-[24px] p-8 border-2 border-hsecondary/20 sticky top-24">
|
|
983
|
-
<h2 className="font-
|
|
983
|
+
<h2 className="font-semibold text-hsecondary mb-6 text-2xl">Order Summary</h2>
|
|
984
984
|
|
|
985
985
|
|
|
986
986
|
{/* Cart Summary */}
|
|
@@ -992,13 +992,13 @@ export function CheckoutScreen() {
|
|
|
992
992
|
<Image src={item.productVariantData?.media?.[0]?.file || PLACEHOLDER_IMAGE_SRC} alt={item.productVariantData.name} className="w-full h-full object-cover" height={200} width={200} />
|
|
993
993
|
</div>
|
|
994
994
|
<div className="flex-1 min-w-0">
|
|
995
|
-
<p className="font-
|
|
995
|
+
<p className="font-medium text-[12px] text-[#2B4B7C] mb-1">
|
|
996
996
|
{item?.productVariantData?.name}
|
|
997
997
|
</p>
|
|
998
|
-
<p className="
|
|
998
|
+
<p className="text-[11px] text-[#676c80]">
|
|
999
999
|
{item?.productVariantData?.brand} • Qty: {item.quantity}
|
|
1000
1000
|
</p>
|
|
1001
|
-
<p className="font-
|
|
1001
|
+
<p className="font-semibold text-[12px] text-hsecondary mt-1">
|
|
1002
1002
|
{formatPrice(item.productVariantData.finalPrice * item.quantity)}
|
|
1003
1003
|
</p>
|
|
1004
1004
|
</div>
|
|
@@ -1045,8 +1045,8 @@ export function CheckoutScreen() {
|
|
|
1045
1045
|
<div className="h-px bg-hsecondary/20 mt-6" />
|
|
1046
1046
|
|
|
1047
1047
|
<div className="flex items-center justify-between mb-6">
|
|
1048
|
-
<span className="font-
|
|
1049
|
-
<span className="font-
|
|
1048
|
+
<span className="font-semibold text-[16px] text-hsecondary">Total</span>
|
|
1049
|
+
<span className="font-bold text-[24px] text-hsecondary">{formatPrice(total)}</span>
|
|
1050
1050
|
</div>
|
|
1051
1051
|
{/* <p className="mt-1 text-xs text-slate-500">
|
|
1052
1052
|
Tax is estimated. Final amount confirmed after payment.
|
|
@@ -1054,7 +1054,7 @@ export function CheckoutScreen() {
|
|
|
1054
1054
|
</div>
|
|
1055
1055
|
|
|
1056
1056
|
<div className="bg-white/80 rounded-xl p-4">
|
|
1057
|
-
<p className="
|
|
1057
|
+
<p className="text-[11px] text-[#676c80] leading-[1.6]">
|
|
1058
1058
|
<strong className="text-hsecondary">Payment:</strong> We'll contact you to arrange payment upon pickup or delivery. We accept cash, credit cards, and all major payment methods.
|
|
1059
1059
|
</p>
|
|
1060
1060
|
</div>
|
|
@@ -1093,7 +1093,7 @@ export function CheckoutScreen() {
|
|
|
1093
1093
|
<button
|
|
1094
1094
|
type="submit"
|
|
1095
1095
|
disabled={isSubmitting}
|
|
1096
|
-
className="font-
|
|
1096
|
+
className="font-medium text-[14px] px-6 py-3 rounded-full text-white hover:bg-[#d66f45] hover:shadow-lg transition-all duration-300 mt-4 w-full bg-hsecondary hover:bg-[#2B4B7C] flex items-center justify-center gap-2 disabled:opacity-50 disabled:cursor-not-allowed"
|
|
1097
1097
|
>
|
|
1098
1098
|
<CreditCard className="h-5 w-5" />
|
|
1099
1099
|
{isSubmitting ? 'Placing order...' : 'Place Secure Order'}
|
|
@@ -75,7 +75,7 @@ export function OrderReviewsScreen() {
|
|
|
75
75
|
<p className="text-red-600 mb-4">{error.message}</p>
|
|
76
76
|
<button
|
|
77
77
|
onClick={() => router.back()}
|
|
78
|
-
className="text-
|
|
78
|
+
className="text-haccent-500 hover:underline"
|
|
79
79
|
>
|
|
80
80
|
Go Back
|
|
81
81
|
</button>
|
|
@@ -179,7 +179,7 @@ export function OrderReviewsScreen() {
|
|
|
179
179
|
return (
|
|
180
180
|
<div
|
|
181
181
|
key={`${variantId}-${index}`}
|
|
182
|
-
className="bg-white rounded-lg border border-gray-200 p-4 cursor-pointer hover:border-
|
|
182
|
+
className="bg-white rounded-lg border border-gray-200 p-4 cursor-pointer hover:border-haccent-500 hover:shadow-md transition-all"
|
|
183
183
|
onClick={() => {
|
|
184
184
|
// Try to extract productId from various possible locations
|
|
185
185
|
const possibleProductId =
|
|
@@ -218,7 +218,7 @@ export function OrderReviewsScreen() {
|
|
|
218
218
|
<p className="text-sm text-gray-600">{variantData?.description || ''}</p>
|
|
219
219
|
<p className="text-xs text-gray-500 mt-1">Quantity: {item.quantity}</p>
|
|
220
220
|
</div>
|
|
221
|
-
<div className="flex items-center gap-2 text-
|
|
221
|
+
<div className="flex items-center gap-2 text-haccent-500">
|
|
222
222
|
<span className="text-sm font-medium">Review Now</span>
|
|
223
223
|
</div>
|
|
224
224
|
</div>
|
|
@@ -260,7 +260,7 @@ export function OrderReviewsScreen() {
|
|
|
260
260
|
</p>
|
|
261
261
|
<button
|
|
262
262
|
onClick={() => router.push('/shop')}
|
|
263
|
-
className="px-6 py-3 bg-
|
|
263
|
+
className="px-6 py-3 bg-haccent-500 text-white rounded-lg hover:bg-[#d66f40] transition-colors"
|
|
264
264
|
>
|
|
265
265
|
Start Shopping
|
|
266
266
|
</button>
|
|
@@ -270,7 +270,7 @@ export function OrderReviewsScreen() {
|
|
|
270
270
|
{completedOrders.map((order) => (
|
|
271
271
|
<div
|
|
272
272
|
key={order.id || order._id}
|
|
273
|
-
className="bg-white rounded-lg border border-gray-200 p-6 cursor-pointer hover:border-
|
|
273
|
+
className="bg-white rounded-lg border border-gray-200 p-6 cursor-pointer hover:border-haccent-500 hover:shadow-md transition-all"
|
|
274
274
|
onClick={() => handleOrderClick(order)}
|
|
275
275
|
>
|
|
276
276
|
<div className="flex items-center justify-between">
|
|
@@ -293,7 +293,7 @@ export function OrderReviewsScreen() {
|
|
|
293
293
|
)}
|
|
294
294
|
</div>
|
|
295
295
|
<div className="text-right">
|
|
296
|
-
<div className="flex items-center gap-2 text-
|
|
296
|
+
<div className="flex items-center gap-2 text-haccent-500">
|
|
297
297
|
<span className="text-sm font-medium">Review Products</span>
|
|
298
298
|
</div>
|
|
299
299
|
</div>
|