Multi Step Loader
An animated loading component with multiple sequential steps.
Usage
"use client";
import React, { useState } from "react";
import { MultiStepLoader as Loader } from "../ui/multi-step-loader";
import { IconSquareRoundedX } from "@tabler/icons-react";
const loadingStates = [
{
text: "Buying a condo",
},
{
text: "Travelling in a flight",
},
{
text: "Meeting Tyler Durden",
},
{
text: "He makes soap",
},
{
text: "We goto a bar",
},
{
text: "Start a fight",
},
{
text: "We like it",
},
{
text: "Welcome to Fight Club",
},
];
export function MultiStepLoaderDemo() {
const [loading, setLoading] = useState(false);
return (
<div className="w-full h-[60vh] flex items-center justify-center">
<Loader loadingStates={loadingStates} loading={loading} duration={2000} />
<button
onClick={() => setLoading(true)}
className="bg-[#39C3EF] hover:bg-[#39C3EF]/90 text-black mx-auto text-sm md:text-base transition font-medium duration-200 h-10 rounded-lg px-8 flex items-center justify-center"
>
Click to load
</button>
{loading && (
<button
className="fixed top-4 right-4 text-black dark:text-white z-[120]"
onClick={() => setLoading(false)}
>
<IconSquareRoundedX className="h-10 w-10" />
</button>
)}
</div>
);
}