use export name in dialog instead of file id

This commit is contained in:
Josh Hawkins 2024-04-20 08:31:49 -05:00
parent 8092b28710
commit bdcccb75df
2 changed files with 28 additions and 7 deletions

View File

@ -6,7 +6,13 @@ import { isDesktop } from "react-device-detect";
import { FaDownload, FaPlay } from "react-icons/fa"; import { FaDownload, FaPlay } from "react-icons/fa";
import Chip from "../indicators/Chip"; import Chip from "../indicators/Chip";
import { Skeleton } from "../ui/skeleton"; import { Skeleton } from "../ui/skeleton";
import { Dialog, DialogContent, DialogFooter, DialogTitle } from "../ui/dialog"; import {
Dialog,
DialogContent,
DialogDescription,
DialogFooter,
DialogTitle,
} from "../ui/dialog";
import { Input } from "../ui/input"; import { Input } from "../ui/input";
import useKeyboardListener from "@/hooks/use-keyboard-listener"; import useKeyboardListener from "@/hooks/use-keyboard-listener";
import { Export } from "@/types/export"; import { Export } from "@/types/export";
@ -18,7 +24,7 @@ type ExportProps = {
exportedRecording: Export; exportedRecording: Export;
onSelect: (selected: Export) => void; onSelect: (selected: Export) => void;
onRename: (original: string, update: string) => void; onRename: (original: string, update: string) => void;
onDelete: (file: string) => void; onDelete: ({ file: string, exportName: string }) => void;
}; };
export default function ExportCard({ export default function ExportCard({
@ -62,6 +68,9 @@ export default function ExportCard({
> >
<DialogContent> <DialogContent>
<DialogTitle>Rename Export</DialogTitle> <DialogTitle>Rename Export</DialogTitle>
<DialogDescription>
Enter a new name for this export.
</DialogDescription>
{editName && ( {editName && (
<> <>
<Input <Input
@ -135,7 +144,12 @@ export default function ExportCard({
</Chip> </Chip>
<Chip <Chip
className="bg-gradient-to-br from-gray-400 to-gray-500 bg-gray-500 rounded-md cursor-pointer" className="bg-gradient-to-br from-gray-400 to-gray-500 bg-gray-500 rounded-md cursor-pointer"
onClick={() => onDelete(exportedRecording.id)} onClick={() =>
onDelete({
file: exportedRecording.id,
exportName: exportedRecording.name,
})
}
> >
<LuTrash className="size-4 text-destructive fill-destructive" /> <LuTrash className="size-4 text-destructive fill-destructive" />
</Chip> </Chip>

View File

@ -43,14 +43,19 @@ function Exports() {
// Deleting // Deleting
const [deleteClip, setDeleteClip] = useState<string | undefined>(); type DeleteClipType = {
file: string;
exportName: string;
};
const [deleteClip, setDeleteClip] = useState<DeleteClipType | undefined>();
const onHandleDelete = useCallback(() => { const onHandleDelete = useCallback(() => {
if (!deleteClip) { if (!deleteClip) {
return; return;
} }
axios.delete(`export/${deleteClip}`).then((response) => { axios.delete(`export/${deleteClip.file}`).then((response) => {
if (response.status == 200) { if (response.status == 200) {
setDeleteClip(undefined); setDeleteClip(undefined);
mutate(); mutate();
@ -86,7 +91,7 @@ function Exports() {
<AlertDialogHeader> <AlertDialogHeader>
<AlertDialogTitle>Delete Export</AlertDialogTitle> <AlertDialogTitle>Delete Export</AlertDialogTitle>
<AlertDialogDescription> <AlertDialogDescription>
Confirm deletion of {deleteClip}. Are you sure you want to delete {deleteClip?.exportName}?
</AlertDialogDescription> </AlertDialogDescription>
</AlertDialogHeader> </AlertDialogHeader>
<AlertDialogFooter> <AlertDialogFooter>
@ -149,7 +154,9 @@ function Exports() {
exportedRecording={item} exportedRecording={item}
onSelect={setSelected} onSelect={setSelected}
onRename={onHandleRename} onRename={onHandleRename}
onDelete={(id) => setDeleteClip(id)} onDelete={({ file, exportName }) =>
setDeleteClip({ file, exportName })
}
/> />
))} ))}
</div> </div>