2019-08-09 10:17:04 +00:00
|
|
|
import { stringify as stringifyQs } from "qs";
|
|
|
|
import urlJoin from "url-join";
|
|
|
|
|
2019-09-10 15:32:47 +00:00
|
|
|
import {
|
|
|
|
ActiveTab,
|
|
|
|
BulkAction,
|
|
|
|
Dialog,
|
|
|
|
Filters,
|
|
|
|
Pagination,
|
|
|
|
SingleAction,
|
2019-12-17 17:13:56 +00:00
|
|
|
Sort,
|
2019-09-10 15:32:47 +00:00
|
|
|
TabActionDialog
|
|
|
|
} from "../types";
|
2019-08-09 10:17:04 +00:00
|
|
|
|
|
|
|
export const attributeSection = "/attributes/";
|
|
|
|
|
2019-09-10 15:32:47 +00:00
|
|
|
export enum AttributeListUrlFiltersEnum {
|
|
|
|
query = "query"
|
|
|
|
}
|
|
|
|
export type AttributeListUrlFilters = Filters<AttributeListUrlFiltersEnum>;
|
|
|
|
export type AttributeListUrlDialog = "remove" | TabActionDialog;
|
2019-12-17 17:13:56 +00:00
|
|
|
export enum AttributeListUrlSortField {
|
|
|
|
name = "name",
|
|
|
|
slug = "slug",
|
|
|
|
visible = "visible",
|
|
|
|
searchable = "searchable",
|
|
|
|
useInFacetedSearch = "use-in-faceted-search"
|
|
|
|
}
|
|
|
|
export type AttributeListUrlSort = Sort<AttributeListUrlSortField>;
|
2019-09-10 15:32:47 +00:00
|
|
|
export type AttributeListUrlQueryParams = ActiveTab &
|
|
|
|
AttributeListUrlFilters &
|
2019-12-17 17:13:56 +00:00
|
|
|
AttributeListUrlSort &
|
2019-09-10 15:32:47 +00:00
|
|
|
BulkAction &
|
2019-08-09 10:17:04 +00:00
|
|
|
Dialog<AttributeListUrlDialog> &
|
|
|
|
Pagination;
|
|
|
|
export const attributeListPath = attributeSection;
|
|
|
|
export const attributeListUrl = (params?: AttributeListUrlQueryParams) =>
|
|
|
|
attributeListPath + "?" + stringifyQs(params);
|
|
|
|
|
|
|
|
export type AttributeAddUrlDialog =
|
|
|
|
| "add-value"
|
|
|
|
| "edit-value"
|
|
|
|
| "remove-value"
|
|
|
|
| "remove-values";
|
|
|
|
export type AttributeAddUrlQueryParams = Dialog<AttributeAddUrlDialog> &
|
|
|
|
SingleAction;
|
|
|
|
export const attributeAddPath = urlJoin(attributeSection, "add");
|
|
|
|
export const attributeAddUrl = (params?: AttributeAddUrlQueryParams) =>
|
|
|
|
attributeAddPath + "?" + stringifyQs(params);
|
|
|
|
|
|
|
|
export type AttributeUrlDialog =
|
|
|
|
| "add-value"
|
|
|
|
| "edit-value"
|
|
|
|
| "remove"
|
|
|
|
| "remove-value"
|
|
|
|
| "remove-values";
|
|
|
|
export type AttributeUrlQueryParams = BulkAction &
|
|
|
|
Dialog<AttributeUrlDialog> &
|
|
|
|
SingleAction;
|
|
|
|
export const attributePath = (id: string) => urlJoin(attributeSection, id);
|
|
|
|
export const attributeUrl = (id: string, params?: AttributeUrlQueryParams) =>
|
|
|
|
attributePath(encodeURIComponent(id)) + "?" + stringifyQs(params);
|