@riosst100/pwa-marketplace 1.5.2 → 1.5.3

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 (40) hide show
  1. package/package.json +1 -1
  2. package/src/components/CollectibleGameSets/collectibleGameSets.js +142 -41
  3. package/src/components/CollectibleGameSets/collectibleGameSets.module.css +38 -0
  4. package/src/components/Dropdown/dropdown.js +77 -0
  5. package/src/components/Dropdown/index.js +10 -0
  6. package/src/components/MtgSinglesPage/index.js +62 -0
  7. package/src/components/MtgSinglesPage/mtgSingles.js +90 -0
  8. package/src/components/MtgSinglesPage/singles.module.css +15 -0
  9. package/src/components/SubCategory/subCategory.js +14 -20
  10. package/src/intercept.js +7 -0
  11. package/src/overwrites/peregrine/lib/talons/RootComponents/Category/categoryContent.gql.js +1 -0
  12. package/src/overwrites/venia-ui/lib/RootComponents/Category/categoryContent.js +44 -30
  13. package/src/overwrites/venia-ui/lib/components/Button/button.module.css +10 -6
  14. package/src/overwrites/venia-ui/lib/components/FilterSidebar/filterSidebar.js +1 -1
  15. package/src/overwrites/venia-ui/lib/components/MegaMenu/customSubmenuColumn.js +4 -3
  16. package/src/overwrites/venia-ui/lib/components/MegaMenu/customSubmenuColumn.module.css +2 -2
  17. package/src/overwrites/venia-ui/lib/components/MegaMenu/megaMenuItem.js +5 -4
  18. package/src/overwrites/venia-ui/lib/components/MegaMenu/shopByColumn.module.css +2 -2
  19. package/src/overwrites/venia-ui/lib/components/MegaMenu/submenu.js +11 -2
  20. package/src/overwrites/venia-ui/lib/components/MegaMenu/submenu.module.css +4 -6
  21. package/src/overwrites/venia-ui/lib/components/MegaMenu/submenuColumn.js +10 -19
  22. package/src/overwrites/venia-ui/lib/components/MegaMenu/submenuColumn.module.css +2 -2
  23. package/src/overwrites/venia-ui/lib/components/ProductFullDetail/CustomAttributes/customAttributes.js +2 -1
  24. package/src/overwrites/venia-ui/lib/components/ProductFullDetail/CustomAttributes/customAttributes.module.css +6 -7
  25. package/src/overwrites/venia-ui/lib/components/ProductFullDetail/components/auctionDetail.js +173 -0
  26. package/src/overwrites/venia-ui/lib/components/ProductFullDetail/components/bidList.js +67 -0
  27. package/src/overwrites/venia-ui/lib/components/ProductFullDetail/components/modalFormReview.js +164 -0
  28. package/src/overwrites/venia-ui/lib/components/ProductFullDetail/components/preOrderDetail.js +52 -0
  29. package/src/overwrites/venia-ui/lib/components/ProductFullDetail/components/productReview.js +45 -37
  30. package/src/overwrites/venia-ui/lib/components/ProductFullDetail/components/starInput.js +33 -0
  31. package/src/overwrites/venia-ui/lib/components/ProductFullDetail/productFullDetail.js +86 -22
  32. package/src/overwrites/venia-ui/lib/components/SearchBar/autocomplete.js +5 -1
  33. package/src/overwrites/venia-ui/lib/components/SearchBar/autocomplete.module.css +5 -6
  34. package/src/overwrites/venia-ui/lib/components/SearchBar/searchBar.js +27 -1
  35. package/src/overwrites/venia-ui/lib/components/SearchBar/searchBar.module.css +0 -1
  36. package/src/overwrites/venia-ui/lib/components/SearchBar/searchField.js +9 -2
  37. package/src/overwrites/venia-ui/lib/components/TextInput/field.module.css +4 -3
  38. package/src/overwrites/venia-ui/lib/components/TextInput/textInput.js +10 -2
  39. package/src/overwrites/venia-ui/lib/components/TextInput/textInput.module.css +1 -1
  40. package/src/talons/CollectibleGameSets/useCollectibleGameSets.js +4 -2
@@ -28,6 +28,9 @@ import SubCategory from '@riosst100/pwa-marketplace/src/components/SubCategory/s
28
28
  import AttributesBlock from '@riosst100/pwa-marketplace/src/components/AttributesBlock/attributesBlock';
29
29
 
30
30
  import BrandSlider from '@riosst100/pwa-marketplace/src/components/BrandSlider';
31
+ import CollectibleGameSets from '@riosst100/pwa-marketplace/src/components/CollectibleGameSets/collectibleGameSets';
32
+ import { useLocation } from 'react-router-dom';
33
+ import { getFiltersFromSearch } from '@magento/peregrine/lib/talons/FilterModal/helpers';
31
34
 
32
35
  const FilterModal = React.lazy(() => import('@magento/venia-ui/lib/components/FilterModal'));
33
36
  const FilterSidebar = React.lazy(() =>
@@ -170,6 +173,9 @@ const CategoryContent = props => {
170
173
 
171
174
  const categoryTitle = categoryName ? categoryName : <Shimmer width={5} />;
172
175
 
176
+ const { search } = useLocation();
177
+ const activeFilters = getFiltersFromSearch(search);
178
+
173
179
  return (
174
180
  <Fragment>
175
181
  <Breadcrumbs categoryId={categoryId} />
@@ -186,39 +192,47 @@ const CategoryContent = props => {
186
192
  </h1>
187
193
  {categoryDescriptionElement}
188
194
  </div>
189
- {/* <SubCategory filters={filters} children={children} /> */}
190
- <FilterTop filters={filters} category={category} />
191
- {/* <AttributesBlock category={category} attributesBlock={attributesBlock} /> */}
192
- {/* <section className='category_brand-slider my-5'>
193
- <BrandSlider />
194
- </section> */}
195
- <div className={classes.contentWrapper}>
196
- <div ref={sidebarRef} className={classes.sidebar}>
197
- <Suspense fallback={<FilterSidebarShimmer />}>
198
- {shouldRenderSidebarContent ? sidebar : null}
199
- </Suspense>
200
- </div>
201
- <div className={classes.categoryContent}>
202
- <div className={cn(classes.heading)}>
203
- {maybeProductsTabContainer}
204
- <div className={classes.headerButtons}>
205
- {maybeFilterButtons}
206
- {maybeSortButton}
195
+ {activeFilters.size <= 0 && category && category.custom_landing_page ? (
196
+ <>
197
+ <SubCategory customLandingPage={category.custom_landing_page} />
198
+ </>
199
+ ) : (
200
+ <>
201
+ {/* <SubCategory filters={filters} children={children} /> */}
202
+ <FilterTop filters={filters} category={category} />
203
+ {/* <AttributesBlock category={category} attributesBlock={attributesBlock} /> */}
204
+ {/* <section className='category_brand-slider my-5'>
205
+ <BrandSlider />
206
+ </section> */}
207
+ <div className={classes.contentWrapper}>
208
+ <div ref={sidebarRef} className={classes.sidebar}>
209
+ <Suspense fallback={<FilterSidebarShimmer />}>
210
+ {shouldRenderSidebarContent ? sidebar : null}
211
+ </Suspense>
207
212
  </div>
208
- {maybeSortContainer}
209
- </div>
210
- <div className={cn(classes.heading)}>
211
- <div
212
- data-cy="CategoryContent-categoryInfo"
213
- className={classes.categoryInfo}
214
- >
215
- {categoryResultsHeading}
213
+ <div className={classes.categoryContent}>
214
+ <div className={cn(classes.heading)}>
215
+ {maybeProductsTabContainer}
216
+ <div className={classes.headerButtons}>
217
+ {maybeFilterButtons}
218
+ {maybeSortButton}
219
+ </div>
220
+ {maybeSortContainer}
221
+ </div>
222
+ <div className={cn(classes.heading)}>
223
+ <div
224
+ data-cy="CategoryContent-categoryInfo"
225
+ className={classes.categoryInfo}
226
+ >
227
+ {categoryResultsHeading}
228
+ </div>
229
+ </div>
230
+ {content}
231
+ <Suspense fallback={null}>{filtersModal}</Suspense>
216
232
  </div>
217
233
  </div>
218
- {content}
219
- <Suspense fallback={null}>{filtersModal}</Suspense>
220
- </div>
221
- </div>
234
+ </>
235
+ )}
222
236
  </article>
223
237
  </Fragment>
224
238
  );
@@ -47,14 +47,16 @@
47
47
  composes: root;
48
48
 
49
49
  composes: bg-transparent from global;
50
- composes: border-gray-700 from global;
51
- composes: text-gray-700 from global;
50
+ composes: border-blue-600 from global;
51
+ composes: text-blue-600 from global;
52
52
 
53
- composes: active_border-gray-800 from global;
54
- composes: active_text-gray-800 from global;
53
+ /* composes: active_border-blue-600 from global;
54
+ composes: active_text-gray-800 from global; */
55
55
 
56
- composes: hover_border-gray-800 from global;
57
- composes: hover_text-gray-800 from global;
56
+ /* composes: hover_border-blue-600 from global; */
57
+ composes: hover_bg-blue-600 from global;
58
+ composes: hover_text-white from global;
59
+ composes: focus_shadow-none from global;
58
60
  }
59
61
 
60
62
  .root_normalPriority {
@@ -69,6 +71,7 @@
69
71
 
70
72
  composes: hover_border-brand-darkest from global;
71
73
  composes: hover_text-brand-darkest from global;
74
+ composes: focus_shadow-none from global;
72
75
  }
73
76
 
74
77
  .root_highPriority {
@@ -85,6 +88,7 @@
85
88
  composes: hover_bg-brand-darkest from global;
86
89
  composes: hover_border-brand-darkest from global;
87
90
  composes: hover_text-white from global;
91
+ composes: focus_shadow-none from global;
88
92
  }
89
93
 
90
94
  .root_lowPriorityNegative,
@@ -124,7 +124,7 @@ const FilterSidebar = props => {
124
124
  filterState={filterState}
125
125
  onRemove={handleApplyFilter}
126
126
  />
127
- {clearAll}
127
+ {/* {clearAll} */}
128
128
  <ul className={classes.blocks}>{filtersList}</ul>
129
129
  </div>
130
130
  </aside>
@@ -5,6 +5,7 @@ import resourceUrl from '@magento/peregrine/lib/util/makeUrl';
5
5
 
6
6
  import { useStyle } from '@magento/venia-ui/lib/classify';
7
7
  import defaultClasses from './customSubmenuColumn.module.css';
8
+ import cn from 'classnames';
8
9
 
9
10
  const CustomSubmenuColumn = props => {
10
11
  const {
@@ -15,7 +16,7 @@ const CustomSubmenuColumn = props => {
15
16
  customMenuItems,
16
17
  toggleCustomMenu
17
18
  } = props;
18
-
19
+
19
20
  const classes = useStyle(defaultClasses, props.classes);
20
21
 
21
22
  let children = null;
@@ -29,7 +30,7 @@ const CustomSubmenuColumn = props => {
29
30
  );
30
31
 
31
32
  return (
32
- <li key={index} className={classes.submenuChildItem}>
33
+ <li key={index} className={cn(classes.submenuChildItem, 'mb-1.5')}>
33
34
  <Link
34
35
  className={classes.link}
35
36
  data-cy="MegaMenu-CustomSubmenuColumn-link"
@@ -46,7 +47,7 @@ const CustomSubmenuColumn = props => {
46
47
  );
47
48
  });
48
49
 
49
- children = <ul className={classes.submenuChild}>{childrenItems}</ul>;
50
+ children = <ul className={cn(classes.submenuChild, 'pt-1')}>{childrenItems}</ul>;
50
51
  }
51
52
 
52
53
  return children;
@@ -1,5 +1,5 @@
1
1
  .customSubmenuColumn {
2
- composes: max-w-[235px] from global;
2
+ /* composes: max-w-[235px] from global; */
3
3
  composes: p-2 from global;
4
4
  }
5
5
 
@@ -26,4 +26,4 @@
26
26
 
27
27
  .submenuChildItem {
28
28
  composes: mb-0 from global;
29
- }
29
+ }
@@ -87,9 +87,9 @@ const MegaMenuItem = props => {
87
87
  categoryUrlSuffix,
88
88
  onNavigate
89
89
  ]);
90
-
91
- const maybeDownArrowIcon = category.children.length || category.name == "Lego" ? (
92
- <ArrowDown2 className='ml-2 stroke-current' size="14" color={textPrimary} variant="Outline" />
90
+
91
+ const maybeDownArrowIcon = category.children.length ? (
92
+ <ArrowDown2 className='ml-2' size={12} color={textPrimary} variant="Outline" />
93
93
  ) : null;
94
94
 
95
95
  const linkAttributes = category.children.length
@@ -125,7 +125,8 @@ const MegaMenuItem = props => {
125
125
  onKeyDown={handleKeyDown}
126
126
  className={cn(
127
127
  isActive ? classes.megaMenuLinkActive : classes.megaMenuLink,
128
- titleClassName
128
+ titleClassName,
129
+ 'flex items-center'
129
130
  )}
130
131
  data-cy="MegaMenu-MegaMenuItem-link"
131
132
  to={categoryUrl}
@@ -1,5 +1,5 @@
1
1
  .submenuColumn {
2
- composes: max-w-[235px] from global;
2
+ /* composes: max-w-[235px] from global; */
3
3
  composes: p-5 from global;
4
4
  }
5
5
 
@@ -23,4 +23,4 @@
23
23
 
24
24
  .submenuChildItem {
25
25
  composes: mb-3 from global;
26
- }
26
+ }
@@ -7,6 +7,7 @@ import { useStyle } from '@magento/venia-ui/lib/classify';
7
7
  import defaultClasses from './submenu.module.css';
8
8
  import SubmenuColumn from './submenuColumn';
9
9
  import ShopByColumn from '@riosst100/pwa-marketplace/src/overwrites/venia-ui/lib/components/MegaMenu/shopByColumn';
10
+ import cn from 'classnames';
10
11
 
11
12
  /**
12
13
  * The Submenu component displays submenu in mega menu
@@ -91,9 +92,17 @@ const Submenu = props => {
91
92
 
92
93
  return (
93
94
  <div className={subMenuClassname}>
94
- <div className={classes.submenuContainer}>
95
+ <div
96
+ className={cn(
97
+ classes.submenuContainer,
98
+ // 'grid grid-cols-4'
99
+ )}
100
+ >
95
101
  <div
96
- className={classes.submenuItems}
102
+ className={cn(
103
+ classes.submenuItems,
104
+ 'grid grid-cols-4',
105
+ )}
97
106
  >
98
107
  {subMenus}
99
108
  </div>
@@ -12,11 +12,10 @@
12
12
  .submenuContainer {
13
13
  composes: w-full from global;
14
14
  composes: max-w-[1210px] from global;
15
- composes: flex-wrap from global;
16
- composes: justify-start from global;
17
15
  composes: mx-[auto] from global;
18
- composes: flex from global;
19
16
  composes: gap-[15px] from global;
17
+ composes: max-h-[50vh] from global;
18
+ composes: overflow-y-auto from global;
20
19
  }
21
20
 
22
21
  /* TODO @TW: cannot compose */
@@ -41,9 +40,8 @@
41
40
  }
42
41
 
43
42
  .submenuItems {
44
- composes: flex from global;
45
- composes: flex-wrap from global;
46
- composes: gap-[30px] from global;
43
+ composes: grid from global;
44
+ composes: grid-cols-4 from global;
47
45
  /* composes: justify-between from global; */
48
46
  /* composes: ml-auto from global; */
49
47
  /* composes: mr-auto from global; */
@@ -9,6 +9,7 @@ import PropTypes from 'prop-types';
9
9
  import { ArrowDown2 } from 'iconsax-react';
10
10
  import { textPrimary } from '@riosst100/pwa-marketplace/src/theme/vars';
11
11
  import CustomSubmenuColumn from '@riosst100/pwa-marketplace/src/overwrites/venia-ui/lib/components/MegaMenu/customSubmenuColumn';
12
+ import cn from 'classnames';
12
13
 
13
14
  /**
14
15
  * The SubmenuColumn component displays columns with categories in submenu
@@ -24,7 +25,7 @@ const SubmenuColumn = props => {
24
25
  handleCloseSubMenu,
25
26
  arrow
26
27
  } = props;
27
-
28
+
28
29
  const classes = useStyle(defaultClasses, props.classes);
29
30
 
30
31
  const categoryUrl = resourceUrl(
@@ -62,18 +63,18 @@ const SubmenuColumn = props => {
62
63
  }
63
64
 
64
65
  const customSubMenus = customMenuItems.length ? (
65
- <CustomSubmenuColumn
66
- categoryUrlSuffix={categoryUrlSuffix}
67
- onNavigate={onNavigate}
68
- handleCloseSubMenu={handleCloseSubMenu}
69
- category={subCategory}
70
- customMenuItems={customMenuItems}
71
- toggleCustomMenu={toggleCustomMenu}
66
+ <CustomSubmenuColumn
67
+ categoryUrlSuffix={categoryUrlSuffix}
68
+ onNavigate={onNavigate}
69
+ handleCloseSubMenu={handleCloseSubMenu}
70
+ category={subCategory}
71
+ customMenuItems={customMenuItems}
72
+ toggleCustomMenu={toggleCustomMenu}
72
73
  />
73
74
  ) : '';
74
75
 
75
76
  return (
76
- <li key={index} className={classes.submenuChildItem}>
77
+ <li key={index} className={cn(classes.submenuChildItem, 'mt-4')}>
77
78
  {customMenuItems.length ? (
78
79
  <>
79
80
  <Link
@@ -88,16 +89,6 @@ const SubmenuColumn = props => {
88
89
  >
89
90
  {name}
90
91
  </Link>
91
- <span
92
- className={isActive ? classes.linkActive : classes.link}
93
- data-cy="MegaMenu-SubmenuColumn-link"
94
- onClick={() => {
95
- toggleCustomMenu();
96
- }}
97
- >
98
- {arrow}
99
- </span>
100
- {showCustomMenu ? customSubMenus : ''}
101
92
  </>
102
93
  ) : (
103
94
  <Link
@@ -1,5 +1,5 @@
1
1
  .submenuColumn {
2
- composes: max-w-[235px] from global;
2
+ /* composes: max-w-[235px] from global; */
3
3
  composes: p-2 from global;
4
4
  }
5
5
 
@@ -30,4 +30,4 @@
30
30
 
31
31
  .submenuChildItem {
32
32
  composes: mb-0 from global;
33
- }
33
+ }
@@ -5,6 +5,7 @@ import { useStyle } from '@magento/venia-ui/lib/classify';
5
5
 
6
6
  import AttributeType from './AttributeType';
7
7
  import defaultClasses from './customAttributes.module.css';
8
+ import cn from 'classnames';
8
9
 
9
10
  export const IS_VISIBLE_ON_FRONT = 'PRODUCT_DETAILS_PAGE';
10
11
 
@@ -23,7 +24,7 @@ const CustomAttributes = props => {
23
24
  const attributeContent = (
24
25
  <li
25
26
  key={currentAttribute.attribute_metadata.uid}
26
- className={classes.listItem}
27
+ className={cn(classes.listItem, '!text-[14px]')}
27
28
  >
28
29
  <AttributeType
29
30
  showLabels={showLabels}
@@ -1,9 +1,8 @@
1
- .root {
2
- }
1
+ .root {}
3
2
 
4
3
  .list {
5
- composes: list-disc from global;
6
- composes: mb-4 from global;
7
- composes: mt-4 from global;
8
- composes: pl-6 from global;
9
- }
4
+ composes: list-none from global;
5
+ composes: mb-2 from global;
6
+ composes: mt-2 from global;
7
+ composes: pl-2 from global;
8
+ }
@@ -0,0 +1,173 @@
1
+ import React, { useState } from 'react';
2
+ import cn from 'classnames';
3
+ import Divider from '@riosst100/pwa-marketplace/src/components/Divider';
4
+ import Button from '@magento/venia-ui/lib/components/Button';
5
+ import Modal from '@riosst100/pwa-marketplace/src/components/Modal';
6
+ import BidList from './bidList';
7
+ import { X } from 'react-feather';
8
+ import { primary900 } from '@riosst100/pwa-marketplace/src/theme/vars';
9
+ import Field from '@magento/venia-ui/lib/components/Field';
10
+ import TextInput from '@magento/venia-ui/lib/components/TextInput';
11
+ import { isRequired } from '@magento/venia-ui/lib/util/formValidators';
12
+ import Checkbox from '@magento/venia-ui/lib/components/Checkbox';
13
+ import { Form } from 'informed';
14
+
15
+ const AuctionDetail = (props) => {
16
+
17
+ const { className } = props;
18
+ const [open, setOpen] = useState(false)
19
+
20
+ return (
21
+ <>
22
+ <Modal
23
+ open={open}
24
+ className='!p-[30px] md_min-w-[550px] modal_bid'
25
+ >
26
+ <div className='modal_bid-content'>
27
+ <div className='header_title-modal flex justify-between mb-10'>
28
+ <div className='text-lg text-black font-semibold'>
29
+ Place bid
30
+ </div>
31
+ <button onClick={() => { setOpen(!open) }} >
32
+ <X size={24} color={primary900} />
33
+ </button>
34
+ </div>
35
+
36
+ <div className='flex flex-col gap-y-[25px]'>
37
+ <div className='current_bid flex flex-col gap-y-2.5'>
38
+ <span className='text-[14px] font-bold text-gray-500'>
39
+ Current bid
40
+ </span>
41
+ <span className='text-2xl font-semibold'>
42
+ $102.50
43
+ </span>
44
+ </div>
45
+
46
+ <BidList expanded />
47
+
48
+ <Form
49
+ data-cy="form_bid"
50
+ className="flex flex-col gap-y-5"
51
+ initialValues={{}}
52
+ onSubmit={() => { }}
53
+ onChange={() => { }}
54
+ >
55
+ <Field
56
+ id="bid_amount_field"
57
+ label={'Bid Amount'}
58
+ >
59
+ <TextInput
60
+ id="bid_amout"
61
+ field="bid_amount"
62
+ validate={isRequired}
63
+ validateOnBlur
64
+ mask={value => value && value.trim()}
65
+ maskOnBlur={true}
66
+ data-cy="bid_amount"
67
+ aria-label={'bid_amount'}
68
+ placeholder={'$10.00'}
69
+ />
70
+ <small className='helpet-text text-[12px] font-normal text-gray-200 mt-1'>
71
+ Enter $103.50 or more
72
+ </small>
73
+ </Field>
74
+
75
+ <Checkbox
76
+ field="auto_bid"
77
+ id="auto_bid"
78
+ label={'Place Bid As Automatic'}
79
+ />
80
+
81
+ <div className='actions flex justify-end gap-x-2.5'>
82
+ <Button
83
+ priority='low'
84
+ classes={{
85
+ content: 'capitalize text-[16px] font-semibold'
86
+ }}
87
+ onClick={() => setOpen(false)}
88
+ >
89
+ Cancel
90
+ </Button>
91
+ <Button
92
+ priority='high'
93
+ classes={{
94
+ content: 'capitalize text-[16px] font-semibold'
95
+ }}
96
+ >
97
+ Place Bid
98
+ </Button>
99
+ </div>
100
+ </Form>
101
+ </div>
102
+ </div>
103
+ </Modal>
104
+ <div
105
+ className={cn(
106
+ 'flex flex-col border border-gray-100 rounded-lg px-5 py-[30px] gap-x-2.5 gap-y-5',
107
+ className
108
+ )}
109
+ >
110
+ <div className='flex flex-row justify-between'>
111
+ <div className='flex flex-col gap-2.5'>
112
+ <div className='text-[16px] font-bold text-gray-500'>
113
+ Starting Price
114
+ </div>
115
+ <div className='text-[40px] font-semibold text-colorDefault'>
116
+ $87.50
117
+ </div>
118
+ </div>
119
+ <Divider className="w-[1px] !h-[105px]" />
120
+ <div className='flex flex-col gap-2.5'>
121
+ <div className='text-[16px] font-bold text-gray-500'>
122
+ Auction ends in
123
+ </div>
124
+ <div className='flex flex-row gap-8'>
125
+ <div className='flex flex-col'>
126
+ <div className='text-[40px] leading-[normal] font-semibold'>
127
+ 5
128
+ </div>
129
+ <div className='text-[14px] font-bold'>
130
+ days
131
+ </div>
132
+ </div>
133
+ <div className='flex flex-col'>
134
+ <div className='text-[40px] leading-[normal] font-semibold'>
135
+ 16
136
+ </div>
137
+ <div className='text-[14px] font-bold'>
138
+ hours
139
+ </div>
140
+ </div>
141
+ <div className='flex flex-col'>
142
+ <div className='text-[40px] leading-[normal] font-semibold'>
143
+ 36
144
+ </div>
145
+ <div className='text-[14px] font-bold'>
146
+ minutes
147
+ </div>
148
+ </div>
149
+ </div>
150
+ </div>
151
+ </div>
152
+
153
+ <div className='text-gray-800 font-bold text-[20px]'>
154
+ Ends at January 12, 2024 10:15 AM
155
+ </div>
156
+
157
+ <Button
158
+ priority='high'
159
+ classes={{
160
+ content: 'capitalize text-[16px] font-semibold'
161
+ }}
162
+ onClick={() => setOpen(true)}
163
+ >
164
+ Place Bid
165
+ </Button>
166
+
167
+ <BidList {...props} />
168
+ </div>
169
+ </>
170
+ )
171
+ }
172
+
173
+ export default AuctionDetail;
@@ -0,0 +1,67 @@
1
+ import React, { useState } from 'react';
2
+ import { ArrowDown2 } from 'iconsax-react';
3
+ import cn from 'classnames';
4
+
5
+ const bidList = (props) => {
6
+ const {
7
+ rootClassName,
8
+ expanded = false,
9
+ } = props
10
+ const [expand, setExpand] = useState(expanded);
11
+
12
+ return (
13
+ <>
14
+ <div className={cn('bid_list-container w-full', rootClassName)}>
15
+ <div
16
+ className={cn(
17
+ 'bid_title flex justify-between items-center border-t border-b border-gray-100',
18
+ 'px-2.5 py-[18px] cursor-pointer'
19
+ )}
20
+ onClick={() => setExpand(!expand)}
21
+ >
22
+ <span className='text-[16px] font-semibold'>
23
+ Previous bids (5)
24
+ </span>
25
+ <ArrowDown2
26
+ className={cn(
27
+ 'transition-all',
28
+ expand ? 'rotate-180' : 'rotate-0',
29
+ )}
30
+ size={16}
31
+ />
32
+ </div>
33
+ <div
34
+ className={cn(
35
+ 'bid_list-wrapper transition-all mt-2.5 duration-300 ease-in-out overflow-hidden',
36
+ 'max-h-[250px] overflow-y-auto',
37
+ expand ? 'h-auto opacity-100' : 'h-0 opacity-0'
38
+ )}
39
+ >
40
+ <table className='bid_list w-full' >
41
+ {[...Array(5)].map(() => (
42
+ <tr className='border-b border-dashed border-gray-100'>
43
+ <td className='p-2.5'>
44
+ <span className='text-[14px] font-medium'>
45
+ $102.00
46
+ </span>
47
+ </td>
48
+ <td className='p-2.5'>
49
+ <span className='text-[14px] font-medium'>
50
+ Jan 7, 2024 11:18:08 AM
51
+ </span>
52
+ </td>
53
+ <td className='p-2.5'>
54
+ <span className='text-[14px] font-medium'>
55
+ by Ale****
56
+ </span>
57
+ </td>
58
+ </tr>
59
+ ))}
60
+ </table>
61
+ </div>
62
+ </div>
63
+ </>
64
+ )
65
+ }
66
+
67
+ export default bidList