import { stringifyQs } from "@saleor/utils/urls"; import urlJoin from "url-join"; import { ActiveTab, BulkAction, Dialog, Filters, Pagination, Sort, TabActionDialog } from "../types"; const staffSection = "/staff/"; export const staffListPath = staffSection; export enum StaffListUrlFiltersEnum { status = "status", query = "query" } export type StaffListUrlFilters = Filters; export type StaffListUrlDialog = "add" | "remove" | TabActionDialog; export enum StaffListUrlSortField { name = "name", email = "email" } export type StaffListUrlSort = Sort; export type StaffListUrlQueryParams = ActiveTab & BulkAction & Dialog & Pagination & StaffListUrlFilters & StaffListUrlSort; export const staffListUrl = (params?: StaffListUrlQueryParams) => staffListPath + "?" + stringifyQs(params); export const staffMemberDetailsPath = (id: string) => urlJoin(staffSection, id); export type StaffMemberDetailsUrlDialog = | "change-password" | "remove" | "remove-avatar"; export type StaffMemberDetailsUrlQueryParams = Dialog< StaffMemberDetailsUrlDialog >; export const staffMemberDetailsUrl = ( id: string, params?: StaffMemberDetailsUrlQueryParams ) => staffMemberDetailsPath(encodeURIComponent(id)) + "?" + stringifyQs(params);