11import * as React from 'react' ;
22import { ElementType } from 'react' ;
33import Typography , { TypographyProps } from '@mui/material/Typography' ;
4+ import {
5+ ComponentsOverrides ,
6+ styled ,
7+ useThemeProps ,
8+ } from '@mui/material/styles' ;
49import { useFieldValue , useTranslate } from 'ra-core' ;
510
611import { sanitizeFieldRestProps } from './sanitizeFieldRestProps' ;
@@ -10,14 +15,19 @@ import { genericMemo } from './genericMemo';
1015const TextFieldImpl = <
1116 RecordType extends Record < string , any > = Record < string , any > ,
1217> (
13- props : TextFieldProps < RecordType >
18+ inProps : TextFieldProps < RecordType >
1419) => {
20+ const props = useThemeProps ( {
21+ props : inProps ,
22+ name : PREFIX ,
23+ } ) ;
24+
1525 const { className, emptyText, ...rest } = props ;
1626 const translate = useTranslate ( ) ;
1727 const value = useFieldValue ( props ) ;
1828
1929 return (
20- < Typography
30+ < StyledTypography
2131 component = "span"
2232 variant = "body2"
2333 className = { className }
@@ -27,7 +37,7 @@ const TextFieldImpl = <
2737 ? value . toString ( )
2838 : value ||
2939 ( emptyText ? translate ( emptyText , { _ : emptyText } ) : null ) }
30- </ Typography >
40+ </ StyledTypography >
3141 ) ;
3242} ;
3343
@@ -43,3 +53,29 @@ export interface TextFieldProps<
4353 // TypographyProps do not expose the component props, see https://github.com/mui/material-ui/issues/19512
4454 component ?: ElementType < any > ;
4555}
56+
57+ const PREFIX = 'RaTextField' ;
58+
59+ const StyledTypography = styled ( Typography , {
60+ name : PREFIX ,
61+ overridesResolver : ( props , styles ) => styles . root ,
62+ } ) ( { } ) ;
63+
64+ declare module '@mui/material/styles' {
65+ interface ComponentNameToClassKey {
66+ [ PREFIX ] : 'root' ;
67+ }
68+
69+ interface ComponentsPropsList {
70+ [ PREFIX ] : Partial < TextFieldProps > ;
71+ }
72+
73+ interface Components {
74+ [ PREFIX ] ?: {
75+ defaultProps ?: ComponentsPropsList [ typeof PREFIX ] ;
76+ styleOverrides ?: ComponentsOverrides <
77+ Omit < Theme , 'components' >
78+ > [ typeof PREFIX ] ;
79+ } ;
80+ }
81+ }
0 commit comments