Update types

This commit is contained in:
dominik-zeglen 2019-10-25 15:31:27 +02:00
parent 6852bdbcf1
commit 898eecf628
10 changed files with 2676 additions and 915 deletions

View file

@ -430,6 +430,18 @@ export const permissions: ShopInfo_shop_permissions[] = [
{ {
code: PermissionEnum.MANAGE_USERS, code: PermissionEnum.MANAGE_USERS,
name: "Manage customers." name: "Manage customers."
},
{
code: PermissionEnum.MANAGE_PLUGINS,
name: "Manage plugins."
},
{
code: PermissionEnum.MANAGE_SERVICE_ACCOUNTS,
name: "Manage service accounts."
},
{
code: PermissionEnum.MANAGE_WEBHOOKS,
name: "Manage webhooks."
} }
].map(perm => ({ ].map(perm => ({
__typename: "PermissionDisplay" as "PermissionDisplay", __typename: "PermissionDisplay" as "PermissionDisplay",

View file

@ -86,6 +86,7 @@ const OrderCustomer = withStyles(styles, { name: "OrderCustomer" })(
const intl = useIntl(); const intl = useIntl();
const user = maybe(() => order.user); const user = maybe(() => order.user);
const userEmail = maybe(()=>order.userEmail)
const [userDisplayName, setUserDisplayName] = useStateFromProps( const [userDisplayName, setUserDisplayName] = useStateFromProps(
maybe(() => user.email, "") maybe(() => user.email, "")
@ -165,9 +166,13 @@ const OrderCustomer = withStyles(styles, { name: "OrderCustomer" })(
}} }}
</Form> </Form>
) : user === null ? ( ) : user === null ? (
<Typography> userEmail === null ? (
<FormattedMessage defaultMessage="Anonymous user" /> <Typography>
</Typography> <FormattedMessage defaultMessage="Anonymous user" />
</Typography>
) : (
<Typography className={classes.userEmail}>{userEmail}</Typography>
)
) : ( ) : (
<> <>
<Typography className={classes.userEmail}> <Typography className={classes.userEmail}>

View file

@ -5,9 +5,7 @@ import AppHeader from "@saleor/components/AppHeader";
import Container from "@saleor/components/Container"; import Container from "@saleor/components/Container";
import Grid from "@saleor/components/Grid"; import Grid from "@saleor/components/Grid";
import PageHeader from "@saleor/components/PageHeader"; import PageHeader from "@saleor/components/PageHeader";
import RequirePermissions, { import RequirePermissions from "@saleor/components/RequirePermissions";
hasPermissions
} from "@saleor/components/RequirePermissions";
import { sectionNames } from "@saleor/intl"; import { sectionNames } from "@saleor/intl";
import { ListActions, PageListProps, UserPermissionProps } from "@saleor/types"; import { ListActions, PageListProps, UserPermissionProps } from "@saleor/types";
import { PermissionEnum, WeightUnitsEnum } from "@saleor/types/globalTypes"; import { PermissionEnum, WeightUnitsEnum } from "@saleor/types/globalTypes";

View file

@ -1,5 +1,5 @@
import avatarImage from "@assets/images/avatars/avatar1.png"; import avatarImage from "@assets/images/avatars/avatar1.png";
import { PermissionEnum } from "../types/globalTypes"; import { permissions } from "@saleor/fixtures";
import { StaffList_staffUsers_edges_node } from "./types/StaffList"; import { StaffList_staffUsers_edges_node } from "./types/StaffList";
import { StaffMemberDetails_user } from "./types/StaffMemberDetails"; import { StaffMemberDetails_user } from "./types/StaffMemberDetails";
@ -145,49 +145,5 @@ export const staffMember: StaffMemberDetails_user = {
id: "VXNlcjoyMQ==", id: "VXNlcjoyMQ==",
isActive: true, isActive: true,
lastName: "Smith", lastName: "Smith",
permissions: [ permissions
{
code: PermissionEnum.IMPERSONATE_USERS,
name: "Impersonate customers."
},
{
code: PermissionEnum.MANAGE_DISCOUNTS,
name: "Manage sales and vouchers."
},
{
code: PermissionEnum.MANAGE_MENUS,
name: "Manage navigation."
},
{
code: PermissionEnum.MANAGE_ORDERS,
name: "Manage orders."
},
{
code: PermissionEnum.MANAGE_PAGES,
name: "Manage pages."
},
{
code: PermissionEnum.MANAGE_PRODUCTS,
name: "Manage products."
},
{
code: PermissionEnum.MANAGE_SETTINGS,
name: "Manage settings."
},
{
code: PermissionEnum.MANAGE_SHIPPING,
name: "Manage shipping."
},
{
code: PermissionEnum.MANAGE_STAFF,
name: "Manage staff."
},
{
code: PermissionEnum.MANAGE_USERS,
name: "Manage customers."
}
].map(perm => ({
__typename: "PermissionDisplay" as "PermissionDisplay",
...perm
}))
}; };

File diff suppressed because it is too large Load diff

View file

@ -3,6 +3,8 @@ import { storiesOf } from "@storybook/react";
import React from "react"; import React from "react";
import placeholderImage from "@assets/images/placeholder60x60.png"; import placeholderImage from "@assets/images/placeholder60x60.png";
import { permissions } from "@saleor/fixtures";
import { PermissionEnum } from "@saleor/types/globalTypes";
import HomePage, { HomePageProps } from "../../../home/components/HomePage"; import HomePage, { HomePageProps } from "../../../home/components/HomePage";
import { shop as shopFixture } from "../../../home/fixtures"; import { shop as shopFixture } from "../../../home/fixtures";
import Decorator from "../../Decorator"; import Decorator from "../../Decorator";
@ -21,7 +23,8 @@ const homePageProps: Omit<HomePageProps, "classes"> = {
productsOutOfStock: shop.productsOutOfStock.totalCount, productsOutOfStock: shop.productsOutOfStock.totalCount,
sales: shop.salesToday.gross, sales: shop.salesToday.gross,
topProducts: shop.productTopToday.edges.map(edge => edge.node), topProducts: shop.productTopToday.edges.map(edge => edge.node),
userName: "admin@example.com" userName: "admin@example.com",
userPermissions: permissions
}; };
storiesOf("Views / HomePage", module) storiesOf("Views / HomePage", module)
@ -42,4 +45,23 @@ storiesOf("Views / HomePage", module)
)) ))
.add("no data", () => ( .add("no data", () => (
<HomePage {...homePageProps} topProducts={[]} activities={[]} /> <HomePage {...homePageProps} topProducts={[]} activities={[]} />
))
.add("no permissions", () => (
<HomePage {...homePageProps} userPermissions={[]} />
))
.add("product permissions", () => (
<HomePage
{...homePageProps}
userPermissions={permissions.filter(
perm => perm.code === PermissionEnum.MANAGE_PRODUCTS
)}
/>
))
.add("order permissions", () => (
<HomePage
{...homePageProps}
userPermissions={permissions.filter(
perm => perm.code === PermissionEnum.MANAGE_ORDERS
)}
/>
)); ));

View file

@ -2,6 +2,7 @@ import { Omit } from "@material-ui/core";
import { storiesOf } from "@storybook/react"; import { storiesOf } from "@storybook/react";
import React from "react"; import React from "react";
import { permissions } from "@saleor/fixtures";
import OrderCustomer, { import OrderCustomer, {
OrderCustomerProps OrderCustomerProps
} from "../../../orders/components/OrderCustomer"; } from "../../../orders/components/OrderCustomer";
@ -19,6 +20,7 @@ const props: Omit<OrderCustomerProps, "classes"> = {
onProfileView: () => undefined, onProfileView: () => undefined,
onShippingAddressEdit: undefined, onShippingAddressEdit: undefined,
order, order,
userPermissions: permissions,
users: clients users: clients
}; };
@ -37,4 +39,10 @@ storiesOf("Orders / OrderCustomer", module)
)) ))
.add("editable", () => ( .add("editable", () => (
<OrderCustomer {...props} canEditAddresses={true} canEditCustomer={true} /> <OrderCustomer {...props} canEditAddresses={true} canEditCustomer={true} />
))
.add("editable", () => (
<OrderCustomer {...props} canEditAddresses={true} canEditCustomer={true} />
))
.add("no user permissions", () => (
<OrderCustomer {...props} userPermissions={[]} />
)); ));

View file

@ -3,6 +3,7 @@ import { storiesOf } from "@storybook/react";
import React from "react"; import React from "react";
import placeholderImage from "@assets/images/placeholder60x60.png"; import placeholderImage from "@assets/images/placeholder60x60.png";
import { permissions } from "@saleor/fixtures";
import OrderDetailsPage, { import OrderDetailsPage, {
OrderDetailsPageProps OrderDetailsPageProps
} from "../../../orders/components/OrderDetailsPage"; } from "../../../orders/components/OrderDetailsPage";
@ -32,7 +33,8 @@ const props: Omit<OrderDetailsPageProps, "classes"> = {
onProductClick: undefined, onProductClick: undefined,
onProfileView: () => undefined, onProfileView: () => undefined,
onShippingAddressEdit: undefined, onShippingAddressEdit: undefined,
order order,
userPermissions: permissions
}; };
storiesOf("Views / Orders / Order details", module) storiesOf("Views / Orders / Order details", module)

View file

@ -3,7 +3,7 @@ import { storiesOf } from "@storybook/react";
import React from "react"; import React from "react";
import placeholderImage from "@assets/images/placeholder60x60.png"; import placeholderImage from "@assets/images/placeholder60x60.png";
import { fetchMoreProps } from "@saleor/fixtures"; import { fetchMoreProps, permissions } from "@saleor/fixtures";
import OrderDraftPage, { import OrderDraftPage, {
OrderDraftPageProps OrderDraftPageProps
} from "../../../orders/components/OrderDraftPage"; } from "../../../orders/components/OrderDraftPage";
@ -32,6 +32,7 @@ const props: Omit<OrderDraftPageProps, "classes"> = {
onShippingMethodEdit: undefined, onShippingMethodEdit: undefined,
order, order,
saveButtonBarState: "default", saveButtonBarState: "default",
userPermissions: permissions,
users: clients, users: clients,
usersLoading: false usersLoading: false
}; };
@ -44,4 +45,7 @@ storiesOf("Views / Orders / Order draft", module)
)) ))
.add("without lines", () => ( .add("without lines", () => (
<OrderDraftPage {...props} order={{ ...order, lines: [] }} /> <OrderDraftPage {...props} order={{ ...order, lines: [] }} />
))
.add("no user permissions", () => (
<OrderDraftPage {...props} userPermissions={[]} />
)); ));

View file

@ -1,7 +1,11 @@
import { storiesOf } from "@storybook/react"; import { storiesOf } from "@storybook/react";
import React from "react"; import React from "react";
import { listActionsProps, pageListProps } from "../../../fixtures"; import {
listActionsProps,
pageListProps,
permissions
} from "../../../fixtures";
import ShippingZonesListPage, { import ShippingZonesListPage, {
ShippingZonesListPageProps ShippingZonesListPageProps
} from "../../../shipping/components/ShippingZonesListPage"; } from "../../../shipping/components/ShippingZonesListPage";
@ -17,7 +21,8 @@ const props: ShippingZonesListPageProps = {
onBack: () => undefined, onBack: () => undefined,
onRemove: () => undefined, onRemove: () => undefined,
onSubmit: () => undefined, onSubmit: () => undefined,
shippingZones shippingZones,
userPermissions: permissions
}; };
storiesOf("Views / Shipping / Shipping zones list", module) storiesOf("Views / Shipping / Shipping zones list", module)
@ -30,6 +35,7 @@ storiesOf("Views / Shipping / Shipping zones list", module)
shippingZones={undefined} shippingZones={undefined}
/> />
)) ))
.add("no data", () => ( .add("no data", () => <ShippingZonesListPage {...props} shippingZones={[]} />)
<ShippingZonesListPage {...props} shippingZones={[]} /> .add("no site settings permissions", () => (
<ShippingZonesListPage {...props} userPermissions={[]} />
)); ));