UNPKG

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

Version:
69 lines 8.15 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.CustomersRepeatCustomerRate = 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 customers_repeat_customer_rate_number_1 = require("./customers-repeat-customer-rate-number"); const order_frequency_distribution_1 = require("./order-frequency-distribution"); const helpers_1 = require("../../../ui-components/utils/helpers"); const react_1 = require("react"); const RepeatCustomerRateDetails = ({ 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/customers-analytics/repeat-customer-rate?${(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 or customers" }); } if (data && data.analytics.dateRangeFrom) { return ((0, jsx_runtime_1.jsxs)(material_1.Grid, { container: true, children: [(0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, xs: 12, md: 12, children: (0, jsx_runtime_1.jsx)(customers_repeat_customer_rate_number_1.RepeatCustomerRateNummber, { repeatCustomerRateResponse: data, compareEnabled: compareEnabled }) }), (0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, xs: 12, md: 12, children: (0, jsx_runtime_1.jsx)(order_frequency_distribution_1.OrderFrequencyDistribution, { repeatCustomerRateResponse: data, compareEnabled: compareEnabled }) })] })); } else { return (0, jsx_runtime_1.jsx)(ui_1.Heading, { level: "h3", children: "No orders or customers" }); } }; const CustomersRepeatCustomerRate = ({ 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: "Repeat customer rate" }) })] }) }), (0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, xs: 12, md: 12, children: (0, jsx_runtime_1.jsx)(RepeatCustomerRateDetails, { orderStatuses: orderStatuses, dateRange: dateRange, dateRangeCompareTo: dateRangeCompareTo, compareEnabled: compareEnabled }) })] })); }; exports.CustomersRepeatCustomerRate = CustomersRepeatCustomerRate; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tZXJzLXJlcGVhdC1jdXN0b21lci1yYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3VpLWNvbXBvbmVudHMvY3VzdG9tZXJzL3JlcGVhdC1jdXN0b21lci1yYXRlL2N1c3RvbWVycy1yZXBlYXQtY3VzdG9tZXItcmF0ZS50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBOzs7Ozs7Ozs7O0dBVUc7QUFFSCxxQ0FBOEM7QUFDOUMsMkNBQThDO0FBQzlDLDRDQUF1RDtBQUd2RCxtR0FBb0Y7QUFFcEYsaUZBQTRFO0FBQzVFLGtFQUEyRTtBQUMzRSxpQ0FBNEM7QUFFNUMsTUFBTSx5QkFBeUIsR0FBRyxDQUFDLEVBQUMsYUFBYSxFQUFFLFNBQVMsRUFBRSxrQkFBa0IsRUFBRSxjQUFjLEVBQ2lCLEVBQUUsRUFBRTtJQUVuSCxNQUFNLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxHQUFHLElBQUEsZ0JBQVEsRUFBa0QsU0FBUyxDQUFDLENBQUE7SUFFNUYsTUFBTSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsR0FBRyxJQUFBLGdCQUFRLEVBQU0sU0FBUyxDQUFDLENBQUM7SUFFbkQsTUFBTSxDQUFDLFNBQVMsRUFBRSxVQUFVLENBQUMsR0FBRyxJQUFBLGdCQUFRLEVBQUMsSUFBSSxDQUFDLENBQUE7SUFFOUMsSUFBQSxpQkFBUyxFQUFDLEdBQUcsRUFBRTtRQUNiLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNuQixDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQTtJQUVsRCxJQUFBLGlCQUFTLEVBQUMsR0FBRyxFQUFFO1FBQ2IsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2YsT0FBTztRQUNULENBQUM7UUFFRCxLQUFLLENBQUMsbURBQW1ELElBQUEsNkJBQW1CLEVBQUMsU0FBUyxFQUFFLGtCQUFrQixFQUFFLGFBQWEs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