import React, { Fragment } from "react"; import { Avatar, Chip } from "@mui/material"; import { connect } from "react-redux"; import FolderSharedIcon from "@mui/icons-material/FolderShared"; import { makeStyles } from "@material-ui/core/styles"; import { BooleanField, BulkDeleteButton, Button, Datagrid, DeleteButton, Filter, List, NumberField, Pagination, TextField, useCreate, useMutation, useNotify, useTranslate, useRecordContext, useRefresh, useUnselectAll, } from "react-admin"; const useStyles = makeStyles({ small: { height: "40px", width: "40px", }, }); const RoomDirectoryPagination = props => ( ); export const RoomDirectoryDeleteButton = props => { const translate = useTranslate(); return ( } /> ); }; export const RoomDirectoryBulkDeleteButton = props => ( } /> ); export const RoomDirectoryBulkSaveButton = ({ selectedIds }) => { const notify = useNotify(); const refresh = useRefresh(); const unselectAll = useUnselectAll(); const [createMany, { loading }] = useMutation(); const handleSend = values => { createMany( { type: "createMany", resource: "room_directory", payload: { ids: selectedIds, data: {} }, }, { onSuccess: ({ data }) => { notify("resources.room_directory.action.send_success"); unselectAll("rooms"); refresh(); }, onFailure: error => notify("resources.room_directory.action.send_failure", { type: "error", }), } ); }; return ( ); }; export const RoomDirectorySaveButton = props => { const record = useRecordContext(); const notify = useNotify(); const refresh = useRefresh(); const [create, { loading }] = useCreate("room_directory"); const handleSend = values => { create( { payload: { data: { id: record.id } }, }, { onSuccess: ({ data }) => { notify("resources.room_directory.action.send_success"); refresh(); }, onFailure: error => notify("resources.room_directory.action.send_failure", { type: "error", }), } ); }; return ( ); }; const RoomDirectoryBulkActionButtons = props => ( ); const AvatarField = ({ source, className, record = {} }) => ( ); const RoomDirectoryFilter = ({ ...props }) => { const translate = useTranslate(); return ( ); }; export const FilterableRoomDirectoryList = ({ roomDirectoryFilters, dispatch, ...props }) => { const classes = useStyles(); const filter = roomDirectoryFilters; const roomIdFilter = filter && filter.room_id ? true : false; const topicFilter = filter && filter.topic ? true : false; const canonicalAliasFilter = filter && filter.canonical_alias ? true : false; return ( } bulkActionButtons={} filters={} perPage={100} > "/rooms/" + id + "/show"}> {roomIdFilter && ( )} {canonicalAliasFilter && ( )} {topicFilter && ( )} ); }; function mapStateToProps(state) { return { roomDirectoryFilters: state.admin.resources.room_directory.list.params.displayedFilters, }; } export const RoomDirectoryList = connect(mapStateToProps)( FilterableRoomDirectoryList );