fix: Menu widget now triggers Router._onReplace for SPA URL tracking
Menu widget's menu_clicked() was bypassing the standard _buildWidget path in bricks.js, so Router._onReplace was never called when navigating via sidebar menu items. This caused: - Browser URL not updating on menu clicks - F5 refresh not restoring the current page Added Router hook after t.add_widget(w) in menu_clicked(), matching the same pattern used in bricks.js _buildWidget.
This commit is contained in:
parent
216221f67f
commit
f49994cea7
@ -70,11 +70,16 @@ bricks.Menu = class extends bricks.VScrollPanel {
|
|||||||
"url":opts.url
|
"url":opts.url
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
var w = await bricks.widgetBuild(desc, this);
|
var w = await bricks.widgetBuild(desc, this);
|
||||||
if (w && ! bricks.Factory.isWidgetType(w, 'Popup')){
|
if (w && ! bricks.Factory.isWidgetType(w, 'Popup')){
|
||||||
t.clear_widgets();
|
t.clear_widgets();
|
||||||
t.add_widget(w);
|
t.add_widget(w);
|
||||||
} else {
|
// Router hook: notify SPA router of menu-driven navigation
|
||||||
|
if (bricks.Router && bricks.Router._enabled
|
||||||
|
&& opts.url){
|
||||||
|
bricks.Router._onReplace(t, opts.url);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
console.log('menu_clicked():widgetBuild() failed', desc);
|
console.log('menu_clicked():widgetBuild() failed', desc);
|
||||||
}
|
}
|
||||||
} else if (opts.script){
|
} else if (opts.script){
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user