PromucFlow_constructor/app/client/src/constants/routes.ts
Hetu Nandu 43322413c6
Support for navigateTo function to open in new window (#2706)
* Support target for navigate function

* Add docs and action creator field
2021-01-27 11:58:23 +05:30

177 lines
4.9 KiB
TypeScript

export const BASE_URL = "/";
export const ORG_URL = "/org";
export const PAGE_NOT_FOUND_URL = "/404";
export const SERVER_ERROR_URL = "/500";
export const APPLICATIONS_URL = `/applications`;
export const BUILDER_URL = "/applications/:applicationId/pages/:pageId/edit";
export const USER_AUTH_URL = "/user";
export const USERS_URL = "/users";
export type BuilderRouteParams = {
applicationId: string;
pageId: string;
};
export type AppViewerRouteParams = {
applicationId?: string;
pageId?: string;
};
export type APIEditorRouteParams = {
applicationId: string;
pageId: string;
apiId?: string;
};
export type ProviderViewerRouteParams = {
applicationId: string;
pageId: string;
providerId: string;
};
export type QueryEditorRouteParams = {
applicationId: string;
pageId: string;
queryId: string;
};
export const BUILDER_BASE_URL = (applicationId = ":applicationId"): string =>
`/applications/${applicationId}`;
export const BUILDER_PAGE_URL = (
applicationId?: string,
pageId?: string,
params?: Record<string, string>,
): string => {
if (!pageId) return APPLICATIONS_URL;
const queryParams = convertToQueryParams(params);
return (
`${BUILDER_BASE_URL(applicationId)}/pages/${pageId}/edit` + queryParams
);
};
export const API_EDITOR_URL = (
applicationId = ":applicationId",
pageId = ":pageId",
): string => `${BUILDER_PAGE_URL(applicationId, pageId)}/api`;
export const PAGE_LIST_EDITOR_URL = (
applicationId = ":applicationId",
pageId = ":pageId",
): string => `${BUILDER_PAGE_URL(applicationId, pageId)}/pages`;
export const DATA_SOURCES_EDITOR_URL = (
applicationId = ":applicationId",
pageId = ":pageId",
): string => `${BUILDER_PAGE_URL(applicationId, pageId)}/datasources`;
export const DATA_SOURCES_EDITOR_ID_URL = (
applicationId = ":applicationId",
pageId = ":pageId",
datasourceId = ":datasourceId",
): string =>
`${DATA_SOURCES_EDITOR_URL(applicationId, pageId)}/${datasourceId}`;
export const QUERIES_EDITOR_URL = (
applicationId = ":applicationId",
pageId = ":pageId",
): string => `${BUILDER_PAGE_URL(applicationId, pageId)}/queries`;
export const QUERIES_EDITOR_ID_URL = (
applicationId = ":applicationId",
pageId = ":pageId",
queryId = ":queryId",
params = {},
): string => {
const queryparams = convertToQueryParams(params);
return `${QUERIES_EDITOR_URL(
applicationId,
pageId,
)}/${queryId}${queryparams}`;
};
export const API_EDITOR_ID_URL = (
applicationId = ":applicationId",
pageId = ":pageId",
apiId = ":apiId",
params = {},
): string => {
const queryParams = convertToQueryParams(params);
return `${API_EDITOR_URL(applicationId, pageId)}/${apiId}${queryParams}`;
};
export const API_EDITOR_URL_WITH_SELECTED_PAGE_ID = (
applicationId = ":applicationId",
pageId = ":pageId",
selectedPageId = ":importTo",
): string => {
return `${BUILDER_PAGE_URL(
applicationId,
pageId,
)}/api?importTo=${selectedPageId}`;
};
export const APP_VIEW_URL = `/applications/:applicationId`;
export const getApplicationViewerURL = (
applicationId = ":applicationId",
): string => `/applications/${applicationId}`;
export const getApplicationViewerPageURL = (
applicationId = ":applicationId",
pageId = ":pageId",
params: Record<string, string> = {},
): string => {
const url = `/applications/${applicationId}/pages/${pageId}`;
const queryParams = convertToQueryParams(params);
return url + queryParams;
};
export function convertToQueryParams(
params: Record<string, string> = {},
): string {
const paramKeys = Object.keys(params);
const queryParams: string[] = [];
if (paramKeys) {
paramKeys.forEach((paramKey: string) => {
const value = params[paramKey];
if (paramKey && value) {
queryParams.push(`${paramKey}=${value}`);
}
});
}
return queryParams.length ? "?" + queryParams.join("&") : "";
}
export const getCurlImportPageURL = (
applicationId = ":applicationId",
pageId = ":pageId",
): string => `${API_EDITOR_URL(applicationId, pageId)}/curl/curl-import`;
export const getProviderTemplatesURL = (
applicationId = ":applicationId",
pageId = ":pageId",
providerId = ":providerId",
): string => `${API_EDITOR_URL(applicationId, pageId)}/provider/${providerId}`;
export const QUERY_EDITOR_URL_WITH_SELECTED_PAGE_ID = (
applicationId = ":applicationId",
pageId = ":pageId",
selectedPageId = ":importTo",
): string => {
return `${BUILDER_PAGE_URL(
applicationId,
pageId,
)}/queries?importTo=${selectedPageId}`;
};
export const FORGOT_PASSWORD_URL = `${USER_AUTH_URL}/forgotPassword`;
export const RESET_PASSWORD_URL = `${USER_AUTH_URL}/resetPassword`;
export const BASE_SIGNUP_URL = `/signup`;
export const SIGN_UP_URL = `${USER_AUTH_URL}/signup`;
export const BASE_LOGIN_URL = `/login`;
export const AUTH_LOGIN_URL = `${USER_AUTH_URL}/login`;
export const ORG_INVITE_USERS_PAGE_URL = `${ORG_URL}/invite`;
export const ORG_SETTINGS_PAGE_URL = `${ORG_URL}/settings`;