---
import type { InferEntrySchema } from "astro:content";
import { Image } from "astro:assets";
import { blog, utils } from "@/config";
import Balloon from "./Balloon.astro";
interface Props {
id: string;
data: InferEntrySchema<"blog">;
layer: number;
}
const { id, data, layer } = Astro.props;
const image = await (async () => {
if (!data.image) return;
const img = data.image.match(/.*(?=\.png)/gm);
if (img === null) return;
return await import(`../../content/posts/assets/${img[0]}.png`).then(
(x) => x.default,
);
})();
const date = (() => {
const year = data.date.getFullYear() + "";
const month = data.date.getMonth() + 1 + "";
const date = data.date.getDate() + "";
return {
year: "0".repeat(4 - year.length) + year,
month: "0".repeat(2 - month.length) + month,
date: "0".repeat(2 - date.length) + date,
};
})();
const positions: [number, number] = [Math.random(), Math.random()];
const offsets: [number, number][] = [
[0, 0],
[
Math.random() * blog.post.drift[0] - blog.post.drift[0] / 2,
Math.random() * 0.5 * blog.post.drift[1] - blog.post.drift[1] / 2,
],
[
Math.random() * blog.post.drift[0] - blog.post.drift[0] / 2,
Math.random() * 0.5 * blog.post.drift[1] - blog.post.drift[1] / 2,
],
[
Math.random() * blog.post.drift[0] - blog.post.drift[0] / 2,
Math.random() * 0.5 * blog.post.drift[1] - blog.post.drift[1] / 2,
],
];
---
`--x-offset-${i}: calc((100svw - ${blog.post.width + 2 * blog.post.xPadding}px) * ${positions[0] + x[0]} + ${blog.post.xPadding}px);
--y-offset-${i}: ${blog.post.yLeeway * 2 * (positions[1] + x[1]) - blog.post.yLeeway}px;`,
)
.join("\n")}
--timing: ${
blog.post.timing[0] +
Math.random() * (blog.post.timing[1] - blog.post.timing[0])
}s;
/* config */
--width: ${blog.post.width}px;
--y-gap: ${blog.post.yGap}px;
`}
>
{
// new Array(Math.floor(utils.getRandom(blog.balloons.numBalloons)))
// .fill(0)
// .map((_, i) => )
(() => {
const len = Math.round(utils.getRandom(blog.balloons.numBalloons));
const arr = new Array(len).fill(0);
return arr.map((_, i) => );
})()
}