Skip to content

Commit 189a904

Browse files
authored
Merge pull request #1209 from Financial-Times/BOLT-335-sub-nav-improvements
Bolt 335 sub nav improvements
2 parents 38aa213 + 3521358 commit 189a904

6 files changed

Lines changed: 172 additions & 130 deletions

File tree

examples/ft-ui/constants.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ export const subnavData = [
3939
{
4040
label: 'European Central Bank',
4141
url: null,
42-
selected: false,
42+
selected: true,
4343
subnavDropdownOptions: [
4444
{ label: 'Coverage', url: '/banks/european-central-bank/coverage', trackable: 'ECB_DROPDOWN_COVERAGE' },
4545
{
@@ -50,7 +50,8 @@ export const subnavData = [
5050
{
5151
label: 'Doves and Hawks',
5252
url: '/banks/european-central-bank/doves-and-hawks',
53-
trackable: 'ECB_DROPDOWN_DOVES_AND_HAWKS'
53+
trackable: 'ECB_DROPDOWN_DOVES_AND_HAWKS',
54+
selected: true
5455
},
5556
{
5657
label: 'Central bankers views',

package-lock.json

Lines changed: 18 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/dotcom-types-navigation/index.d.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ export type TNavDropdownOption = {
5252
label: string
5353
url: string
5454
trackable: string
55+
selected?: boolean
5556
}
5657

5758
export type TNavMenuItem = {

packages/dotcom-ui-header/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,9 @@
3030
},
3131
"peerDependencies": {
3232
"@financial-times/logo-images": "^1.10.1",
33-
"@financial-times/o-header": "^15.4.1",
33+
"@financial-times/o-header": "^15.5.0",
3434
"@financial-times/o3-button": "^3.15.0",
35+
"@financial-times/o-visual-effects": "^5.0.2",
3536
"n-topic-search": "^10.1.1",
3637
"preact": "^10.23.2",
3738
"react": "17.x || 18.x",

packages/dotcom-ui-header/src/components/sub-navigation/SubNavDropdown.tsx

Lines changed: 28 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ interface DropdownItem {
44
label: string
55
url: string
66
trackable: string
7+
selected?: boolean
78
}
89

910
interface SubNavDropdownProps {
@@ -23,24 +24,33 @@ const SubNavDropdown: React.FC<SubNavDropdownProps> = ({ id, items, ariaLabelled
2324
aria-modal="true"
2425
aria-labelledby={ariaLabelledBy}
2526
>
26-
{title && <h2 className="o-header__subnav-dropdown-title">{title}</h2>}
27-
<button
28-
className="o-header__subnav-dropdown-close"
29-
data-o-header-subnav-dropdown-close
30-
aria-label="Close menu"
31-
type="button"
32-
>
33-
<span className="o-header__subnav-dropdown-close-icon" />
34-
</button>
35-
<ul className="o-header__subnav-dropdown-list">
36-
{items.map((item, index) => (
37-
<li key={index} className="o-header__subnav-dropdown-item">
38-
<a href={item.url} data-trackable={item.trackable} className="o-header__subnav-dropdown-link">
39-
{item.label}
40-
</a>
41-
</li>
42-
))}
43-
</ul>
27+
<div className="o-header__subnav-dropdown-content">
28+
<button
29+
className="o-header__subnav-dropdown-close"
30+
data-o-header-subnav-dropdown-close
31+
aria-label="Close menu"
32+
type="button"
33+
>
34+
<span className="o-header__subnav-dropdown-close-icon" />
35+
</button>
36+
{title && <h2 className="o-header__subnav-dropdown-title">{title}</h2>}
37+
38+
<ul className="o-header__subnav-dropdown-list">
39+
{items.map((item, index) => (
40+
<li key={index} className="o-header__subnav-dropdown-item">
41+
<a
42+
href={item.url}
43+
data-trackable={item.trackable}
44+
className={`o-header__subnav-dropdown-link ${
45+
item.selected ? 'o-header__subnav-dropdown-link--selected' : ''
46+
}`}
47+
>
48+
{item.label}
49+
</a>
50+
</li>
51+
))}
52+
</ul>
53+
</div>
4454
</div>
4555
)
4656
}

0 commit comments

Comments
 (0)