UNPKG

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

Version:
93 lines 12.5 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SalesOverviewCard = void 0; const jsx_runtime_1 = require("react/jsx-runtime"); /* * Copyright 2024 RSC-Labs, https://rsoftcon.com/ * * MIT License * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ const ui_1 = require("@medusajs/ui"); const icons_1 = require("@medusajs/icons"); const material_1 = require("@mui/material"); const sales_number_overview_1 = require("./sales-number-overview"); const react_1 = require("react"); const sales_total_chart_1 = require("./sales-total-chart"); const helpers_1 = require("../utils/helpers"); const SalesDetails = ({ orderStatuses, currencyCode, dateRange, dateRangeCompareTo, compareEnabled }) => { const [data, setData] = (0, react_1.useState)(undefined); const [error, setError] = (0, react_1.useState)(undefined); const [isLoading, setLoading] = (0, react_1.useState)(true); (0, react_1.useEffect)(() => { setLoading(true); }, [dateRange, dateRangeCompareTo, orderStatuses, currencyCode]); (0, react_1.useEffect)(() => { if (!isLoading) { return; } const searchParams = (0, helpers_1.deduceDateUrlParams)(dateRange, dateRangeCompareTo, orderStatuses); searchParams.append('currencyCode', currencyCode); fetch(`/admin/sales-analytics/history?${searchParams.toString()}`, { credentials: "include", }) .then((res) => res.json()) .then((result) => { setData(result); setLoading(false); }) .catch((error) => { setError(error); console.error(error); }); }, [isLoading]); if (isLoading) { return (0, jsx_runtime_1.jsx)(material_1.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: ${trueError?.response?.data?.message}`; return (0, jsx_runtime_1.jsx)(ui_1.Alert, { variant: "error", children: errorText }); } if (data && data.analytics == undefined) { return ((0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, xs: 12, md: 12, children: (0, jsx_runtime_1.jsx)(ui_1.Heading, { level: "h3", children: "Cannot get orders" }) })); } if (data && data.analytics.dateRangeFrom && data.analytics.dateRangeTo) { return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, xs: 12, md: 12, children: (0, jsx_runtime_1.jsx)(sales_number_overview_1.SalesNumber, { salesHistoryResponse: data, compareEnabled: compareEnabled }) }), (0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, xs: 12, md: 12, children: (0, jsx_runtime_1.jsx)(sales_total_chart_1.SalesByNewChart, { dateRangeFrom: new Date(data.analytics.dateRangeFrom), dateRangeTo: new Date(data.analytics.dateRangeTo), salesHistoryResponse: data, compareEnabled: compareEnabled }) })] })); } else { return ((0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, xs: 12, md: 12, children: (0, jsx_runtime_1.jsx)(ui_1.Heading, { level: "h3", children: "No orders" }) })); } }; const SalesOverviewCard = ({ orderStatuses, dateRange, dateRangeCompareTo, compareEnabled }) => { const [value, setValue] = (0, react_1.useState)(); const [regions, setRegions] = (0, react_1.useState)(undefined); const [error, setError] = (0, react_1.useState)(undefined); const [isLoading, setLoading] = (0, react_1.useState)(true); (0, react_1.useEffect)(() => { if (!isLoading) { return; } fetch(`/admin/regions/`, { credentials: "include", }) .then((res) => res.json()) .then((result) => { setRegions(result.regions); setLoading(false); }) .catch((error) => { setError(error); console.error(error); }); }, [isLoading]); return ((0, jsx_runtime_1.jsxs)(material_1.Grid, { container: true, paddingBottom: 2, spacing: 3, children: [(0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, xs: 12, md: 12, children: (0, jsx_runtime_1.jsxs)(material_1.Grid, { container: true, spacing: 2, alignItems: 'center', children: [(0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, children: (0, jsx_runtime_1.jsx)(icons_1.CurrencyDollar, {}) }), (0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, children: (0, jsx_runtime_1.jsx)(ui_1.Heading, { level: "h2", children: "Total sales" }) }), (0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, children: (0, jsx_runtime_1.jsx)("div", { className: "w-[256px]", children: (0, jsx_runtime_1.jsxs)(ui_1.Select, { size: "small", onValueChange: setValue, value: value, children: [(0, jsx_runtime_1.jsx)(ui_1.Select.Trigger, { children: (0, jsx_runtime_1.jsx)(ui_1.Select.Value, { placeholder: "Select a currency" }) }), (0, jsx_runtime_1.jsxs)(ui_1.Select.Content, { children: [isLoading && (0, jsx_runtime_1.jsx)(material_1.CircularProgress, {}), regions && !regions.length && (0, jsx_runtime_1.jsx)(ui_1.Text, { children: "No regions" }), regions && regions.length > 0 && [...new Set(regions.map(region => region.currency_code))].map((currencyCode) => ((0, jsx_runtime_1.jsx)(ui_1.Select.Item, { value: currencyCode, children: currencyCode.toUpperCase() }, currencyCode)))] })] }) }) })] }) }), value ? (0, jsx_runtime_1.jsx)(SalesDetails, { orderStatuses: orderStatuses, currencyCode: value, dateRange: dateRange, dateRangeCompareTo: dateRangeCompareTo, compareEnabled: compareEnabled }) : (0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, children: (0, jsx_runtime_1.jsx)(ui_1.Heading, { level: "h2", children: "Please select a currency" }) })] })); }; exports.SalesOverviewCard = SalesOverviewCard; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FsZXMtb3ZlcnZpZXctY2FyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy91aS1jb21wb25lbnRzL3NhbGVzL3NhbGVzLW92ZXJ2aWV3LWNhcmQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQTs7Ozs7Ozs7OztHQVVHO0FBRUgscUNBQTREO0FBQzVELDJDQUFpRDtBQUNqRCw0Q0FBdUQ7QUFFdkQsbUVBQXNEO0FBQ3RELGlDQUE0QztBQUM1QywyREFBc0Q7QUFFdEQsOENBQXVEO0FBR3ZELE1BQU0sWUFBWSxHQUFHLENBQUMsRUFBQyxhQUFhLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxrQkFBa0IsRUFBRSxjQUFjLEVBQ3NDLEVBQUUsRUFBRTtJQUV6SSxNQUFNLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxHQUFHLElBQUEsZ0JBQVEsRUFBbUMsU0FBUyxDQUFDLENBQUE7SUFFN0UsTUFBTSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsR0FBRyxJQUFBLGdCQUFRLEVBQU0sU0FBUyxDQUFDLENBQUM7SUFFbkQsTUFBTSxDQUFDLFNBQVMsRUFBRSxVQUFVLENBQUMsR0FBRyxJQUFBLGdCQUFRLEVBQUMsSUFBSSxDQUFDLENBQUE7SUFFOUMsSUFBQSxpQkFBUyxFQUFDLEdBQUcsRUFBRTtRQUNiLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNuQixDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsYUFBYSxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUE7SUFFaEUsSUFBQSxpQkFBUyxFQUFDLEdBQUcsRUFBRTtRQUNiLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNmLE9BQU87UUFDVCxDQUFDO1FBRUQsTUFBTSxZQUFZLEdBQUcsSUFBQSw2QkFBbUIsRUFBQyxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDdkYsWUFBWSxDQUFDLE1BQU0sQ0FB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