gatsby-core-theme 30.0.44 → 30.0.45

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/CHANGELOG.md CHANGED
@@ -1,3 +1,13 @@
1
+ ## [30.0.45](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/compare/v30.0.44...v30.0.45) (2024-01-05)
2
+
3
+
4
+ ### Code Refactoring
5
+
6
+ * add search results to tabs on search page ([1b796cf](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/1b796cf2f5613d1540769b44ad2f1602e7d6f1fb))
7
+
8
+
9
+ * Merge branch 'search-tab-changes' into 'master' ([e0975b0](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/e0975b015a9c355b967b86d925675549e6278674))
10
+
1
11
  ## [30.0.44](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/compare/v30.0.43...v30.0.44) (2024-01-04)
2
12
 
3
13
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gatsby-core-theme",
3
- "version": "30.0.44",
3
+ "version": "30.0.45",
4
4
  "description": "Gatsby Theme NPM Package",
5
5
  "author": "",
6
6
  "license": "ISC",
@@ -28,6 +28,7 @@ const Search = ({
28
28
  children,
29
29
  page,
30
30
  pageContext,
31
+ showNumberOfResults = false,
31
32
  }) => {
32
33
  const { setShowSearch } = useContext(NavigationContext);
33
34
  const pageSearchOptionsCopy = pageSearchOptions;
@@ -331,6 +332,8 @@ const Search = ({
331
332
  activeTabClass="searchActive"
332
333
  headerClass="searchHeader"
333
334
  gtmClass="search-tabs-menu-gtm"
335
+ showNumberOfResults={showNumberOfResults}
336
+ totalResults={searchResultsRef?.current?.length}
334
337
  >
335
338
  {items}
336
339
  </Tabs>
@@ -377,7 +380,12 @@ const Search = ({
377
380
 
378
381
  return (
379
382
  // eslint-disable-next-line react/no-unknown-property
380
- <div label={titleObj.title} tabId={type + index} key={keygen()}>
383
+ <div
384
+ results={items.items.length}
385
+ label={titleObj.title}
386
+ tabId={type + index}
387
+ key={keygen()}
388
+ >
381
389
  {pageSearchOptionsCopy.useArchive === undefined ||
382
390
  !pageSearchOptionsCopy.useArchive ? (
383
391
  <div className={styles.searchGrid}>{items}</div>
@@ -463,6 +471,7 @@ Search.propTypes = {
463
471
  market: PropTypes.string,
464
472
  }),
465
473
  }),
474
+ showNumberOfResults: PropTypes.bool,
466
475
  };
467
476
 
468
477
  export default Search;
@@ -11,6 +11,8 @@ const Tabs = ({
11
11
  HeaderComp,
12
12
  headerClass = '',
13
13
  gtmClass = '',
14
+ showNumberOfResults = false,
15
+ totalResults,
14
16
  }) => {
15
17
  const showAllTabId = `${showAll}_0`;
16
18
  const [activeTab, setActiveTab] = useState(
@@ -36,6 +38,8 @@ const Tabs = ({
36
38
  showAll={showAll}
37
39
  gtmClass={gtmClass}
38
40
  alignRight={tabsAlign === 'right'}
41
+ showNumberOfResults={showNumberOfResults}
42
+ totalResults={totalResults}
39
43
  />
40
44
  )}
41
45
  {HeaderComp && <div className={styles.headerComp || ''}>{HeaderComp}</div>}
@@ -65,6 +69,8 @@ Tabs.propTypes = {
65
69
  HeaderComp: PropTypes.objectOf(PropTypes.any),
66
70
  headerClass: PropTypes.string,
67
71
  gtmClass: PropTypes.string,
72
+ showNumberOfResults: PropTypes.bool,
73
+ totalResults: PropTypes.number,
68
74
  };
69
75
 
70
76
  export default Tabs;
@@ -17,6 +17,8 @@ const TabList = ({
17
17
  showAll,
18
18
  alignRight = false,
19
19
  gtmClass = '',
20
+ showNumberOfResults = false,
21
+ totalResults,
20
22
  }) => {
21
23
  const [tabItems, setTabItems] = useState(items);
22
24
 
@@ -26,7 +28,10 @@ const TabList = ({
26
28
  useEffect(() => {
27
29
  if (showAll) {
28
30
  // eslint-disable-next-line react/no-unknown-property
29
- setTabItems([<div label={showAll} tabId={`${showAll}_0`} key={keygen()} />, ...items]);
31
+ setTabItems([
32
+ <div results={totalResults} label={showAll} tabId={`${showAll}_0`} key={keygen()} />,
33
+ ...items,
34
+ ]);
30
35
  }
31
36
  }, [showAll, items]);
32
37
 
@@ -53,7 +58,7 @@ const TabList = ({
53
58
  <ol ref={tabList} className={styles.list || ''} data-id="select-list">
54
59
  {tabItems.map((items, index) => {
55
60
  if (items === null) return null;
56
- const { label } = items.props;
61
+ const { label, results } = items.props;
57
62
  if (isMobile && label === activeTab.split('_')[0]) return null;
58
63
  return (
59
64
  <Tab
@@ -66,6 +71,8 @@ const TabList = ({
66
71
  // eslint-disable-next-line react/jsx-no-bind
67
72
  toggleDropdown={showDropdown}
68
73
  gtmClass={gtmClass}
74
+ showResults={showNumberOfResults}
75
+ results={results}
69
76
  />
70
77
  );
71
78
  })}
@@ -83,6 +90,8 @@ TabList.propTypes = {
83
90
  activeTabClass: PropTypes.string,
84
91
  alignRight: PropTypes.bool,
85
92
  gtmClass: PropTypes.string,
93
+ showNumberOfResults: PropTypes.bool,
94
+ totalResults: PropTypes.number,
86
95
  };
87
96
 
88
97
  export default TabList;
@@ -10,6 +10,8 @@ const Tab = ({
10
10
  tabId,
11
11
  toggleDropdown,
12
12
  gtmClass = '',
13
+ showResults = false,
14
+ results,
13
15
  }) => {
14
16
  let className = '';
15
17
 
@@ -32,6 +34,7 @@ const Tab = ({
32
34
  }}
33
35
  >
34
36
  {label}
37
+ {showResults && <span>{results}</span>}
35
38
  </button>
36
39
  </li>
37
40
  );
@@ -44,6 +47,8 @@ Tab.propTypes = {
44
47
  tabId: PropTypes.string,
45
48
  label: PropTypes.string,
46
49
  gtmClass: PropTypes.string,
50
+ showResults: PropTypes.bool,
51
+ results: PropTypes.number,
47
52
  };
48
53
 
49
54
  export default Tab;
@@ -17,6 +17,8 @@
17
17
  color: var(--color-22);
18
18
  width: 100%;
19
19
  text-align: left;
20
+ display: flex;
21
+ gap: 1rem;
20
22
 
21
23
  @include min(laptop) {
22
24
  padding: 1.2rem 2.5rem;