mirror of
https://gitlab.com/mbugroup/lti-web-client.git
synced 2026-05-25 07:45:47 +00:00
feat: create expense navigation helper function
This commit is contained in:
@@ -0,0 +1,39 @@
|
|||||||
|
type SearchParamsLike = {
|
||||||
|
get: (name: string) => string | null;
|
||||||
|
};
|
||||||
|
|
||||||
|
const EXPENSE_LIST_PATH = '/expense';
|
||||||
|
|
||||||
|
export const getExpenseListReturnTo = (searchParams: SearchParamsLike) => {
|
||||||
|
const existingReturnTo = searchParams.get('returnTo');
|
||||||
|
|
||||||
|
if (existingReturnTo?.startsWith(EXPENSE_LIST_PATH)) {
|
||||||
|
return existingReturnTo;
|
||||||
|
}
|
||||||
|
|
||||||
|
const params = new URLSearchParams();
|
||||||
|
const page = searchParams.get('page');
|
||||||
|
const limit = searchParams.get('limit');
|
||||||
|
|
||||||
|
if (page) params.set('page', page);
|
||||||
|
if (limit) params.set('limit', limit);
|
||||||
|
|
||||||
|
const queryString = params.toString();
|
||||||
|
|
||||||
|
return queryString
|
||||||
|
? `${EXPENSE_LIST_PATH}?${queryString}`
|
||||||
|
: EXPENSE_LIST_PATH;
|
||||||
|
};
|
||||||
|
|
||||||
|
export const buildExpenseActionHref = (
|
||||||
|
path: string,
|
||||||
|
expenseId: number | string,
|
||||||
|
searchParams: SearchParamsLike
|
||||||
|
) => {
|
||||||
|
const params = new URLSearchParams({
|
||||||
|
expenseId: String(expenseId),
|
||||||
|
returnTo: getExpenseListReturnTo(searchParams),
|
||||||
|
});
|
||||||
|
|
||||||
|
return `${path}?${params.toString()}`;
|
||||||
|
};
|
||||||
Reference in New Issue
Block a user