refactor: extract ResetWarningModal from chat-input.tsx

This commit is contained in:
dayuan.jiang
2025-03-26 08:58:46 +00:00
parent 3b4072b113
commit da98a184f9
2 changed files with 52 additions and 35 deletions

View File

@@ -3,6 +3,7 @@
import React, { useCallback, useRef, useEffect, useState } from "react"; import React, { useCallback, useRef, useEffect, useState } from "react";
import { Button } from "@/components/ui/button"; import { Button } from "@/components/ui/button";
import { Textarea } from "@/components/ui/textarea"; import { Textarea } from "@/components/ui/textarea";
import { ResetWarningModal } from "@/components/reset-warning-modal";
import { import {
Loader2, Loader2,
Send, Send,
@@ -17,14 +18,6 @@ import {
TooltipProvider, TooltipProvider,
TooltipTrigger, TooltipTrigger,
} from "@/components/ui/tooltip"; } from "@/components/ui/tooltip";
import {
Dialog,
DialogContent,
DialogDescription,
DialogFooter,
DialogHeader,
DialogTitle,
} from "@/components/ui/dialog";
import Image from "next/image"; import Image from "next/image";
import { useDiagram } from "@/contexts/diagram-context"; import { useDiagram } from "@/contexts/diagram-context";
@@ -233,35 +226,11 @@ export function ChatInput({
</TooltipProvider> </TooltipProvider>
{/* Warning Modal */} {/* Warning Modal */}
<Dialog <ResetWarningModal
open={showClearDialog} open={showClearDialog}
onOpenChange={setShowClearDialog} onOpenChange={setShowClearDialog}
> onClear={handleClear}
<DialogContent> />
<DialogHeader>
<DialogTitle>Clear Everything?</DialogTitle>
<DialogDescription>
This will clear the current conversation and
reset the diagram. This action cannot be
undone.
</DialogDescription>
</DialogHeader>
<DialogFooter>
<Button
variant="outline"
onClick={() => setShowClearDialog(false)}
>
Cancel
</Button>
<Button
variant="destructive"
onClick={handleClear}
>
Clear Everything
</Button>
</DialogFooter>
</DialogContent>
</Dialog>
<HistoryDialog <HistoryDialog
showHistory={showHistory} showHistory={showHistory}

View File

@@ -0,0 +1,48 @@
"use client";
import { Button } from "@/components/ui/button";
import {
Dialog,
DialogContent,
DialogDescription,
DialogFooter,
DialogHeader,
DialogTitle,
} from "@/components/ui/dialog";
interface ResetWarningModalProps {
open: boolean;
onOpenChange: (open: boolean) => void;
onClear: () => void;
}
export function ResetWarningModal({
open,
onOpenChange,
onClear,
}: ResetWarningModalProps) {
return (
<Dialog open={open} onOpenChange={onOpenChange}>
<DialogContent>
<DialogHeader>
<DialogTitle>Clear Everything?</DialogTitle>
<DialogDescription>
This will clear the current conversation and reset the
diagram. This action cannot be undone.
</DialogDescription>
</DialogHeader>
<DialogFooter>
<Button
variant="outline"
onClick={() => onOpenChange(false)}
>
Cancel
</Button>
<Button variant="destructive" onClick={onClear}>
Clear Everything
</Button>
</DialogFooter>
</DialogContent>
</Dialog>
);
}