@yamada-ui/stepper
Version:
Yamada UI stepper component
78 lines (77 loc) • 2.42 kB
JavaScript
"use client"
;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
// src/use-steps.ts
var use_steps_exports = {};
__export(use_steps_exports, {
useSteps: () => useSteps
});
module.exports = __toCommonJS(use_steps_exports);
var import_react = require("react");
var useSteps = ({ count, index = 0 }) => {
const [activeStep, setActiveStep] = (0, import_react.useState)(index);
const maxStep = typeof count === "number" ? count - 1 : 0;
const activeStepPercent = activeStep / maxStep;
const isActiveStep = (0, import_react.useCallback)(
(step) => step === activeStep,
[activeStep]
);
const isCompleteStep = (0, import_react.useCallback)(
(step) => step < activeStep,
[activeStep]
);
const isIncompleteStep = (0, import_react.useCallback)(
(step) => step > activeStep,
[activeStep]
);
const getStepStatus = (0, import_react.useCallback)(
(step) => {
if (step < activeStep) return "complete";
if (step > activeStep) return "incomplete";
return "active";
},
[activeStep]
);
const onStepNext = (0, import_react.useCallback)(
() => setActiveStep(
(step) => typeof count === "number" ? Math.min(count, step + 1) : step + 1
),
[count]
);
const onStepPrev = (0, import_react.useCallback)(
() => setActiveStep((step) => Math.max(0, step - 1)),
[]
);
return {
activeStep,
activeStepPercent,
getStepStatus,
isActiveStep,
isCompleteStep,
isIncompleteStep,
setActiveStep,
onStepNext,
onStepPrev
};
};
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
useSteps
});
//# sourceMappingURL=use-steps.js.map