UNPKG

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

Version:
85 lines 9.32 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SalesChannelPopularityCard = 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 popularity_table_1 = require("../common/popularity-table"); const react_1 = require("react"); const helpers_1 = require("../utils/helpers"); function transformToPopularityTable(result) { const currentMap = new Map(); const previousMap = new Map(); result.current.forEach(currentItem => { const currentCount = currentMap.get(currentItem.salesChannelName) || 0; currentMap.set(currentItem.salesChannelName, currentCount + parseInt(currentItem.orderCount)); }); result.previous.forEach(previousItem => { const previousCount = previousMap.get(previousItem.salesChannelName) || 0; previousMap.set(previousItem.salesChannelName, previousCount + parseInt(previousItem.orderCount)); }); return Array.from(currentMap.keys()).map(name => ({ name, current: String(currentMap.get(name) || 0), previous: String(previousMap.get(name) || 0) })); } const SalesChannelsPopularityDetails = ({ orderStatuses, 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]); (0, react_1.useEffect)(() => { if (!isLoading) { return; } fetch(`/admin/sales-analytics/sales-channels-popularity?${(0, helpers_1.deduceDateUrlParams)(dateRange, dateRangeCompareTo, orderStatuses).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)(ui_1.Heading, { level: "h3", children: "Cannot get orders" }); } if (data && data.analytics.dateRangeFrom) { return (0, jsx_runtime_1.jsx)(popularity_table_1.PopularityTable, { valueColumnName: "Orders", tableRows: transformToPopularityTable(data.analytics), enableComparing: compareEnabled && dateRangeCompareTo !== undefined }); } else { return (0, jsx_runtime_1.jsx)(ui_1.Heading, { level: "h3", children: "No orders" }); } }; const SalesChannelPopularityCard = ({ orderStatuses, dateRange, dateRangeCompareTo, compareEnabled }) => { 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, children: [(0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, children: (0, jsx_runtime_1.jsx)(icons_1.ShoppingBag, {}) }), (0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, children: (0, jsx_runtime_1.jsx)(ui_1.Heading, { level: "h2", children: "Sales channel popularity" }) })] }) }), (0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, xs: 12, md: 12, children: (0, jsx_runtime_1.jsx)(SalesChannelsPopularityDetails, { orderStatuses: orderStatuses, dateRange: dateRange, dateRangeCompareTo: dateRangeCompareTo, compareEnabled: compareEnabled }) })] })); }; exports.SalesChannelPopularityCard = SalesChannelPopularityCard; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FsZXMtY2hhbm5lbC1wb3B1bGFyaXR5LWNhcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvdWktY29tcG9uZW50cy9zYWxlcy9zYWxlcy1jaGFubmVsLXBvcHVsYXJpdHktY2FyZC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBOzs7Ozs7Ozs7O0dBVUc7QUFFSCxxQ0FBOEM7QUFDOUMsMkNBQThDO0FBQzlDLDRDQUF1RDtBQUV2RCxpRUFBaUY7QUFFakYsaUNBQTRDO0FBQzVDLDhDQUF1RDtBQXNCdkQsU0FBUywwQkFBMEIsQ0FBQyxNQUEwQztJQUM1RSxNQUFNLFVBQVUsR0FBRyxJQUFJLEdBQUcsRUFBa0IsQ0FBQztJQUM3QyxNQUFNLFdBQVcsR0FBRyxJQUFJLEdBQUcsRUFBa0IsQ0FBQztJQUU5QyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRTtRQUNuQyxNQUFNLFlBQVksR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2RSxVQUFVLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsRUFBRSxZQUFZLEdBQUcsUUFBUSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBQ2hHLENBQUMsQ0FBQyxDQUFDO0lBRUgsTUFBTSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEVBQUU7UUFDckMsTUFBTSxhQUFhLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUUsV0FBVyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLEVBQUUsYUFBYSxHQUFHLFFBQVEsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUNwRyxDQUFDLENBQUMsQ0FBQztJQUVILE9BQU8s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