forked from github/plane
49 lines
1.9 KiB
TypeScript
49 lines
1.9 KiB
TypeScript
|
import { getRandomInt } from "../utils";
|
||
|
|
||
|
const CalendarDay = () => {
|
||
|
const dataCount = getRandomInt(0, 1);
|
||
|
const dataBlocks = Array.from({ length: dataCount }, (_, index) => (
|
||
|
<span key={index} className="h-8 w-full bg-custom-background-80 rounded mb-2" />
|
||
|
));
|
||
|
|
||
|
return (
|
||
|
<div className="flex w-full flex-col min-h-[9rem]">
|
||
|
<div className="flex items-center justify-end p-2 w-full">
|
||
|
<span className="h-6 w-6 bg-custom-background-80 rounded" />
|
||
|
</div>
|
||
|
<div className="flex flex-col gap-2.5 p-2">{dataBlocks}</div>
|
||
|
</div>
|
||
|
);
|
||
|
};
|
||
|
|
||
|
export const CalendarLayoutLoader = () => (
|
||
|
<div className="h-full w-full overflow-y-auto bg-custom-background-100 pt-4 animate-pulse">
|
||
|
<div className="mb-4 flex items-center justify-between gap-2 px-3">
|
||
|
<div className="flex items-center gap-2">
|
||
|
<span className="h-7 w-10 bg-custom-background-80 rounded" />
|
||
|
<span className="h-7 w-32 bg-custom-background-80 rounded" />
|
||
|
</div>
|
||
|
<div className="flex items-center gap-2">
|
||
|
<span className="h-7 w-12 bg-custom-background-80 rounded" />
|
||
|
<span className="h-7 w-20 bg-custom-background-80 rounded" />
|
||
|
</div>
|
||
|
</div>
|
||
|
<span className="relative grid divide-x-[0.5px] divide-custom-border-200 text-sm font-medium grid-cols-5">
|
||
|
{[...Array(5)].map((_, index) => (
|
||
|
<span key={index} className="h-11 w-full bg-custom-background-80" />
|
||
|
))}
|
||
|
</span>
|
||
|
<div className="h-full w-full overflow-y-auto">
|
||
|
<div className="grid h-full w-full grid-cols-1 divide-y-[0.5px] divide-custom-border-200 overflow-y-auto">
|
||
|
{[...Array(6)].map((_, index) => (
|
||
|
<div key={index} className="grid divide-x-[0.5px] divide-custom-border-200 grid-cols-5">
|
||
|
{[...Array(5)].map((_, index) => (
|
||
|
<CalendarDay key={index} />
|
||
|
))}
|
||
|
</div>
|
||
|
))}
|
||
|
</div>
|
||
|
</div>
|
||
|
</div>
|
||
|
);
|