first commit

This commit is contained in:
TuanVT
2026-05-23 09:48:07 +07:00
parent 03b9101bd5
commit b6ccde2c74
134 changed files with 7178 additions and 110 deletions
+54
View File
@@ -0,0 +1,54 @@
"use client";
import CustomPortal from "./custom-portal";
interface PropsLoading {
loading?: boolean;
}
const SCALE = 2.5;
export default function CustomLoading({ loading }: PropsLoading) {
if (!loading) return null;
return (
<CustomPortal>
<div className="fixed inset-0 flex items-center justify-center bg-black/60 z-[10002]">
<div
className="relative"
style={{
width: 40 * SCALE,
height: 40 * SCALE,
}}
>
{Array.from({ length: 12 }).map((_, i) => {
const rotate = i * 30;
return (
<div
key={i}
style={{
transformOrigin: `${20 * SCALE}px ${20 * SCALE}px`,
transform: `rotate(${rotate}deg)`,
animation: "spinnerFade 1.2s linear infinite",
animationDelay: `${-(1.1 - i * 0.1)}s`,
}}
className="absolute top-0 left-0 w-full h-full"
>
<div
style={{
top: 1.5 * SCALE,
left: 18.5 * SCALE,
width: 3 * SCALE,
height: 9 * SCALE,
}}
className="absolute bg-white rounded-sm"
/>
</div>
);
})}
</div>
</div>
</CustomPortal>
);
}