| 1234567891011121314151617181920212223242526272829 |
- 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')
- }
|