1
0
mirror of https://github.com/flarum/core.git synced 2025-08-04 15:37:51 +02:00

common: fix listItems marking all items as active

This commit is contained in:
David Sevilla Martin
2020-01-25 10:48:14 -05:00
parent fb50540be4
commit d404b11fcd
3 changed files with 17 additions and 20 deletions

View File

@@ -1,7 +1,7 @@
import Button, {ButtonProps} from './Button';
interface LinkButtonProps extends ButtonProps {
active: string;
active: boolean;
oncreate: Function;
href?: string;
}
@@ -27,6 +27,7 @@ export default class LinkButton extends Button<LinkButtonProps> {
const vdom = super.view();
vdom.tag = m.route.Link;
vdom.attrs.active = String(vdom.attrs.active);
return vdom;
}
@@ -34,11 +35,9 @@ export default class LinkButton extends Button<LinkButtonProps> {
/**
* Determine whether a component with the given props is 'active'.
*/
static isActive(props: LinkButtonProps): string {
return String(
typeof props.active !== 'undefined'
? props.active
: m.route.get() === props.href
);
static isActive(props: LinkButtonProps): boolean {
return typeof props.active !== 'undefined'
? props.active
: m.route.get() === props.href;
}
}

View File

@@ -41,10 +41,9 @@ export default function listItems(items) {
const node = isListItem
? item
: <li className={classNames([
(item.itemName ? 'item-' + item.itemName : ''),
className,
(active ? 'active' : '')
: <li className={classNames(className, [
(item.itemName && `item-${item.itemName}`),
active && 'active',
])}
key={item.attrs?.key || item.itemName}>
{item}

View File

@@ -51,14 +51,14 @@ export default class SessionDropdown extends Dropdown {
100
);
// items.add('settings',
// LinkButton.component({
// icon: 'fas fa-cog',
// children: app.translator.trans('core.forum.header.settings_button'),
// href: app.route('settings')
// }),
// 50
// );
items.add('settings',
LinkButton.component({
icon: 'fas fa-cog',
children: app.translator.trans('core.forum.header.settings_button'),
href: app.route('settings')
}),
50
);
if (app.forum.attribute('adminUrl')) {
items.add('administration',
@@ -67,7 +67,6 @@ export default class SessionDropdown extends Dropdown {
children: app.translator.trans('core.forum.header.admin_button'),
href: app.forum.attribute('adminUrl'),
target: '_blank',
config: () => {}
}),
0
);