2020-05-14 09:30:32 +00:00
|
|
|
import { Pagination } from "@saleor/types";
|
2021-08-09 15:27:13 +00:00
|
|
|
import { stringifyQs } from "@saleor/utils/urls";
|
2019-08-09 10:26:22 +00:00
|
|
|
import urlJoin from "url-join";
|
2019-06-19 14:40:52 +00:00
|
|
|
|
2019-09-12 12:43:37 +00:00
|
|
|
import { TranslationsEntitiesListFilterTab } from "./components/TranslationsEntitiesListPage";
|
|
|
|
|
2019-06-19 14:40:52 +00:00
|
|
|
export enum TranslatableEntities {
|
|
|
|
categories = "categories",
|
|
|
|
products = "products",
|
2021-08-10 14:38:48 +00:00
|
|
|
productVariants = "variants",
|
2019-06-19 14:40:52 +00:00
|
|
|
collections = "collections",
|
|
|
|
sales = "sales",
|
|
|
|
vouchers = "vouchers",
|
|
|
|
pages = "pages",
|
2021-08-09 14:59:12 +00:00
|
|
|
attributes = "attributes",
|
2022-06-21 09:36:55 +00:00
|
|
|
shippingMethods = "shippingMethods",
|
2022-07-26 09:12:02 +00:00
|
|
|
menuItems = "menuItems",
|
2019-06-19 14:40:52 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
const translationsSection = "/translations/";
|
|
|
|
|
|
|
|
export const languageListPath = translationsSection;
|
|
|
|
export const languageListUrl = translationsSection;
|
|
|
|
|
|
|
|
export const languageEntitiesPath = (code: string) =>
|
|
|
|
urlJoin(translationsSection, code);
|
2019-09-12 12:43:37 +00:00
|
|
|
export type LanguageEntitiesUrlQueryParams = Pagination &
|
|
|
|
Partial<{
|
|
|
|
query: string;
|
|
|
|
tab: TranslationsEntitiesListFilterTab;
|
|
|
|
}>;
|
|
|
|
export const languageEntitiesUrl = (
|
|
|
|
code: string,
|
2022-06-21 09:36:55 +00:00
|
|
|
params: LanguageEntitiesUrlQueryParams,
|
2019-09-12 12:43:37 +00:00
|
|
|
) => languageEntitiesPath(code) + "?" + stringifyQs(params);
|
2019-06-19 14:40:52 +00:00
|
|
|
|
|
|
|
export const languageEntityPath = (
|
|
|
|
code: string,
|
|
|
|
entity: TranslatableEntities,
|
2021-08-10 14:38:48 +00:00
|
|
|
id: string,
|
|
|
|
...args: string[]
|
|
|
|
) => urlJoin(languageEntitiesPath(code), entity.toString(), id, ...args);
|
2019-06-19 14:40:52 +00:00
|
|
|
export const languageEntityUrl = (
|
|
|
|
code: string,
|
|
|
|
entity: TranslatableEntities,
|
2021-08-10 14:38:48 +00:00
|
|
|
id: string,
|
|
|
|
...args: string[]
|
|
|
|
) => languageEntityPath(code, entity, encodeURIComponent(id), ...args);
|
|
|
|
|
|
|
|
export const productVariantUrl = (
|
|
|
|
code: string,
|
|
|
|
productId: string,
|
2022-06-21 09:36:55 +00:00
|
|
|
variantId: string,
|
2021-08-10 14:38:48 +00:00
|
|
|
) =>
|
|
|
|
languageEntityUrl(
|
|
|
|
code,
|
|
|
|
TranslatableEntities.products,
|
|
|
|
productId,
|
|
|
|
TranslatableEntities.productVariants,
|
2022-06-21 09:36:55 +00:00
|
|
|
variantId,
|
2021-08-10 14:38:48 +00:00
|
|
|
);
|