
* Add marketplace * Update messages * Extract styles * Update test env * Update config and rename uri * Update template * Trigger CI * Possible fix * Update deploy yml * Add marketplace to staging * Fix responsiveness * Trigger CI * Fix navigation tests (#2081) * fix navigate through shop * wait for progress bar not to exist * simplify code * add wait * Fix navigate through shop (#2076) * fix navigate through shop * wait for progress bar not to exist * simplify code * Refine App about section (#2056) * Trigger CI * Trigger CI * Trigger CI * Trigger CI * Fix app activation/deactivation * Hide configuration url and policy if theres none * Remove about and support links * Remove unused code * Update stories and tests * Update messages * Fix privacy policy * Fix activation and "open app" * Update tests Co-authored-by: Karolina Rakoczy <rakoczy.karolina@gmail.com>
100 lines
3 KiB
TypeScript
100 lines
3 KiB
TypeScript
import { stringifyQs } from "@saleor/utils/urls";
|
|
import urlJoin from "url-join";
|
|
|
|
import { ActiveTab, Dialog, Pagination, SingleAction } from "../types";
|
|
|
|
export const MANIFEST_ATTR = "manifestUrl";
|
|
|
|
export type AppListUrlDialog =
|
|
| "remove"
|
|
| "remove-app"
|
|
| "remove-custom-app"
|
|
| "app-activate"
|
|
| "app-deactivate";
|
|
|
|
export type AppDetailsUrlDialog = "app-activate" | "app-deactivate";
|
|
|
|
export type AppListUrlQueryParams = ActiveTab &
|
|
Dialog<AppListUrlDialog> &
|
|
SingleAction &
|
|
Pagination;
|
|
|
|
export type AppDetailsUrlQueryParams = Dialog<AppDetailsUrlDialog> &
|
|
SingleAction;
|
|
|
|
export type AppInstallUrlQueryParams = Partial<{ [MANIFEST_ATTR]: string }>;
|
|
|
|
export enum AppListUrlSortField {
|
|
name = "name",
|
|
active = "active"
|
|
}
|
|
|
|
export type CustomAppUrlDialog =
|
|
| "create-token"
|
|
| "remove-webhook"
|
|
| "remove-token"
|
|
| "app-activate"
|
|
| "app-deactivate";
|
|
export type CustomAppUrlQueryParams = Dialog<CustomAppUrlDialog> & SingleAction;
|
|
|
|
export const appsSection = "/apps/";
|
|
export const appsListPath = appsSection;
|
|
|
|
export const customAppListPath = "/apps/custom/";
|
|
|
|
export const appDetailsPath = (id: string) => urlJoin(appsSection, id);
|
|
export const appSettingsPath = (id: string) =>
|
|
urlJoin(appsSection, id, "settings");
|
|
export const appPath = (id: string) => urlJoin(appsSection, id, "app");
|
|
export const appDeepPath = (id: string, subPath: string) =>
|
|
urlJoin(appPath(id), subPath);
|
|
export const customAppPath = (id: string) => urlJoin(customAppListPath, id);
|
|
export const appInstallPath = urlJoin(appsSection, "install");
|
|
export const appInstallUrl = appInstallPath;
|
|
|
|
export const appDetailsUrl = (id: string, params?: AppDetailsUrlQueryParams) =>
|
|
appDetailsPath(encodeURIComponent(id)) + "?" + stringifyQs(params);
|
|
|
|
export const appUrl = (id: string, params?: AppDetailsUrlQueryParams) =>
|
|
appPath(encodeURIComponent(id)) + "?" + stringifyQs(params);
|
|
export const appDeepUrl = (
|
|
id: string,
|
|
subPath: string,
|
|
params?: AppDetailsUrlQueryParams
|
|
) => appDeepPath(encodeURIComponent(id), subPath) + "?" + stringifyQs(params);
|
|
|
|
export const getAppCompleteUrlFromDashboardUrl = (
|
|
dashboardUrl: string,
|
|
appUrl?: string,
|
|
appId?: string
|
|
) => {
|
|
if (!appUrl || !appId) {
|
|
return appUrl;
|
|
}
|
|
const deepSubPath = dashboardUrl.replace(
|
|
appPath(encodeURIComponent(appId)),
|
|
""
|
|
);
|
|
const appCompleteUrl = urlJoin(appUrl, deepSubPath);
|
|
return appCompleteUrl;
|
|
};
|
|
export const getDashboardUrFromAppCompleteUrl = (
|
|
appCompleteUrl: string,
|
|
appUrl?: string,
|
|
appId?: string
|
|
) => {
|
|
if (!appUrl || !appId) {
|
|
return appUrl;
|
|
}
|
|
const deepSubPath = appCompleteUrl.replace(appUrl, "");
|
|
const dashboardUrl = urlJoin(appPath(encodeURIComponent(appId)), deepSubPath);
|
|
return dashboardUrl;
|
|
};
|
|
|
|
export const customAppUrl = (id: string, params?: CustomAppUrlQueryParams) =>
|
|
customAppPath(encodeURIComponent(id)) + "?" + stringifyQs(params);
|
|
export const customAppAddPath = urlJoin(customAppListPath, "add");
|
|
export const customAppAddUrl = customAppAddPath;
|
|
|
|
export const appsListUrl = (params?: AppListUrlQueryParams) =>
|
|
appsListPath + "?" + stringifyQs(params);
|