MCPcopy Create free account
hub / github.com/IgorWarzocha/howcode / useUtilityViewEscape

Function useUtilityViewEscape

src/app/app-shell/useWindowShellSync.ts:33–58  ·  view source on GitHub ↗
({
  activeView,
  dispatch,
}: {
  activeView: WorkspaceState['activeView']
  dispatch: Dispatch<WorkspaceAction>
})

Source from the content-addressed store, hash-verified

31}
32
33export function useUtilityViewEscape({
34 activeView,
35 dispatch,
36}: {
37 activeView: WorkspaceState['activeView']
38 dispatch: Dispatch<WorkspaceAction>
39}) {
40 useEffect(() => {
41 if (!isUtilityView(activeView)) {
42 return
43 }
44
45 const handleKeyDown = (event: KeyboardEvent) => {
46 if (!shouldCloseUtilityViewOnEscape(activeView, event)) {
47 return
48 }
49
50 dispatch({ type: 'close-utility-view' })
51 }
52
53 window.addEventListener('keydown', handleKeyDown)
54 return () => {
55 window.removeEventListener('keydown', handleKeyDown)
56 }
57 }, [activeView, dispatch])
58}

Callers 1

useAppShellEffectsFunction · 0.90

Calls 1

isUtilityViewFunction · 0.90

Tested by

no test coverage detected