@@ -71,6 +71,9 @@ export function makeScreenshotEditorComponent({ h, imageBuffer, dialog }: Factor
71
71
const [ croppingRect , setCroppingRect ] = useState < Box > ( { startX : 0 , startY : 0 , endX : 0 , endY : 0 } ) ;
72
72
const [ confirmCrop , setConfirmCrop ] = useState ( false ) ;
73
73
74
+ const cropStyle =
75
+ croppingRef . current && getComputedStyle ( croppingRef . current ) . getPropertyValue ( '--crop-foreground' ) ;
76
+
74
77
useEffect ( ( ) => {
75
78
WINDOW . addEventListener ( 'resize' , resizeCropper , false ) ;
76
79
} , [ ] ) ;
@@ -115,7 +118,9 @@ export function makeScreenshotEditorComponent({ h, imageBuffer, dialog }: Factor
115
118
ctx . clearRect ( croppingBox . x , croppingBox . y , croppingBox . width , croppingBox . height ) ;
116
119
117
120
// draw selection border
118
- ctx . strokeStyle = 'purple' ;
121
+ if ( cropStyle ) {
122
+ ctx . strokeStyle = cropStyle ;
123
+ }
119
124
ctx . lineWidth = 3 ;
120
125
ctx . strokeRect ( croppingBox . x , croppingBox . y , croppingBox . width , croppingBox . height ) ;
121
126
} , [ croppingRect ] ) ;
@@ -143,28 +148,28 @@ export function makeScreenshotEditorComponent({ h, imageBuffer, dialog }: Factor
143
148
const mouseX = e . clientX - cropBoundingRect . x ;
144
149
const mouseY = e . clientY - cropBoundingRect . y ;
145
150
switch ( corner ) {
146
- case 'topleft ' :
151
+ case 'top-left ' :
147
152
setCroppingRect ( prev => ( {
148
153
...prev ,
149
154
startX : Math . min ( Math . max ( 0 , mouseX ) , prev . endX - CROP_BUTTON_OFFSET ) ,
150
155
startY : Math . min ( Math . max ( 0 , mouseY ) , prev . endY - CROP_BUTTON_OFFSET ) ,
151
156
} ) ) ;
152
157
break ;
153
- case 'topright ' :
158
+ case 'top-right ' :
154
159
setCroppingRect ( prev => ( {
155
160
...prev ,
156
161
endX : Math . max ( Math . min ( mouseX , cropCanvas . width ) , prev . startX + CROP_BUTTON_OFFSET ) ,
157
162
startY : Math . min ( Math . max ( 0 , mouseY ) , prev . endY - CROP_BUTTON_OFFSET ) ,
158
163
} ) ) ;
159
164
break ;
160
- case 'bottomleft ' :
165
+ case 'bottom-left ' :
161
166
setCroppingRect ( prev => ( {
162
167
...prev ,
163
168
startX : Math . min ( Math . max ( 0 , mouseX ) , prev . endX - CROP_BUTTON_OFFSET ) ,
164
169
endY : Math . max ( Math . min ( mouseY , cropCanvas . height ) , prev . startY + CROP_BUTTON_OFFSET ) ,
165
170
} ) ) ;
166
171
break ;
167
- case 'bottomright ' :
172
+ case 'bottom-right ' :
168
173
setCroppingRect ( prev => ( {
169
174
...prev ,
170
175
endX : Math . max ( Math . min ( mouseX , cropCanvas . width ) , prev . startX + CROP_BUTTON_OFFSET ) ,
@@ -240,32 +245,32 @@ export function makeScreenshotEditorComponent({ h, imageBuffer, dialog }: Factor
240
245
return (
241
246
< div class = "editor" >
242
247
< style dangerouslySetInnerHTML = { styles } />
243
- < div class = "canvasContainer " ref = { canvasContainerRef } >
244
- < div class = "cropButtonContainer " style = { { position : 'absolute' } } ref = { cropContainerRef } >
248
+ < div class = "container--canvas " ref = { canvasContainerRef } >
249
+ < div class = "container--crop-btn " style = { { position : 'absolute' } } ref = { cropContainerRef } >
245
250
< canvas style = { { position : 'absolute' } } ref = { croppingRef } > </ canvas >
246
251
< CropCorner
247
252
left = { croppingRect . startX }
248
253
top = { croppingRect . startY }
249
254
onGrabButton = { onGrabButton }
250
- corner = "topleft "
255
+ corner = "top-left "
251
256
> </ CropCorner >
252
257
< CropCorner
253
258
left = { croppingRect . endX - CROP_BUTTON_SIZE }
254
259
top = { croppingRect . startY }
255
260
onGrabButton = { onGrabButton }
256
- corner = "topright "
261
+ corner = "top-right "
257
262
> </ CropCorner >
258
263
< CropCorner
259
264
left = { croppingRect . startX }
260
265
top = { croppingRect . endY - CROP_BUTTON_SIZE }
261
266
onGrabButton = { onGrabButton }
262
- corner = "bottomleft "
267
+ corner = "bottom-left "
263
268
> </ CropCorner >
264
269
< CropCorner
265
270
left = { croppingRect . endX - CROP_BUTTON_SIZE }
266
271
top = { croppingRect . endY - CROP_BUTTON_SIZE }
267
272
onGrabButton = { onGrabButton }
268
- corner = "bottomright "
273
+ corner = "bottom-right "
269
274
> </ CropCorner >
270
275
< div
271
276
style = { {
@@ -323,16 +328,10 @@ function CropCorner({
323
328
} ) : VNode {
324
329
return (
325
330
< button
326
- class = " crop-btn"
331
+ class = { ` ${ corner } crop-btn` }
327
332
style = { {
328
333
top : top ,
329
334
left : left ,
330
- borderTop : corner === 'topleft' || corner === 'topright' ? 'solid purple' : 'none' ,
331
- borderLeft : corner === 'topleft' || corner === 'bottomleft' ? 'solid purple' : 'none' ,
332
- borderRight : corner === 'topright' || corner === 'bottomright' ? 'solid purple' : 'none' ,
333
- borderBottom : corner === 'bottomleft' || corner === 'bottomright' ? 'solid purple' : 'none' ,
334
- borderWidth : `${ CROP_BUTTON_BORDER } px` ,
335
- cursor : corner === 'topleft' || corner === 'bottomright' ? 'nwse-resize' : 'nesw-resize' ,
336
335
} }
337
336
onMouseDown = { e => {
338
337
e . preventDefault ( ) ;
0 commit comments