mirror of
https://github.com/yu-i-i/overleaf-cep.git
synced 2026-06-05 07:09:02 +02:00
Add CodeMirror 6 cursor/scroll position handling (#5653)
GitOrigin-RevId: bf756a415dbf1e4b5bbd9f580700bdc799c6b1d6
This commit is contained in:
@@ -0,0 +1,15 @@
|
||||
import { useEffect } from 'react'
|
||||
|
||||
/**
|
||||
* @param {string} eventName
|
||||
* @param {function} [listener]
|
||||
*/
|
||||
export default function useEventListener(eventName, listener) {
|
||||
useEffect(() => {
|
||||
window.addEventListener(eventName, listener)
|
||||
|
||||
return () => {
|
||||
window.removeEventListener(eventName, listener)
|
||||
}
|
||||
}, [eventName, listener])
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
import { useCallback } from 'react'
|
||||
import { useIdeContext } from '../context/ide-context'
|
||||
|
||||
/**
|
||||
* @param {string} eventName
|
||||
* @param {boolean} [broadcast]
|
||||
* @returns function
|
||||
*/
|
||||
export default function useScopeEventEmitter(eventName, broadcast = true) {
|
||||
const { $scope } = useIdeContext()
|
||||
|
||||
return useCallback(
|
||||
detail => {
|
||||
if (broadcast) {
|
||||
$scope.$broadcast(eventName, detail)
|
||||
} else {
|
||||
$scope.$emit(eventName, detail)
|
||||
}
|
||||
},
|
||||
[$scope, eventName, broadcast]
|
||||
)
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
import { useEffect } from 'react'
|
||||
import { useIdeContext } from '../context/ide-context'
|
||||
|
||||
/**
|
||||
* @param {string} eventName
|
||||
* @param {function} [listener]
|
||||
*/
|
||||
export default function useScopeEventListener(eventName, listener) {
|
||||
const { $scope } = useIdeContext()
|
||||
|
||||
useEffect(() => {
|
||||
return $scope.$on(eventName, listener)
|
||||
}, [$scope, eventName, listener])
|
||||
}
|
||||
Reference in New Issue
Block a user