saleor-dashboard/src/collections/urls.ts

56 lines
1.7 KiB
TypeScript
Raw Normal View History

import { ChannelsAction } from "@saleor/channels/urls";
import { stringify as stringifyQs } from "qs";
2019-08-09 10:26:22 +00:00
import urlJoin from "url-join";
2019-06-19 14:40:52 +00:00
2019-09-11 14:00:02 +00:00
import {
ActiveTab,
BulkAction,
Dialog,
Filters,
Pagination,
Sort,
TabActionDialog
2019-09-11 14:00:02 +00:00
} from "../types";
2019-06-19 14:40:52 +00:00
const collectionSectionUrl = "/collections/";
export const collectionListPath = collectionSectionUrl;
2019-09-11 14:00:02 +00:00
export enum CollectionListUrlFiltersEnum {
2020-01-07 13:34:45 +00:00
status = "status",
2019-09-11 14:00:02 +00:00
query = "query"
}
export type CollectionListUrlFilters = Filters<CollectionListUrlFiltersEnum>;
export type CollectionListUrlDialog = "remove" | TabActionDialog;
2019-12-17 17:13:56 +00:00
export enum CollectionListUrlSortField {
name = "name",
available = "available",
productCount = "products"
}
export type CollectionListUrlSort = Sort<CollectionListUrlSortField>;
2019-09-11 14:00:02 +00:00
export type CollectionListUrlQueryParams = ActiveTab &
BulkAction &
CollectionListUrlFilters &
2019-12-17 17:13:56 +00:00
CollectionListUrlSort &
2019-06-19 14:40:52 +00:00
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"
| ChannelsAction;
2019-06-19 14:40:52 +00:00
export type CollectionUrlQueryParams = BulkAction &
Pagination &
Dialog<CollectionUrlDialog>;
export type CollectionCreateUrlQueryParams = Dialog<ChannelsAction>;
2019-06-19 14:40:52 +00:00
export const collectionUrl = (id: string, params?: CollectionUrlQueryParams) =>
collectionPath(encodeURIComponent(id)) + "?" + stringifyQs(params);
export const collectionAddPath = urlJoin(collectionSectionUrl, "add");
export const collectionAddUrl = (params?: CollectionCreateUrlQueryParams) =>
collectionAddPath + "?" + stringifyQs(params);