saleor-dashboard/src/shipping/components/ShippingZonesListPage/ShippingZonesListPage.tsx

70 lines
2.1 KiB
TypeScript
Raw Normal View History

2019-06-19 14:40:52 +00:00
import AppHeader from "@saleor/components/AppHeader";
import Container from "@saleor/components/Container";
import Grid from "@saleor/components/Grid";
import PageHeader from "@saleor/components/PageHeader";
2019-10-25 13:31:27 +00:00
import RequirePermissions from "@saleor/components/RequirePermissions";
import { ShippingZoneFragment } from "@saleor/fragments/types/ShippingZoneFragment";
import { sectionNames } from "@saleor/intl";
2019-10-09 12:13:54 +00:00
import { ListActions, PageListProps, UserPermissionProps } from "@saleor/types";
import { PermissionEnum, WeightUnitsEnum } from "@saleor/types/globalTypes";
import React from "react";
import { useIntl } from "react-intl";
2019-06-19 14:40:52 +00:00
import ShippingWeightUnitForm from "../ShippingWeightUnitForm";
import ShippingZonesList from "../ShippingZonesList";
2019-10-09 12:13:54 +00:00
export interface ShippingZonesListPageProps
extends PageListProps,
ListActions,
UserPermissionProps {
2019-06-19 14:40:52 +00:00
defaultWeightUnit: WeightUnitsEnum;
shippingZones: ShippingZoneFragment[];
onBack: () => void;
onRemove: (id: string) => void;
onSubmit: (unit: WeightUnitsEnum) => void;
}
const ShippingZonesListPage: React.FC<ShippingZonesListPageProps> = ({
2019-10-09 12:13:54 +00:00
defaultWeightUnit,
disabled,
userPermissions,
onBack,
onSubmit,
...listProps
}) => {
const intl = useIntl();
return (
<Container>
<AppHeader onBack={onBack}>
{intl.formatMessage(sectionNames.configuration)}
</AppHeader>
<PageHeader
title={intl.formatMessage({
defaultMessage: "Shipping",
description: "header"
})}
/>
<Grid>
<div>
<ShippingZonesList disabled={disabled} {...listProps} />
</div>
<div>
2019-10-09 12:13:54 +00:00
<RequirePermissions
userPermissions={userPermissions}
requiredPermissions={[PermissionEnum.MANAGE_SETTINGS]}
>
<ShippingWeightUnitForm
defaultWeightUnit={defaultWeightUnit}
disabled={disabled}
onSubmit={onSubmit}
/>
</RequirePermissions>
</div>
</Grid>
</Container>
);
};
2019-06-19 14:40:52 +00:00
ShippingZonesListPage.displayName = "ShippingZonesListPage";
export default ShippingZonesListPage;