@redocly/theme
Version:
Shared UI components lib
36 lines • 1.49 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.useProductPicker = useProductPicker;
const react_router_dom_1 = require("react-router-dom");
const utils_1 = require("../../components/Product/utils");
const use_theme_hooks_1 = require("./use-theme-hooks");
const utils_2 = require("../utils");
function useProductPicker() {
const { useCurrentProduct, useProducts, useTelemetry, useLoadAndNavigate } = (0, use_theme_hooks_1.useThemeHooks)();
const currentProduct = useCurrentProduct();
const products = useProducts();
const telemetry = useTelemetry();
const navigate = (0, react_router_dom_1.useNavigate)();
const loadAndNavigate = useLoadAndNavigate();
function setProduct(product) {
if (!product)
return;
telemetry.sendProductPickedMessage([{ object: 'product', product: product.slug }]);
if (typeof document === 'undefined')
return;
if (product.name) {
const root = document.documentElement;
Array.from(root.classList)
.filter((c) => c.startsWith('product-'))
.forEach((c) => root.classList.remove(c));
root.classList.add((0, utils_1.getProductClassName)(product.name));
}
loadAndNavigate({ navigate, to: (0, utils_2.withPathPrefix)(product.link) });
}
return {
currentProduct,
products,
setProduct,
};
}
//# sourceMappingURL=use-product-picker.js.map