@redocly/theme
Version:
Shared UI components lib
29 lines • 1.26 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.useCodeWalkthrough = useCodeWalkthrough;
const hooks_1 = require("../../../core/hooks");
function useCodeWalkthrough(steps, attributes) {
const { filters, filesets, inputs, toggles, __idx } = attributes;
/*
We only enable deep linking for the first CodeWalkthrough,
because we don't expect more than one on the same page.
Any subsequent walkthroughs have it disabled to avoid
collisions/conflicts in the URL.
*/
const enableDeepLink = __idx === 1;
const stepsState = (0, hooks_1.useCodeWalkthroughSteps)(steps, enableDeepLink);
const controlsState = (0, hooks_1.useCodeWalkthroughControls)(filters, inputs, toggles, enableDeepLink);
const files = filesets
.filter((fileset) => controlsState.areConditionsMet(fileset))
.flatMap((fileset) => fileset.files || []);
const downloadAssociatedFiles = filesets
.filter((fileset) => controlsState.areConditionsMet(fileset))
.flatMap((fileset) => fileset.downloadAssociatedFiles || []);
return {
stepsState,
controlsState,
downloadAssociatedFiles,
files,
};
}
//# sourceMappingURL=use-code-walkthrough.js.map