mirror of
https://github.com/DayuanJiang/next-ai-draw-io.git
synced 2026-01-02 22:32:27 +08:00
refactor: extract ResetWarningModal from chat-input.tsx
This commit is contained in:
@@ -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}
|
||||||
|
|||||||
48
components/reset-warning-modal.tsx
Normal file
48
components/reset-warning-modal.tsx
Normal 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>
|
||||||
|
);
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user