@rsc-labs/medusa-store-analytics-v2
Version:
Get analytics data about your store
73 lines • 9.37 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ProductsSoldCountCard = 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 icon_comparison_1 = require("../common/icon-comparison");
const percentage_comparison_1 = require("../common/percentage-comparison");
const react_1 = require("react");
const helpers_1 = require("../utils/helpers");
const ProductsSoldCountNumbers = ({ current, previous, compareEnabled }) => {
return ((0, jsx_runtime_1.jsxs)(material_1.Grid, { container: true, alignItems: 'center', spacing: 2, children: [(0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, children: (0, jsx_runtime_1.jsx)(ui_1.Heading, { level: "h1", children: current }) }), previous && compareEnabled &&
(0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, children: (0, jsx_runtime_1.jsxs)(material_1.Grid, { container: true, alignItems: 'center', children: [(0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, children: (0, jsx_runtime_1.jsx)(icon_comparison_1.IconComparison, { current: parseInt(current), previous: previous ? parseInt(previous) : undefined }) }), previous !== undefined && (0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, children: (0, jsx_runtime_1.jsx)(percentage_comparison_1.PercentageComparison, { current: current, label: "", previous: previous }) })] }) })] }));
};
const ProductsSoldCount = ({ 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/sold-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 == undefined || data.analytics == undefined || data.analytics.current == 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)(ProductsSoldCountNumbers, { current: data.analytics.current, previous: data.analytics.previous, compareEnabled: compareEnabled });
}
else {
return (0, jsx_runtime_1.jsx)(ui_1.Heading, { level: "h3", children: "No products for selected orders" });
}
};
const ProductsSoldCountCard = ({ 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: "Products sold" }) })] }) }), (0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, xs: 12, md: 12, children: (0, jsx_runtime_1.jsx)(ProductsSoldCount, { orderStatuses: orderStatuses, dateRange: dateRange, dateRangeCompareTo: dateRangeCompareTo, compareEnabled: compareEnabled }) })] }));
};
exports.ProductsSoldCountCard = ProductsSoldCountCard;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdHMtc29sZC1jb3VudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy91aS1jb21wb25lbnRzL3Byb2R1Y3RzL3Byb2R1Y3RzLXNvbGQtY291bnQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQTs7Ozs7Ozs7OztHQVVHO0FBRUgscUNBQThDO0FBQzlDLDJDQUE4QztBQUM5Qyw0Q0FBdUQ7QUFHdkQsK0RBQTJEO0FBQzNELDJFQUF1RTtBQUN2RSxpQ0FBNEM7QUFDNUMsOENBQXVEO0FBZXZELE1BQU0sd0JBQXdCLEdBQUcsQ0FBQyxFQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUE2RSxFQUFFLEVBQUU7SUFDbkosT0FBTyxDQUNMLHdCQUFDLGVBQUksSUFBQyxTQUFTLFFBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsQ0FBQyxhQUM5Qyx1QkFBQyxlQUFJLElBQUMsSUFBSSxrQkFDUix1QkFBQyxZQUFPLElBQUMsS0FBSyxFQUFDLElBQUksWUFDaEIsT0FBTyxHQUNBLEdBQ0wsRUFDTixRQUFRLElBQUksY0FBYztnQkFDM0IsdUJBQUMsZUFBSSxJQUFDLElBQUksa0JBQ1Isd0JBQUMsZUFBSSxJQUFDLFNBQVMsUUFBQyxVQUFVLEVBQUUsUUFBUSxhQUNsQyx1QkFBQyxlQUFJLElBQUMsSUFBSSxrQkFDUix1QkFBQyxnQ0FBYyxJQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEdBQUcsR0FDN0YsRUFDTixRQUFRLEtBQUssU0FBUyxJQUFJLHVCQUFDLGVBQUksSUFBQyxJQUFJLGtCQUNuQyx1QkFBQyw0Q0FBb0IsSUFBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBQyxFQUFFLEVBQUMsUUFBUSxFQUFFLFFBQVEs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