Fix wrong path used by backend (#14352)

After moving a section on the frontend, this broke the path that was
sent by email on the backend.
This kind of error comes back every ~2-3 month under different forms so
we need a more robust solution: I moved routes to the shared folder,
that way we will share one common source of truth between the frontend
and the backend.

Fixes #14343
This commit is contained in:
Félix Malfait
2025-09-08 16:07:13 +02:00
committed by GitHub
parent 894db2645a
commit 502bd07db9
243 changed files with 495 additions and 467 deletions
@@ -0,0 +1,30 @@
import qs from 'qs';
import { generatePath, type PathParam } from 'react-router-dom';
import { type AppPath } from '../../types';
import { isDefined } from '../validation';
export const getAppPath = <T extends AppPath>(
to: T,
params?: { [key in PathParam<T>]: string | null },
queryParams?: Record<string, any>,
) => {
let path: string = to;
if (isDefined(params)) {
path = generatePath<T>(to, params);
}
if (isDefined(queryParams)) {
const filteredParams = Object.fromEntries(
Object.entries(queryParams).filter(([_, value]) => isDefined(value)),
);
const queryString = qs.stringify(filteredParams);
if (queryString !== '') {
path += `?${queryString}`;
}
}
return path;
};