Files
twenty/packages/twenty-shared/src/utils/navigation/getAppPath.ts
T
Félix Malfait 502bd07db9 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
2025-09-08 16:07:13 +02:00

31 lines
735 B
TypeScript

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;
};