Adds loader

This commit is contained in:
2025-05-28 14:36:44 -07:00
parent ec2e0b380f
commit 5604b6ffdc
2 changed files with 36 additions and 0 deletions

34
src/components/Loader.tsx Normal file
View File

@@ -0,0 +1,34 @@
import type { ReactNode } from "react";
/**
* Loader component for displaying a loading spinner or message during async route loads.
* Accepts optional children to customize the loading message.
*/
export function Loader({ children }: { children?: ReactNode }) {
return (
<div className="flex items-center justify-center py-12 text-slate-300">
<svg
className="animate-spin h-6 w-6 mr-3 text-violet-400"
xmlns="http://www.w3.org/2000/svg"
fill="none"
viewBox="0 0 24 24"
aria-hidden="true"
>
<circle
className="opacity-25"
cx="12"
cy="12"
r="10"
stroke="currentColor"
strokeWidth="4"
></circle>
<path
className="opacity-75"
fill="currentColor"
d="M4 12a8 8 0 018-8v4a4 4 0 00-4 4H4z"
></path>
</svg>
{children || <span>Loading</span>}
</div>
);
}