refactor(admin): use UserField to replace chat and file userId display

pull/90/head
moonrailgun 2 years ago
parent 0f902d4766
commit ff165e3949

@ -1,11 +1,28 @@
import React from 'react'; import React from 'react';
import { ReferenceField, ReferenceFieldProps, TextField } from 'react-admin'; import {
ReferenceField,
ReferenceFieldProps,
TextField,
useRecordContext,
} from 'react-admin';
const SYSTEM_USERID = '000000000000000000000000';
export const UserField: React.FC<Omit<ReferenceFieldProps, 'reference'>> = export const UserField: React.FC<Omit<ReferenceFieldProps, 'reference'>> =
React.memo((props) => { React.memo((props) => {
const record = useRecordContext(props);
if (props.source && record) {
if (record[props.source] === SYSTEM_USERID) {
return <div>System</div>;
}
}
return ( return (
<ReferenceField link="show" {...props} reference="users"> <ReferenceField link="show" {...props} reference="users">
<>
<TextField source="nickname" /> <TextField source="nickname" />
(<TextField source="email" />)
</>
</ReferenceField> </ReferenceField>
); );
}); });

@ -9,6 +9,7 @@ import {
SearchInput, SearchInput,
useTranslate, useTranslate,
} from 'react-admin'; } from 'react-admin';
import { UserField } from '../components/UserField';
export const MessageList: React.FC = () => { export const MessageList: React.FC = () => {
const translate = useTranslate(); const translate = useTranslate();
@ -27,7 +28,7 @@ export const MessageList: React.FC = () => {
<Datagrid rowClick="show"> <Datagrid rowClick="show">
<TextField source="id" sortable={true} sortByOrder="DESC" /> <TextField source="id" sortable={true} sortByOrder="DESC" />
<TextField source="content" /> <TextField source="content" />
<TextField source="author" /> <UserField source="author" />
<ReferenceField source="groupId" reference="groups" /> <ReferenceField source="groupId" reference="groups" />
<TextField source="converseId" /> <TextField source="converseId" />
<BooleanField source="hasRecall" /> <BooleanField source="hasRecall" />

@ -1,13 +1,7 @@
import React from 'react'; import React from 'react';
import { import { Datagrid, DateField, List, TextField, UrlField } from 'react-admin';
Datagrid,
DateField,
List,
ReferenceField,
TextField,
UrlField,
} from 'react-admin';
import { FilesizeField } from '../components/FilesizeField'; import { FilesizeField } from '../components/FilesizeField';
import { UserField } from '../components/UserField';
export const FileList: React.FC = () => ( export const FileList: React.FC = () => (
<List> <List>
@ -17,10 +11,7 @@ export const FileList: React.FC = () => (
<FilesizeField source="size" noWrap={true} /> <FilesizeField source="size" noWrap={true} />
<TextField source="metaData.content-type" /> <TextField source="metaData.content-type" />
<TextField source="etag" /> <TextField source="etag" />
<ReferenceField source="userId" reference="users"> <UserField source="userId" />
<TextField source="nickname" />
(<TextField source="email" />)
</ReferenceField>
<DateField source="createdAt" /> <DateField source="createdAt" />
</Datagrid> </Datagrid>
</List> </List>

Loading…
Cancel
Save