saleor-dashboard/src/home/views/index.tsx

72 lines
2.2 KiB
TypeScript
Raw Normal View History

import { channelsListUrl } from "@saleor/channels/urls";
import useAppChannel from "@saleor/components/AppLayout/AppChannelContext";
2019-06-19 14:40:52 +00:00
import useNavigator from "@saleor/hooks/useNavigator";
import useUser from "@saleor/hooks/useUser";
import { mapEdgesToItems } from "@saleor/utils/maps";
import React from "react";
import { getDatePeriod, getUserName } from "../../misc";
2019-06-19 14:40:52 +00:00
import { orderListUrl } from "../../orders/urls";
import { productListUrl, productVariantEditUrl } from "../../products/urls";
import { OrderStatusFilter, StockAvailability } from "../../types/globalTypes";
import HomePage from "../components/HomePage";
import { useHomePage } from "../queries";
2019-06-19 14:40:52 +00:00
const HomeSection = () => {
const navigate = useNavigator();
const { user } = useUser();
const { channel } = useAppChannel();
2019-06-19 14:40:52 +00:00
const noChannel = !channel && typeof channel !== "undefined";
const { data } = useHomePage({
displayLoader: true,
skip: noChannel,
variables: { channel: channel?.slug, datePeriod: getDatePeriod(1) }
});
2019-06-19 14:40:52 +00:00
return (
<HomePage
activities={mapEdgesToItems(data?.activities)?.reverse()}
orders={data?.ordersToday?.totalCount}
sales={data?.salesToday?.gross}
topProducts={mapEdgesToItems(data?.productTopToday)}
onProductClick={(productId, variantId) =>
navigate(productVariantEditUrl(productId, variantId))
}
onCreateNewChannelClick={() => {
navigate(channelsListUrl());
}}
onOrdersToCaptureClick={() =>
navigate(
orderListUrl({
status: [OrderStatusFilter.READY_TO_CAPTURE]
})
)
}
onOrdersToFulfillClick={() =>
navigate(
orderListUrl({
status: [OrderStatusFilter.READY_TO_FULFILL]
})
)
}
onProductsOutOfStockClick={() =>
navigate(
productListUrl({
stockStatus: StockAvailability.OUT_OF_STOCK
})
)
}
ordersToCapture={data?.ordersToCapture?.totalCount}
ordersToFulfill={data?.ordersToFulfill?.totalCount}
productsOutOfStock={data?.productsOutOfStock.totalCount}
userName={getUserName(user, true)}
userPermissions={user?.userPermissions}
noChannel={noChannel}
/>
2019-06-19 14:40:52 +00:00
);
};
export default HomeSection;