import { LimitsInfo } from "@dashboard/components/AppLayout/LimitsInfo"; import { TopNav } from "@dashboard/components/AppLayout/TopNav"; import { ButtonWithSelect } from "@dashboard/components/ButtonWithSelect"; import CardMenu from "@dashboard/components/CardMenu"; import FilterBar from "@dashboard/components/FilterBar"; import { ListPageLayout } from "@dashboard/components/Layouts"; import { OrderListQuery, RefreshLimitsQuery } from "@dashboard/graphql"; import { sectionNames } from "@dashboard/intl"; import { extensionMountPoints, mapToMenuItems, useExtensions, } from "@dashboard/new-apps/hooks/useExtensions"; import { OrderListUrlSortField } from "@dashboard/orders/urls"; import { FilterPageProps, PageListProps, RelayToFlat, SortPage, } from "@dashboard/types"; import { hasLimits, isLimitReached } from "@dashboard/utils/limits"; import { Card } from "@material-ui/core"; import { makeStyles } from "@saleor/macaw-ui"; import React from "react"; import { FormattedMessage, useIntl } from "react-intl"; import OrderLimitReached from "../OrderLimitReached"; import OrderList from "../OrderList"; import { createFilterStructure, OrderFilterKeys, OrderListFilterOpts, } from "./filters"; export interface OrderListPageProps extends PageListProps, FilterPageProps, SortPage { limits: RefreshLimitsQuery["shop"]["limits"]; orders: RelayToFlat; onSettingsOpen: () => void; onAdd: () => void; } const useStyles = makeStyles( theme => ({ settings: { marginRight: theme.spacing(2), }, }), { name: "OrderListPage" }, ); const OrderListPage: React.FC = ({ currentTab, initialSearch, filterOpts, limits, tabs, onAdd, onAll, onSearchChange, onSettingsOpen, onFilterChange, onTabChange, onTabDelete, onTabSave, ...listProps }) => { const intl = useIntl(); const classes = useStyles({}); const filterStructure = createFilterStructure(intl, filterOpts); const limitsReached = isLimitReached(limits, "orders"); const { ORDER_OVERVIEW_CREATE, ORDER_OVERVIEW_MORE_ACTIONS } = useExtensions( extensionMountPoints.ORDER_LIST, ); const extensionMenuItems = mapToMenuItems(ORDER_OVERVIEW_MORE_ACTIONS); const extensionCreateButtonItems = mapToMenuItems(ORDER_OVERVIEW_CREATE); return ( {!!onSettingsOpen && ( )} {hasLimits(limits, "orders") && ( )} {limitsReached && } ); }; OrderListPage.displayName = "OrderListPage"; export default OrderListPage;