import {Post as PostType, Topic as TopicType, topicsCtx} from "@/contexts/topics";
import style from "./style.module.scss";
import {Preview} from "../preview";
import {iso8601ToFrench} from "@/utils/dates";
import {FormGroup} from "../form";
import {Slider} from "../slider";
import {Button} from "../button";
import {settingsCtx} from "@/contexts/settings";
import {useContext, useState, useMemo} from "preact/hooks";
import {Wysiwyg} from "@/components/wysiwyg";
import {
ChevronRight,
X,
} from "preact-feather";
import cn from "classnames";
import {Pagination} from "@/components/pagination";
import {Spinner} from "@/components/spinner";
import {logCtx} from "@/contexts/log";
const postsPerPage = 10;
export function Topic(props: {
topic: TopicType,
page: number,
setPage: (newPage: number) => void,
}) {
/**
* TODO
* prendre la générationDate du premier post et remplacer toutes la dates (IA) avec celle-ci en calculant le delta en en l'appliquant à chaque post
* Pour il faut remplacer la date des citations en prenant en compte le delta
*
*/
const [topicsContext, , topicsActions] = useContext(topicsCtx);
const [settings, setSettings] = useContext(settingsCtx);
const [, , logActions] = useContext(logCtx);
const [wysiwygText, setWysiwygText] = useState("");
const addQuote = (post: PostType) => {
setWysiwygText((wysiwygText.length > 1 ? `${wysiwygText}\n\n` : "") + post.content.split("\n").map(l => `> ${l}`).join("\n"))
}
const postsSlice = useMemo(
() => props.topic.posts.slice(props.page * postsPerPage, (props.page + 1) * postsPerPage),
[props.page, props.topic.posts]
);
const pendingGeneration = topicsContext.generation === "pending";
const pagination = (