mirror of
https://github.com/flarum/core.git
synced 2025-08-05 07:57:46 +02:00
common: remove falsy params when using app.route()
This commit is contained in:
@@ -200,6 +200,13 @@ export default abstract class Application {
|
|||||||
if (!route) throw new Error(`Route '${name}' does not exist`);
|
if (!route) throw new Error(`Route '${name}' does not exist`);
|
||||||
|
|
||||||
const url = route.path.replace(/:([^\/]+)/g, (m, key) => extract(params, key));
|
const url = route.path.replace(/:([^\/]+)/g, (m, key) => extract(params, key));
|
||||||
|
|
||||||
|
// Remove falsy values in params to avoid
|
||||||
|
// having urls like '/?sort&q'
|
||||||
|
for (const key in params) {
|
||||||
|
if (params.hasOwnProperty(key) && !params[key]) delete params[key];
|
||||||
|
}
|
||||||
|
|
||||||
const queryString = m.buildQueryString(params);
|
const queryString = m.buildQueryString(params);
|
||||||
const prefix = m.route.prefix === '' ? this.forum.attribute('basePath') : '';
|
const prefix = m.route.prefix === '' ? this.forum.attribute('basePath') : '';
|
||||||
|
|
||||||
|
@@ -30,13 +30,11 @@ export default app => {
|
|||||||
app.route.discussion = (discussion: Discussion, near?: number): string => {
|
app.route.discussion = (discussion: Discussion, near?: number): string => {
|
||||||
const slug = discussion?.slug();
|
const slug = discussion?.slug();
|
||||||
const hasNear = near && near !== 1;
|
const hasNear = near && near !== 1;
|
||||||
const params = {
|
|
||||||
|
return app.route(hasNear ? 'discussion.near' : 'discussion', {
|
||||||
id: discussion.id() + (slug.trim() ? '-' + slug : ''),
|
id: discussion.id() + (slug.trim() ? '-' + slug : ''),
|
||||||
};
|
near: hasNear && near,
|
||||||
|
});
|
||||||
if (hasNear) params['near'] = near;
|
|
||||||
|
|
||||||
return app.route(hasNear ? 'discussion.near' : 'discussion', params);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Reference in New Issue
Block a user