@@ -71,6 +71,9 @@ export function makeScreenshotEditorComponent({ h, imageBuffer, dialog }: Factor
7171 const [ croppingRect , setCroppingRect ] = useState < Box > ( { startX : 0 , startY : 0 , endX : 0 , endY : 0 } ) ;
7272 const [ confirmCrop , setConfirmCrop ] = useState ( false ) ;
7373
74+ const cropStyle =
75+ croppingRef . current && getComputedStyle ( croppingRef . current ) . getPropertyValue ( '--crop-foreground' ) ;
76+
7477 useEffect ( ( ) => {
7578 WINDOW . addEventListener ( 'resize' , resizeCropper , false ) ;
7679 } , [ ] ) ;
@@ -115,7 +118,9 @@ export function makeScreenshotEditorComponent({ h, imageBuffer, dialog }: Factor
115118 ctx . clearRect ( croppingBox . x , croppingBox . y , croppingBox . width , croppingBox . height ) ;
116119
117120 // draw selection border
118- ctx . strokeStyle = 'purple' ;
121+ if ( cropStyle ) {
122+ ctx . strokeStyle = cropStyle ;
123+ }
119124 ctx . lineWidth = 3 ;
120125 ctx . strokeRect ( croppingBox . x , croppingBox . y , croppingBox . width , croppingBox . height ) ;
121126 } , [ croppingRect ] ) ;
@@ -143,28 +148,28 @@ export function makeScreenshotEditorComponent({ h, imageBuffer, dialog }: Factor
143148 const mouseX = e . clientX - cropBoundingRect . x ;
144149 const mouseY = e . clientY - cropBoundingRect . y ;
145150 switch ( corner ) {
146- case 'topleft ' :
151+ case 'top-left ' :
147152 setCroppingRect ( prev => ( {
148153 ...prev ,
149154 startX : Math . min ( Math . max ( 0 , mouseX ) , prev . endX - CROP_BUTTON_OFFSET ) ,
150155 startY : Math . min ( Math . max ( 0 , mouseY ) , prev . endY - CROP_BUTTON_OFFSET ) ,
151156 } ) ) ;
152157 break ;
153- case 'topright ' :
158+ case 'top-right ' :
154159 setCroppingRect ( prev => ( {
155160 ...prev ,
156161 endX : Math . max ( Math . min ( mouseX , cropCanvas . width ) , prev . startX + CROP_BUTTON_OFFSET ) ,
157162 startY : Math . min ( Math . max ( 0 , mouseY ) , prev . endY - CROP_BUTTON_OFFSET ) ,
158163 } ) ) ;
159164 break ;
160- case 'bottomleft ' :
165+ case 'bottom-left ' :
161166 setCroppingRect ( prev => ( {
162167 ...prev ,
163168 startX : Math . min ( Math . max ( 0 , mouseX ) , prev . endX - CROP_BUTTON_OFFSET ) ,
164169 endY : Math . max ( Math . min ( mouseY , cropCanvas . height ) , prev . startY + CROP_BUTTON_OFFSET ) ,
165170 } ) ) ;
166171 break ;
167- case 'bottomright ' :
172+ case 'bottom-right ' :
168173 setCroppingRect ( prev => ( {
169174 ...prev ,
170175 endX : Math . max ( Math . min ( mouseX , cropCanvas . width ) , prev . startX + CROP_BUTTON_OFFSET ) ,
@@ -240,32 +245,32 @@ export function makeScreenshotEditorComponent({ h, imageBuffer, dialog }: Factor
240245 return (
241246 < div class = "editor" >
242247 < 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 } >
245250 < canvas style = { { position : 'absolute' } } ref = { croppingRef } > </ canvas >
246251 < CropCorner
247252 left = { croppingRect . startX }
248253 top = { croppingRect . startY }
249254 onGrabButton = { onGrabButton }
250- corner = "topleft "
255+ corner = "top-left "
251256 > </ CropCorner >
252257 < CropCorner
253258 left = { croppingRect . endX - CROP_BUTTON_SIZE }
254259 top = { croppingRect . startY }
255260 onGrabButton = { onGrabButton }
256- corner = "topright "
261+ corner = "top-right "
257262 > </ CropCorner >
258263 < CropCorner
259264 left = { croppingRect . startX }
260265 top = { croppingRect . endY - CROP_BUTTON_SIZE }
261266 onGrabButton = { onGrabButton }
262- corner = "bottomleft "
267+ corner = "bottom-left "
263268 > </ CropCorner >
264269 < CropCorner
265270 left = { croppingRect . endX - CROP_BUTTON_SIZE }
266271 top = { croppingRect . endY - CROP_BUTTON_SIZE }
267272 onGrabButton = { onGrabButton }
268- corner = "bottomright "
273+ corner = "bottom-right "
269274 > </ CropCorner >
270275 < div
271276 style = { {
@@ -323,16 +328,10 @@ function CropCorner({
323328} ) : VNode {
324329 return (
325330 < button
326- class = " crop-btn"
331+ class = { ` ${ corner } crop-btn` }
327332 style = { {
328333 top : top ,
329334 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' ,
336335 } }
337336 onMouseDown = { e => {
338337 e . preventDefault ( ) ;
0 commit comments