mirror of
https://github.com/UA-Fediland/synapse-admin.git
synced 2024-11-24 15:31:26 +00:00
Refactor ServerNotices
https://marmelab.com/react-admin/Upgrade.html#usequery-usemutation-and-usequerywithstore-have-been-removed Change-Id: Id12f727d8813f78c3ae300035aeb1333a1272e02
This commit is contained in:
parent
6430aca02b
commit
4204eb902f
1 changed files with 27 additions and 29 deletions
|
@ -7,6 +7,7 @@ import {
|
||||||
Toolbar,
|
Toolbar,
|
||||||
required,
|
required,
|
||||||
useCreate,
|
useCreate,
|
||||||
|
useDataProvider,
|
||||||
useListContext,
|
useListContext,
|
||||||
useNotify,
|
useNotify,
|
||||||
useRecordContext,
|
useRecordContext,
|
||||||
|
@ -47,11 +48,7 @@ const ServerNoticeDialog = ({ open, loading, onClose, onSubmit }) => {
|
||||||
<DialogContentText>
|
<DialogContentText>
|
||||||
{translate("resources.servernotices.helper.send")}
|
{translate("resources.servernotices.helper.send")}
|
||||||
</DialogContentText>
|
</DialogContentText>
|
||||||
<SimpleForm
|
<SimpleForm toolbar={<ServerNoticeToolbar />} onSubmit={onSubmit}>
|
||||||
toolbar={<ServerNoticeToolbar />}
|
|
||||||
redirect={false}
|
|
||||||
onSubmit={onSubmit}
|
|
||||||
>
|
|
||||||
<TextInput
|
<TextInput
|
||||||
source="body"
|
source="body"
|
||||||
label="resources.servernotices.fields.body"
|
label="resources.servernotices.fields.body"
|
||||||
|
@ -114,43 +111,44 @@ export const ServerNoticeButton = () => {
|
||||||
export const ServerNoticeBulkButton = () => {
|
export const ServerNoticeBulkButton = () => {
|
||||||
const { selectedIds } = useListContext();
|
const { selectedIds } = useListContext();
|
||||||
const [open, setOpen] = useState(false);
|
const [open, setOpen] = useState(false);
|
||||||
|
const openDialog = () => setOpen(true);
|
||||||
|
const closeDialog = () => setOpen(false);
|
||||||
const notify = useNotify();
|
const notify = useNotify();
|
||||||
const unselectAllUsers = useUnselectAll("users");
|
const unselectAllUsers = useUnselectAll("users");
|
||||||
const { createMany, isloading } = useMutation();
|
const dataProvider = useDataProvider();
|
||||||
|
|
||||||
const handleDialogOpen = () => setOpen(true);
|
const { mutate: sendNotices, isLoading } = useMutation(
|
||||||
const handleDialogClose = () => setOpen(false);
|
data =>
|
||||||
|
dataProvider.createMany("servernotices", {
|
||||||
const handleSend = values => {
|
ids: selectedIds,
|
||||||
createMany(
|
data: data,
|
||||||
["servernotices", "createMany", { ids: selectedIds, data: values }],
|
}),
|
||||||
{
|
{
|
||||||
onSuccess: data => {
|
onSuccess: () => {
|
||||||
notify("resources.servernotices.action.send_success");
|
notify("resources.servernotices.action.send_success");
|
||||||
unselectAllUsers();
|
unselectAllUsers();
|
||||||
handleDialogClose();
|
closeDialog();
|
||||||
},
|
},
|
||||||
onError: error =>
|
onError: () =>
|
||||||
notify("resources.servernotices.action.send_failure", {
|
notify("resources.servernotices.action.send_failure", {
|
||||||
type: "error",
|
type: "error",
|
||||||
}),
|
}),
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
};
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<Button
|
<Button
|
||||||
label="resources.servernotices.send"
|
label="resources.servernotices.send"
|
||||||
onClick={handleDialogOpen}
|
onClick={openDialog}
|
||||||
disabled={isloading}
|
disabled={isLoading}
|
||||||
>
|
>
|
||||||
<MessageIcon />
|
<MessageIcon />
|
||||||
</Button>
|
</Button>
|
||||||
<ServerNoticeDialog
|
<ServerNoticeDialog
|
||||||
open={open}
|
open={open}
|
||||||
onClose={handleDialogClose}
|
onClose={closeDialog}
|
||||||
onSubmit={handleSend}
|
onSubmit={sendNotices}
|
||||||
/>
|
/>
|
||||||
</>
|
</>
|
||||||
);
|
);
|
||||||
|
|
Loading…
Reference in a new issue