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:
@@ -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;
|
||||
};
|
||||
Reference in New Issue
Block a user