@riosst100/pwa-marketplace 2.0.8 → 2.1.0

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.
Files changed (57) hide show
  1. package/.github/workflows/dependabot.yml +28 -28
  2. package/i18n/en_US.json +508 -509
  3. package/i18n/id_ID.json +508 -509
  4. package/package.json +18 -22
  5. package/src/componentOverrideMapping.js +1 -0
  6. package/src/components/AccountLayout/index.js +15 -0
  7. package/src/components/OrderDetail/components/itemsOrdered.js +128 -0
  8. package/src/components/OrderDetail/components/rmaList.js +114 -0
  9. package/src/components/OrderDetail/orderDetail.js +204 -0
  10. package/src/components/OrderDetail/orderDetailPage.js +14 -0
  11. package/src/components/RMAPage/RMACreate.js +238 -0
  12. package/src/components/RMAPage/RMACreatePage.js +14 -0
  13. package/src/components/RMAPage/RMADetail.js +318 -0
  14. package/src/components/RMAPage/RMADetailPage.js +14 -0
  15. package/src/components/RMAPage/RMAList.js +241 -0
  16. package/src/components/RMAPage/RMASelect.js +36 -0
  17. package/src/components/RMAPage/RMASelectPage.js +13 -0
  18. package/src/components/RMAPage/components/productItem.js +114 -0
  19. package/src/components/RMAPage/components/rmaList.js +250 -0
  20. package/src/components/RMAPage/index.js +14 -0
  21. package/src/components/RMAPage/orderRow.js +318 -0
  22. package/src/components/commons/Checkbox/index.js +57 -0
  23. package/src/components/commons/Collapsible/index.js +51 -0
  24. package/src/components/commons/Select/index.js +29 -0
  25. package/src/components/commons/Textfield/index.js +20 -0
  26. package/src/intercept.js +35 -0
  27. package/src/overwrites/venia-ui/lib/components/AccountMenu/accountMenu.js +2 -1
  28. package/src/overwrites/venia-ui/lib/components/Breadcrumbs/breadcrumbs.module.css +38 -0
  29. package/src/overwrites/venia-ui/lib/components/CartPage/ProductListing/product.js +9 -2
  30. package/src/overwrites/venia-ui/lib/components/Footer/footer.js +1 -1
  31. package/src/overwrites/venia-ui/lib/components/Header/header.js +12 -1
  32. package/src/overwrites/venia-ui/lib/components/Newsletter/newsletter.js +1 -1
  33. package/src/overwrites/venia-ui/lib/components/OrderHistoryPage/orderRow.js +11 -3
  34. package/src/overwrites/venia-ui/lib/components/ProductFullDetail/productFullDetail.js +34 -3
  35. package/src/overwrites/venia-ui/lib/components/ProductFullDetail/productFullDetail.module.css +9 -0
  36. package/src/overwrites/venia-ui/lib/components/ProductImageCarousel/carousel.module.css +1 -1
  37. package/src/overwrites/venia-ui/lib/components/WishlistPage/actionMenu.ee.js +54 -0
  38. package/src/overwrites/venia-ui/lib/components/WishlistPage/actionMenu.js +7 -0
  39. package/src/overwrites/venia-ui/lib/components/WishlistPage/createWishlist.ee.js +129 -0
  40. package/src/overwrites/venia-ui/lib/components/WishlistPage/createWishlist.js +3 -0
  41. package/src/overwrites/venia-ui/lib/components/WishlistPage/createWishlist.module.css +63 -0
  42. package/src/overwrites/venia-ui/lib/components/WishlistPage/index.js +14 -0
  43. package/src/overwrites/venia-ui/lib/components/WishlistPage/wishlist.js +193 -0
  44. package/src/overwrites/venia-ui/lib/components/WishlistPage/wishlist.module.css +78 -0
  45. package/src/overwrites/venia-ui/lib/components/WishlistPage/wishlistConfirmRemoveProductDialog.js +84 -0
  46. package/src/overwrites/venia-ui/lib/components/WishlistPage/wishlistConfirmRemoveProductDialog.module.css +20 -0
  47. package/src/overwrites/venia-ui/lib/components/WishlistPage/wishlistEditFavoritesListDialog.js +96 -0
  48. package/src/overwrites/venia-ui/lib/components/WishlistPage/wishlistEditFavoritesListDialog.module.css +22 -0
  49. package/src/overwrites/venia-ui/lib/components/WishlistPage/wishlistItem.js +138 -0
  50. package/src/overwrites/venia-ui/lib/components/WishlistPage/wishlistItem.module.css +78 -0
  51. package/src/overwrites/venia-ui/lib/components/WishlistPage/wishlistItems.js +45 -0
  52. package/src/overwrites/venia-ui/lib/components/WishlistPage/wishlistItems.module.css +9 -0
  53. package/src/overwrites/venia-ui/lib/components/WishlistPage/wishlistListActionsDialog.js +61 -0
  54. package/src/overwrites/venia-ui/lib/components/WishlistPage/wishlistMoreActionsDialog.js +84 -0
  55. package/src/overwrites/venia-ui/lib/components/WishlistPage/wishlistMoreActionsDialog.module.css +19 -0
  56. package/src/overwrites/venia-ui/lib/components/WishlistPage/wishlistPage.js +120 -0
  57. package/src/overwrites/venia-ui/lib/components/WishlistPage/wishlistPage.module.css +31 -0
@@ -0,0 +1,14 @@
1
+ import AccountLayout from '@riosst100/pwa-marketplace/src/components/AccountLayout';
2
+ import RMAList from '@riosst100/pwa-marketplace/src/components/RMAPage/RMAList';
3
+
4
+ import React from 'react'
5
+
6
+ const index = () => {
7
+ return (
8
+ <AccountLayout>
9
+ <RMAList />
10
+ </AccountLayout>
11
+ )
12
+ }
13
+
14
+ export default index;
@@ -0,0 +1,318 @@
1
+ import React from 'react';
2
+ import { arrayOf, number, shape, string } from 'prop-types';
3
+ import { ChevronDown, ChevronUp } from 'react-feather';
4
+ import { FormattedMessage, useIntl } from 'react-intl';
5
+ import Price from '@magento/venia-ui/lib/components/Price';
6
+ import { useOrderRow } from '@magento/peregrine/lib/talons/OrderHistoryPage/useOrderRow';
7
+
8
+ import { useStyle } from '@magento/venia-ui/lib/classify';
9
+ import Icon from '@magento/venia-ui/lib/components/Icon';
10
+ import CollapsedImageGallery from '@riosst100/pwa-marketplace/src/overwrites/venia-ui/lib/components/OrderHistoryPage/collapsedImageGallery';
11
+ import OrderDetails from '@riosst100/pwa-marketplace/src/overwrites/venia-ui/lib/components/OrderHistoryPage/OrderDetails';
12
+ import defaultClasses from '@riosst100/pwa-marketplace/src/overwrites/venia-ui/lib/components/OrderHistoryPage/orderRow.module.css';
13
+ import cn from 'classnames';
14
+ import { Verify } from 'iconsax-react';
15
+ import PlaceholderImage from '@magento/venia-ui/lib/components/Image/placeholderImage';
16
+ import { Link } from 'react-router-dom';
17
+
18
+ const OrderRow = props => {
19
+ const { order } = props;
20
+ const { formatMessage } = useIntl();
21
+ const {
22
+ invoices,
23
+ items,
24
+ number: orderNumber,
25
+ order_date: orderDate,
26
+ shipments,
27
+ status,
28
+ total
29
+ } = order;
30
+ const { grand_total: grandTotal } = total;
31
+ const { currency, value: orderTotal } = grandTotal;
32
+
33
+ // Convert date to ISO-8601 format so Safari can also parse it
34
+ const isoFormattedDate = orderDate.replace(' ', 'T');
35
+ const formattedDate = new Date(isoFormattedDate).toLocaleDateString(
36
+ undefined,
37
+ {
38
+ year: 'numeric',
39
+ month: 'short',
40
+ day: 'numeric'
41
+ }
42
+ );
43
+
44
+ const hasInvoice = !!invoices.length;
45
+ const hasShipment = !!shipments.length;
46
+ let derivedStatus;
47
+ if (status === 'Complete') {
48
+ derivedStatus = formatMessage({
49
+ id: 'Quotes.deliveredText',
50
+ defaultMessage: 'Delivered'
51
+ });
52
+ } else if (hasShipment) {
53
+ derivedStatus = formatMessage({
54
+ id: 'Quotes.shippedText',
55
+ defaultMessage: 'Shipped'
56
+ });
57
+ } else if (hasInvoice) {
58
+ derivedStatus = formatMessage({
59
+ id: 'Quotes.readyToShipText',
60
+ defaultMessage: 'Ready to ship'
61
+ });
62
+ } else {
63
+ derivedStatus = formatMessage({
64
+ id: 'Quotes.new',
65
+ defaultMessage: 'New'
66
+ });
67
+ }
68
+
69
+ const talonProps = useOrderRow({ items });
70
+ const { loading, isOpen, imagesData } = talonProps;
71
+
72
+ const classes = useStyle(defaultClasses, props.classes);
73
+
74
+ const contentClass = isOpen ? classes.content : classes.content_collapsed;
75
+
76
+ const contentToggleIconSrc = isOpen ? ChevronUp : ChevronDown;
77
+
78
+ const contentToggleIcon = <Icon src={contentToggleIconSrc} size={24} />;
79
+
80
+ const collapsedImageGalleryElement = isOpen ? null : (
81
+ <CollapsedImageGallery items={imagesData} />
82
+ );
83
+
84
+ const orderDetails = loading ? null : (
85
+ <OrderDetails orderData={order} imagesData={imagesData} />
86
+ );
87
+
88
+ const orderTotalPrice =
89
+ currency && orderTotal !== null ? (
90
+ <Price currencyCode={currency} value={orderTotal} />
91
+ ) : (
92
+ '-'
93
+ );
94
+
95
+ const badgeStatusStyle = () => {
96
+ return 'bg-[#F1EFF6] text-blue-700 text-[14px] font-semibold rounded-full px-[30px] py-[5px] border-none';
97
+ }
98
+
99
+ const thumbnailProps = {
100
+ alt: items[0].product_name,
101
+ classes: { root: classes.thumbnail },
102
+ width: 50
103
+ };
104
+
105
+ return (
106
+ <li className={classes.root}>
107
+ <div className='flex flex-col md_flex-row justify-between mb-2.5'>
108
+ <div className='flex flex-col'>
109
+ <div className="flex gap-x-[15px] flex-row">
110
+ <span className="text-[14px] text-colorDefault">{formattedDate}</span>
111
+ <span className="text-gray-200 text-[14px]">{orderNumber}</span>
112
+ </div>
113
+ </div>
114
+ <div className='flex flex-col'>
115
+ <div className='flex w-full justify-start mt-2.5 md_mt-0 md_justify-end'>
116
+ <span className={cn(classes.orderStatusBadge, badgeStatusStyle())}>
117
+ {derivedStatus}
118
+ </span>
119
+ </div>
120
+ </div>
121
+ </div>
122
+ <div className='flex flex-col md_flex-row justify-between mb-2.5'>
123
+ <div className='flex flex-col'>
124
+ <div className='flex gap-x-[5px] mb-2.5'>
125
+ <Verify size={17} className='text-blue-700' variant="Bold" />
126
+ <span className='text-xs font-medium text-[rgba(25, 34, 42, 0.7)]'>
127
+ Gundam Info
128
+ </span>
129
+ </div>
130
+ <div className='flex flex-row'>
131
+ <div>
132
+ <PlaceholderImage {...thumbnailProps} />
133
+ </div>
134
+ <div className='flex flex-col max-w-[260px] gap-2.5'>
135
+ <div className={cn(classes.productName, 'text-[14] font-medium')}>
136
+ <span>
137
+ {items[0]?.product_name}
138
+ </span>
139
+ </div>
140
+ <div className="text-[14] text-gray-200">
141
+ <span>
142
+ {`${items[0]?.quantity_ordered}X`}
143
+ </span>
144
+ {' '}
145
+ <span>
146
+ <Price currencyCode={items[0]?.product_sale_price?.currency} value={items[0]?.product_sale_price?.value} />
147
+ </span>
148
+ </div>
149
+ </div>
150
+ </div>
151
+ </div>
152
+ <div className='flex flex-col'>
153
+ <div className="md_px-10 py-3 md_border-l border-gray-100">
154
+ <span className="text-[14] text-gray-200 text-left md_text-center block mb-2">
155
+ <FormattedMessage
156
+ id={'orderRow.orderTotalText'}
157
+ defaultMessage={'Order Total'}
158
+ />
159
+ </span>
160
+ <div className="text-lg font-semibold text-left md_text-center block">{orderTotalPrice}</div>
161
+ </div>
162
+ </div>
163
+ </div>
164
+ <div className='flex flex-row justify-end py-[5px]'>
165
+ <Link to="/return/view/DEV123123123">
166
+ <span className="text-[13px] font-medium text-blue-700 underline">
167
+ <FormattedMessage
168
+ id={'orderRow.ViewTransactionDetail'}
169
+ defaultMessage={'View Transaction Detail'}
170
+ />
171
+ </span>
172
+ </Link>
173
+ </div>
174
+
175
+ {/* <div className={classes.orderDateContainer}>
176
+ <span className={classes.orderDateLabel}>
177
+ <FormattedMessage
178
+ id={'orderRow.orderDateText'}
179
+ defaultMessage={'Order Date'}
180
+ />
181
+ </span>
182
+ <span className={classes.orderDate}>{formattedDate}</span>
183
+ </div> */}
184
+ {/* <div className={classes.orderItemsContainer}>
185
+ {collapsedImageGalleryElement}
186
+ </div> */}
187
+ {/* <div className={classes.orderStatusContainer}>
188
+ <span className={classes.orderStatusBadge}>
189
+ {derivedStatus}
190
+ </span>
191
+ <OrderProgressBar status={derivedStatus} />
192
+ </div> */}
193
+ <div className={cn(contentClass, '!py-4 mt-4')}>{orderDetails}</div>
194
+ </li>
195
+ );
196
+ };
197
+
198
+ export default OrderRow;
199
+
200
+ OrderRow.propTypes = {
201
+ classes: shape({
202
+ root: string,
203
+ cell: string,
204
+ stackedCell: string,
205
+ label: string,
206
+ value: string,
207
+ orderNumberContainer: string,
208
+ orderDateContainer: string,
209
+ orderTotalContainer: string,
210
+ orderStatusContainer: string,
211
+ orderItemsContainer: string,
212
+ contentToggleContainer: string,
213
+ orderNumberLabel: string,
214
+ orderDateLabel: string,
215
+ orderTotalLabel: string,
216
+ orderNumber: string,
217
+ orderDate: string,
218
+ orderTotal: string,
219
+ orderStatusBadge: string,
220
+ content: string,
221
+ content_collapsed: string
222
+ }),
223
+ order: shape({
224
+ billing_address: shape({
225
+ city: string,
226
+ country_code: string,
227
+ firstname: string,
228
+ lastname: string,
229
+ postcode: string,
230
+ region_id: string,
231
+ street: arrayOf(string)
232
+ }),
233
+ items: arrayOf(
234
+ shape({
235
+ id: string,
236
+ product_name: string,
237
+ product_sale_price: shape({
238
+ currency: string,
239
+ value: number
240
+ }),
241
+ product_sku: string,
242
+ selected_options: arrayOf(
243
+ shape({
244
+ label: string,
245
+ value: string
246
+ })
247
+ ),
248
+ quantity_ordered: number
249
+ })
250
+ ),
251
+ invoices: arrayOf(
252
+ shape({
253
+ id: string
254
+ })
255
+ ),
256
+ number: string,
257
+ order_date: string,
258
+ payment_methods: arrayOf(
259
+ shape({
260
+ type: string,
261
+ additional_data: arrayOf(
262
+ shape({
263
+ name: string,
264
+ value: string
265
+ })
266
+ )
267
+ })
268
+ ),
269
+ shipping_address: shape({
270
+ city: string,
271
+ country_code: string,
272
+ firstname: string,
273
+ lastname: string,
274
+ postcode: string,
275
+ region_id: string,
276
+ street: arrayOf(string),
277
+ telephone: string
278
+ }),
279
+ shipping_method: string,
280
+ shipments: arrayOf(
281
+ shape({
282
+ id: string,
283
+ tracking: arrayOf(
284
+ shape({
285
+ number: string
286
+ })
287
+ )
288
+ })
289
+ ),
290
+ status: string,
291
+ total: shape({
292
+ discounts: arrayOf(
293
+ shape({
294
+ amount: shape({
295
+ currency: string,
296
+ value: number
297
+ })
298
+ })
299
+ ),
300
+ grand_total: shape({
301
+ currency: string,
302
+ value: number
303
+ }),
304
+ subtotal: shape({
305
+ currency: string,
306
+ value: number
307
+ }),
308
+ total_tax: shape({
309
+ currency: string,
310
+ value: number
311
+ }),
312
+ total_shipping: shape({
313
+ currency: string,
314
+ value: number
315
+ })
316
+ })
317
+ })
318
+ };
@@ -0,0 +1,57 @@
1
+ import React, { useState } from 'react';
2
+ import cn from 'classnames';
3
+
4
+ const Checkbox = (props) => {
5
+ const {
6
+ onChange = () => { },
7
+ className = '',
8
+ id = '',
9
+ defaultChecked = false,
10
+ width = 20,
11
+ height = 20,
12
+ color = '#4E31DB',
13
+ colorUncheked = '#E6E9EA'
14
+ } = props;
15
+
16
+ const [checked, setChecked] = useState(defaultChecked);
17
+
18
+ const handleChange = (e) => {
19
+ if (e.target.checked) {
20
+ setChecked(true);
21
+ } else {
22
+ setChecked(false);
23
+ }
24
+ onChange(e);
25
+ }
26
+
27
+ return (
28
+ <>
29
+ <div className={cn('relative', className)}>
30
+ {checked ? (
31
+ <>
32
+ <svg xmlns="http://www.w3.org/2000/svg" width={width} height={height} viewBox={`0 0 ${width + 4} ${height + 4}`} fill="none">
33
+ <path d="M9 22H15C20 22 22 20 22 15V9C22 4 20 2 15 2H9C4 2 2 4 2 9V15C2 20 4 22 9 22Z" stroke={color} stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" />
34
+ <path d="M7.75 12L10.58 14.83L16.25 9.17004" stroke={color} stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" />
35
+ </svg>
36
+ </>
37
+ ) : (
38
+ <>
39
+ <svg xmlns="http://www.w3.org/2000/svg" width={width} height={height} viewBox={`0 0 ${width + 4} ${height + 4}`} fill="none">
40
+ <path d="M9 22H15C20 22 22 20 22 15V9C22 4 20 2 15 2H9C4 2 2 4 2 9V15C2 20 4 22 9 22Z" stroke={colorUncheked} stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" />
41
+ </svg>
42
+ </>
43
+ )}
44
+ <input
45
+ type="checkbox"
46
+ onChange={(e) => handleChange(e)}
47
+ className='opacity-0 absolute top-0'
48
+ checked={checked}
49
+ style={{ width: width, height: height }}
50
+ id={id}
51
+ />
52
+ </div>
53
+ </>
54
+ )
55
+ }
56
+
57
+ export default Checkbox
@@ -0,0 +1,51 @@
1
+ import React, { useState } from 'react';
2
+ import { ArrowDown2 } from 'iconsax-react';
3
+ import cn from 'classnames';
4
+
5
+ const Collapsible = (props) => {
6
+ const {
7
+ rootClassName,
8
+ expanded = false,
9
+ children = '',
10
+ content = '',
11
+ title = 'title',
12
+ contentWrapperClassName,
13
+ } = props
14
+ const [expand, setExpand] = useState(expanded);
15
+
16
+ return (
17
+ <>
18
+ <div className={cn('w-full border-t border-gray-100', rootClassName)}>
19
+ <div
20
+ className={cn(
21
+ 'flex justify-between items-center',
22
+ 'px-2.5 py-[18px] cursor-pointer'
23
+ )}
24
+ onClick={() => setExpand(!expand)}
25
+ >
26
+ <span className='text-[16px] font-semibold'>
27
+ {title}
28
+ </span>
29
+ <ArrowDown2
30
+ className={cn(
31
+ 'transition-all',
32
+ expand ? 'rotate-180' : 'rotate-0',
33
+ )}
34
+ size={16}
35
+ />
36
+ </div>
37
+ <div
38
+ className={cn(
39
+ ' transition-all mt-2.5 duration-300 ease-in-out overflow-hidden border-b border-gray-100',
40
+ expand ? 'h-auto opacity-100' : 'h-0 opacity-0',
41
+ contentWrapperClassName,
42
+ )}
43
+ >
44
+ {children ? children : content}
45
+ </div>
46
+ </div>
47
+ </>
48
+ )
49
+ }
50
+
51
+ export default Collapsible
@@ -0,0 +1,29 @@
1
+ import React from 'react';
2
+ import cx from 'classnames';
3
+
4
+ const Select = (props) => {
5
+ const {
6
+ wrapperClassname,
7
+ className,
8
+ options = []
9
+ } = props;
10
+
11
+ return (
12
+ <div className={cx('flex', wrapperClassname)}>
13
+ <select
14
+ className={cx('border rounded-md border-gray-100 p-2 focus-visible_outline-none', className)}
15
+ >
16
+ <option value=''>
17
+ Choose Option
18
+ </option>
19
+ {options.map((item) => (
20
+ <option value={item.value}>
21
+ {item.label}
22
+ </option>
23
+ ))}
24
+ </select>
25
+ </div>
26
+ )
27
+ }
28
+
29
+ export default Select
@@ -0,0 +1,20 @@
1
+ import React from 'react';
2
+ import cx from 'classnames';
3
+
4
+ const index = (props) => {
5
+ const {
6
+ wrapperClassname,
7
+ className,
8
+ value
9
+ } = props;
10
+ return (
11
+ <div className={cx('flex', wrapperClassname)}>
12
+ <input
13
+ className={cx('w-full p-2 border border-gray-100 rounded-md focus-visible_outline-none', className)}
14
+ value={value}
15
+ />
16
+ </div>
17
+ )
18
+ }
19
+
20
+ export default index
package/src/intercept.js CHANGED
@@ -149,6 +149,41 @@ module.exports = targets => {
149
149
  pattern: "/quotes/:urlKey",
150
150
  path: require.resolve("./components/RFQPage/quoteDetailPage.js"),
151
151
  authed: true,
152
+ },
153
+ {
154
+ exact: true,
155
+ name: "RMA",
156
+ pattern: "/return",
157
+ path: require.resolve("./components/RMAPage/index.js"),
158
+ authed: true,
159
+ },
160
+ {
161
+ exact: true,
162
+ name: "RMA Select",
163
+ pattern: "/return/select",
164
+ path: require.resolve("./components/RMAPage/RMASelectPage.js"),
165
+ authed: true,
166
+ },
167
+ {
168
+ exact: true,
169
+ name: "RMA Detail",
170
+ pattern: "/return/view/:urlKey",
171
+ path: require.resolve("./components/RMAPage/RMADetailPage.js"),
172
+ authed: true,
173
+ },
174
+ {
175
+ exact: true,
176
+ name: "New Return",
177
+ pattern: "/return/create/:urlKey",
178
+ path: require.resolve("./components/RMAPage/RMACreatePage.js"),
179
+ authed: true,
180
+ },
181
+ {
182
+ exact: true,
183
+ name: "Order Detail",
184
+ pattern: "/order-history/view/:urlKey",
185
+ path: require.resolve("./components/OrderDetail/orderDetailPage.js"),
186
+ authed: true,
152
187
  }
153
188
  ];
154
189
 
@@ -8,6 +8,7 @@ import SignIn from '@magento/venia-ui/lib/components/SignIn/signIn';
8
8
  import AccountMenuItems from './accountMenuItems';
9
9
  import ForgotPassword from '@magento/venia-ui/lib/components/ForgotPassword';
10
10
  import defaultClasses from './accountMenu.module.css';
11
+ import cn from 'classnames';
11
12
 
12
13
  const AccountMenu = React.forwardRef((props, ref) => {
13
14
  const {
@@ -86,7 +87,7 @@ const AccountMenu = React.forwardRef((props, ref) => {
86
87
  }
87
88
 
88
89
  return (
89
- <aside className={rootClass} data-cy="AccountMenu-root">
90
+ <aside className={cn(rootClass, '!top-[57px] max-w-[1210px]')} data-cy="AccountMenu-root">
90
91
  <div ref={ref} className={contentsClass}>
91
92
  {accountMenuIsOpen ? dropdownContents : null}
92
93
  </div>
@@ -4,6 +4,8 @@
4
4
  composes: flex from global;
5
5
  composes: items-center from global;
6
6
  composes: gap-[6px] from global;
7
+ composes: mt-[10px] from global;
8
+ composes: mb-[24px] from global;
7
9
  composes: my-[10px] from global;
8
10
  padding-top: 20px;
9
11
  margin-bottom: 40px;
@@ -30,4 +32,40 @@
30
32
  .currentCategory {
31
33
  composes: text-base from global;
32
34
  composes: leading-[13px] from global;
35
+ }
36
+
37
+ @media only screen and (max-width: 1023px) {
38
+ .text {
39
+ display: -webkit-box;
40
+ -webkit-box-orient: vertical;
41
+ -webkit-line-clamp: 1;
42
+ overflow: hidden;
43
+ max-width: 160px;
44
+ }
45
+
46
+ .link {
47
+ display: -webkit-box;
48
+ -webkit-box-orient: vertical;
49
+ -webkit-line-clamp: 1;
50
+ overflow: hidden;
51
+ max-width: 160px;
52
+ }
53
+ }
54
+
55
+ @media only screen and (max-width: 767px) {
56
+ .text {
57
+ display: -webkit-box;
58
+ -webkit-box-orient: vertical;
59
+ -webkit-line-clamp: 1;
60
+ overflow: hidden;
61
+ max-width: 100px;
62
+ }
63
+
64
+ .link {
65
+ display: -webkit-box;
66
+ -webkit-box-orient: vertical;
67
+ -webkit-line-clamp: 1;
68
+ overflow: hidden;
69
+ max-width: 100px;
70
+ }
33
71
  }
@@ -146,7 +146,7 @@ const Product = props => {
146
146
  defaultMessage={' ea.'}
147
147
  /> */}
148
148
  </span>
149
- <div className={classes.quantity}>
149
+ <div className={cn(classes.quantity, 'hidden sm_flex')}>
150
150
  <Quantity
151
151
  itemId={item.id}
152
152
  initialValue={quantity}
@@ -186,7 +186,14 @@ const Product = props => {
186
186
  </Kebab> */}
187
187
 
188
188
  </div>
189
- <div className='flex justify-end gap-2.5'>
189
+ <div className='flex justify-end gap-2.5 items-center mt-2 sm_mt-0'>
190
+ <div className={cn(classes.quantity, 'flex-auto sm_hidden')}>
191
+ <Quantity
192
+ itemId={item.id}
193
+ initialValue={quantity}
194
+ onChange={handleUpdateItemQuantity}
195
+ />
196
+ </div>
190
197
  {editItemSection}
191
198
  <li>
192
199
  <AddToListButton
@@ -62,7 +62,7 @@ const Footer = props => {
62
62
  data-cy="Footer-root"
63
63
  className={cn(
64
64
  classes.root,
65
- '!pt-[50px] !px-0'
65
+ '!pt-[50px] !px-6 lg_!px-4'
66
66
  )}
67
67
  >
68
68
  <div className={classes.links}>
@@ -24,6 +24,7 @@ import { useIntl } from 'react-intl';
24
24
  import cn from 'classnames';
25
25
  // const SearchBar = React.lazy(() => import('@magento/venia-ui/lib/components/SearchBar'));
26
26
  const SearchBar = React.lazy(() => import('@riosst100/pwa-marketplace/src/overwrites/venia-ui/lib/components/SearchBar'));
27
+ import { SearchNormal } from 'iconsax-react';
27
28
 
28
29
  import { useLogo } from '@riosst100/pwa-marketplace/src/talons/Header/useLogo';
29
30
  import Image from '@magento/venia-ui/lib/components/Image';
@@ -85,7 +86,7 @@ const Header = props => {
85
86
  <header className={cn(rootClass, '!flex flex-col !px-0 border-gray-100 ')} data-cy="Header-root">
86
87
  <div className={cn('middle-header border-b border-gray-100')}>
87
88
  <div className={cn('w-full max-w-[1210px] px-[15px] py-[10px] mx-[auto] flex justify-between items-center')}>
88
- <div className='flex'>
89
+ <div className='flex items-center'>
89
90
  <NavTrigger />
90
91
 
91
92
  <Link
@@ -114,6 +115,16 @@ const Header = props => {
114
115
  </Link>
115
116
  </div>
116
117
  <div className='flex flex-auto max-w-[700px]'>
118
+ <div className=' hidden lg_flex w-full'>
119
+ <Suspense fallback={searchBarFallback}>
120
+ <Route>
121
+ <SearchBar isOpen={true} ref={searchRef} />
122
+ </Route>
123
+ </Suspense>
124
+ </div>
125
+ <div className='flex w-full justify-end lg_hidden'>
126
+ <SearchNormal size="25" color="#280135" variant="Outline" className='mr-4' />
127
+ </div>
117
128
  <Suspense fallback={searchBarFallback}>
118
129
  <Route>
119
130
  <SearchBar isOpen={true} ref={searchRef} />
@@ -66,7 +66,7 @@ const Newsletter = props => {
66
66
  ) : null;
67
67
 
68
68
  return (
69
- <div className={classes.root} data-cy={'Newsletter-root'}>
69
+ <div className='col-span-6 gap-none grid items-start max-w-[20rem] mx-0 lg_mx-auto relative sm_col-span-3' data-cy={'Newsletter-root'}>
70
70
  {maybeLoadingIndicator}
71
71
  <span data-cy="Newsletter-title" className={classes.title}>
72
72
  <FormattedMessage