saleor-dashboard/src/components/Navigator/modes/index.ts

55 lines
1.6 KiB
TypeScript
Raw Normal View History

2019-11-22 15:39:20 +00:00
import { UseNavigatorResult } from "@saleor/hooks/useNavigator";
import { OrderDraftCreate } from "@saleor/orders/types/OrderDraftCreate";
import { MutationFunction } from "react-apollo";
import { IntlShape } from "react-intl";
2019-11-21 12:13:41 +00:00
import { QuickSearchAction, QuickSearchMode } from "../types";
2019-11-25 14:32:10 +00:00
import getCatalogModeActions from "./catalog";
2019-11-22 15:39:20 +00:00
import getCommandModeActions from "./commands";
2019-11-25 11:29:07 +00:00
import getCustomersModeActions from "./customers";
2019-11-21 12:13:41 +00:00
import getDefaultModeActions from "./default";
2019-11-26 14:14:21 +00:00
import getHelpModeActions from "./help";
2019-11-21 12:13:41 +00:00
import getOrdersModeActions from "./orders";
2019-11-21 17:47:06 +00:00
import { ActionQueries } from "./types";
2019-11-21 12:13:41 +00:00
function getModeActions(
mode: QuickSearchMode,
query: string,
2019-11-21 17:47:06 +00:00
intl: IntlShape,
2019-11-22 15:39:20 +00:00
queries: ActionQueries,
cbs: {
createOrder: MutationFunction<OrderDraftCreate, {}>;
2019-11-26 14:14:21 +00:00
navigate: UseNavigatorResult;
setMode: (mode: QuickSearchMode) => void;
2019-11-22 15:39:20 +00:00
}
2019-11-21 12:13:41 +00:00
): QuickSearchAction[] {
switch (mode) {
2019-11-25 14:32:10 +00:00
case "catalog":
return getCatalogModeActions(query, intl, cbs.navigate, queries.catalog);
2019-11-22 15:39:20 +00:00
case "commands":
2019-11-26 14:14:21 +00:00
return getCommandModeActions(
query,
intl,
cbs.navigate,
cbs.createOrder,
cbs.setMode
);
2019-11-25 11:29:07 +00:00
case "customers":
return getCustomersModeActions(intl, cbs.navigate, queries.customers);
2019-11-26 14:14:21 +00:00
case "help":
return getHelpModeActions(query, intl, cbs.setMode);
2019-11-21 12:13:41 +00:00
case "orders":
2019-11-22 15:39:20 +00:00
return getOrdersModeActions(query, intl, cbs.navigate, queries.order);
2019-11-21 12:13:41 +00:00
default:
2019-11-26 14:14:21 +00:00
return getDefaultModeActions(
query,
intl,
cbs.navigate,
cbs.createOrder,
cbs.setMode
);
2019-11-21 12:13:41 +00:00
}
}
export default getModeActions;