@riosst100/pwa-marketplace 2.7.5 → 2.7.8

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/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@riosst100/pwa-marketplace",
3
3
  "author": "riosst100@gmail.com",
4
- "version": "2.7.5",
4
+ "version": "2.7.8",
5
5
  "main": "src/index.js",
6
6
  "pwa-studio": {
7
7
  "targets": {
@@ -1,19 +1,29 @@
1
+ // crossSellerBuy.js
1
2
  import React from 'react';
2
3
  import Item from './item';
3
4
 
4
- const crossSellerBuy = () => {
5
+ export const listings = [
6
+ { id: 1, sellerName: 'SuperGamesInc', sales: 3329, condition: 'Near Mint 1st Edition', price: 34.19 },
7
+ { id: 2, sellerName: 'GameWorld', sales: 1520, condition: 'Near Mint 1st Edition', price: 28.49 },
8
+ { id: 3, sellerName: 'MegaPlay', sales: 980, condition: 'Near Mint 1st Edition', price: 31.00 }
9
+ ];
10
+
11
+ export const totalListings = listings.length;
12
+ export const lowestPrice = Math.min(...listings.map(item => item.price));
13
+
14
+ const CrossSellerBuy = () => {
5
15
  return (
6
16
  <>
7
- <h3 className='capitalize font-medium text-xl mb-[30px]'>
8
- Also Available
9
- </h3>
10
- <div className='flex flex-col gap-y-5'>
11
- {[...Array(6)].map(() => (
12
- <Item />
17
+ <h3 className="font-semibold text-sm sm_text-base md_text-lg lg_text-xl xl_text-2xl mb-1">{totalListings} Listings</h3>
18
+ <p className="text-[16px] mb-6">As low as ${lowestPrice.toFixed(2)}</p>
19
+
20
+ <div className="flex flex-col gap-y-4">
21
+ {listings.map(item => (
22
+ <Item key={item.id} {...item} />
13
23
  ))}
14
24
  </div>
15
25
  </>
16
- )
17
- }
26
+ );
27
+ };
18
28
 
19
- export default crossSellerBuy
29
+ export default CrossSellerBuy;
@@ -7,73 +7,55 @@ import Verify from './verifyIcon';
7
7
  import Star from './starIcon';
8
8
  import logoImage from './logo_seller.png';
9
9
 
10
- const item = () => {
10
+ const Item = ({ sellerName, sales, price, condition }) => {
11
11
  return (
12
- <>
13
- <div className='flex flex-col gap-y-4 lg_flex-row justify-between bg-white rounded-lg border border-gray-100 p-[15px]'>
14
- <div className='seller_info-container flex flex-row gap-x-[15px]'>
15
- <div className='logo_wrapper w-[100px] h-[100px]'>
16
- <Image
17
- alt='seller name'
18
- className="relative mt-[-5px]"
19
- src={logoImage}
20
- />
21
- </div>
22
- <div className='flex flex-col gap-y-[15px]'>
23
- <div className='seller_summary-wrapper flex flex-row gap-x-2.5 items-center'>
24
- <div className='seller_name text-lg font-medium leading-6'>
25
- Zen Market
26
- </div>
27
- <div className='seller_badge flex flex-row gap-x-[5px] items-center leading-6'>
28
- <Verify />
29
- <span className='text-xs font-medium text-gray-600-transparent capitalize'>
30
- Verified
31
- </span>
32
- </div>
33
- </div>
34
- <div className='rating_sales flex flex-row gap-x-[5px] items-center'>
35
- <Star />
36
- <span className='font-normal text-[14px] text-gray-200'>
37
- 4.7 (Sales 120)
38
- </span>
12
+ <div className='flex flex-col items-center text-center lg_text-left md_text-left lg_flex-row md_flex-row bg-white rounded-lg border border-gray-100 p-[15px] gap-y-4'>
13
+ <div className='seller_info-container flex flex-row gap-x-[15px] lg_w-1/3 md_w-1/3'>
14
+ <div className='flex flex-col gap-y-[15px]'>
15
+ <div className='seller_summary-wrapper flex flex-row gap-x-2.5 items-center'>
16
+ <div className='seller_name text-lg font-semibold leading-6'>
17
+ {sellerName}
39
18
  </div>
40
19
  </div>
20
+ <div className='rating_sales flex flex-row gap-x-[5px] items-center'>
21
+ <span className='font-normal text-[14px] text-gray-200'>
22
+ {sales}+ Sales
23
+ </span>
24
+ </div>
41
25
  </div>
26
+ </div>
42
27
 
43
- <div className='price_container'>
44
- <div className='price text-lg font-medium'>
45
- $34.19
46
- </div>
47
- <span className='shipping_note text-xs text-gray-200'>
48
- Shipping method is calculated on checkout
49
- </span>
28
+ <div className='price_container lg_w-1/3 md_w-1/3'>
29
+ <div className="text-sm font-medium text-gray-800">{condition}</div>
30
+ <div className='price text-lg font-medium text-[#f76b1c]'>
31
+ ${price}
50
32
  </div>
33
+ <span className='shipping_note text-xs text-gray-200'>
34
+ Shipping method is calculated on checkout
35
+ </span>
36
+ </div>
51
37
 
52
- <div className='form_wrapper'>
53
- <Form
54
- data-cy="FormAddToCartCrossSeller"
55
- onSubmit={() => { }}
56
- className="flex flex-row gap-x-7"
38
+ <div className='form_wrapper'>
39
+ <Form
40
+ data-cy="FormAddToCartCrossSeller"
41
+ onSubmit={() => { }}
42
+ className="flex flex-col gap-x-7 gap-y-7 items-center lg_flex-row md_flex-row"
43
+ >
44
+ <QuantityStepper min={1} />
45
+ <Button
46
+ data-cy="addToCartButton"
47
+ classes={{
48
+ content: 'normal-case font-medium text-[16px]'
49
+ }}
50
+ priority="high"
51
+ type="button"
57
52
  >
58
- <QuantityStepper
59
- min={1}
60
- // message={'error quantity'}
61
- />
62
- <Button
63
- data-cy="addToCartButton"
64
- classes={{
65
- content: 'normal-case font-medium text-[16px]'
66
- }}
67
- priority="high"
68
- type="button"
69
- >
70
- Add To Cart
71
- </Button>
72
- </Form>
73
- </div>
53
+ Add To Cart
54
+ </Button>
55
+ </Form>
74
56
  </div>
75
- </>
76
- )
77
- }
57
+ </div>
58
+ );
59
+ };
78
60
 
79
- export default item
61
+ export default Item;
@@ -46,7 +46,7 @@ const LinkToOtherStores = (props) => {
46
46
  if (store.product_link) {
47
47
  const logo = getLogo(store.stores);
48
48
  finalLinkToOtherStores.push(
49
- <a href={store.product_link} className='platform_logo-wrapper rounded-md px-5 py-2.5 border border-gray-100 flex items-center' target="_blank">
49
+ <a href={store.product_link} className='platform_logo-wrapper rounded-md px-5 py-2.5 border border-gray-100 flex items-center w-full justify-center' target="_blank">
50
50
  {logo ? <img
51
51
  alt={store.stores}
52
52
  width={60}
@@ -61,14 +61,13 @@ const LinkToOtherStores = (props) => {
61
61
 
62
62
  return finalLinkToOtherStores && finalLinkToOtherStores.length ? <>
63
63
  <section className='product_from-other-platform py-xs'>
64
- <div className='text-sm flex mb-3'>
64
+ <div className='title-section text-gray-400 text-sm flex mb-3 px-[15px]'>
65
65
  Also available in
66
66
  </div>
67
- <div className='platform-container flex gap-x-2.5'>
67
+ <div className='content-section platform-container flex gap-x-2.5 pl-[1rem] px-[15px] justify-between'>
68
68
  {finalLinkToOtherStores}
69
69
  </div>
70
70
  </section>
71
- <Divider />
72
71
  </> : '';
73
72
  }
74
73
 
@@ -2,41 +2,33 @@ import React, { useState } from 'react';
2
2
  import Button from '@magento/venia-ui/lib/components/Button';
3
3
  import { useIntl } from 'react-intl';
4
4
  import ModalRFQ from './modalRfq';
5
+ import cn from 'classnames';
5
6
 
6
- const RFQ = (props) => {
7
+ const RFQ = ({ disabled, classes: customClasses = {} }) => {
8
+ const [open, setOpen] = useState(false);
9
+ const { formatMessage } = useIntl();
7
10
 
8
- const { disabled } = props;
11
+ return (
12
+ <>
13
+ <ModalRFQ open={open} setOpen={setOpen} />
9
14
 
10
- const [open, setOpen] = useState(false);
11
- const { formatMessage } = useIntl();
15
+ <Button
16
+ data-cy="ProductFullDetail-RFQ"
17
+ disabled={disabled}
18
+ classes={{
19
+ rootClass: cn(customClasses.rfqButton),
20
+ content: cn('normal-case font-medium text-[16px]', customClasses.content)
21
+ }}
22
+ priority="low"
23
+ onClick={() => setOpen(true)}
24
+ >
25
+ {formatMessage({
26
+ id: 'productFullDetail.RequestQuote',
27
+ defaultMessage: 'Make An Offer'
28
+ })}
29
+ </Button>
30
+ </>
31
+ );
32
+ };
12
33
 
13
- return (
14
- <>
15
- <ModalRFQ
16
- open={open}
17
- setOpen={setOpen}
18
- />
19
-
20
- <Button
21
- data-cy="ProductFullDetail-RFQ"
22
- disabled={disabled}
23
- classes={{
24
- content: 'normal-case font-medium text-[16px]'
25
- }}
26
- priority="low"
27
- type="submit"
28
- onClick={() => { setOpen(true) }}
29
- >
30
- {
31
- formatMessage({
32
- id: 'productFullDetail.RequestQuote',
33
- defaultMessage:
34
- 'Make An Offer'
35
- })
36
- }
37
- </Button>
38
- </>
39
- )
40
- }
41
-
42
- export default RFQ;
34
+ export default RFQ;
@@ -249,7 +249,7 @@ const ProductContent = props => {
249
249
  <>
250
250
  <div className='w-full mb-[30px]'>
251
251
  <SellerMegaMenu
252
- rootClassName={cn('nav-menu w-full max-w-[1210px] px-[15px] mx-[auto] flex-row gap-x-[40px]')}
252
+ rootClassName={cn('nav-menu w-full max-w-[1300px] px-[15px] mx-[auto] flex-row gap-x-[40px]')}
253
253
  sellerMegaMenuItemClassname={cn('px-0 py-[10px] leading-[20px]')}
254
254
  seller={seller}
255
255
  titleClassName={cn('font-normal leading-[20px]')}
@@ -87,7 +87,7 @@ const AccountMenu = React.forwardRef((props, ref) => {
87
87
  }
88
88
 
89
89
  return (
90
- <aside className={cn(rootClass, '!top-[57px] max-w-[1210px]')} data-cy="AccountMenu-root">
90
+ <aside className={cn(rootClass, '!top-[57px] max-w-[1300px]')} data-cy="AccountMenu-root">
91
91
  <div ref={ref} className={contentsClass}>
92
92
  {accountMenuIsOpen ? dropdownContents : null}
93
93
  </div>
@@ -7,8 +7,8 @@
7
7
  composes: mt-[10px] from global;
8
8
  composes: mb-[24px] from global;
9
9
  composes: my-[10px] from global;
10
- padding-top: 20px;
11
- margin-bottom: 40px;
10
+ padding-top: 10px;
11
+ margin-bottom: 25px;
12
12
  }
13
13
 
14
14
  .text {
@@ -12,7 +12,7 @@ import { useHeader } from '@magento/peregrine/lib/talons/Header/useHeader';
12
12
  import resourceUrl from '@magento/peregrine/lib/util/makeUrl';
13
13
 
14
14
  import { useStyle } from '@magento/venia-ui/lib/classify';
15
- import defaultClasses from '@magento/venia-ui/lib/components/Header/header.module.css';
15
+ import defaultClasses from './header.module.css';
16
16
  import StoreSwitcher from '@magento/venia-ui/lib/components/Header/storeSwitcher';
17
17
  import WebsiteSwitcher from '@riosst100/pwa-marketplace/src/components/WebsiteSwitcher/websiteSwitcher';
18
18
  // import CurrencySwitcher from '@magento/venia-ui/lib/components/Header/currencySwitcher';
@@ -76,7 +76,7 @@ const Header = props => {
76
76
  <Fragment>
77
77
  <PageLoadingIndicator absolute />
78
78
  <div className={cn(classes.switchersContainer, '!bg-white border-b border-gray-100')}>
79
- <div className={cn(classes.switchers, 'flex flex-row gap-x-[25px] !py-2')} data-cy="Header-switchers">
79
+ <div className={cn(classes.switchers, 'max-w-[1300px] flex flex-row gap-x-[25px] !py-2')} data-cy="Header-switchers">
80
80
  <BecomeSellerLink />
81
81
  <WebsiteSwitcher />
82
82
  <StoreSwitcher />
@@ -85,7 +85,7 @@ const Header = props => {
85
85
  </div>
86
86
  <header className={cn(rootClass, '!flex flex-col !px-0 border-gray-100 ')} data-cy="Header-root">
87
87
  <div className={cn('middle-header border-b border-gray-100')}>
88
- <div className={cn('w-full max-w-[1210px] px-[15px] py-[10px] mx-[auto] flex justify-between items-center')}>
88
+ <div className={cn('w-full max-w-[1300px] px-[15px] py-[10px] mx-[auto] flex justify-between items-center')}>
89
89
  <div className='flex items-center'>
90
90
  <NavTrigger />
91
91
 
@@ -138,7 +138,7 @@ const Header = props => {
138
138
  </div>
139
139
  </div>
140
140
  <MegaMenu
141
- rootClassName={cn('nav-menu w-full max-w-[1210px] px-[15px] mx-[auto] flex-row gap-x-[40px]')}
141
+ rootClassName={cn('nav-menu w-full max-w-[1300px] px-[15px] mx-[auto] flex-row gap-x-[40px]')}
142
142
  megaMenuItemClassname={cn('px-0 py-[10px] leading-[20px]')}
143
143
  titleClassName={cn('font-normal leading-[20px]')}
144
144
  />
@@ -0,0 +1,173 @@
1
+ .root {
2
+ composes: auto-cols-fr from global;
3
+ composes: bg-header from global;
4
+ composes: border-b from global;
5
+ composes: border-subtle from global;
6
+ composes: grid from global;
7
+ composes: h-auto from global;
8
+ composes: justify-center from global;
9
+ composes: px-4 from global;
10
+ composes: top-0 from global;
11
+ composes: sticky from global;
12
+ composes: w-full from global;
13
+ composes: z-header from global;
14
+
15
+ composes: lg_px-8 from global;
16
+ }
17
+
18
+ .switchers {
19
+ composes: auto-cols-max from global;
20
+ composes: grid from global;
21
+ composes: grid-flow-col from global;
22
+ composes: justify-end from global;
23
+ /* composes: max-w-site from global; */
24
+ composes: mx-auto from global;
25
+ composes: relative from global;
26
+ composes: w-full from global;
27
+ composes: z-menu from global;
28
+ }
29
+
30
+ .switchersContainer {
31
+ composes: bg-gray-100 from global;
32
+ composes: hidden from global;
33
+ composes: px-8 from global;
34
+ composes: w-full from global;
35
+ }
36
+
37
+ /* Large screen styles */
38
+ .switchersContainer {
39
+ composes: sm_block from global;
40
+ }
41
+
42
+ .open {
43
+ composes: root;
44
+ }
45
+
46
+ .closed {
47
+ composes: root;
48
+ }
49
+
50
+ .toolbar {
51
+ composes: border-0 from global;
52
+ composes: content-center from global;
53
+ composes: gap-x-4 from global;
54
+ composes: grid from global;
55
+ composes: grid-cols-3 from global;
56
+ composes: grid-rows-header from global;
57
+ composes: h-14 from global;
58
+ composes: items-center from global;
59
+ composes: justify-self-center from global;
60
+ composes: max-w-site from global;
61
+ composes: w-full from global;
62
+ composes: z-header from global;
63
+
64
+ composes: lg_h-20 from global;
65
+ composes: lg_gap-x-8 from global;
66
+ composes: lg_grid-cols-12 from global;
67
+ }
68
+
69
+ .logo {
70
+ height: var(--height);
71
+ width: var(--width);
72
+ }
73
+
74
+ .primaryActions {
75
+ composes: col-start-1 from global;
76
+ composes: grid from global;
77
+ composes: grid-flow-col from global;
78
+ composes: justify-self-start from global;
79
+ composes: row-start-1 from global;
80
+ composes: self-center from global;
81
+ }
82
+
83
+ .logoContainer {
84
+ composes: col-start-2 from global;
85
+ composes: justify-self-center from global;
86
+
87
+ composes: lg_col-end-3 from global;
88
+ composes: lg_col-start-1 from global;
89
+ composes: lg_justify-self-start from global;
90
+ composes: lg_mr-8 from global;
91
+ composes: lg_row-start-1 from global;
92
+ }
93
+
94
+ .secondaryActions {
95
+ composes: col-start-3 from global;
96
+ composes: grid from global;
97
+ composes: grid-flow-col from global;
98
+ composes: items-center from global;
99
+ composes: justify-items-end from global;
100
+ composes: justify-self-end from global;
101
+ composes: w-max from global;
102
+
103
+ composes: lg_col-end-13 from global;
104
+ composes: lg_col-start-10 from global;
105
+ composes: lg_gap-x-4 from global;
106
+ }
107
+
108
+ .searchFallback {
109
+ composes: flex from global;
110
+ composes: justify-center from global;
111
+ composes: mb-2 from global;
112
+ composes: px-4 from global;
113
+ }
114
+
115
+ .input {
116
+ composes: input from '../TextInput/textInput.module.css';
117
+
118
+ @apply max-w-sm;
119
+ }
120
+
121
+ .loader,
122
+ .loaderBefore,
123
+ .loaderAfter {
124
+ --dot-size: 2em;
125
+ --dot-font-size: 6px;
126
+ --dot-shadow-offset: calc(-1 * var(--dot-size) + var(--dot-font-size));
127
+
128
+ composes: rounded-full from global;
129
+ width: var(--dot-size);
130
+ height: var(--dot-size);
131
+ animation: pulse 1.8s infinite ease-in-out;
132
+ animation-fill-mode: both;
133
+ }
134
+
135
+ .loader {
136
+ composes: mb-0 from global;
137
+ composes: mx-auto from global;
138
+ composes: relative from global;
139
+ composes: text-subtle from global;
140
+ font-size: var(--dot-font-size);
141
+ margin-top: var(--dot-shadow-offset);
142
+ transform: translateZ(0);
143
+ animation-delay: -0.16s;
144
+ }
145
+
146
+ .loaderBefore,
147
+ .loaderAfter {
148
+ composes: content-empty from global;
149
+ composes: absolute from global;
150
+ composes: top-0 from global;
151
+ }
152
+
153
+ .loaderBefore {
154
+ composes: left-[-3.5em] from global;
155
+ composes: text-gray-100 from global;
156
+ animation-delay: -0.32s;
157
+ }
158
+
159
+ .loaderAfter {
160
+ composes: left-[3.5em] from global;
161
+ composes: text-gray-600 from global;
162
+ }
163
+
164
+ @keyframes pulse {
165
+ 0%,
166
+ 80%,
167
+ 100% {
168
+ box-shadow: 0 var(--dot-size) 0 -1.3em;
169
+ }
170
+ 40% {
171
+ box-shadow: 0 var(--dot-size) 0 0;
172
+ }
173
+ }
@@ -11,7 +11,7 @@
11
11
 
12
12
  .page {
13
13
  composes: md_max-w-screen-md from global;
14
- composes: lg_max-w-[1210px] from global;
14
+ composes: lg_max-w-[1300px] from global;
15
15
  composes: mx-auto from global;
16
16
  composes: my-0 from global;
17
17
  composes: px-[15px] from global;
@@ -11,7 +11,7 @@
11
11
 
12
12
  .submenuContainer {
13
13
  composes: w-full from global;
14
- composes: max-w-[1210px] from global;
14
+ composes: max-w-[1300px] from global;
15
15
  composes: mx-[auto] from global;
16
16
  composes: gap-[15px] from global;
17
17
  composes: max-h-[50vh] from global;
@@ -24,7 +24,7 @@ const CustomAttributes = props => {
24
24
  const attributeContent = (
25
25
  <li
26
26
  key={currentAttribute.attribute_metadata.uid}
27
- className={cn(classes.listItem, '!text-[14px] py-1')}
27
+ className={cn(classes.listItem, '!text-[14px] py-2')}
28
28
  >
29
29
  <AttributeType
30
30
  showLabels={showLabels}