overleaf/services/web/frontend/js/shared/hooks/use-wait-for-grammarly-check.ts
Eric Mc Sween a9d7f99446 Merge pull request #16156 from overleaf/jdt-writefull-notif
Writefull editor notification

GitOrigin-RevId: 1a5077164682dbec67738af0684d364571802816
2023-12-14 09:03:27 +00:00

29 lines
919 B
TypeScript

import { useEffect, useState } from 'react'
/**
*
* @param {number} delay how long to wait before checking for grammarly in ms
* @param {boolean} initialState the initial state we should set grammarlyInstalled to before checking after the delay
* @returns {boolean} a stateful boolean which is initially false, then updates to reflect whether grammarly is installed after the delay to check
*/
export default function useWaitForGrammarlyCheck({
delay = 3000,
initialState = false,
}) {
const [grammarlyInstalled, setGrammarlyInstalled] = useState(() => {
return initialState
})
useEffect(() => {
const timer = setTimeout(
() => setGrammarlyInstalled(grammarlyExtensionPresent()),
delay
)
return () => clearTimeout(timer)
}, [delay])
return grammarlyInstalled
}
function grammarlyExtensionPresent() {
return !!document.querySelector('grammarly-desktop-integration')
}