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:
@@ -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'
|
||||
static isActive(props: LinkButtonProps): boolean {
|
||||
return typeof props.active !== 'undefined'
|
||||
? props.active
|
||||
: m.route.get() === props.href
|
||||
);
|
||||
: m.route.get() === props.href;
|
||||
}
|
||||
}
|
||||
|
@@ -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}
|
||||
|
@@ -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
|
||||
);
|
||||
|
Reference in New Issue
Block a user