import React, { Fragment } from "react"; import Avatar from "@material-ui/core/Avatar"; import { Chip } from "@material-ui/core"; import { connect } from "react-redux"; import FolderSharedIcon from "@material-ui/icons/FolderShared"; import { makeStyles } from "@material-ui/core/styles"; import { BooleanField, BulkDeleteButton, Button, Datagrid, DeleteButton, Filter, List, NumberField, Pagination, TextField, useCreate, useMutation, useNotify, useTranslate, 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", "error"), } ); }; return ( ); }; export const RoomDirectorySaveButton = ({ record }) => { 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", "error"), } ); }; return ( ); }; const RoomDirectoryBulkActionButtons = props => ( ); const AvatarField = ({ source, className, record = {} }) => ( ); const RoomDirectoryFilter = ({ ...props }) => { const translate = useTranslate(); return ( ); }; export const FilterableRoomDirectoryList = ({ dispatch, ...props }) => { const classes = useStyles(); const translate = useTranslate(); const filter = props.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} > {roomIdFilter && ( )} {canonicalAliasFilter && ( )} {topicFilter && ( )} ); }; function mapStateToProps(state) { return { roomdirectoryfilters: state.admin.resources.room_directory.list.params.displayedFilters, }; } export const RoomDirectoryList = connect(mapStateToProps)( FilterableRoomDirectoryList );