snowballtools-base/packages/frontend/src/components/Stepper.tsx
Nabarun Gogoi cfb299c79e
Implement vertical stepper in create new project with template flow (#14)
* Implement vertical stepper in create project page

* Handle if active step is not found

---------

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2023-12-20 16:30:08 +05:30

50 lines
1.1 KiB
TypeScript

import React from 'react';
import { StepperNav } from 'vertical-stepper-nav';
const COLOR_COMPLETED = '#059669';
const COLOR_ACTIVE = '#CFE6FC';
const COLOR_NOT_STARTED = '#F1F5F9';
interface StepperValue {
step: number;
route: string;
label: string;
}
interface StepperProps {
activeStep: number;
stepperValues: StepperValue[];
}
const Stepper = ({ activeStep, stepperValues }: StepperProps) => {
return (
<StepperNav
steps={stepperValues.map((stepperValue: StepperValue) => {
return {
stepContent: () => (
<div
className={`text-sm ${
activeStep === stepperValue.step
? 'text-black font-semibold'
: 'text-gray-600'
}`}
>
{stepperValue.label}
</div>
),
stepStatusCircleSize: 30,
stepStateColor: `${
activeStep > stepperValue.step
? COLOR_COMPLETED
: activeStep === stepperValue.step
? COLOR_ACTIVE
: COLOR_NOT_STARTED
}`,
};
})}
/>
);
};
export default Stepper;