Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 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 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | 107x 107x 107x 107x 107x 107x 6x 6x 6x 3x 3x 2x 1x | import { Authority } from "shared-types/authority";
import { getDashboardTabForAuthority } from "./crumbs";
/** Constant key for accessing origin in query string. */
export const ORIGIN = "origin";
/** Constant key for `dashboard` origin. */
export const DASHBOARD_ORIGIN = "dashboard";
/** Constant key for `details` origin. */
export const DETAILS_ORIGIN = "details";
/** Constant key for `spa` origin. */
export const SPA_SUBMISSION_ORIGIN = "spas";
/** Constant key for `waivers` origin. */
export const WAIVER_SUBMISSION_ORIGIN = "waivers";
type GetFormOriginArgs = {
id?: string;
authority?: Authority;
};
type GetFormOrigin = (args?: GetFormOriginArgs) => {
pathname: string;
search?: string;
};
/** Get the form's origin pathname
*
* NOTE: `getFormOrigin` should _not_ be used within a component's lifecycle as it may result in stale data.
* Instead, call within functions
*/
export const getFormOrigin: GetFormOrigin = ({ id, authority } = {}) => {
const origin = new URLSearchParams(window.location.search).get(ORIGIN) ?? DASHBOARD_ORIGIN;
Iif (origin === DETAILS_ORIGIN && id && authority) {
return {
pathname: `/${origin}/${encodeURIComponent(authority)}/${encodeURIComponent(id)}`,
};
}
if (origin === DASHBOARD_ORIGIN && authority) {
return {
pathname: `/${origin}`,
search: new URLSearchParams({
tab: getDashboardTabForAuthority(authority),
}).toString(),
};
}
if (origin === SPA_SUBMISSION_ORIGIN || origin === WAIVER_SUBMISSION_ORIGIN) {
return {
pathname: `/${DASHBOARD_ORIGIN}`,
search: new URLSearchParams({
tab: origin,
}).toString(),
};
}
return {
pathname: `/${origin}`,
};
};
|