feat(directory): add a scroll to top button

This commit is contained in:
Haoyu Xu
2023-06-24 00:57:24 -04:00
parent 3e628ca887
commit a2735975f0
5 changed files with 186 additions and 24 deletions

View File

@@ -24,29 +24,38 @@ export default function Dropdown(props) {
<ul className={classes.menu} style={props.activeColor}>
{
props.menu.map((item) => {
if (item.type === 'group') {
return (
<section
key={item.name}
className={classes.group}
>
<section className={classes.line} />
<section className={classes.text}>{item.name}</section>
</section>
)
switch (item.type) {
case 'date': {
return (
<section
key={item.name}
className={classes.date}
>
<section className={classes.line} />
<section className={classes.text}>{item.name}</section>
</section>
)
}
case 'custom': {
return (
item.component
)
}
default: {
return (
<li
key={item.name}
className={`${classes.item} ${item.name === props.text || (props.activeRule && props.activeRule(item)) ? classes.active : ''}`}
onClick={() => {
props.onClick(item)
toggleDropdown()
}}
>
<section className={classes.text}>{item.name}</section>
</li>
)
}
}
return (
<li
key={item.name}
className={`${classes.item} ${item.name === props.text || (props.activeRule && props.activeRule(item)) ? classes.active : ''}`}
onClick={() => {
props.onClick(item)
toggleDropdown()
}}
>
<section className={classes.text}>{item.name}</section>
</li>
)
})
}
</ul>