diff --git a/src/components/media.tsx b/src/components/media.tsx index 29fc204..893b1af 100644 --- a/src/components/media.tsx +++ b/src/components/media.tsx @@ -21,15 +21,18 @@ import { Toolbar, ToolbarProps, useCreate, + useDataProvider, useDelete, useNotify, useRecordContext, useRefresh, useTranslate, } from "react-admin"; +import { useMutation } from "react-query"; import { Link } from "react-router-dom"; import { dateParser } from "./date"; +import { DeleteMediaParams, SynapseDataProvider } from "../synapse/dataProvider"; import { getMediaUrl } from "../synapse/synapse"; const DeleteMediaDialog = ({ open, onClose, onSubmit }) => { @@ -37,7 +40,7 @@ const DeleteMediaDialog = ({ open, onClose, onSubmit }) => { const DeleteMediaToolbar = (props: ToolbarProps) => ( - } /> + } /> @@ -46,21 +49,21 @@ const DeleteMediaDialog = ({ open, onClose, onSubmit }) => { return ( - {translate("resources.delete_media.action.send")} + {translate("delete_media.action.send")} - {translate("resources.delete_media.helper.send")} + {translate("delete_media.helper.send")} } onSubmit={onSubmit}> { @@ -81,34 +84,30 @@ export const DeleteMediaButton = (props: ButtonProps) => { const theme = useTheme(); const [open, setOpen] = useState(false); const notify = useNotify(); - const [deleteOne, { isLoading }] = useDelete(); + const dataProvider = useDataProvider(); + const { mutate: deleteMedia, isLoading } = useMutation( + (values: DeleteMediaParams) => dataProvider.deleteMedia(values), + { + onSuccess: () => { + notify("delete_media.action.send_success"); + closeDialog(); + }, + onError: () => { + notify("delete_media.action.send_failure", { + type: "error", + }); + }, + } + ); const openDialog = () => setOpen(true); const closeDialog = () => setOpen(false); - const deleteMedia = (values: { before_ts: string; size_gt: number; keep_profiles: boolean }) => { - deleteOne( - "delete_media", - // needs meta.before_ts, meta.size_gt and meta.keep_profiles - { meta: values }, - { - onSuccess: () => { - notify("resources.delete_media.action.send_success"); - closeDialog(); - }, - onError: () => - notify("resources.delete_media.action.send_failure", { - type: "error", - }), - } - ); - }; - return ( <>