From ff165e39494142c58a2b43f6ae9706636575b8df Mon Sep 17 00:00:00 2001 From: moonrailgun Date: Mon, 27 Feb 2023 14:10:20 +0800 Subject: [PATCH] refactor(admin): use UserField to replace chat and file userId display --- server/admin/app/ra/components/UserField.tsx | 21 ++++++++++++++++++-- server/admin/app/ra/resources/chat.tsx | 3 ++- server/admin/app/ra/resources/file.tsx | 15 +++----------- 3 files changed, 24 insertions(+), 15 deletions(-) diff --git a/server/admin/app/ra/components/UserField.tsx b/server/admin/app/ra/components/UserField.tsx index ccc65f32..518d4998 100644 --- a/server/admin/app/ra/components/UserField.tsx +++ b/server/admin/app/ra/components/UserField.tsx @@ -1,11 +1,28 @@ 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> = React.memo((props) => { + const record = useRecordContext(props); + if (props.source && record) { + if (record[props.source] === SYSTEM_USERID) { + return
System
; + } + } + return ( - + <> + + () + ); }); diff --git a/server/admin/app/ra/resources/chat.tsx b/server/admin/app/ra/resources/chat.tsx index e14eb138..d6de8270 100644 --- a/server/admin/app/ra/resources/chat.tsx +++ b/server/admin/app/ra/resources/chat.tsx @@ -9,6 +9,7 @@ import { SearchInput, useTranslate, } from 'react-admin'; +import { UserField } from '../components/UserField'; export const MessageList: React.FC = () => { const translate = useTranslate(); @@ -27,7 +28,7 @@ export const MessageList: React.FC = () => { - + diff --git a/server/admin/app/ra/resources/file.tsx b/server/admin/app/ra/resources/file.tsx index 0e79f81c..ecb7b171 100644 --- a/server/admin/app/ra/resources/file.tsx +++ b/server/admin/app/ra/resources/file.tsx @@ -1,13 +1,7 @@ import React from 'react'; -import { - Datagrid, - DateField, - List, - ReferenceField, - TextField, - UrlField, -} from 'react-admin'; +import { Datagrid, DateField, List, TextField, UrlField } from 'react-admin'; import { FilesizeField } from '../components/FilesizeField'; +import { UserField } from '../components/UserField'; export const FileList: React.FC = () => ( @@ -17,10 +11,7 @@ export const FileList: React.FC = () => ( - - - () - +