@redocly/theme
Version:
Shared UI components lib
23 lines (20 loc) • 747 B
text/typescript
import { useNavigate } from 'react-router-dom';
import { useThemeHooks } from '@redocly/theme/core/hooks';
export function useProductPicker() {
const { useCurrentProduct, useProducts, useOtelTelemetry, useLoadAndNavigate } = useThemeHooks();
const currentProduct = useCurrentProduct();
const products = useProducts();
const otelTelemetry = useOtelTelemetry();
const navigate = useNavigate();
const loadAndNavigate = useLoadAndNavigate();
function setProduct(product: typeof currentProduct) {
if (!product) return;
otelTelemetry.send({ type: 'product.picked', payload: { product: product.slug } });
loadAndNavigate({ navigate, to: product.link });
}
return {
currentProduct,
products,
setProduct,
};
}