@rsc-labs/medusa-store-analytics-v2
Version:
Get analytics data about your store
60 lines • 5.96 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.OrderFrequencyDistributionPieChart = 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 chartUtils_1 = require("../../common/utils/chartUtils");
const recharts_1 = require("recharts");
const ONE_TIME_LABEL_NAME = 'One-time purchase';
const REPEAT_LABEL_NAME = 'Repeat purchase';
function convertToChartData(distributions) {
if (distributions) {
if (distributions.orderOneTimeFrequency || distributions.orderRepeatFrequency) {
const oneTimeValue = distributions.orderOneTimeFrequency ? parseInt(distributions.orderOneTimeFrequency) : 0;
const repeatValue = distributions.orderRepeatFrequency ? parseInt(distributions.orderRepeatFrequency) : 0;
return [
{
name: ONE_TIME_LABEL_NAME,
value: oneTimeValue,
displayValue: ONE_TIME_LABEL_NAME
},
{
name: REPEAT_LABEL_NAME,
value: repeatValue,
displayValue: REPEAT_LABEL_NAME
}
];
}
}
return undefined;
}
const OrderFrequencyDistributionPieChart = ({ repeatCustomerRateResponse, compareEnabled }) => {
const currentData = convertToChartData(repeatCustomerRateResponse.analytics.current);
const previousData = convertToChartData(repeatCustomerRateResponse.analytics.previous);
const renderLabel = function (entry) {
return entry.displayValue;
};
return ((0, jsx_runtime_1.jsxs)(recharts_1.PieChart, { width: 500, height: 300, children: [(0, jsx_runtime_1.jsx)(recharts_1.Pie, { data: currentData, dataKey: "value", cx: "50%", cy: "50%", innerRadius: 40, outerRadius: 90, fill: "#82ca9d", label: renderLabel }), compareEnabled && repeatCustomerRateResponse.analytics.dateRangeFromCompareTo && currentData !== undefined &&
(0, jsx_runtime_1.jsx)(recharts_1.Pie, { data: previousData, dataKey: "value", cx: "50%", cy: "50%", outerRadius: 30, fill: "#8884d8" }), (compareEnabled && repeatCustomerRateResponse.analytics.dateRangeFromCompareTo) && (0, jsx_runtime_1.jsx)(recharts_1.Legend, { payload: [
{
value: (0, chartUtils_1.getLegendName)(true),
color: "#82ca9d"
},
{
value: (0, chartUtils_1.getLegendName)(false),
color: "#8884d8"
}
], iconType: "circle" }), (0, jsx_runtime_1.jsx)(recharts_1.Tooltip, { formatter: (value) => `${value}%` })] }));
};
exports.OrderFrequencyDistributionPieChart = OrderFrequencyDistributionPieChart;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItZnJlcXVlbmN5LWRpc3RyaWJ1dGlvbi1jaGFydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy91aS1jb21wb25lbnRzL2N1c3RvbWVycy9yZXBlYXQtY3VzdG9tZXItcmF0ZS9vcmRlci1mcmVxdWVuY3ktZGlzdHJpYnV0aW9uLWNoYXJ0LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUE7Ozs7Ozs7Ozs7R0FVRztBQUVILDhEQUE4RDtBQUU5RCx1Q0FBMEQ7QUFFMUQsTUFBTSxtQkFBbUIsR0FBRyxtQkFBbUIsQ0FBQztBQUNoRCxNQUFNLGlCQUFpQixHQUFHLGlCQUFpQixDQUFDO0FBRTVDLFNBQVMsa0JBQWtCLENBQUMsYUFBNEI7SUFDdEQsSUFBSSxhQUFhLEVBQUUsQ0FBQztRQUNsQixJQUFJLGFBQWEsQ0FBQyxxQkFBcUIsSUFBSSxhQUFhLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztZQUM5RSxNQUFNLFlBQVksR0FBRyxhQUFhLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzdHLE1BQU0sV0FBVyxHQUFHLGFBQWEsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDMUcsT0FBTztnQkFDTDtvQkFDRSxJQUFJLEVBQUUsbUJBQW1CO29CQUN6QixLQUFLLEVBQUUsWUFBWTtvQkFDbkIsWUFBWSxFQUFFLG1CQUFtQjtpQkFDbEM7Z0JBQ0Q7b0JBQ0UsSUFBSSxFQUFFLGlCQUFpQjtvQkFDdkIsS0FBSyxFQUFFLFdBQVc7b0JBQ2xCLFlBQVksRUFBRSxpQkFBaUI7aUJBQ2hDO2FBQ0YsQ0FBQTtRQUNILENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQztBQUVNLE1BQU0sa0NBQWtDLEdBQUcsQ0FBQyxFQUFDLDBCQUEwQixFQUFFLGNBQWMsRUFBK0YsRUFBRSxFQUFFO0lBRS9MLE1BQU0sV0FBVyxHQUFHLGtCQUFrQixDQUFDLDBCQUEwQixDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNyRixNQUFNLFlBQVksR0FBRyxrQkFBa0IsQ0FBQywwQkFBMEIsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFdkYsTUFBTSxXQUFXLEdBQUcsVUFBUyxLQUFLO1FBQ2hDLE9BQU8sS0FBSyxDQUFDLFlBQVksQ0FBQztJQUM1QixDQUFDLENBQUE7SUFFRCxPQUFPLENBQ0wsd0JBQUMsbUJBQVEsSUFBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLGFBQy9CLHVCQUFDLGNBQUcsSUFBQyxJQUFJLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBQyxPQUFPLEVBQUMsRUFBRSxFQUFDLEtBQUssRUFBQyxFQUFFLEVBQUMsS0FBSyxFQUFDLFdBQVcsRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBRSxXQUFXLEdBQUksRUFDaEksY0FBYyxJQUFJLDBCQUEwQixDQUFDLFNBQVMsQ0FBQyxzQkFBc0IsSUFBSSxXQUFXLEtBQUssU0FBUztnQkFDekcsdUJBQUMsY0FBRyxJQUFDLElBQUksRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFDLE9BQU8sRUFBQyxFQUFFLEVBQUMsS0FBSyxFQUFDLEVBQUUsRUFBQyxLQUFLLEVBQUMsV0FBVyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUMsU0FBUyxHQUFFLEVBRTdGLENBQUMsY0FBYyxJQUFJLDBCQUEwQixDQUFDLFNBQVMsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLHVCQUFDLGlCQUFNLElBQUMsT0FBTyxFQUFFO29CQUNuRzt3QkFDRSxLQUFLLEVBQUUsSUFBQSwwQkFBYSxFQUFDLElBQUksQ0FBQzt3QkFDMUIsS0FBSyxFQUFFLFNBQVM7cUJBQ2pCO29CQUNEO3dCQUNFLEtBQUssRUFBRSxJQUFBLDBCQUFhLEVBQUMsS0FBSyxDQUFDO3dCQUMzQixLQUFLLEVBQUUsU0FBUztxQkFDakI7aUJBQ0YsRUFBRSxRQUFRLEVBQUMsUUFBUSxHQUFFLEVBQ3RCLHVCQUFDLGtCQUFPLElBQUMsU0FBUyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssR0FBRyxHQUFHLElBQ3BDLENBQ1osQ0FBQztBQUNKLENBQUMsQ0FBQTtBQTVCWSxRQUFBLGtDQUFrQyxzQ0E0QjlDIn0=