@rsc-labs/medusa-store-analytics-v2
Version:
Get analytics data about your store
88 lines • 8.92 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.VariantsTopByCountCard = 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 variants_top_table_1 = require("./variants-top-table");
const helpers_1 = require("../utils/helpers");
const react_1 = require("react");
function transformToVariantTopTable(result) {
const currentMap = new Map();
result.current.forEach(currentItem => {
let currentCount = '0';
if (currentMap.get(currentItem.variantId)) {
const sum = currentMap.get(currentItem.variantId)?.sum;
if (sum) {
currentCount = sum;
}
}
currentMap.set(currentItem.variantId, {
productId: currentItem.productId,
productTitle: currentItem.productTitle,
variantTitle: currentItem.variantTitle,
thumbnail: currentItem.thumbnail,
sum: (parseInt(currentCount) + parseInt(currentItem.sum)).toString()
});
});
return Array.from(currentMap.values());
}
const VariantsTopByCount = ({ 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/products-analytics/popularity-by-count?${(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 products" });
}
if (data && data.analytics.dateRangeFrom) {
return (0, jsx_runtime_1.jsx)(variants_top_table_1.VariantsTopTable, { tableRows: transformToVariantTopTable(data.analytics) });
}
else {
return (0, jsx_runtime_1.jsx)(ui_1.Heading, { level: "h3", children: "No products for selected orders" });
}
};
const VariantsTopByCountCard = ({ 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, alignItems: 'center', 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: "Top variants" }) })] }) }), (0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, xs: 12, md: 12, children: (0, jsx_runtime_1.jsx)(VariantsTopByCount, { orderStatuses: orderStatuses, dateRange: dateRange, dateRangeCompareTo: dateRangeCompareTo, compareEnabled: compareEnabled }) })] }));
};
exports.VariantsTopByCountCard = VariantsTopByCountCard;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFyaWFudHMtdG9wLWJ5LWNvdW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3VpLWNvbXBvbmVudHMvcHJvZHVjdHMvdmFyaWFudHMtdG9wLWJ5LWNvdW50LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUE7Ozs7Ozs7Ozs7R0FVRztBQUVILHFDQUE4QztBQUM5QywyQ0FBOEM7QUFDOUMsNENBQXVEO0FBR3ZELDZEQUE2RTtBQUM3RSw4Q0FBdUQ7QUFDdkQsaUNBQTRDO0FBZ0M1QyxTQUFTLDBCQUEwQixDQUFDLE1BQXFDO0lBQ3ZFLE1BQU0sVUFBVSxHQUFHLElBQUksR0FBRyxFQUErQixDQUFDO0lBRTFELE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxFQUFFO1FBQ25DLElBQUksWUFBWSxHQUFHLEdBQUcsQ0FBQztRQUN2QixJQUFJLFVBQVUsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDMUMsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLEVBQUUsR0FBRyxDQUFDO1lBQ3ZELElBQUksR0FBRyxFQUFFLENBQUM7Z0JBQ1IsWUFBWSxHQUFHLEdBQUcsQ0FBQztZQUNyQixDQUFDO1FBQ0gsQ0FBQztRQUNELFVBQVUsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRTtZQUNwQyxTQUFTLEVBQUUsV0FBVyxDQUFDLFNBQVM7WUFDaEMsWUFBWSxFQUFFLFdBQVcsQ0FBQyxZQUFZO1lBQ3RDLFlBQVksRUFBRSxXQUFXLENBQUMsWUFBWTtZQUN0QyxTQUFTLEVBQUUsV0FBVyxDQUFDLFNBQVM7WUFDaEMsR0FBRyxFQUFFLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxHQUFHLFFBQVEsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7U0FD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