| import React, { useState, useRef, useEffect, useMemo } from "react"; | 
| import { | 
|   Box, | 
|   Card, | 
|   CardContent, | 
|   Grid, | 
|   Typography, | 
|   Tooltip, | 
| } from "@mui/material"; | 
| import { useTranslate, useRecordContext } from "react-admin"; | 
| import PanelTypography from "@/page/components/PanelTypography"; | 
| import * as Common from "@/utils/common"; | 
|   | 
| const UserPanel = () => { | 
|   const record = useRecordContext(); | 
|   if (!record) return null; | 
|   const translate = useTranslate(); | 
|   return ( | 
|     <> | 
|       <Card | 
|         sx={{ width: { xs: 300, sm: 500, md: 600, lg: 800 }, margin: "auto" }} | 
|       > | 
|         <CardContent> | 
|           <Grid container spacing={2}> | 
|             <Grid | 
|               item | 
|               xs={12} | 
|               sx={{ display: "flex", justifyContent: "space-between" }} | 
|             > | 
|               <Typography | 
|                 variant="h6" | 
|                 gutterBottom | 
|                 align="left" | 
|                 sx={{ | 
|                   maxWidth: { | 
|                     xs: "100px", | 
|                     sm: "180px", | 
|                     md: "260px", | 
|                     lg: "360px", | 
|                   }, | 
|                   whiteSpace: "nowrap", | 
|                   overflow: "hidden", | 
|                   textOverflow: "ellipsis", | 
|                 }} | 
|               > | 
|                 {Common.camelToPascalWithSpaces( | 
|                   translate("table.field.user.nickname"), | 
|                 )} | 
|                 : {record.nickname} | 
|               </Typography> | 
|               {/*  inherit, primary, secondary, textPrimary, textSecondary, error */} | 
|               <Typography variant="h6" gutterBottom align="right"> | 
|                 ID: {record.id} | 
|               </Typography> | 
|             </Grid> | 
|           </Grid> | 
|           <Grid container spacing={2}> | 
|             <Grid item xs={12} container alignContent="flex-end"> | 
|               <Typography | 
|                 variant="caption" | 
|                 color="textSecondary" | 
|                 sx={{ wordWrap: "break-word", wordBreak: "break-all" }} | 
|               > | 
|                 {Common.camelToPascalWithSpaces(translate("common.field.memo"))} | 
|                 :{record.memo} | 
|               </Typography> | 
|             </Grid> | 
|           </Grid> | 
|           <Box height={20}> </Box> | 
|           <Grid container spacing={2}> | 
|             <Grid item xs={6}> | 
|               <PanelTypography | 
|                 title="table.field.user.username" | 
|                 property={record.username} | 
|               /> | 
|             </Grid> | 
|             <Grid item xs={6}> | 
|               <PanelTypography | 
|                 title="table.field.user.nickname" | 
|                 property={record.nickname} | 
|               /> | 
|             </Grid> | 
|             <Grid item xs={6}> | 
|               <PanelTypography | 
|                 title="table.field.user.avatar" | 
|                 property={record.avatar} | 
|               /> | 
|             </Grid> | 
|             <Grid item xs={6}> | 
|               <PanelTypography | 
|                 title="table.field.user.code" | 
|                 property={record.code} | 
|               /> | 
|             </Grid> | 
|             <Grid item xs={6}> | 
|               <PanelTypography | 
|                 title="table.field.user.sex" | 
|                 property={record.sex$} | 
|               /> | 
|             </Grid> | 
|             <Grid item xs={6}> | 
|               <PanelTypography | 
|                 title="table.field.user.phone" | 
|                 property={record.phone} | 
|               /> | 
|             </Grid> | 
|             <Grid item xs={6}> | 
|               <PanelTypography | 
|                 title="table.field.user.email" | 
|                 property={record.email} | 
|               /> | 
|             </Grid> | 
|             <Grid item xs={6}> | 
|               <PanelTypography | 
|                 title="table.field.user.emailVerified" | 
|                 property={record.emailVerified$} | 
|               /> | 
|             </Grid> | 
|             <Grid item xs={6}> | 
|               <PanelTypography | 
|                 title="table.field.user.deptId" | 
|                 property={record.deptId$} | 
|               /> | 
|             </Grid> | 
|             <Grid item xs={6}> | 
|               <PanelTypography | 
|                 title="table.field.user.realName" | 
|                 property={record.realName} | 
|               /> | 
|             </Grid> | 
|             <Grid item xs={6}> | 
|               <PanelTypography | 
|                 title="table.field.user.idCard" | 
|                 property={record.idCard} | 
|               /> | 
|             </Grid> | 
|             <Grid item xs={6}> | 
|               <PanelTypography | 
|                 title="table.field.user.birthday" | 
|                 property={record.birthday} | 
|               /> | 
|             </Grid> | 
|             {/* <Grid item xs={6}> | 
|                             <PanelTypography | 
|                                 title="table.field.user.introduction"  | 
|                                 property={record.introduction} | 
|                             /> | 
|                         </Grid> */} | 
|           </Grid> | 
|         </CardContent> | 
|       </Card> | 
|     </> | 
|   ); | 
| }; | 
|   | 
| export default UserPanel; |