saleor-dashboard/src/discounts/urls.ts

128 lines
4.1 KiB
TypeScript
Raw Normal View History

import { ChannelsAction } from "@saleor/channels/urls";
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-11 15:52:02 +00:00
import {
ActiveTab,
BulkAction,
Dialog,
Filters,
FiltersWithMultipleValues,
2019-09-11 15:52:02 +00:00
Pagination,
2020-01-03 13:21:58 +00:00
Sort,
TabActionDialog
2019-09-11 15:52:02 +00:00
} from "../types";
2019-06-19 14:40:52 +00:00
import { SaleDetailsPageTab } from "./components/SaleDetailsPage";
import { VoucherDetailsPageTab } from "./components/VoucherDetailsPage";
export const discountSection = "/discounts/";
export const saleSection = urlJoin(discountSection, "sales");
export const saleListPath = saleSection;
2019-09-11 15:52:02 +00:00
export enum SaleListUrlFiltersEnum {
2020-01-03 13:21:58 +00:00
type = "type",
startedFrom = "startedFrom",
startedTo = "startedTo",
query = "query",
channel = "channel"
2019-09-11 15:52:02 +00:00
}
2020-01-03 13:21:58 +00:00
export enum SaleListUrlFiltersWithMultipleValues {
status = "status"
}
export type SaleListUrlFilters = Filters<SaleListUrlFiltersEnum> &
FiltersWithMultipleValues<SaleListUrlFiltersWithMultipleValues>;
export type SaleListUrlDialog = "remove" | TabActionDialog;
2019-12-17 17:13:56 +00:00
export enum SaleListUrlSortField {
name = "name",
endDate = "end-date",
startDate = "start-date",
type = "type",
value = "value"
}
export type SaleListUrlSort = Sort<SaleListUrlSortField>;
2019-09-11 15:52:02 +00:00
export type SaleListUrlQueryParams = ActiveTab &
BulkAction &
2019-06-19 14:40:52 +00:00
Dialog<SaleListUrlDialog> &
2019-09-11 15:52:02 +00:00
Pagination &
2019-12-17 17:13:56 +00:00
SaleListUrlFilters &
SaleListUrlSort;
2019-06-19 14:40:52 +00:00
export const saleListUrl = (params?: SaleListUrlQueryParams) =>
saleListPath + "?" + stringifyQs(params);
export const salePath = (id: string) => urlJoin(saleSection, id);
export type SaleUrlDialog =
| "assign-category"
| "assign-collection"
| "assign-product"
| "unassign-category"
| "unassign-collection"
| "unassign-product"
| "remove"
| ChannelsAction;
2019-06-19 14:40:52 +00:00
export type SaleUrlQueryParams = Pagination &
BulkAction &
Dialog<SaleUrlDialog> &
ActiveTab<SaleDetailsPageTab>;
export type SaleCreateUrlQueryParams = Dialog<ChannelsAction>;
2019-06-19 14:40:52 +00:00
export const saleUrl = (id: string, params?: SaleUrlQueryParams) =>
salePath(encodeURIComponent(id)) + "?" + stringifyQs(params);
export const saleAddPath = urlJoin(saleSection, "add");
export const saleAddUrl = (params?: SaleCreateUrlQueryParams) =>
saleAddPath + "?" + stringifyQs(params);
2019-06-19 14:40:52 +00:00
export const voucherSection = urlJoin(discountSection, "vouchers");
export const voucherListPath = voucherSection;
2019-09-12 10:06:28 +00:00
export enum VoucherListUrlFiltersEnum {
2020-01-03 15:17:51 +00:00
startedFrom = "startedFrom",
startedTo = "startedTo",
timesUsedFrom = "timesUsedFrom",
timesUsedTo = "timesUsedTo",
query = "query",
channel = "channel"
2019-09-12 10:06:28 +00:00
}
2020-01-03 15:17:51 +00:00
export enum VoucherListUrlFiltersWithMultipleValues {
status = "status",
type = "type"
}
export type VoucherListUrlFilters = Filters<VoucherListUrlFiltersEnum> &
FiltersWithMultipleValues<VoucherListUrlFiltersWithMultipleValues>;
export type VoucherListUrlDialog = "remove" | TabActionDialog;
2019-12-17 17:13:56 +00:00
export enum VoucherListUrlSortField {
code = "code",
endDate = "end-date",
limit = "limit",
minSpent = "min-spent",
startDate = "start-date",
type = "type",
value = "value"
}
export type VoucherListUrlSort = Sort<VoucherListUrlSortField>;
2019-09-12 10:06:28 +00:00
export type VoucherListUrlQueryParams = ActiveTab &
BulkAction &
2019-06-19 14:40:52 +00:00
Dialog<VoucherListUrlDialog> &
2019-09-12 10:06:28 +00:00
Pagination &
2019-12-17 17:13:56 +00:00
VoucherListUrlFilters &
VoucherListUrlSort;
2019-06-19 14:40:52 +00:00
export const voucherListUrl = (params?: VoucherListUrlQueryParams) =>
voucherListPath + "?" + stringifyQs(params);
export const voucherPath = (id: string) => urlJoin(voucherSection, id);
export type VoucherUrlDialog =
| "assign-category"
| "assign-collection"
| "assign-country"
| "assign-product"
| "unassign-category"
| "unassign-collection"
| "unassign-product"
| "remove"
| ChannelsAction;
2019-06-19 14:40:52 +00:00
export type VoucherUrlQueryParams = Pagination &
BulkAction &
Dialog<VoucherUrlDialog> &
ActiveTab<VoucherDetailsPageTab>;
export type VoucherCreateUrlQueryParams = Dialog<ChannelsAction>;
2019-06-19 14:40:52 +00:00
export const voucherUrl = (id: string, params?: VoucherUrlQueryParams) =>
voucherPath(encodeURIComponent(id)) + "?" + stringifyQs(params);
export const voucherAddPath = urlJoin(voucherSection, "add");
export const voucherAddUrl = (params?: VoucherCreateUrlQueryParams) =>
voucherAddPath + "?" + stringifyQs(params);