@alphabite/medusa-wishlist
Version:
Alphabite's Medusa Wishlist Plugin
55 lines (54 loc) • 1.82 kB
JavaScript
"use strict";
const jsxRuntime = require("react/jsx-runtime");
const adminSdk = require("@medusajs/admin-sdk");
const ui = require("@medusajs/ui");
const reactQuery = require("@tanstack/react-query");
const Medusa = require("@medusajs/js-sdk");
const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
const Medusa__default = /* @__PURE__ */ _interopDefault(Medusa);
const sdk = new Medusa__default.default({
baseUrl: __BACKEND_URL__ || "http://localhost:9000",
debug: process.env.NODE_ENV === "development",
auth: {
type: "session"
}
});
const ProductWidget = ({ data: product }) => {
const { data, isLoading } = reactQuery.useQuery({
queryFn: () => sdk.client.fetch(`/admin/products/${product.id}/wishlist`),
queryKey: [["products", product.id, "wishlist"]]
});
return /* @__PURE__ */ jsxRuntime.jsxs(ui.Container, { className: "divide-y p-0", children: [
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center justify-between px-6 py-4", children: /* @__PURE__ */ jsxRuntime.jsx(ui.Heading, { level: "h2", children: "Wishlist" }) }),
/* @__PURE__ */ jsxRuntime.jsx(ui.Text, { className: "px-6 py-4", children: isLoading ? "Loading..." : `This product is in ${(data == null ? void 0 : data.count) || 0} wishlist(s).` })
] });
};
adminSdk.defineWidgetConfig({
zone: "product.details.before"
});
const widgetModule = { widgets: [
{
Component: ProductWidget,
zone: ["product.details.before"]
}
] };
const routeModule = {
routes: []
};
const menuItemModule = {
menuItems: []
};
const formModule = { customFields: {} };
const displayModule = {
displays: {}
};
const i18nModule = { resources: {} };
const plugin = {
widgetModule,
routeModule,
menuItemModule,
formModule,
displayModule,
i18nModule
};
module.exports = plugin;