mirror of
https://github.com/flarum/core.git
synced 2025-08-08 17:36:38 +02:00
Introduce setRouteWithForcedRefresh util
This commit is contained in:
committed by
Franz Liedke
parent
2edbd4508a
commit
038744f092
@@ -1,3 +1,4 @@
|
|||||||
|
import setRouteWithForcedRefresh from '../utils/setRouteWithForcedRefresh';
|
||||||
import SearchState from './SearchState';
|
import SearchState from './SearchState';
|
||||||
|
|
||||||
export default class GlobalSearchState extends SearchState {
|
export default class GlobalSearchState extends SearchState {
|
||||||
@@ -66,7 +67,7 @@ export default class GlobalSearchState extends SearchState {
|
|||||||
params.sort = sort;
|
params.sort = sort;
|
||||||
}
|
}
|
||||||
|
|
||||||
m.route.set(app.route(this.searchRoute, params), null, { state: { key: Date.now() } });
|
setRouteWithForcedRefresh(app.route(this.searchRoute, params));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -90,6 +91,6 @@ export default class GlobalSearchState extends SearchState {
|
|||||||
const params = this.params();
|
const params = this.params();
|
||||||
delete params.q;
|
delete params.q;
|
||||||
|
|
||||||
m.route.set(app.route(this.searchRoute, params), null, { state: { key: Date.now() } });
|
setRouteWithForcedRefresh(app.route(this.searchRoute, params));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -1,3 +1,5 @@
|
|||||||
|
import setRouteWithForcedRefresh from './setRouteWithForcedRefresh';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The `History` class keeps track and manages a stack of routes that the user
|
* The `History` class keeps track and manages a stack of routes that the user
|
||||||
* has navigated to in their session.
|
* has navigated to in their session.
|
||||||
@@ -114,6 +116,6 @@ export default class History {
|
|||||||
home() {
|
home() {
|
||||||
this.stack.splice(0);
|
this.stack.splice(0);
|
||||||
|
|
||||||
m.route.set('/', null, { state: { key: Date.now() } });
|
setRouteWithForcedRefresh('/');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
15
js/src/forum/utils/setRouteWithForcedRefresh.ts
Normal file
15
js/src/forum/utils/setRouteWithForcedRefresh.ts
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
import Mithril from 'mithril';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Mithril 2 does not completely rerender the page if a route change leads to the same route
|
||||||
|
* (or the same component handling a different route). This util calls m.route.set, forcing a reonit.
|
||||||
|
*
|
||||||
|
* @see https://mithril.js.org/route.html#key-parameter
|
||||||
|
*/
|
||||||
|
export default function setRouteWithForcedRefresh(route: string, params = null, options: Mithril.RouteOptions = {}) {
|
||||||
|
const newOptions = { ...options };
|
||||||
|
newOptions.state = newOptions.state || {};
|
||||||
|
newOptions.state.key = Date.now();
|
||||||
|
|
||||||
|
m.route.set(route, params, newOptions);
|
||||||
|
}
|
Reference in New Issue
Block a user