Skip to content

Commit 3941082

Browse files
committed
Fixed bug in Header and added react router support
1 parent 154bc00 commit 3941082

File tree

3 files changed

+88
-25
lines changed

3 files changed

+88
-25
lines changed

package-lock.json

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

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@thewca/wca-components",
3-
"version": "0.2.2",
3+
"version": "0.2.3",
44
"description": "The WCA React Component Library",
55
"repository": {
66
"type": "git",
@@ -30,6 +30,7 @@
3030
"@types/react-dom": "^18.2.4",
3131
"react": "^18.2.0",
3232
"react-dom": "^18.2.0",
33+
"react-router-dom": "^6.12.0",
3334
"fomantic-ui-css": "^2.9.2"
3435
},
3536
"devDependencies": {

src/components/Header/Dropdown.tsx

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
import React, { useState } from 'react'
2+
import { Link } from 'react-router-dom'
23
import UiIcon from '../UiIcon'
34

45
interface Item {
56
path: string
67
title: string
78
icon: string
89
isDivider?: false
10+
reactRoute?: boolean
911
}
1012

1113
interface Divider {
@@ -28,15 +30,12 @@ export default function Dropdown({
2830
items,
2931
}: DropdownProps) {
3032
const [hovered, setHovered] = useState(false)
31-
const toggleHover = () => setHovered(!hovered)
32-
3333
const close = () => setHovered(false)
34-
3534
return (
3635
<li
3736
className={`dropdown ${active ? 'active' : ''} ${hovered ? 'open' : ''}`}
38-
onMouseEnter={toggleHover}
39-
onMouseLeave={toggleHover}
37+
onMouseEnter={() => setHovered(true)}
38+
onMouseLeave={() => setHovered(false)}
4039
>
4140
{/* eslint-disable-next-line jsx-a11y/anchor-is-valid */}
4241
<a href="#" onClick={close} className="dropdown-toggle top-nav">
@@ -50,11 +49,17 @@ export default function Dropdown({
5049
// eslint-disable-next-line react/no-array-index-key
5150
return <li key={`divider-${index}`} className="divider" />
5251
}
52+
// Now we know we have an item
53+
const { title, reactRoute, path, icon } = item as Item
5354
return (
54-
<li key={(item as Item).title}>
55-
<a href={(item as Item).path}>
56-
<UiIcon name={(item as Item).icon} /> {(item as Item).title}
57-
</a>
55+
<li key={title}>
56+
{reactRoute ? (
57+
<Link to={path} title={title} />
58+
) : (
59+
<a href={path}>
60+
<UiIcon name={icon} /> {title}
61+
</a>
62+
)}
5863
</li>
5964
)
6065
})}

0 commit comments

Comments
 (0)