saleor-dashboard/src/shipping/components/ShippingZonesListPage/ShippingZonesListPage.tsx
Wojciech Mista 9a7c9a3bc3
Add permission-based restrictions in Customer views (#1879)
* Update customer queries - add permissions

* Filter the customer filter by permissions

* Code refactor + optionally render components based on permissions

* Update stories

* Minor code refactor

* Move useUserPermissions to RequirePermissions component

* Change user provider component name

* Change macaw-ui version
2022-03-01 09:38:23 +01:00

68 lines
2.1 KiB
TypeScript

import Container from "@saleor/components/Container";
import Grid from "@saleor/components/Grid";
import PageHeader from "@saleor/components/PageHeader";
import RequirePermissions from "@saleor/components/RequirePermissions";
import { ShippingZoneFragment } from "@saleor/fragments/types/ShippingZoneFragment";
import { SubmitPromise } from "@saleor/hooks/useForm";
import { sectionNames } from "@saleor/intl";
import { Backlink } from "@saleor/macaw-ui";
import { ListActions, PageListProps, UserPermissionProps } from "@saleor/types";
import { PermissionEnum, WeightUnitsEnum } from "@saleor/types/globalTypes";
import React from "react";
import { useIntl } from "react-intl";
import ShippingWeightUnitForm from "../ShippingWeightUnitForm";
import ShippingZonesList from "../ShippingZonesList";
export interface ShippingZonesListPageProps
extends PageListProps,
ListActions,
UserPermissionProps {
defaultWeightUnit: WeightUnitsEnum;
shippingZones: ShippingZoneFragment[];
onBack: () => void;
onRemove: (id: string) => void;
onSubmit: (unit: WeightUnitsEnum) => SubmitPromise;
}
const ShippingZonesListPage: React.FC<ShippingZonesListPageProps> = ({
defaultWeightUnit,
disabled,
onBack,
onSubmit,
...listProps
}) => {
const intl = useIntl();
return (
<Container>
<Backlink onClick={onBack}>
{intl.formatMessage(sectionNames.configuration)}
</Backlink>
<PageHeader
title={intl.formatMessage({
defaultMessage: "Shipping",
description: "header"
})}
/>
<Grid>
<div>
<ShippingZonesList disabled={disabled} {...listProps} />
</div>
<div>
<RequirePermissions
requiredPermissions={[PermissionEnum.MANAGE_SETTINGS]}
>
<ShippingWeightUnitForm
defaultWeightUnit={defaultWeightUnit}
disabled={disabled}
onSubmit={onSubmit}
/>
</RequirePermissions>
</div>
</Grid>
</Container>
);
};
ShippingZonesListPage.displayName = "ShippingZonesListPage";
export default ShippingZonesListPage;