import React, { useState } from "react"; import { Button, SaveButton, SimpleForm, TextInput, Toolbar, required, useCreate, useListContext, useNotify, useRecordContext, useTranslate, useUnselectAll, } from "react-admin"; import { useMutation } from "react-query"; import MessageIcon from "@mui/icons-material/Message"; import IconCancel from "@mui/icons-material/Cancel"; import { Dialog, DialogContent, DialogContentText, DialogTitle, } from "@mui/material"; const ServerNoticeDialog = ({ open, loading, onClose, onSend }) => { const translate = useTranslate(); const ServerNoticeToolbar = props => ( ); return ( {translate("resources.servernotices.action.send")} {translate("resources.servernotices.helper.send")} } redirect={false} save={onSend} > ); }; export const ServerNoticeButton = () => { const record = useRecordContext(); const [open, setOpen] = useState(false); const notify = useNotify(); const [create, { isloading }] = useCreate("servernotices"); const handleDialogOpen = () => setOpen(true); const handleDialogClose = () => setOpen(false); const handleSend = values => { create( { payload: { data: { id: record.id, ...values } } }, { onSuccess: () => { notify("resources.servernotices.action.send_success"); handleDialogClose(); }, onError: () => notify("resources.servernotices.action.send_failure", { type: "error", }), } ); }; return ( <> ); }; export const ServerNoticeBulkButton = () => { const { selectedIds } = useListContext(); const [open, setOpen] = useState(false); const notify = useNotify(); const unselectAll = useUnselectAll(); const { createMany, isloading } = useMutation(); const handleDialogOpen = () => setOpen(true); const handleDialogClose = () => setOpen(false); const handleSend = values => { createMany( ["servernotices", "createMany", { ids: selectedIds, data: values }], { onSuccess: data => { notify("resources.servernotices.action.send_success"); unselectAll("users"); handleDialogClose(); }, onError: error => notify("resources.servernotices.action.send_failure", { type: "error", }), } ); }; return ( <> ); };