1
- import { makeStyles } from "@mui/styles" ;
2
- import { AuditLog } from "api/typesGenerated" ;
1
+ import { type Interpolation , type Theme } from "@emotion/react" ;
2
+ import { type FC } from "react" ;
3
+ import type { AuditLog } from "api/typesGenerated" ;
3
4
import { colors } from "theme/colors" ;
4
5
import { MONOSPACE_FONT_FAMILY } from "theme/constants" ;
5
- import { combineClasses } from "utils/combineClasses" ;
6
- import { FC } from "react" ;
7
6
8
7
const getDiffValue = ( value : unknown ) : string => {
9
8
if ( typeof value === "string" ) {
@@ -23,43 +22,32 @@ const getDiffValue = (value: unknown): string => {
23
22
} ;
24
23
25
24
export const AuditLogDiff : FC < { diff : AuditLog [ "diff" ] } > = ( { diff } ) => {
26
- const styles = useStyles ( ) ;
27
25
const diffEntries = Object . entries ( diff ) ;
28
26
29
27
return (
30
- < div className = { styles . diff } >
31
- < div className = { combineClasses ( [ styles . diffColumn , styles . diffOld ] ) } >
28
+ < div css = { styles . diff } >
29
+ < div css = { [ styles . diffColumn , styles . diffOld ] } >
32
30
{ diffEntries . map ( ( [ attrName , valueDiff ] , index ) => (
33
- < div key = { attrName } className = { styles . diffRow } >
34
- < div className = { styles . diffLine } > { index + 1 } </ div >
35
- < div className = { styles . diffIcon } > -</ div >
31
+ < div key = { attrName } css = { styles . diffRow } >
32
+ < div css = { styles . diffLine } > { index + 1 } </ div >
33
+ < div css = { styles . diffIcon } > -</ div >
36
34
< div >
37
35
{ attrName } :{ " " }
38
- < span
39
- className = { combineClasses ( [
40
- styles . diffValue ,
41
- styles . diffValueOld ,
42
- ] ) }
43
- >
36
+ < span css = { [ styles . diffValue , styles . diffValueOld ] } >
44
37
{ valueDiff . secret ? "••••••••" : getDiffValue ( valueDiff . old ) }
45
38
</ span >
46
39
</ div >
47
40
</ div >
48
41
) ) }
49
42
</ div >
50
- < div className = { combineClasses ( [ styles . diffColumn , styles . diffNew ] ) } >
43
+ < div css = { [ styles . diffColumn , styles . diffNew ] } >
51
44
{ diffEntries . map ( ( [ attrName , valueDiff ] , index ) => (
52
- < div key = { attrName } className = { styles . diffRow } >
53
- < div className = { styles . diffLine } > { index + 1 } </ div >
54
- < div className = { styles . diffIcon } > +</ div >
45
+ < div key = { attrName } css = { styles . diffRow } >
46
+ < div css = { styles . diffLine } > { index + 1 } </ div >
47
+ < div css = { styles . diffIcon } > +</ div >
55
48
< div >
56
49
{ attrName } :{ " " }
57
- < span
58
- className = { combineClasses ( [
59
- styles . diffValue ,
60
- styles . diffValueNew ,
61
- ] ) }
62
- >
50
+ < span css = { [ styles . diffValue , styles . diffValueNew ] } >
63
51
{ valueDiff . secret ? "••••••••" : getDiffValue ( valueDiff . new ) }
64
52
</ span >
65
53
</ div >
@@ -70,60 +58,60 @@ export const AuditLogDiff: FC<{ diff: AuditLog["diff"] }> = ({ diff }) => {
70
58
) ;
71
59
} ;
72
60
73
- const useStyles = makeStyles ( ( theme ) => ( {
74
- diff : {
61
+ const styles = {
62
+ diff : ( theme ) => ( {
75
63
display : "flex" ,
76
64
alignItems : "flex-start" ,
77
65
fontSize : theme . typography . body2 . fontSize ,
78
66
borderTop : `1px solid ${ theme . palette . divider } ` ,
79
67
fontFamily : MONOSPACE_FONT_FAMILY ,
80
68
position : "relative" ,
81
69
zIndex : 2 ,
82
- } ,
70
+ } ) ,
83
71
84
- diffColumn : {
72
+ diffColumn : ( theme ) => ( {
85
73
flex : 1 ,
86
74
paddingTop : theme . spacing ( 2 ) ,
87
75
paddingBottom : theme . spacing ( 2.5 ) ,
88
76
paddingRight : theme . spacing ( 2 ) ,
89
77
lineHeight : "160%" ,
90
78
alignSelf : "stretch" ,
91
79
overflowWrap : "anywhere" ,
92
- } ,
80
+ } ) ,
93
81
94
- diffOld : {
82
+ diffOld : ( theme ) => ( {
95
83
backgroundColor : theme . palette . error . dark ,
96
84
color : theme . palette . error . contrastText ,
97
- } ,
85
+ } ) ,
98
86
99
87
diffRow : {
100
88
display : "flex" ,
101
89
alignItems : "baseline" ,
102
90
} ,
103
91
104
- diffLine : {
92
+ diffLine : ( theme ) => ( {
105
93
opacity : 0.5 ,
106
94
width : theme . spacing ( 6 ) ,
107
95
textAlign : "right" ,
108
96
flexShrink : 0 ,
109
- } ,
97
+ } ) ,
110
98
111
- diffIcon : {
99
+ diffIcon : ( theme ) => ( {
112
100
width : theme . spacing ( 4 ) ,
113
101
textAlign : "center" ,
114
102
fontSize : theme . typography . body1 . fontSize ,
115
103
flexShrink : 0 ,
116
- } ,
104
+ } ) ,
117
105
118
- diffNew : {
106
+ diffNew : ( theme ) => ( {
119
107
backgroundColor : theme . palette . success . dark ,
120
108
color : theme . palette . success . contrastText ,
121
- } ,
109
+ } ) ,
122
110
123
- diffValue : {
111
+ diffValue : ( theme ) => ( {
124
112
padding : 1 ,
125
113
borderRadius : theme . shape . borderRadius / 2 ,
126
- } ,
114
+ } ) ,
127
115
128
116
diffValueOld : {
129
117
backgroundColor : colors . red [ 12 ] ,
@@ -132,4 +120,4 @@ const useStyles = makeStyles((theme) => ({
132
120
diffValueNew : {
133
121
backgroundColor : colors . green [ 12 ] ,
134
122
} ,
135
- } ) ) ;
123
+ } satisfies Record < string , Interpolation < Theme > > ;
0 commit comments