clean up HistoryDisplay a little bit
This commit is contained in:
parent
c900201417
commit
13f93e259d
@ -19,29 +19,10 @@ interface Props {
|
|||||||
export default function HistoryDisplay({ shouldDisableReverts }: Props) {
|
export default function HistoryDisplay({ shouldDisableReverts }: Props) {
|
||||||
const { commits, head, setHead } = useProjectStore();
|
const { commits, head, setHead } = useProjectStore();
|
||||||
|
|
||||||
// TODO: Clean this up
|
// TODO*: Clean this up more
|
||||||
|
|
||||||
const newHistory = Object.values(commits).flatMap((commit) => {
|
// Put all commits into an array and sort by created date (oldest first)
|
||||||
if (
|
const flatHistory = Object.values(commits).sort(
|
||||||
commit.type === "ai_create" ||
|
|
||||||
commit.type === "ai_edit" ||
|
|
||||||
commit.type === "code_create"
|
|
||||||
) {
|
|
||||||
return {
|
|
||||||
type: commit.type,
|
|
||||||
hash: commit.hash,
|
|
||||||
summary: summarizeHistoryItem(commit),
|
|
||||||
parentHash: commit.parentHash,
|
|
||||||
code: commit.variants[commit.selectedVariantIndex].code,
|
|
||||||
inputs: commit.inputs,
|
|
||||||
date_created: commit.date_created,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
return [];
|
|
||||||
});
|
|
||||||
|
|
||||||
// Sort by date created
|
|
||||||
newHistory.sort(
|
|
||||||
(a, b) =>
|
(a, b) =>
|
||||||
new Date(a.date_created).getTime() - new Date(b.date_created).getTime()
|
new Date(a.date_created).getTime() - new Date(b.date_created).getTime()
|
||||||
);
|
);
|
||||||
@ -51,28 +32,32 @@ export default function HistoryDisplay({ shouldDisableReverts }: Props) {
|
|||||||
currentHash: string | null
|
currentHash: string | null
|
||||||
) => {
|
) => {
|
||||||
if (!parentHash) return null;
|
if (!parentHash) return null;
|
||||||
const parentIndex = newHistory.findIndex(
|
const parentIndex = flatHistory.findIndex(
|
||||||
(item) => item.hash === parentHash
|
(item) => item.hash === parentHash
|
||||||
);
|
);
|
||||||
const currentIndex = newHistory.findIndex(
|
const currentIndex = flatHistory.findIndex(
|
||||||
(item) => item.hash === currentHash
|
(item) => item.hash === currentHash
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// Only set parent version if the parent is not the previous commit
|
||||||
|
// and if it's not the first commit
|
||||||
return parentIndex !== -1 && parentIndex != currentIndex - 1
|
return parentIndex !== -1 && parentIndex != currentIndex - 1
|
||||||
? parentIndex + 1
|
? parentIndex + 1
|
||||||
: null;
|
: null;
|
||||||
};
|
};
|
||||||
|
|
||||||
// Update newHistory to include the parent version
|
// Annotate history items with a summary and parent version
|
||||||
const updatedHistory = newHistory.map((item) => ({
|
const annotatedHistory = flatHistory.map((item) => ({
|
||||||
...item,
|
...item,
|
||||||
|
summary: summarizeHistoryItem(item),
|
||||||
parentVersion: setParentVersion(item.parentHash, item.hash),
|
parentVersion: setParentVersion(item.parentHash, item.hash),
|
||||||
}));
|
}));
|
||||||
|
|
||||||
return updatedHistory.length === 0 ? null : (
|
return annotatedHistory.length === 0 ? null : (
|
||||||
<div className="flex flex-col h-screen">
|
<div className="flex flex-col h-screen">
|
||||||
<h1 className="font-bold mb-2">Versions</h1>
|
<h1 className="font-bold mb-2">Versions</h1>
|
||||||
<ul className="space-y-0 flex flex-col-reverse">
|
<ul className="space-y-0 flex flex-col-reverse">
|
||||||
{updatedHistory.map((item, index) => (
|
{annotatedHistory.map((item, index) => (
|
||||||
<li key={index}>
|
<li key={index}>
|
||||||
<Collapsible>
|
<Collapsible>
|
||||||
<div
|
<div
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user