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