feat: page history diff (#1891)

* Show actual history changes
* V2 - WIP
* feat: page history diff
* fix: exclude content from history listing

---------

Co-authored-by: Jason Norwood-Young <jason@10layer.com>
This commit is contained in:
Philip Okugbe
2026-02-03 11:55:20 -08:00
committed by GitHub
co-authored by Jason Norwood-Young
parent f32bb298e0
commit 5506eb194b
34 changed files with 1434 additions and 154 deletions
@@ -1,29 +1,44 @@
import { usePageHistoryQuery } from "@/features/page-history/queries/page-history-query";
import { HistoryEditor } from "@/features/page-history/components/history-editor";
import { useTranslation } from "react-i18next";
import { useAtomValue } from "jotai";
import {
activeHistoryIdAtom,
activeHistoryPrevIdAtom,
} from "@/features/page-history/atoms/history-atoms";
interface HistoryProps {
historyId: string;
}
function HistoryView({ historyId }: HistoryProps) {
function HistoryView() {
const { t } = useTranslation();
const { data, isLoading, isError } = usePageHistoryQuery(historyId);
const historyId = useAtomValue(activeHistoryIdAtom);
const prevHistoryId = useAtomValue(activeHistoryPrevIdAtom);
if (isLoading) {
const {
data,
isLoading: isLoadingCurrent,
isError: isErrorCurrent,
} = usePageHistoryQuery(historyId);
const {
data: prevData,
isLoading: isLoadingPrev,
isError: isErrorPrev,
} = usePageHistoryQuery(prevHistoryId);
if (isLoadingCurrent || isLoadingPrev) {
return <></>;
}
if (isError || !data) {
if (isErrorCurrent || !data) {
return <div>{t("Error fetching page data.")}</div>;
}
return (
data && (
<div>
<HistoryEditor content={data.content} title={data.title} />
</div>
)
<div>
<HistoryEditor
content={data.content}
title={data.title}
previousContent={!isErrorPrev ? prevData?.content : undefined}
/>
</div>
);
}