diff --git a/packages/ui/src/features/code-review/components/ReviewPage.tsx b/packages/ui/src/features/code-review/components/ReviewPage.tsx index c0916bd426..373f311798 100644 --- a/packages/ui/src/features/code-review/components/ReviewPage.tsx +++ b/packages/ui/src/features/code-review/components/ReviewPage.tsx @@ -15,6 +15,7 @@ import { usePrDetails } from "../../git-interaction/usePrDetails"; import { makeFileKey } from "../../git-interaction/utils/fileKey"; import { usePanelLayoutStore } from "../../panels/panelLayoutStore"; import { useCwd } from "../../sidebar/useCwd"; +import { useDiscardAllChanges } from "../../task-detail/hooks/useDiscardAllChanges"; import { useDiscardFile } from "../../task-detail/hooks/useDiscardFile"; import { useStageToggle } from "../../task-detail/hooks/useStageToggle"; import { REVIEW_FILE_CACHE_TIME_MS, REVIEW_MAX_FILE_LINES } from "../constants"; @@ -267,6 +268,7 @@ function LocalReviewContent({ usePrefetchUntrackedFileContents(repoPath, untrackedFiles, true); const discardFile = useDiscardFile(repoPath); + const discardAllChanges = useDiscardAllChanges(repoPath); const stageToggle = useStageToggle(repoPath); const filesByKey = useMemo(() => { const map = new Map(); @@ -392,6 +394,7 @@ function LocalReviewContent({ onCollapseAll={collapseAll} onUncollapseFile={uncollapseFile} onRefresh={refetch} + onDiscardAll={totalFileCount > 0 ? discardAllChanges : undefined} effectiveSource={effectiveSource} branchSourceAvailable={branchSourceAvailable} prSourceAvailable={prSourceAvailable} diff --git a/packages/ui/src/features/code-review/components/ReviewShell.tsx b/packages/ui/src/features/code-review/components/ReviewShell.tsx index fb58ea014c..a351656134 100644 --- a/packages/ui/src/features/code-review/components/ReviewShell.tsx +++ b/packages/ui/src/features/code-review/components/ReviewShell.tsx @@ -108,6 +108,7 @@ export function ReviewShell({ onExpandAll, onCollapseAll, onRefresh, + onDiscardAll, effectiveSource, branchSourceAvailable, prSourceAvailable, @@ -229,6 +230,7 @@ export function ReviewShell({ onExpandAll={onExpandAll} onCollapseAll={onCollapseAll} onRefresh={onRefresh} + onDiscardAll={onDiscardAll} effectiveSource={effectiveSource} branchSourceAvailable={branchSourceAvailable} prSourceAvailable={prSourceAvailable} diff --git a/packages/ui/src/features/code-review/components/ReviewToolbar.tsx b/packages/ui/src/features/code-review/components/ReviewToolbar.tsx index 68c104a0b1..3c07915eb5 100644 --- a/packages/ui/src/features/code-review/components/ReviewToolbar.tsx +++ b/packages/ui/src/features/code-review/components/ReviewToolbar.tsx @@ -1,4 +1,10 @@ -import { ArrowsClockwise, Columns, Rows, X } from "@phosphor-icons/react"; +import { + ArrowCounterClockwise, + ArrowsClockwise, + Columns, + Rows, + X, +} from "@phosphor-icons/react"; import type { ResolvedDiffSource } from "@posthog/core/code-review/resolveDiffSource"; import { Button } from "@posthog/quill"; import { useDiffViewerStore } from "@posthog/ui/features/code-editor/diffViewerStore"; @@ -22,6 +28,7 @@ interface ReviewToolbarProps { onExpandAll: () => void; onCollapseAll: () => void; onRefresh?: () => void; + onDiscardAll?: () => void; effectiveSource?: ResolvedDiffSource; branchSourceAvailable?: boolean; prSourceAvailable?: boolean; @@ -35,6 +42,7 @@ export const ReviewToolbar = memo(function ReviewToolbar({ onExpandAll, onCollapseAll, onRefresh, + onDiscardAll, effectiveSource, branchSourceAvailable, prSourceAvailable, @@ -91,6 +99,18 @@ export const ReviewToolbar = memo(function ReviewToolbar({ )} + {onDiscardAll && ( + + + + )} +