@@ -11,6 +11,7 @@ import {
11
11
} from "./types" ;
12
12
import { useLogger } from "src/shared/logger" ;
13
13
import { getPositionFromEl } from "./utils" ;
14
+ import EventManager from "src/shared/event/event-manager" ;
14
15
15
16
interface ContextProps {
16
17
topMenu : LoomMenu | null ;
@@ -40,6 +41,7 @@ interface ContextProps {
40
41
onPositionUpdate : ( id : string , value : LoomMenuPosition ) => void ;
41
42
onCloseAll : ( ) => void ;
42
43
onCloseRequestClear : ( id : string ) => void ;
44
+ onClearMenuTriggerFocus : ( ) => void ;
43
45
}
44
46
45
47
const MenuContext = React . createContext < ContextProps | null > ( null ) ;
@@ -68,6 +70,23 @@ export default function MenuProvider({ children }: Props) {
68
70
69
71
const logger = useLogger ( ) ;
70
72
73
+ const clearMenuTriggerFocus = React . useCallback ( ( ) => {
74
+ logger ( "MenuProvider clearMenuTriggerFocus" ) ;
75
+ setFocusedMenuTrigger ( null ) ;
76
+ } , [ logger ] ) ;
77
+
78
+ React . useEffect ( ( ) => {
79
+ EventManager . getInstance ( ) . on (
80
+ "clear-menu-trigger-focus" ,
81
+ clearMenuTriggerFocus
82
+ ) ;
83
+ return ( ) =>
84
+ EventManager . getInstance ( ) . off (
85
+ "clear-menu-trigger-focus" ,
86
+ clearMenuTriggerFocus
87
+ ) ;
88
+ } , [ clearMenuTriggerFocus ] ) ;
89
+
71
90
function handleOpen (
72
91
parentComponentId : string ,
73
92
level : LoomMenuLevel ,
@@ -118,11 +137,6 @@ export default function MenuProvider({ children }: Props) {
118
137
[ logger ]
119
138
) ;
120
139
121
- function clearMenuTriggerFocus ( ) {
122
- logger ( "MenuProvider clearMenuTriggerFocus" ) ;
123
- setFocusedMenuTrigger ( null ) ;
124
- }
125
-
126
140
const handleClose = React . useCallback (
127
141
( id : string ) => {
128
142
logger ( "MenuProvider onClose" ) ;
@@ -253,6 +267,7 @@ export default function MenuProvider({ children }: Props) {
253
267
onPositionUpdate : handlePositionUpdate ,
254
268
onCloseAll : handleCloseAll ,
255
269
onCloseRequestClear : handleCloseRequestClear ,
270
+ onClearMenuTriggerFocus : clearMenuTriggerFocus ,
256
271
} }
257
272
>
258
273
{ children }
0 commit comments