File size: 961 Bytes
4782147
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
// Simple admin navigation utilities using URL-encoded state

/**
 * Build user detail URL with current page state preserved
 */
export function buildUserDetailUrl(
  userId: string,
  currentSearchParams: string = "",
): string {
  if (!currentSearchParams) {
    return `/admin/users/${userId}`;
  }

  // URL encode the search params to pass as a single parameter
  const encodedParams = encodeURIComponent(currentSearchParams);
  return `/admin/users/${userId}?searchPageParams=${encodedParams}`;
}

/**
 * Build return URL from encoded search params
 */
export function buildReturnUrl(
  baseUrl: string,
  encodedSearchParams: string = "",
): string {
  if (!encodedSearchParams) {
    return baseUrl;
  }

  try {
    const decodedParams = decodeURIComponent(encodedSearchParams);
    return decodedParams ? `${baseUrl}?${decodedParams}` : baseUrl;
  } catch (error) {
    console.error("Error decoding search params:", error);
    return baseUrl;
  }
}