"use client"; import { memo } from "react"; import { PanelRoot } from "./panel-primitives"; import { useIsTaskArchived, ArchivedPanelPlaceholder } from "./task-archived-context"; import { ChangesPanelHeader } from "./changes-panel-header"; import { filterUnpushedCommits, mergeCommits } from "./changes-panel-helpers"; import { useChangesPanelData, buildChangesPanelBodyProps } from "./changes-panel-data"; import { ChangesPanelBody } from "./changes-panel-body"; import type { CommitDetailTarget, OpenDiffOptions } from "./changes-diff-target"; import { useRequestChangesWalkthrough } from "@/hooks/domains/session/use-request-changes-walkthrough"; export { filterUnpushedCommits, mergeCommits }; type ChangesPanelProps = { onOpenDiffFile: (path: string, options?: OpenDiffOptions) => void; onEditFile: (path: string, repo?: string) => void; onOpenCommitDetail?: (target: CommitDetailTarget) => void; onOpenDiffAll?: () => void; onOpenReview?: () => void; }; const ChangesPanel = memo(function ChangesPanel(props: ChangesPanelProps) { const isArchived = useIsTaskArchived(); const data = useChangesPanelData(); const requestWalkthrough = useRequestChangesWalkthrough({ taskId: data.activeTaskId, sessionId: data.activeSessionId, ready: data.walkthroughRequestReady, }); if (isArchived) return ; return ( ); }); export { ChangesPanel, ChangesPanelBody, useChangesPanelData, buildChangesPanelBodyProps }; export type { ChangesPanelBodyProps } from "./changes-panel-data";