2023-01-16 09:45:12 +00:00
|
|
|
import { AppDetailsUrlQueryParams } from "@dashboard/apps/urls";
|
|
|
|
import { stringifyQs } from "@dashboard/utils/urls";
|
2023-01-10 10:04:30 +00:00
|
|
|
import urlJoin from "url-join";
|
|
|
|
|
|
|
|
import { Dialog, SingleAction } from "../types";
|
|
|
|
|
2023-01-19 11:54:57 +00:00
|
|
|
export type AppListUrlDialog = "app-installation-remove";
|
2023-01-10 10:04:30 +00:00
|
|
|
export type AppListUrlQueryParams = Dialog<AppListUrlDialog> & SingleAction;
|
|
|
|
|
|
|
|
export const AppSections = {
|
2023-01-19 13:15:46 +00:00
|
|
|
appsSection: "/apps/",
|
2023-01-10 10:04:30 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
export const AppPaths = {
|
|
|
|
appListPath: AppSections.appsSection,
|
|
|
|
resolveAppPath: (id: string) => urlJoin(AppSections.appsSection, id, "app"),
|
2023-01-19 11:54:57 +00:00
|
|
|
resolveAppDetailsPath: (id: string) => urlJoin(AppSections.appsSection, id),
|
2023-01-10 10:04:30 +00:00
|
|
|
appInstallPath: urlJoin(AppSections.appsSection, "install"),
|
|
|
|
};
|
|
|
|
|
|
|
|
export const AppUrls = {
|
|
|
|
resolveAppListUrl: (params?: AppListUrlQueryParams) =>
|
|
|
|
AppPaths.appListPath + "?" + stringifyQs(params),
|
|
|
|
resolveAppUrl: (id: string, params?: AppDetailsUrlQueryParams) =>
|
|
|
|
AppPaths.resolveAppPath(encodeURIComponent(id)) + "?" + stringifyQs(params),
|
2023-01-19 11:54:57 +00:00
|
|
|
resolveAppDetailsUrl: (id: string, params?: AppDetailsUrlQueryParams) =>
|
|
|
|
AppPaths.resolveAppDetailsPath(encodeURIComponent(id)) +
|
|
|
|
"?" +
|
|
|
|
stringifyQs(params),
|
2023-01-10 10:04:30 +00:00
|
|
|
resolveAppInstallUrl: (manifestUrl: string) =>
|
|
|
|
`${AppPaths.appInstallPath}?manifestUrl=${manifestUrl}`,
|
|
|
|
};
|