Skip to content
This repository was archived by the owner on Dec 30, 2022. It is now read-only.

Commit 980ad70

Browse files
authored
feat(HierarchicalMenu): add css class for link of selected menu item (#3646)
1 parent 90651fb commit 980ad70

File tree

6 files changed

+22
-8
lines changed

6 files changed

+22
-8
lines changed

packages/react-instantsearch-dom/src/components/HierarchicalMenu.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ class HierarchicalMenu extends Component {
3939

4040
return (
4141
<Link
42-
className={cx('link')}
42+
className={cx('link', item.isRefined && 'link--selected')}
4343
onClick={() => refine(item.value)}
4444
href={createURL(item.value)}
4545
>

packages/react-instantsearch-dom/src/components/__tests__/HierarchicalMenu.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ describe('HierarchicalMenu', () => {
2323
{ value: 'white2', label: 'white2', count: 4 },
2424
],
2525
},
26-
{ value: 'black', count: 20, label: 'black' },
26+
{ value: 'black', isRefined: true, count: 20, label: 'black' },
2727
{ value: 'blue', count: 30, label: 'blue' },
2828
]}
2929
limit={2}

packages/react-instantsearch-dom/src/components/__tests__/__snapshots__/HierarchicalMenu.js.snap

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -195,10 +195,10 @@ exports[`HierarchicalMenu default hierarchical menu 1`] = `
195195
</ul>
196196
</li>
197197
<li
198-
className="ais-HierarchicalMenu-item"
198+
className="ais-HierarchicalMenu-item ais-HierarchicalMenu-item--selected"
199199
>
200200
<a
201-
className="ais-HierarchicalMenu-link"
201+
className="ais-HierarchicalMenu-link ais-HierarchicalMenu-link--selected"
202202
href="#"
203203
onClick={[Function]}
204204
>

packages/react-instantsearch-dom/src/widgets/HierarchicalMenu.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ import HierarchicalMenu from '../components/HierarchicalMenu';
6262
* @themeKey ais-HierarchicalMenu-item--selected - the selected menu list item
6363
* @themeKey ais-HierarchicalMenu-item--parent - the menu list item containing children
6464
* @themeKey ais-HierarchicalMenu-link - the clickable menu element
65+
* @themeKey ais-HierarchicalMenu-link--selected - the clickable element of a selected menu list item
6566
* @themeKey ais-HierarchicalMenu-label - the label of each item
6667
* @themeKey ais-HierarchicalMenu-count - the count of values for each item
6768
* @themeKey ais-HierarchicalMenu-showMore - the button used to display more categories

packages/react-instantsearch-hooks-web/src/ui/HierarchicalMenu.tsx

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,10 @@ type HierarchicalMenuClassNames = {
4040
* Class names to apply to each link element
4141
*/
4242
link: string;
43+
/**
44+
* Class names to apply to the link of each selected item
45+
*/
46+
selectedItemLink: string;
4347
/**
4448
* Class names to apply to the label of an item element
4549
*/
@@ -101,7 +105,15 @@ function HierarchicalList({
101105
)}
102106
>
103107
<a
104-
className={cx('ais-HierarchicalMenu-link', classNames.link)}
108+
className={cx(
109+
'ais-HierarchicalMenu-link',
110+
classNames.link,
111+
item.isRefined &&
112+
cx(
113+
'ais-HierarchicalMenu-link--selected',
114+
classNames.selectedItemLink
115+
)
116+
)}
105117
href={createURL(item.value)}
106118
onClick={(event) => {
107119
if (isModifierClick(event)) {

packages/react-instantsearch-hooks-web/src/ui/__tests__/HierarchicalMenu.test.tsx

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ describe('HierarchicalMenu', () => {
7272
class="ais-HierarchicalMenu-item ais-HierarchicalMenu-item--parent ais-HierarchicalMenu-item--selected"
7373
>
7474
<a
75-
class="ais-HierarchicalMenu-link"
75+
class="ais-HierarchicalMenu-link ais-HierarchicalMenu-link--selected"
7676
href="#Apple"
7777
>
7878
<span
@@ -183,7 +183,7 @@ describe('HierarchicalMenu', () => {
183183
class="ais-HierarchicalMenu-item ais-HierarchicalMenu-item--parent ais-HierarchicalMenu-item--selected"
184184
>
185185
<a
186-
class="ais-HierarchicalMenu-link"
186+
class="ais-HierarchicalMenu-link ais-HierarchicalMenu-link--selected"
187187
href="#Apple"
188188
>
189189
<span
@@ -300,6 +300,7 @@ describe('HierarchicalMenu', () => {
300300
selectedItem: 'SELECTEDITEM',
301301
parentItem: 'PARENTITEM',
302302
link: 'LINK',
303+
selectedItemLink: 'SELECTEDITEMLINK',
303304
label: 'LABEL',
304305
count: 'COUNT',
305306
showMore: 'SHOWMORE',
@@ -320,7 +321,7 @@ describe('HierarchicalMenu', () => {
320321
class="ais-HierarchicalMenu-item ITEM ais-HierarchicalMenu-item--parent PARENTITEM ais-HierarchicalMenu-item--selected SELECTEDITEM"
321322
>
322323
<a
323-
class="ais-HierarchicalMenu-link LINK"
324+
class="ais-HierarchicalMenu-link LINK ais-HierarchicalMenu-link--selected SELECTEDITEMLINK"
324325
href="#Apple"
325326
>
326327
<span

0 commit comments

Comments
 (0)