@navikt/ds-react
Version:
React components from the Norwegian Labour and Welfare Administration.
39 lines • 3.12 kB
JavaScript
var __rest = (this && this.__rest) || function (s, e) {
var t = {};
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
t[p] = s[p];
if (s != null && typeof Object.getOwnPropertySymbols === "function")
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
t[p[i]] = s[p[i]];
}
return t;
};
import React, { forwardRef } from "react";
import { useRenameCSS } from "../theme/Theme.js";
import { Label } from "../typography/index.js";
import { composeEventHandlers } from "../util/composeEventHandlers.js";
import { useStepperContext } from "./context.js";
export const Step = forwardRef((_a, ref) => {
var { className, children, as: Component = "a", completed = false, interactive, onClick } = _a, rest = __rest(_a, ["className", "children", "as", "completed", "interactive", "onClick"]);
const { cn } = useRenameCSS();
const context = useStepperContext();
const { activeStep } = context;
const isInteractive = interactive !== null && interactive !== void 0 ? interactive : context === null || context === void 0 ? void 0 : context.interactive;
const Comp = isInteractive ? Component : "div";
const handleStepClick = () => {
isInteractive && context.onStepChange(context.index + 1);
};
return (React.createElement(Comp, Object.assign({}, rest, { "aria-current": activeStep === context.index ? "step" : undefined, ref: ref, className: cn("navds-stepper__step", className, {
"navds-stepper__step--active": activeStep === context.index,
"navds-stepper__step--behind": activeStep > context.index,
"navds-stepper__step--non-interactive": !isInteractive,
"navds-stepper__step--completed": completed,
}), "data-active": activeStep === context.index, "data-completed": completed, "data-interactive": isInteractive, onClick: composeEventHandlers(onClick, handleStepClick) }),
completed ? (React.createElement("span", { className: cn("navds-stepper__circle navds-stepper__circle--success") },
React.createElement("svg", { width: "14", height: "10", viewBox: "0 0 14 10", fill: "none", xmlns: "http://www.w3.org/2000/svg", focusable: false, role: "presentation", "aria-hidden": true },
React.createElement("path", { d: "M4.93563 6.41478L11.3755 0.404669C11.9796 -0.160351 12.9294 -0.130672 13.4959 0.47478C14.0624 1.08027 14.0299 2.03007 13.4249 2.59621L5.92151 9.59934C5.64138 9.85904 5.27598 10 4.90064 10C4.5069 10 4.12756 9.84621 3.83953 9.56111L1.33953 7.06111C0.75401 6.47558 0.75401 5.52542 1.33953 4.93989C1.92506 4.35437 2.87522 4.35437 3.46075 4.93989L4.93563 6.41478Z", fill: "currentColor" })))) : (React.createElement(Label, { className: cn("navds-stepper__circle"), as: "span", "aria-hidden": "true" }, context.index + 1)),
React.createElement(Label, { as: "span", className: cn("navds-stepper__content") }, children)));
});
export default Step;
//# sourceMappingURL=Step.js.map