saleor-dashboard/src/storybook/stories/home/HomePage.tsx

81 lines
2.4 KiB
TypeScript
Raw Normal View History

import placeholderImage from "@assets/images/placeholder60x60.png";
import { adminUserPermissions } from "@saleor/fixtures";
Use graphql-codegen (#1874) * Use generated hooks in apps * Remove unused files * Use proper types in apps * Use generated hooks in attributes * Use generated hooks in auth module * Use generated hooks in categories * Use generated hooks in channels * Use generated types in collections * Remove legacy types from background tasks * Use generated hooks in customers * Use generated hooks in discounts * Use generated hook in file upload * Use generated types in gift cards * Use generated types in home * Use generated hooks in navigation * Use generated hooks in orders * Use generated hooks in pages * Use generated hooks in page types * Use generated hooks in permission groups * Use generated hooks in plugins * Use generated hooks in products * Use fragment to mark product variants * Improve code a bit * Use generated hooks in page types * Use generated types in searches * Use generated hooks in shipping * Use generated hooks in site settings * Use generated hooks in staff members * Use generated hooks in taxes * Place all gql generated files in one directory * Use generated hooks in translations * Use global types from new generated module * Use generated hooks in warehouses * Use generated hooks in webhooks * Use generated fragment types * Unclutter types * Remove hoc components * Split hooks and types * Fetch introspection file * Delete obsolete schema file * Fix rebase artifacts * Fix autoreplace * Fix auth provider tests * Fix urls * Remove leftover types * Fix rebase artifacts
2022-03-09 08:56:55 +00:00
import { PermissionEnum } from "@saleor/graphql";
import { mapEdgesToItems } from "@saleor/utils/maps";
2019-06-19 14:40:52 +00:00
import { storiesOf } from "@storybook/react";
2019-08-09 10:26:22 +00:00
import React from "react";
2019-06-19 14:40:52 +00:00
import HomePageComponent, {
HomePageProps,
} from "../../../home/components/HomePage";
2019-06-19 14:40:52 +00:00
import { shop as shopFixture } from "../../../home/fixtures";
import Decorator from "../../Decorator";
import { MockedUserProvider } from "../customers/MockedUserProvider";
2019-06-19 14:40:52 +00:00
const shop = shopFixture(placeholderImage);
2019-08-27 09:35:54 +00:00
const homePageProps: Omit<HomePageProps, "classes"> = {
activities: mapEdgesToItems(shop.activities),
noChannel: false,
createNewChannelHref: "",
ordersToFulfillHref: "",
ordersToCaptureHref: "",
productsOutOfStockHref: "",
2019-06-19 14:40:52 +00:00
orders: shop.ordersToday.totalCount,
ordersToCapture: shop.ordersToCapture.totalCount,
ordersToFulfill: shop.ordersToFulfill.totalCount,
productsOutOfStock: shop.productsOutOfStock.totalCount,
sales: shop.salesToday.gross,
topProducts: mapEdgesToItems(shop.productTopToday),
userName: "admin@example.com",
};
const HomePage = props => {
const customPermissions = props?.customPermissions;
return (
<MockedUserProvider customPermissions={customPermissions}>
<HomePageComponent {...props} />
</MockedUserProvider>
);
2019-06-19 14:40:52 +00:00
};
storiesOf("Views / HomePage", module)
.addDecorator(Decorator)
2019-08-27 09:35:54 +00:00
.add("default", () => <HomePage {...homePageProps} />)
2019-06-19 14:40:52 +00:00
.add("loading", () => (
<HomePage
2019-08-27 09:35:54 +00:00
{...homePageProps}
2019-06-19 14:40:52 +00:00
activities={undefined}
orders={undefined}
ordersToCapture={undefined}
ordersToFulfill={undefined}
productsOutOfStock={undefined}
sales={undefined}
topProducts={undefined}
userName={undefined}
/>
))
.add("no data", () => (
2019-08-27 09:35:54 +00:00
<HomePage {...homePageProps} topProducts={[]} activities={[]} />
2019-10-25 13:31:27 +00:00
))
.add("no permissions", () => (
<HomePage {...homePageProps} customPermissions={[]} />
2019-10-25 13:31:27 +00:00
))
.add("product permissions", () => (
<HomePage
{...homePageProps}
customPermissions={adminUserPermissions.filter(
perm => perm.code === PermissionEnum.MANAGE_PRODUCTS,
2019-10-25 13:31:27 +00:00
)}
/>
))
.add("order permissions", () => (
<HomePage
{...homePageProps}
customPermissions={adminUserPermissions.filter(
perm => perm.code === PermissionEnum.MANAGE_ORDERS,
2019-10-25 13:31:27 +00:00
)}
/>
2019-06-19 14:40:52 +00:00
));