import {
BooleanField,
BulkDeleteButton,
DateField,
Datagrid,
DatagridConfigurable,
DeleteButton,
ExportButton,
FunctionField,
List,
ListProps,
NumberField,
Pagination,
ReferenceField,
ReferenceManyField,
ResourceProps,
SearchInput,
SelectColumnsButton,
SelectField,
Show,
ShowProps,
Tab,
TabbedShowLayout,
TextField,
TopToolbar,
useRecordContext,
useTranslate,
} from "react-admin";
import { useTheme } from "@mui/material/styles";
import Box from "@mui/material/Box";
import FastForwardIcon from "@mui/icons-material/FastForward";
import HttpsIcon from "@mui/icons-material/Https";
import NoEncryptionIcon from "@mui/icons-material/NoEncryption";
import PageviewIcon from "@mui/icons-material/Pageview";
import UserIcon from "@mui/icons-material/Group";
import ViewListIcon from "@mui/icons-material/ViewList";
import VisibilityIcon from "@mui/icons-material/Visibility";
import EventIcon from "@mui/icons-material/Event";
import RoomIcon from "@mui/icons-material/ViewList";
import {
RoomDirectoryBulkUnpublishButton,
RoomDirectoryBulkPublishButton,
RoomDirectoryUnpublishButton,
RoomDirectoryPublishButton,
} from "./RoomDirectory";
import { date_format } from "./date";
const RoomPagination = () => (
);
const RoomTitle = () => {
const record = useRecordContext();
const translate = useTranslate();
let name = "";
if (record) {
name = record.name !== "" ? record.name : record.id;
}
return (
{translate("resources.rooms.name", 1)} {name}
);
};
const RoomShowActions = () => {
const record = useRecordContext();
const publishButton = record.public ? (
) : (
);
// FIXME: refresh after (un)publish
return (
{publishButton}
);
};
export const RoomShow = (props: ShowProps) => {
const translate = useTranslate();
return (
} title={}>
}>
}
path="detail"
>
}
path="members"
>
"/users/" + id}
bulkActionButtons={false}
>
}
path="permission"
>
}
path="state"
>
}
path="forward_extremities"
>
{translate("resources.rooms.helper.forward_extremities")}
);
};
const RoomBulkActionButtons = () => (
<>
>
);
const roomFilters = [];
const RoomListActions = () => (
);
export const RoomList = (props: ListProps) => {
const theme = useTheme();
return (
}
sort={{ field: "name", order: "ASC" }}
filters={roomFilters}
actions={}
>
}
omit={[
"joined_local_members",
"state_events",
"version",
"federatable",
]}
>
}
sx={{
[`& [data-testid="true"]`]: { color: theme.palette.success.main },
[`& [data-testid="false"]`]: { color: theme.palette.error.main },
}}
/>
record["name"] || record["canonical_alias"] || record["id"]
}
/>
);
};
const resource: ResourceProps = {
name: "rooms",
icon: RoomIcon,
list: RoomList,
show: RoomShow,
};
export default resource;