import RoomDirectoryIcon from "@mui/icons-material/FolderShared";
import {
BooleanField,
BulkDeleteButton,
BulkDeleteButtonProps,
Button,
ButtonProps,
DatagridConfigurable,
DeleteButtonProps,
ExportButton,
DeleteButton,
List,
NumberField,
Pagination,
ResourceProps,
SelectColumnsButton,
TextField,
TopToolbar,
useCreate,
useDataProvider,
useListContext,
useNotify,
useTranslate,
useRecordContext,
useRefresh,
useUnselectAll,
} from "react-admin";
import { useMutation } from "@tanstack/react-query";
import AvatarField from "../components/AvatarField";
import { MakeAdminBtn } from "./rooms";
const RoomDirectoryPagination = () => ;
export const RoomDirectoryUnpublishButton = (props: DeleteButtonProps) => {
const translate = useTranslate();
return (
}
/>
);
};
export const RoomDirectoryBulkUnpublishButton = (props: BulkDeleteButtonProps) => (
}
/>
);
export const RoomDirectoryBulkPublishButton = (props: ButtonProps) => {
const { selectedIds } = useListContext();
const notify = useNotify();
const refresh = useRefresh();
const unselectAllRooms = useUnselectAll("rooms");
const dataProvider = useDataProvider();
const { mutate, isPending } = useMutation({
mutationFn: () =>
dataProvider.createMany("room_directory", {
ids: selectedIds,
data: {},
}),
onSuccess: () => {
notify("resources.room_directory.action.send_success");
unselectAllRooms();
refresh();
},
onError: () =>
notify("resources.room_directory.action.send_failure", {
type: "error",
}),
});
return (
);
};
export const RoomDirectoryPublishButton = (props: ButtonProps) => {
const record = useRecordContext();
const notify = useNotify();
const refresh = useRefresh();
const [create, { isLoading }] = useCreate();
if (!record) {
return null;
}
const handleSend = () => {
create(
"room_directory",
{ data: { id: record.id } },
{
onSuccess: () => {
notify("resources.room_directory.action.send_success");
refresh();
},
onError: () =>
notify("resources.room_directory.action.send_failure", {
type: "error",
}),
}
);
};
return (
);
};
const RoomDirectoryListActions = () => (
);
export const RoomDirectoryList = () => (
} perPage={50} actions={}>
"/rooms/" + id + "/show"}
bulkActionButtons={}
omit={["room_id", "canonical_alias", "topic"]}
>
);
const resource: ResourceProps = {
name: "room_directory",
icon: RoomDirectoryIcon,
list: RoomDirectoryList,
};
export default resource;