@redocly/theme
Version:
Shared UI components lib
30 lines • 1.44 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.useCodeWalkthrough = useCodeWalkthrough;
const use_code_walkthrough_controls_1 = require("./use-code-walkthrough-controls");
const use_code_walkthrough_steps_1 = require("./use-code-walkthrough-steps");
function useCodeWalkthrough({ steps, attributes, root }) {
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, use_code_walkthrough_steps_1.useCodeWalkthroughSteps)({ steps, enableDeepLink, root });
const controlsState = (0, use_code_walkthrough_controls_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