UNPKG

@rsc-labs/medusa-store-analytics-v2

Version:
76 lines (75 loc) 2.95 kB
import { jsx, jsxs, Fragment } from "react/jsx-runtime"; import { Alert, Heading } from "@medusajs/ui"; import { CircularProgress } from "@mui/material"; import { ChartCurrentPrevious } from "../common/chart-components.js"; import { deduceDateUrlParams } from "../utils/helpers.js"; import { useState, useEffect } from "react"; const OrdersByNewChart = ({ orderStatuses, dateRange, dateRangeCompareTo, compareEnabled }) => { var _a, _b; const [data, setData] = useState(void 0); const [error, setError] = useState(void 0); const [isLoading, setLoading] = useState(true); useEffect(() => { setLoading(true); }, [dateRange, dateRangeCompareTo, orderStatuses]); useEffect(() => { if (!isLoading) { return; } fetch(`/admin/orders-analytics/history?${deduceDateUrlParams(dateRange, dateRangeCompareTo, orderStatuses).toString()}`, { credentials: "include" }).then((res) => res.json()).then((result) => { setData(result); setLoading(false); }).catch((error2) => { setError(error2); console.error(error2); }); }, [isLoading]); if (isLoading) { return /* @__PURE__ */ jsx(CircularProgress, { size: 12 }); } if (error) { const trueError = error; const errorText = `Error when loading data. It shouldn't have happened - please raise an issue. For developer: ${(_b = (_a = trueError == null ? void 0 : trueError.response) == null ? void 0 : _a.data) == null ? void 0 : _b.message}`; return /* @__PURE__ */ jsx(Alert, { variant: "error", children: errorText }); } if (data == void 0 || data.analytics == void 0) { return /* @__PURE__ */ jsx(Heading, { level: "h3", children: "Cannot get orders" }); } if (data.analytics.dateRangeFrom && data.analytics.dateRangeTo) { const rawChartData = { current: data.analytics.current.map((currentData) => { return { date: new Date(currentData.date), value: currentData.orderCount }; }), previous: data.analytics.previous.map((previousData) => { return { date: new Date(previousData.date), value: previousData.orderCount }; }) }; return /* @__PURE__ */ jsxs(Fragment, { children: [ /* @__PURE__ */ jsx(Heading, { level: "h3", children: "New orders by time" }), /* @__PURE__ */ jsx( ChartCurrentPrevious, { rawChartData, fromDate: new Date(data.analytics.dateRangeFrom), toDate: new Date(data.analytics.dateRangeTo), fromCompareDate: data.analytics.dateRangeFromCompareTo ? new Date(data.analytics.dateRangeFromCompareTo) : void 0, toCompareDate: data.analytics.dateRangeToCompareTo ? new Date(data.analytics.dateRangeToCompareTo) : void 0, compareEnabled } ) ] }); } else { return /* @__PURE__ */ jsx(Heading, { level: "h3", children: "No orders" }); } }; export { OrdersByNewChart };