Website : rimsha.abasa.com
backdoor
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
var
/
www
/
talha_silentcontent
/
src
/
components
/
Filename :
PromptSettings.tsx
back
Copy
"use client"; import axios from "axios"; import { useEffect, useState } from "react"; import { RiDeleteBin6Line } from "react-icons/ri"; import { Card, CardContent, CardDescription, CardHeader, CardTitle, } from "./ui/card"; import { toast } from "./ui/use-toast"; import { useRouter } from "next/navigation"; import { Collapsible, CollapsibleContent, CollapsibleTrigger, } from "@/components/ui/collapsible"; import {EditPrompt} from "@/components/EditPrompt"; import { Button } from "./ui/button"; import { AiFillEdit } from "react-icons/ai"; import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, } from "@/components/ui/dialog" import { EditLongPrompt } from "./EditLongPrompt"; import DynamicAlertDialog from "@/components/ConfirmationDialog"; export default function PromptSettings({ id, isAdmin, }: { id: string; isAdmin: boolean; }) { const [prompts, setPrompts] = useState([]); const router = useRouter(); useEffect(() => { const fetchPrompts = async () => { const response = await axios.get(`/api/prompt/${id}`); setPrompts(response.data.data.prompts); console.log(response.data.data); }; fetchPrompts(); // eslint-disable-next-line react-hooks/exhaustive-deps }, []); // @ts-ignore const handleDeletePrompt = async (promptToDelete) => { try { const payload = { data: { prompt: promptToDelete, }, }; const response = await axios.delete("/api/prompt", payload); toast({ title: "Prompt Deleted", description: "Your Prompt has been deleted", }); //@ts-ignore window.location.reload(true); } catch (error) { console.error("Error deleting Prompt:", error); } }; return ( <div> {prompts?.length !== 0 && ( <Card className="mt-4"> <CardHeader className="pb-5"> <CardTitle className="text-3xl" >Your Prompts</CardTitle> </CardHeader> {prompts?.map((prompt, index: number) => ( <CardContent key={index}> <div className="text-xs "> <div className="flex text-base justify-between items-center "> {/* @ts-ignore */} ยท {prompt.name} {/* @ts-ignore */} {isAdmin && ( <div className="flex gap-5"> <Dialog> <DialogTrigger asChild> {/* <div className="text-sm inline-block cursor-pointer"> <AiFillEdit /> </div> */} <Button className="w-[90px] text-xs gap-2" type="button" variant={"gradient"} // @ts-ignore > Edit<AiFillEdit size={12} /> </Button> </DialogTrigger> <DialogContent> <DialogHeader> <DialogTitle>Edit Prompt</DialogTitle> {/* <DialogDescription> Edit Prompt </DialogDescription> */} </DialogHeader> {/* @ts-ignore */} {prompt.promptType === 'long' ? <EditLongPrompt prompt={prompt} />: <EditPrompt prompt={prompt}/>} </DialogContent> </Dialog> <DynamicAlertDialog title="Delete Prompt" description="Are you sure you want to delete this prompt? This action cannot be undone." // @ts-ignore onConfirm={() => handleDeletePrompt(prompt.prompt)} confirmText="Delete" cancelText="Cancel" // @ts-ignore keyToDelete={prompt.prompt} triggerButton={ <Button className="w-[90px] text-xs gap-2" variant={"delete"}> Delete<RiDeleteBin6Line size={12} /> </Button> } /> </div> )} </div> </div> </CardContent> ))} </Card> )} </div> ); }