import { extensionMountPoints, mapToMenuItems, mapToMenuItemsForCustomerOverviewActions, useExtensions, } from "@dashboard/apps/useExtensions"; import { useUserPermissions } from "@dashboard/auth/hooks/useUserPermissions"; import ButtonWithSelect from "@dashboard/components/ButtonWithSelect"; import CardMenu from "@dashboard/components/CardMenu/CardMenu"; import Container from "@dashboard/components/Container"; import FilterBar from "@dashboard/components/FilterBar"; import PageHeader from "@dashboard/components/PageHeader"; import { customerAddUrl, CustomerListUrlSortField, } from "@dashboard/customers/urls"; import { ListCustomersQuery } from "@dashboard/graphql"; import useNavigator from "@dashboard/hooks/useNavigator"; import { sectionNames } from "@dashboard/intl"; import { FilterPageProps, ListActions, PageListProps, RelayToFlat, SortPage, TabPageProps, } from "@dashboard/types"; import { Card } from "@material-ui/core"; import { makeStyles } from "@saleor/macaw-ui"; import React from "react"; import { FormattedMessage, useIntl } from "react-intl"; import CustomerList from "../CustomerList/CustomerList"; import { createFilterStructure, CustomerFilterKeys, CustomerListFilterOpts, } from "./filters"; const useStyles = makeStyles( theme => ({ settings: { marginRight: theme.spacing(2), }, }), { name: "CustomerListPage" }, ); export interface CustomerListPageProps extends PageListProps, ListActions, FilterPageProps, SortPage, TabPageProps { customers: RelayToFlat; selectedCustomerIds: string[]; } const CustomerListPage: React.FC = ({ currentTab, filterOpts, initialSearch, onAll, onFilterChange, onSearchChange, onTabChange, onTabDelete, onTabSave, tabs, selectedCustomerIds, ...customerListProps }) => { const intl = useIntl(); const classes = useStyles({}); const navigate = useNavigator(); const userPermissions = useUserPermissions(); const structure = createFilterStructure(intl, filterOpts, userPermissions); const { CUSTOMER_OVERVIEW_CREATE, CUSTOMER_OVERVIEW_MORE_ACTIONS, } = useExtensions(extensionMountPoints.CUSTOMER_LIST); const extensionMenuItems = mapToMenuItemsForCustomerOverviewActions( CUSTOMER_OVERVIEW_MORE_ACTIONS, selectedCustomerIds, ); const extensionCreateButtonItems = mapToMenuItems(CUSTOMER_OVERVIEW_CREATE); return ( 0 && ( ) } > navigate(customerAddUrl)} options={extensionCreateButtonItems} data-test-id="create-customer" > ); }; CustomerListPage.displayName = "CustomerListPage"; export default CustomerListPage;