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
|
||||
}
|
||||
}
|
||||
var w = await bricks.widgetBuild(desc, this);
|
||||
if (w && ! bricks.Factory.isWidgetType(w, 'Popup')){
|
||||
t.clear_widgets();
|
||||
t.add_widget(w);
|
||||
} else {
|
||||
var w = await bricks.widgetBuild(desc, this);
|
||||
if (w && ! bricks.Factory.isWidgetType(w, 'Popup')){
|
||||
t.clear_widgets();
|
||||
t.add_widget(w);
|
||||
// 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);
|
||||
}
|
||||
} else if (opts.script){
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user