1
1
import ModifiedCanvas from "./ModifiedCanvas"
2
2
import { useSettings } from "../SettingsProvider" ;
3
3
import { AnnotatorToolEnum , Image } from "../MainLayout/types" ;
4
+ import { useEffect } from "react" ;
4
5
5
6
export type IImageViewerType = {
6
7
allowedArea ?: {
@@ -9,25 +10,38 @@ export type IImageViewerType = {
9
10
w : number ;
10
11
h : number ;
11
12
} ,
12
- regionClsList : ( string | {
13
+ regionClsList ? : ( string | {
13
14
id : string ;
14
15
label : string ;
15
16
color : string ;
16
17
} ) [ ] ,
18
+ regionTagList ?:Array < string >
17
19
imageSrc : Image [ 'src' ] ,
18
20
imageRegions : Image [ 'regions' ]
19
21
selectedTool ?: AnnotatorToolEnum
20
22
}
21
23
22
- export const ImageViewer = ( { allowedArea, regionClsList, imageSrc, imageRegions } : IImageViewerType ) => {
24
+ export const ImageViewer = ( { allowedArea, regionClsList, regionTagList , imageSrc, imageRegions } : IImageViewerType ) => {
23
25
const settings = useSettings ( ) ;
26
+ useEffect ( ( ) => {
27
+ const blocker = ( e : KeyboardEvent ) => {
28
+ if ( [ "a" , "s" , "d" , "w" ] . includes ( e . key ) ) {
29
+ e . stopPropagation ( ) ;
30
+ e . preventDefault ( ) ;
31
+ }
32
+ } ;
33
+
34
+ window . addEventListener ( "keydown" , blocker , true ) ; // capture phase
35
+ return ( ) => window . removeEventListener ( "keydown" , blocker , true ) ;
36
+ } , [ ] ) ;
24
37
25
38
return (
26
39
< ModifiedCanvas
27
40
{ ...settings }
28
41
key = { 0 }
29
42
allowedArea = { allowedArea }
30
43
regionClsList = { regionClsList }
44
+ regionTagList = { regionTagList }
31
45
regions = { imageRegions || [ ] }
32
46
imageSrc = { imageSrc || null }
33
47
onMouseMove = { ( _p ) => { } }
0 commit comments