saleor-dashboard/src/collections/urls.ts

30 lines
1.1 KiB
TypeScript
Raw Normal View History

2019-06-19 14:40:52 +00:00
import { stringify as stringifyQs } from "qs";
import * as urlJoin from "url-join";
import { BulkAction, Dialog, Pagination } from "../types";
const collectionSectionUrl = "/collections/";
export const collectionListPath = collectionSectionUrl;
export type CollectionListUrlDialog = "publish" | "unpublish" | "remove";
export type CollectionListUrlQueryParams = BulkAction &
Dialog<CollectionListUrlDialog> &
Pagination;
export const collectionListUrl = (params?: CollectionListUrlQueryParams) =>
collectionSectionUrl + "?" + stringifyQs(params);
export const collectionPath = (id: string) => urlJoin(collectionSectionUrl, id);
export type CollectionUrlDialog =
| "remove"
| "removeImage"
| "assign"
| "unassign";
export type CollectionUrlQueryParams = BulkAction &
Pagination &
Dialog<CollectionUrlDialog>;
export const collectionUrl = (id: string, params?: CollectionUrlQueryParams) =>
collectionPath(encodeURIComponent(id)) + "?" + stringifyQs(params);
export const collectionAddPath = urlJoin(collectionSectionUrl, "add");
export const collectionAddUrl = collectionAddPath;