[ { "rule": "eval", "path": "components/mp3lameencoder/lib/Mp3LameEncoder.js", "line": " return eval(funcstr);", "reasonCategory": "usageTrusted", "updated": "2018-09-18T19:19:27.699Z", "reasonDetail": "Part of a set of functions to implement C calls" }, { "rule": "eval", "path": "components/mp3lameencoder/lib/Mp3LameEncoder.js", "line": " func = eval('_' + ident); // explicit lookup", "reasonCategory": "usageTrusted", "updated": "2018-09-18T19:19:27.699Z", "reasonDetail": "Part of runtime library for C++ transpiled code" }, { "rule": "React-useRef", "path": "node_modules/@radix-ui/react-tooltip/dist/index.js", "line": " const isOpenDelayedRef = React.useRef(true);", "reasonCategory": "usageTrusted", "updated": "2025-05-30T20:26:57.154Z" }, { "rule": "React-useRef", "path": "node_modules/@radix-ui/react-tooltip/dist/index.js", "line": " const isPointerInTransitRef = React.useRef(false);", "reasonCategory": "usageTrusted", "updated": "2025-05-30T20:26:57.154Z" }, { "rule": "React-useRef", "path": "node_modules/@radix-ui/react-tooltip/dist/index.js", "line": " const skipDelayTimerRef = React.useRef(0);", "reasonCategory": "usageTrusted", "updated": "2025-05-30T20:26:57.154Z" }, { "rule": "React-useRef", "path": "node_modules/@radix-ui/react-tooltip/dist/index.js", "line": " const openTimerRef = React.useRef(0);", "reasonCategory": "usageTrusted", "updated": "2025-05-30T20:26:57.154Z" }, { "rule": "React-useRef", "path": "node_modules/@radix-ui/react-tooltip/dist/index.js", "line": " const wasOpenDelayedRef = React.useRef(false);", "reasonCategory": "usageTrusted", "updated": "2025-05-30T20:26:57.154Z" }, { "rule": "React-useRef", "path": "node_modules/@radix-ui/react-tooltip/dist/index.js", "line": " const ref = React.useRef(null);", "reasonCategory": "usageTrusted", "updated": "2025-05-30T20:26:57.154Z" }, { "rule": "React-useRef", "path": "node_modules/@radix-ui/react-tooltip/dist/index.js", "line": " const isPointerDownRef = React.useRef(false);", "reasonCategory": "usageTrusted", "updated": "2025-05-30T20:26:57.154Z" }, { "rule": "React-useRef", "path": "node_modules/@radix-ui/react-tooltip/dist/index.js", "line": " const hasPointerMoveOpenedRef = React.useRef(false);", "reasonCategory": "usageTrusted", "updated": "2025-05-30T20:26:57.154Z" }, { "rule": "React-useRef", "path": "node_modules/@radix-ui/react-tooltip/dist/index.js", "line": " const ref = React.useRef(null);", "reasonCategory": "usageTrusted", "updated": "2025-05-30T20:26:57.154Z" }, { "rule": "DOM-innerHTML", "path": "node_modules/@signalapp/quill-cjs/core/editor.js", "line": " innerHTML", "reasonCategory": "usageTrusted", "updated": "2025-01-10T05:52:01.516Z", "reasonDetail": "Reading contents of DOM" }, { "rule": "DOM-innerHTML", "path": "node_modules/@signalapp/quill-cjs/core/editor.js", "line": " const [start, end] = outerHTML.split(`>${innerHTML}<`);", "reasonCategory": "usageTrusted", "updated": "2025-01-10T05:52:01.516Z", "reasonDetail": "Reading contents of DOM" }, { "rule": "DOM-outerHTML", "path": "node_modules/@signalapp/quill-cjs/core/editor.js", "line": " outerHTML,", "reasonCategory": "usageTrusted", "updated": "2025-01-10T05:52:01.516Z", "reasonDetail": "Reading contents of DOM" }, { "rule": "DOM-outerHTML", "path": "node_modules/@signalapp/quill-cjs/core/editor.js", "line": " const [start, end] = outerHTML.split(`>${innerHTML}<`);", "reasonCategory": "usageTrusted", "updated": "2025-01-10T05:52:01.516Z", "reasonDetail": "Reading contents of DOM" }, { "rule": "DOM-outerHTML", "path": "node_modules/@signalapp/quill-cjs/core/editor.js", "line": " return blot.domNode instanceof Element ? blot.domNode.outerHTML : '';", "reasonCategory": "usageTrusted", "updated": "2025-01-10T05:52:01.516Z", "reasonDetail": "Reading contents of DOM" }, { "rule": "DOM-innerHTML", "path": "node_modules/@signalapp/quill-cjs/core/quill.js", "line": " this.container.innerHTML = '';", "reasonCategory": "usageTrusted", "updated": "2020-10-13T18:36:57.012Z", "reasonDetail": "necessary for quill" }, { "rule": "DOM-innerHTML", "path": "node_modules/@signalapp/quill-cjs/core/quill.js", "line": " const html = this.container.innerHTML.trim();", "reasonCategory": "usageTrusted", "updated": "2025-01-10T05:52:01.516Z", "reasonDetail": "Reading contents of DOM" }, { "rule": "DOM-innerHTML", "path": "node_modules/@signalapp/quill-cjs/dist/quill.core.js", "reasonCategory": "notExercisedByOurApp", "updated": "2025-01-22T02:55:11.616Z" }, { "rule": "DOM-outerHTML", "path": "node_modules/@signalapp/quill-cjs/dist/quill.core.js", "reasonCategory": "notExercisedByOurApp", "updated": "2025-01-22T02:55:11.616Z" }, { "rule": "DOM-innerHTML", "path": "node_modules/@signalapp/quill-cjs/dist/quill.js", "reasonCategory": "notExercisedByOurApp", "updated": "2025-01-22T02:55:11.616Z" }, { "rule": "DOM-outerHTML", "path": "node_modules/@signalapp/quill-cjs/dist/quill.js", "reasonCategory": "notExercisedByOurApp", "updated": "2025-01-22T02:55:11.616Z" }, { "rule": "DOM-innerHTML", "path": "node_modules/@signalapp/quill-cjs/modules/normalizeExternalHTML/normalizers/msWord.js", "line": " li.innerHTML = listItem.element.innerHTML;", "reasonCategory": "notExercisedByOurApp", "updated": "2025-01-10T05:52:01.516Z" }, { "rule": "DOM-innerHTML", "path": "node_modules/@signalapp/quill-cjs/modules/normalizeExternalHTML/normalizers/msWord.js", "line": " const html = doc.documentElement.innerHTML;", "reasonCategory": "usageTrusted", "updated": "2025-01-10T05:52:01.516Z", "reasonDetail": "Reading contents of DOM" }, { "rule": "DOM-innerHTML", "path": "node_modules/@signalapp/quill-cjs/modules/syntax.js", "line": " container.innerHTML = highlight(this.options.hljs, language, text);", "reasonCategory": "notExercisedByOurApp", "updated": "2025-01-10T05:52:01.516Z" }, { "rule": "DOM-innerHTML", "path": "node_modules/@signalapp/quill-cjs/themes/base.js", "line": " button.innerHTML = icons[name][''] + icons[name].rtl;", "reasonCategory": "notExercisedByOurApp", "updated": "2025-01-10T05:52:01.516Z" }, { "rule": "DOM-innerHTML", "path": "node_modules/@signalapp/quill-cjs/themes/base.js", "line": " button.innerHTML = icons[name];", "reasonCategory": "usageTrusted", "updated": "2020-10-13T18:36:57.012Z", "reasonDetail": "necessary for quill" }, { "rule": "DOM-innerHTML", "path": "node_modules/@signalapp/quill-cjs/themes/base.js", "line": " button.innerHTML = icons[name][value];", "reasonCategory": "usageTrusted", "updated": "2020-10-13T18:36:57.012Z", "reasonDetail": "necessary for quill" }, { "rule": "DOM-innerHTML", "path": "node_modules/@signalapp/quill-cjs/ui/color-picker.js", "line": " this.label.innerHTML = label;", "reasonCategory": "usageTrusted", "updated": "2020-10-13T18:36:57.012Z", "reasonDetail": "necessary for quill" }, { "rule": "DOM-innerHTML", "path": "node_modules/@signalapp/quill-cjs/ui/icon-picker.js", "line": " if (this.label.innerHTML === item.innerHTML) return;", "reasonCategory": "notExercisedByOurApp", "updated": "2025-01-10T05:52:01.516Z" }, { "rule": "DOM-innerHTML", "path": "node_modules/@signalapp/quill-cjs/ui/icon-picker.js", "line": " item.innerHTML = icons[item.getAttribute('data-value') || ''];", "reasonCategory": "usageTrusted", "updated": "2020-10-13T18:36:57.012Z", "reasonDetail": "necessary for quill" }, { "rule": "DOM-innerHTML", "path": "node_modules/@signalapp/quill-cjs/ui/icon-picker.js", "line": " this.label.innerHTML = item.innerHTML;", "reasonCategory": "usageTrusted", "updated": "2020-10-13T18:36:57.012Z", "reasonDetail": "necessary for quill" }, { "rule": "DOM-innerHTML", "path": "node_modules/@signalapp/quill-cjs/ui/picker.js", "line": " label.innerHTML = DropdownIcon;", "reasonCategory": "usageTrusted", "updated": "2020-10-13T18:36:57.012Z", "reasonDetail": "necessary for quill" }, { "rule": "DOM-innerHTML", "path": "node_modules/@signalapp/quill-cjs/ui/tooltip.js", "line": " this.root.innerHTML = this.constructor.TEMPLATE;", "reasonCategory": "usageTrusted", "updated": "2020-10-13T18:36:57.012Z", "reasonDetail": "necessary for quill" }, { "rule": "DOM-innerHTML", "path": "node_modules/axe-core/axe.js", "line": " style.innerHTML = usePointer ? '* { pointer-events: all }' : '* { visibility: visible }';", "reasonCategory": "usageTrusted", "updated": "2021-04-13T00:52:21.453Z" }, { "rule": "DOM-outerHTML", "path": "node_modules/axe-core/axe.js", "line": " var source = element.outerHTML;", "reasonCategory": "usageTrusted", "updated": "2021-04-13T00:52:21.453Z" }, { "rule": "DOM-outerHTML", "path": "node_modules/axe-core/axe.js", "line": " if (!(element !== null && element !== void 0 && element.outerHTML)) {", "reasonCategory": "usageTrusted", "updated": "2024-11-13T23:33:49.776Z" }, { "rule": "DOM-outerHTML", "path": "node_modules/axe-core/axe.js", "line": " var outerHTML = node.outerHTML;", "reasonCategory": "usageTrusted", "updated": "2024-11-13T23:33:49.776Z" }, { "rule": "DOM-outerHTML", "path": "node_modules/axe-core/axe.js", "line": " node = cache_default.get(outerHTML, function() {", "reasonCategory": "usageTrusted", "updated": "2024-11-13T23:33:49.776Z" }, { "rule": "DOM-innerHTML", "path": "node_modules/axe-core/axe.min.js", "reasonCategory": "usageTrusted", "updated": "2021-04-13T17:31:15.352Z" }, { "rule": "DOM-outerHTML", "path": "node_modules/axe-core/axe.min.js", "reasonCategory": "usageTrusted", "updated": "2021-04-13T17:31:15.352Z" }, { "rule": "eval", "path": "node_modules/config/parser.js", "line": " return VisionmediaYaml.eval(Parser.stripYamlComments(content));", "reasonCategory": "usageTrusted", "updated": "2024-11-14T01:39:46.132Z" }, { "rule": "React-useRef", "path": "node_modules/framer-motion/dist/cjs/index.js", "line": " var visualElementRef = React.useRef(undefined);", "reasonCategory": "usageTrusted", "updated": "2025-02-19T20:14:46.879Z" }, { "rule": "React-useRef", "path": "node_modules/framer-motion/dist/cjs/index.js", "line": " var ref = React.useRef(null);", "reasonCategory": "usageTrusted", "updated": "2025-02-19T20:14:46.879Z" }, { "rule": "React-useRef", "path": "node_modules/framer-motion/dist/cjs/index.js", "line": " * const ref = useRef(null)", "reasonCategory": "usageTrusted", "updated": "2025-02-19T20:14:46.879Z" }, { "rule": "React-useRef", "path": "node_modules/framer-motion/dist/cjs/index.js", "line": " var isPressing = React.useRef(false);", "reasonCategory": "usageTrusted", "updated": "2025-02-19T20:14:46.879Z" }, { "rule": "React-useRef", "path": "node_modules/framer-motion/dist/cjs/index.js", "line": " var cancelPointerEndListeners = React.useRef(null);", "reasonCategory": "usageTrusted", "updated": "2025-02-19T20:14:46.879Z" }, { "rule": "React-useRef", "path": "node_modules/framer-motion/dist/cjs/index.js", "line": " var state = React.useRef({", "reasonCategory": "usageTrusted", "updated": "2025-02-19T20:14:46.879Z" }, { "rule": "React-useRef", "path": "node_modules/framer-motion/dist/cjs/index.js", "line": " var panSession = React.useRef(null);", "reasonCategory": "usageTrusted", "updated": "2025-02-19T20:14:46.879Z" }, { "rule": "React-useRef", "path": "node_modules/framer-motion/dist/cjs/index.js", "line": " var isMounted = React.useRef(false);", "reasonCategory": "usageTrusted", "updated": "2025-02-19T20:14:46.879Z" }, { "rule": "React-useRef", "path": "node_modules/framer-motion/dist/cjs/index.js", "line": " var presentChildren = React.useRef(childrenToRender);", "reasonCategory": "usageTrusted", "updated": "2025-02-19T20:14:46.879Z" }, { "rule": "React-useRef", "path": "node_modules/framer-motion/dist/cjs/index.js", "line": " var allChildren = React.useRef(new Map()).current;", "reasonCategory": "usageTrusted", "updated": "2025-02-19T20:14:46.879Z" }, { "rule": "React-useRef", "path": "node_modules/framer-motion/dist/cjs/index.js", "line": " var isInitialRender = React.useRef(true);", "reasonCategory": "usageTrusted", "updated": "2025-02-19T20:14:46.879Z" }, { "rule": "React-useRef", "path": "node_modules/framer-motion/dist/cjs/index.js", "line": " var context = React.useRef(null);", "reasonCategory": "usageTrusted", "updated": "2025-02-19T20:14:46.879Z" }, { "rule": "React-useRef", "path": "node_modules/framer-motion/dist/cjs/index.js", "line": " var loadedRenderer = React.useRef(undefined);", "reasonCategory": "usageTrusted", "updated": "2025-02-19T20:14:46.879Z" }, { "rule": "React-useRef", "path": "node_modules/framer-motion/dist/cjs/index.js", "line": " var isReordering = React.useRef(false);", "reasonCategory": "usageTrusted", "updated": "2025-02-19T20:14:46.879Z" }, { "rule": "React-useRef", "path": "node_modules/framer-motion/dist/cjs/index.js", "line": " var measuredLayout = React.useRef(null);", "reasonCategory": "usageTrusted", "updated": "2025-02-19T20:14:46.879Z" }, { "rule": "React-useRef", "path": "node_modules/framer-motion/dist/cjs/index.js", "line": " var activeSpringAnimation = React.useRef(null);", "reasonCategory": "usageTrusted", "updated": "2025-02-19T20:14:46.879Z" }, { "rule": "React-useRef", "path": "node_modules/framer-motion/dist/cjs/index.js", "line": " var index = React.useRef(0);", "reasonCategory": "usageTrusted", "updated": "2025-02-19T20:14:46.879Z" }, { "rule": "React-useRef", "path": "node_modules/framer-motion/dist/framer-motion.dev.js", "line": " var visualElementRef = React.useRef(undefined);", "reasonCategory": "usageTrusted", "updated": "2025-02-19T20:14:46.879Z" }, { "rule": "React-useRef", "path": "node_modules/framer-motion/dist/framer-motion.dev.js", "line": " var ref = React.useRef(null);", "reasonCategory": "usageTrusted", "updated": "2025-02-19T20:14:46.879Z" }, { "rule": "React-useRef", "path": "node_modules/framer-motion/dist/framer-motion.dev.js", "line": " * const ref = useRef(null)", "reasonCategory": "usageTrusted", "updated": "2025-02-19T20:14:46.879Z" }, { "rule": "React-useRef", "path": "node_modules/framer-motion/dist/framer-motion.dev.js", "line": " var isPressing = React.useRef(false);", "reasonCategory": "usageTrusted", "updated": "2025-02-19T20:14:46.879Z" }, { "rule": "React-useRef", "path": "node_modules/framer-motion/dist/framer-motion.dev.js", "line": " var cancelPointerEndListeners = React.useRef(null);", "reasonCategory": "usageTrusted", "updated": "2025-02-19T20:14:46.879Z" }, { "rule": "React-useRef", "path": "node_modules/framer-motion/dist/framer-motion.dev.js", "line": " var state = React.useRef({", "reasonCategory": "usageTrusted", "updated": "2025-02-19T20:14:46.879Z" }, { "rule": "React-useRef", "path": "node_modules/framer-motion/dist/framer-motion.dev.js", "line": " var panSession = React.useRef(null);", "reasonCategory": "usageTrusted", "updated": "2025-02-19T20:14:46.879Z" }, { "rule": "React-useRef", "path": "node_modules/framer-motion/dist/framer-motion.dev.js", "line": " var isMounted = React.useRef(false);", "reasonCategory": "usageTrusted", "updated": "2025-02-19T20:14:46.879Z" }, { "rule": "React-useRef", "path": "node_modules/framer-motion/dist/framer-motion.dev.js", "line": " var presentChildren = React.useRef(childrenToRender);", "reasonCategory": "usageTrusted", "updated": "2025-02-19T20:14:46.879Z" }, { "rule": "React-useRef", "path": "node_modules/framer-motion/dist/framer-motion.dev.js", "line": " var allChildren = React.useRef(new Map()).current;", "reasonCategory": "usageTrusted", "updated": "2025-02-19T20:14:46.879Z" }, { "rule": "React-useRef", "path": "node_modules/framer-motion/dist/framer-motion.dev.js", "line": " var isInitialRender = React.useRef(true);", "reasonCategory": "usageTrusted", "updated": "2025-02-19T20:14:46.879Z" }, { "rule": "React-useRef", "path": "node_modules/framer-motion/dist/framer-motion.dev.js", "line": " var context = React.useRef(null);", "reasonCategory": "usageTrusted", "updated": "2025-02-19T20:14:46.879Z" }, { "rule": "React-useRef", "path": "node_modules/framer-motion/dist/framer-motion.dev.js", "line": " var loadedRenderer = React.useRef(undefined);", "reasonCategory": "usageTrusted", "updated": "2025-02-19T20:14:46.879Z" }, { "rule": "React-useRef", "path": "node_modules/framer-motion/dist/framer-motion.dev.js", "line": " var isReordering = React.useRef(false);", "reasonCategory": "usageTrusted", "updated": "2025-02-19T20:14:46.879Z" }, { "rule": "React-useRef", "path": "node_modules/framer-motion/dist/framer-motion.dev.js", "line": " var measuredLayout = React.useRef(null);", "reasonCategory": "usageTrusted", "updated": "2025-02-19T20:14:46.879Z" }, { "rule": "React-useRef", "path": "node_modules/framer-motion/dist/framer-motion.dev.js", "line": " var activeSpringAnimation = React.useRef(null);", "reasonCategory": "usageTrusted", "updated": "2025-02-19T20:14:46.879Z" }, { "rule": "React-useRef", "path": "node_modules/framer-motion/dist/framer-motion.dev.js", "line": " var index = React.useRef(0);", "reasonCategory": "usageTrusted", "updated": "2025-02-19T20:14:46.879Z" }, { "rule": "React-useRef", "path": "node_modules/framer-motion/dist/framer-motion.js", "reasonCategory": "usageTrusted", "updated": "2025-02-19T20:14:46.879Z" }, { "rule": "DOM-innerHTML", "path": "node_modules/google-libphonenumber/dist/libphonenumber.js", "reasonCategory": "notExercisedByOurApp", "updated": "2021-02-16T19:08:17.452Z", "reasonDetail": "Debug capabilities" }, { "rule": "DOM-innerHTML", "path": "node_modules/google-libphonenumber/dist/libphonenumber.js", "line": "goog.dom.safe.unsafeSetInnerHtmlDoNotUseOrElse=function(a,b){if(goog.dom.safe.isInnerHtmlCleanupRecursive_())for(;a.lastChild;)a.removeChild(a.lastChild);a.innerHTML=goog.html.SafeHtml.unwrapTrustedHTML(b)};", "reasonCategory": "notExercisedByOurApp", "updated": "2021-02-16T19:08:17.452Z", "reasonDetail": "Debug capabilities" }, { "rule": "DOM-outerHTML", "path": "node_modules/google-libphonenumber/dist/libphonenumber.js", "reasonCategory": "usageTrusted", "updated": "2021-02-16T19:08:17.452Z", "reasonDetail": "Escapes HTML, HTML comes from a constant" }, { "rule": "eval", "path": "node_modules/google-libphonenumber/dist/libphonenumber.js", "reasonCategory": "notExercisedByOurApp", "updated": "2021-02-16T19:08:17.452Z", "reasonDetail": "Transpilation logic" }, { "rule": "eval", "path": "node_modules/google-libphonenumber/dist/libphonenumber.js", "reasonCategory": "notExercisedByOurApp", "updated": "2021-02-16T19:08:17.452Z", "reasonDetail": "Used to load dependencies; parent function loadModuleFromSource_ is used in one place only." }, { "rule": "eval", "path": "node_modules/google-libphonenumber/dist/libphonenumber.js", "reasonCategory": "usageTrusted", "updated": "2021-02-16T19:08:17.452Z", "reasonDetail": "Hard-coded string used for testing capabilities." }, { "rule": "DOM-innerHTML", "path": "node_modules/intl-tel-input/build/js/intlTelInput.js", "line": " this.selectedDialCode.innerHTML = dialCode;", "reasonCategory": "usageTrusted", "updated": "2021-12-01T01:31:12.757Z" }, { "rule": "DOM-innerHTML", "path": "node_modules/intl-tel-input/build/js/intlTelInput.js", "line": " this.countryList.innerHTML = \"\";", "reasonCategory": "usageTrusted", "updated": "2024-11-16T00:33:41.092Z" }, { "rule": "DOM-innerHTML", "path": "node_modules/intl-tel-input/build/js/intlTelInput.min.js", "reasonCategory": "usageTrusted", "updated": "2021-12-01T01:31:12.757Z" }, { "rule": "DOM-innerHTML", "path": "node_modules/intl-tel-input/build/js/intlTelInputWithUtils.js", "line": " this.countryList.innerHTML = \"\";", "reasonCategory": "usageTrusted", "updated": "2024-11-16T00:33:41.092Z" }, { "rule": "DOM-innerHTML", "path": "node_modules/intl-tel-input/build/js/intlTelInputWithUtils.js", "line": " this.selectedDialCode.innerHTML = dialCode;", "reasonCategory": "usageTrusted", "updated": "2024-11-16T00:33:41.092Z" }, { "rule": "DOM-innerHTML", "path": "node_modules/intl-tel-input/build/js/intlTelInputWithUtils.min.js", "reasonCategory": "usageTrusted", "updated": "2024-11-16T00:33:41.092Z" }, { "rule": "DOM-innerHTML", "path": "node_modules/intl-tel-input/react/build/IntlTelInput.js", "line": " this.countryList.innerHTML = \"\";", "reasonCategory": "usageTrusted", "updated": "2024-11-16T00:33:41.092Z" }, { "rule": "DOM-innerHTML", "path": "node_modules/intl-tel-input/react/build/IntlTelInput.js", "line": " this.selectedDialCode.innerHTML = dialCode;", "reasonCategory": "usageTrusted", "updated": "2024-11-16T00:33:41.092Z" }, { "rule": "React-useRef", "path": "node_modules/intl-tel-input/react/build/IntlTelInput.js", "line": " const inputRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2024-11-16T00:33:41.092Z" }, { "rule": "React-useRef", "path": "node_modules/intl-tel-input/react/build/IntlTelInput.js", "line": " const itiRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2024-11-16T00:33:41.092Z" }, { "rule": "DOM-innerHTML", "path": "node_modules/intl-tel-input/react/build/IntlTelInputWithUtils.js", "line": " this.countryList.innerHTML = \"\";", "reasonCategory": "usageTrusted", "updated": "2024-11-16T00:33:41.092Z" }, { "rule": "DOM-innerHTML", "path": "node_modules/intl-tel-input/react/build/IntlTelInputWithUtils.js", "line": " this.selectedDialCode.innerHTML = dialCode;", "reasonCategory": "usageTrusted", "updated": "2024-11-16T00:33:41.092Z" }, { "rule": "React-useRef", "path": "node_modules/intl-tel-input/react/build/IntlTelInputWithUtils.js", "line": " const inputRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2024-11-16T00:33:41.092Z" }, { "rule": "React-useRef", "path": "node_modules/intl-tel-input/react/build/IntlTelInputWithUtils.js", "line": " const itiRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2024-11-16T00:33:41.092Z" }, { "rule": "thenify-multiArgs", "path": "node_modules/pify/index.js", "line": "\t\t\t\tif (opts.multiArgs) {", "reasonCategory": "falseMatch", "updated": "2018-09-19T18:06:35.446Z" }, { "rule": "thenify-multiArgs", "path": "node_modules/pify/index.js", "line": "\t\t\t\tif (opts.multiArgs) {", "reasonCategory": "falseMatch", "updated": "2018-09-19T18:06:35.446Z" }, { "rule": "eval", "path": "node_modules/pino/test/fixtures/eval/index.js", "line": "eval(`", "reasonCategory": "testCode", "updated": "2024-06-24T19:19:28.335Z" }, { "rule": "eval", "path": "node_modules/protobufjs/dist/light/protobuf.js", "line": " var mod = eval(\"quire\".replace(/^/,\"re\"))(moduleName); // eslint-disable-line no-eval", "reasonCategory": "usageTrusted", "updated": "2019-03-09T00:08:44.242Z", "reasonDetail": "Eval is used here to produce and evaluate the expression 'require'" }, { "rule": "eval", "path": "node_modules/protobufjs/dist/light/protobuf.min.js", "reasonCategory": "usageTrusted", "updated": "2018-09-18T19:19:27.699Z", "reasonDetail": "Hard-coded string" }, { "rule": "eval", "path": "node_modules/protobufjs/dist/minimal/protobuf.js", "line": " var mod = eval(\"quire\".replace(/^/,\"re\"))(moduleName); // eslint-disable-line no-eval", "reasonCategory": "usageTrusted", "updated": "2019-03-09T00:08:44.242Z", "reasonDetail": "Eval is used here to produce and evaluate the expression 'require'" }, { "rule": "eval", "path": "node_modules/protobufjs/dist/minimal/protobuf.min.js", "reasonCategory": "falseMatch", "updated": "2018-09-18T19:19:27.699Z", "reasonDetail": "Inside of regular expression" }, { "rule": "eval", "path": "node_modules/protobufjs/dist/protobuf.js", "line": " var mod = eval(\"quire\".replace(/^/,\"re\"))(moduleName); // eslint-disable-line no-eval", "reasonCategory": "usageTrusted", "updated": "2019-03-09T00:08:44.242Z", "reasonDetail": "Eval is used here to produce and evaluate the expression 'require'" }, { "rule": "eval", "path": "node_modules/protobufjs/dist/protobuf.min.js", "reasonCategory": "usageTrusted", "updated": "2018-09-18T19:19:27.699Z", "reasonDetail": "Hard-coded string" }, { "rule": "DOM-document.write(", "path": "node_modules/qrcode-generator/sample.js", "line": " document.write(create_qrcode(text, typeNumber, errorCorrectionLevel) );", "reasonCategory": "notExercisedByOurApp", "updated": "2022-01-04T20:32:10.596Z", "reasonDetail": "Sample code never required by us." }, { "rule": "DOM-innerHTML", "path": "node_modules/qrcode-generator/sample.js", "line": " document.getElementById('qr').innerHTML =", "reasonCategory": "notExercisedByOurApp", "updated": "2022-01-04T20:32:10.596Z", "reasonDetail": "Sample code never required by us." }, { "rule": "DOM-innerHTML", "path": "node_modules/react-blurhash/docs/demo.f335462148ad584661d8.js", "reasonCategory": "usageTrusted", "updated": "2024-11-14T18:53:33.345Z" }, { "rule": "DOM-innerHTML", "path": "node_modules/react-blurhash/docs/demo.f335462148ad584661d8.js", "reasonCategory": "usageTrusted", "updated": "2024-11-14T18:53:33.345Z" }, { "rule": "React-dangerouslySetInnerHTML", "path": "node_modules/react-blurhash/docs/demo.f335462148ad584661d8.js", "reasonCategory": "usageTrusted", "updated": "2024-11-14T18:53:33.345Z" }, { "rule": "React-dangerouslySetInnerHTML", "path": "node_modules/react-blurhash/docs/demo.f335462148ad584661d8.js", "reasonCategory": "usageTrusted", "updated": "2024-11-14T18:53:33.345Z" }, { "rule": "React-ref", "path": "node_modules/react-blurhash/docs/demo.f335462148ad584661d8.js", "reasonCategory": "usageTrusted", "updated": "2024-11-14T18:53:33.345Z" }, { "rule": "React-ref", "path": "node_modules/react-blurhash/docs/demo.f335462148ad584661d8.js", "reasonCategory": "usageTrusted", "updated": "2024-11-14T18:53:33.345Z" }, { "rule": "React-useRef", "path": "node_modules/react-blurhash/docs/demo.f335462148ad584661d8.js", "reasonCategory": "usageTrusted", "updated": "2024-11-14T18:53:33.345Z" }, { "rule": "React-useRef", "path": "ts/axo/AriaClickable.dom.tsx", "line": " const ref = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2025-08-28T23:36:44.974Z" }, { "rule": "React-useRef", "path": "ts/axo/AriaClickable.dom.tsx", "line": " const onTriggerStateUpdateRef = useRef(onTriggerStateUpdate);", "reasonCategory": "usageTrusted", "updated": "2025-08-28T23:36:44.974Z" }, { "rule": "React-useRef", "path": "ts/calling/useGetCallingFrameBuffer.std.ts", "line": " const ref = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2025-10-01T20:11:56Z", "reasonDetail": "Doesn't touch the DOM." }, { "rule": "React-useRef", "path": "ts/components/AutoSizeInput.dom.tsx", "line": " const hiddenRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2024-01-11T16:58:57.146Z", "reasonDetail": "Needs access to a hidden span element to get its width" }, { "rule": "React-useRef", "path": "ts/components/AutoSizeTextArea.dom.tsx", "line": " const ownRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2024-03-26T17:14:14.370Z" }, { "rule": "React-useRef", "path": "ts/components/AvatarEditor.dom.tsx", "line": " const tryClose = useRef<() => void | undefined>();", "reasonCategory": "usageTrusted", "updated": "2025-05-24T03:40:20.019Z", "reasonDetail": "Holding on to a close function" }, { "rule": "React-useRef", "path": "ts/components/AvatarTextEditor.dom.tsx", "line": " const measureElRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2021-08-04T18:18:09.236Z", "reasonDetail": "Only used for measurement. Doesn't modify the DOM." }, { "rule": "React-useRef", "path": "ts/components/AvatarTextEditor.dom.tsx", "line": " const inputRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2021-08-04T22:02:17.074Z" }, { "rule": "React-useRef", "path": "ts/components/AvatarTextEditor.dom.tsx", "line": " const onDoneRef = useRef(onDone);", "reasonCategory": "usageTrusted", "updated": "2021-08-05T23:40:55.699Z" }, { "rule": "React-useRef", "path": "ts/components/AvatarUploadButton.dom.tsx", "line": " const fileInputRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2021-08-03T21:17:38.615Z" }, { "rule": "React-useRef", "path": "ts/components/CallManager.dom.tsx", "line": " const imageDataCache = React.useRef(new Map());", "reasonCategory": "usageTrusted", "updated": "2024-05-06T20:18:59.647Z" }, { "rule": "React-useRef", "path": "ts/components/CallNeedPermissionScreen.dom.tsx", "line": " const autoCloseAtRef = useRef(Date.now() + AUTO_CLOSE_MS);", "reasonCategory": "usageTrusted", "updated": "2021-07-30T16:57:33.618Z" }, { "rule": "React-useRef", "path": "ts/components/CallReactionBurst.dom.tsx", "line": " const timeouts = useRef>(new Map());", "reasonCategory": "usageTrusted", "updated": "2024-01-06T00:59:20.678Z", "reasonDetail": "For hiding call reaction bursts after timeouts." }, { "rule": "React-useRef", "path": "ts/components/CallReactionBurst.dom.tsx", "line": " const burstsShown = useRef>(new Set());", "reasonCategory": "usageTrusted", "updated": "2024-01-06T00:59:20.678Z", "reasonDetail": "In wrapping function, track bursts so we can hide on unmount." }, { "rule": "React-useRef", "path": "ts/components/CallReactionBurst.dom.tsx", "line": " const shownBursts = useRef>(new Set());", "reasonCategory": "usageTrusted", "updated": "2024-01-06T00:59:20.678Z", "reasonDetail": "Keep track of shown reaction bursts." }, { "rule": "React-useRef", "path": "ts/components/CallReactionBurstEmoji.dom.tsx", "line": " const containerRef = React.useRef(null);", "reasonCategory": "usageTrusted", "updated": "2024-01-06T00:59:20.678Z", "reasonDetail": "For determining position of container for animations." }, { "rule": "React-useRef", "path": "ts/components/CallScreen.dom.tsx", "line": " const burstsShown = useRef>(new Map());", "reasonCategory": "sageTrusted", "updated": "2024-01-06T00:59:20.678Z", "reasonDetail": "Recent bursts shown for burst behavior like throttling." }, { "rule": "React-useRef", "path": "ts/components/CallScreen.dom.tsx", "line": " const toastRegionRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2023-11-14T23:29:51.425Z", "reasonDetail": "For calling reactions toasts" }, { "rule": "React-useRef", "path": "ts/components/CallScreen.dom.tsx", "line": " const reactionPickerRef = React.useRef(null);", "reasonCategory": "usageTrusted", "updated": "2023-11-14T23:29:51.425Z", "reasonDetail": "To render the reaction picker in the CallScreen" }, { "rule": "React-useRef", "path": "ts/components/CallScreen.dom.tsx", "line": " const burstRegionRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2023-12-21T11:13:56.623Z", "reasonDetail": "Calling reactions bursts" }, { "rule": "React-useRef", "path": "ts/components/CallScreen.dom.tsx", "line": " const reactionsShown = useRef<", "reasonCategory": "usageTrusted", "updated": "2024-01-06T00:59:20.678Z", "reasonDetail": "Recent reactions shown for reactions burst" }, { "rule": "React-useRef", "path": "ts/components/CallScreen.dom.tsx", "line": " const reactButtonRef = React.useRef(null);", "reasonCategory": "usageTrusted", "updated": "2024-01-16T22:59:06.336Z" }, { "rule": "React-useRef", "path": "ts/components/CallScreen.dom.tsx", "line": " const reactionPickerContainerRef = React.useRef(null);", "reasonCategory": "usageTrusted", "updated": "2024-01-16T22:59:06.336Z" }, { "rule": "React-useRef", "path": "ts/components/CallingPendingParticipants.dom.tsx", "line": " const expandedListRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2024-06-28T01:22:22.509Z", "reasonDetail": "For outside click handling" }, { "rule": "React-useRef", "path": "ts/components/CallingPendingParticipants.dom.tsx", "line": " const lastParticipantRef = React.useRef();", "reasonCategory": "usageTrusted", "updated": "2024-09-20T02:11:27.851Z", "reasonDetail": "For fading out, to keep showing the last known participant" }, { "rule": "React-useRef", "path": "ts/components/CallingPip.dom.tsx", "line": " const videoContainerRef = React.useRef(null);", "reasonCategory": "usageTrusted", "updated": "2021-07-30T16:57:33.618Z" }, { "rule": "React-useRef", "path": "ts/components/CallingToast.dom.tsx", "line": " const shownToasts = React.useRef>(new Set());", "reasonCategory": "usageTrusted", "updated": "2023-10-04T20:50:45.297Z" }, { "rule": "React-useRef", "path": "ts/components/CallingToast.dom.tsx", "line": " const timeouts = React.useRef>(new Map());", "reasonCategory": "usageTrusted", "updated": "2023-10-10T17:05:02.468Z" }, { "rule": "React-useRef", "path": "ts/components/CallingToast.dom.tsx", "line": " const timeoutsStatus = React.useRef<'active' | 'paused'>('active');", "reasonCategory": "usageTrusted", "updated": "2023-10-10T17:05:02.468Z" }, { "rule": "React-useRef", "path": "ts/components/CallingToast.dom.tsx", "line": " const toastsShown = useRef>(new Set());", "reasonCategory": "usageTrusted", "updated": "2023-10-10T17:05:02.468Z" }, { "rule": "React-useRef", "path": "ts/components/CallingToast.dom.tsx", "line": " const toastId = useRef(uuid());", "reasonCategory": "usageTrusted", "updated": "2023-11-14T16:52:45.342Z" }, { "rule": "React-useRef", "path": "ts/components/CallingToastManager.dom.tsx", "line": " const toastRegionRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2023-10-26T13:57:41.860Z" }, { "rule": "React-useRef", "path": "ts/components/CallingToastManager.dom.tsx", "line": " const toastLastShownAt = useRef(0);", "reasonCategory": "usageTrusted", "updated": "2024-01-12T18:56:18.138Z" }, { "rule": "React-useRef", "path": "ts/components/CallingToastManager.dom.tsx", "line": " const handsForLastShownToast = useRef>(new Set());", "reasonCategory": "usageTrusted", "updated": "2024-01-12T18:56:18.138Z" }, { "rule": "React-useRef", "path": "ts/components/CallsList.preload.tsx", "line": " const infiniteLoaderRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2023-08-02T00:21:37.858Z" }, { "rule": "React-useRef", "path": "ts/components/CallsList.preload.tsx", "line": " const listRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2023-08-02T00:21:37.858Z" }, { "rule": "React-useRef", "path": "ts/components/CallsList.preload.tsx", "line": " const prevOptionsRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2023-08-18T19:09:30.283Z" }, { "rule": "React-useRef", "path": "ts/components/CallsList.preload.tsx", "line": " const getCallHistoryGroupsCountRef = useRef(getCallHistoryGroupsCount);", "reasonCategory": "usageTrusted", "updated": "2023-11-27T20:25:10.634Z" }, { "rule": "React-useRef", "path": "ts/components/CallsList.preload.tsx", "line": " const getCallHistoryGroupsRef = useRef(getCallHistoryGroups);", "reasonCategory": "usageTrusted", "updated": "2023-11-27T20:25:10.634Z" }, { "rule": "React-useRef", "path": "ts/components/CallsList.preload.tsx", "line": " const searchStateItemsRef = useRef | null>(", "reasonCategory": "usageTrusted", "updated": "2024-05-16T02:10:00.652Z" }, { "rule": "React-useRef", "path": "ts/components/CallsList.preload.tsx", "line": " const peekQueueRef = useRef>(new Set());", "reasonCategory": "usageTrusted", "updated": "2024-05-16T02:10:00.652Z" }, { "rule": "React-useRef", "path": "ts/components/CallsList.preload.tsx", "line": " const peekQueueArgsRef = useRef>(", "reasonCategory": "usageTrusted", "updated": "2024-05-16T02:10:00.652Z" }, { "rule": "React-useRef", "path": "ts/components/CallsList.preload.tsx", "line": " const inactiveCallLinksPeekedAtRef = useRef>(new Map());", "reasonCategory": "usageTrusted", "updated": "2024-05-16T02:10:00.652Z" }, { "rule": "React-useRef", "path": "ts/components/CallsList.preload.tsx", "line": " const peekQueueTimerRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2024-05-16T02:10:00.652Z" }, { "rule": "React-useRef", "path": "ts/components/CaptchaDialog.dom.tsx", "line": " const buttonRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2021-07-30T16:57:33.618Z" }, { "rule": "React-useRef", "path": "ts/components/ChatColorPicker.dom.tsx", "line": " const menuRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2021-07-30T16:57:33.618Z" }, { "rule": "React-useRef", "path": "ts/components/CompositionArea.dom.tsx", "line": " const inputApiRef = useRef();", "reasonCategory": "usageTrusted", "updated": "2021-09-23T00:07:11.885Z" }, { "rule": "React-useRef", "path": "ts/components/CompositionArea.dom.tsx", "line": " const fileInputRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2021-09-23T00:07:11.885Z" }, { "rule": "React-useRef", "path": "ts/components/CompositionInput.dom.tsx", "line": " const callbacksRef = React.useRef(unstaleCallbacks);", "reasonCategory": "usageTrusted", "updated": "2021-04-21T21:35:38.757Z" }, { "rule": "React-useRef", "path": "ts/components/CompositionInput.dom.tsx", "line": " const emojiCompletionRef = React.useRef();", "reasonCategory": "usageTrusted", "updated": "2021-07-30T16:57:33.618Z" }, { "rule": "React-useRef", "path": "ts/components/CompositionInput.dom.tsx", "line": " const mentionCompletionRef = React.useRef();", "reasonCategory": "usageTrusted", "updated": "2021-07-30T16:57:33.618Z" }, { "rule": "React-useRef", "path": "ts/components/CompositionInput.dom.tsx", "line": " const quillRef = React.useRef();", "reasonCategory": "usageTrusted", "updated": "2021-07-30T16:57:33.618Z" }, { "rule": "React-useRef", "path": "ts/components/CompositionInput.dom.tsx", "line": " const propsRef = React.useRef(props);", "reasonCategory": "usageTrusted", "updated": "2021-07-30T16:57:33.618Z" }, { "rule": "React-useRef", "path": "ts/components/CompositionInput.dom.tsx", "line": " const memberRepositoryRef = React.useRef(", "reasonCategory": "usageTrusted", "updated": "2021-07-30T16:57:33.618Z" }, { "rule": "React-useRef", "path": "ts/components/CompositionInput.dom.tsx", "line": " const canSendRef = React.useRef(false);", "reasonCategory": "usageTrusted", "updated": "2022-06-25T00:06:19.860Z", "reasonDetail": "Not used for DOM manipulation" }, { "rule": "React-useRef", "path": "ts/components/CompositionRecording.dom.tsx", "line": " const startTime = useRef(Date.now());", "reasonCategory": "usageTrusted", "updated": "2023-02-26T23:17:41.234Z" }, { "rule": "React-useRef", "path": "ts/components/CompositionRecording.dom.tsx", "line": " const drift = useRef(0);", "reasonCategory": "usageTrusted", "updated": "2023-02-26T23:20:28.848Z" }, { "rule": "React-useRef", "path": "ts/components/CompositionRecordingDraft.dom.tsx", "line": " const timeout = useRef(undefined);", "reasonCategory": "usageTrusted", "updated": "2023-02-26T23:20:28.848Z" }, { "rule": "React-useRef", "path": "ts/components/CompositionTextArea.dom.tsx", "line": " const inputApiRef = useRef();", "reasonCategory": "usageTrusted", "updated": "2025-04-01T21:15:44.903Z" }, { "rule": "React-useRef", "path": "ts/components/ContactPills.dom.tsx", "line": " const elRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2021-07-30T16:57:33.618Z" }, { "rule": "React-useRef", "path": "ts/components/ContextMenu.dom.tsx", "line": " const virtualElement = useRef(generateVirtualElement(0, 0));", "reasonCategory": "usageTrusted", "updated": "2022-08-19T17:09:38.534Z" }, { "rule": "React-useRef", "path": "ts/components/CustomizingPreferredReactionsModal.dom.tsx", "line": " const pickerRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2025-04-07T19:15:28.908Z" }, { "rule": "React-useRef", "path": "ts/components/DirectCallRemoteParticipant.dom.tsx", "line": " const remoteVideoRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2021-07-30T16:57:33.618Z" }, { "rule": "React-useRef", "path": "ts/components/EditHistoryMessagesModal.dom.tsx", "line": " const containerElementRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2023-03-25T01:59:04.590Z" }, { "rule": "React-useRef", "path": "ts/components/ForwardMessagesModal.dom.tsx", "line": " const inputRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2021-07-30T16:57:33.618Z" }, { "rule": "React-useRef", "path": "ts/components/GradientDial.dom.tsx", "line": " const containerRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2021-07-30T16:57:33.618Z" }, { "rule": "React-useRef", "path": "ts/components/GroupCallOverflowArea.dom.tsx", "line": " const overflowRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2021-07-30T16:57:33.618Z" }, { "rule": "React-useRef", "path": "ts/components/GroupCallRemoteParticipant.dom.tsx", "line": " const lastReceivedVideoAt = useRef(-Infinity);", "reasonCategory": "usageTrusted", "updated": "2021-06-17T20:46:02.342Z", "reasonDetail": "Doesn't reference the DOM." }, { "rule": "React-useRef", "path": "ts/components/GroupCallRemoteParticipant.dom.tsx", "line": " const remoteVideoRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2021-07-30T16:57:33.618Z" }, { "rule": "React-useRef", "path": "ts/components/GroupCallRemoteParticipant.dom.tsx", "line": " const canvasContextRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2021-07-30T16:57:33.618Z" }, { "rule": "React-useRef", "path": "ts/components/GroupCallRemoteParticipant.dom.tsx", "line": " const imageDataRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2021-12-10T23:24:31.237Z", "reasonDetail": "Doesn't touch the DOM." }, { "rule": "React-useRef", "path": "ts/components/ImageOrBlurhash.dom.tsx", "line": " const ref = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2025-08-05T17:07:11.678Z" }, { "rule": "React-useRef", "path": "ts/components/IncomingCallBar.dom.tsx", "line": " const initialTitleRef = useRef(title);", "reasonCategory": "usageTrusted", "updated": "2021-08-16T20:52:11.043Z", "reasonDetail": "Doesn't interact with the DOM." }, { "rule": "React-useRef", "path": "ts/components/Input.dom.tsx", "line": " const innerRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2021-07-30T16:57:33.618Z" }, { "rule": "React-useRef", "path": "ts/components/Input.dom.tsx", "line": " const valueOnKeydownRef = useRef(value);", "reasonCategory": "usageTrusted", "updated": "2021-07-30T16:57:33.618Z" }, { "rule": "React-useRef", "path": "ts/components/Input.dom.tsx", "line": " const selectionStartOnKeydownRef = useRef(value.length);", "reasonCategory": "usageTrusted", "updated": "2021-07-30T16:57:33.618Z" }, { "rule": "React-useRef", "path": "ts/components/LeftPane.dom.tsx", "line": " const measureRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2023-08-09T21:48:42.602Z" }, { "rule": "React-useRef", "path": "ts/components/LeftPaneSearchInput.dom.tsx", "line": " const inputRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2022-02-11T20:49:03.879Z" }, { "rule": "React-useRef", "path": "ts/components/Lightbox.dom.tsx", "line": " const containerRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2021-08-23T18:39:37.081Z" }, { "rule": "React-useRef", "path": "ts/components/Lightbox.dom.tsx", "line": " const imageRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2021-09-24T00:03:36.061Z" }, { "rule": "React-useRef", "path": "ts/components/Lightbox.dom.tsx", "line": " const animateRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2021-10-11T21:21:08.188Z" }, { "rule": "React-useRef", "path": "ts/components/Lightbox.dom.tsx", "line": " const dragCacheRef = useRef<", "reasonCategory": "usageTrusted", "updated": "2021-10-11T21:21:08.188Z" }, { "rule": "React-useRef", "path": "ts/components/Lightbox.dom.tsx", "line": " const zoomCacheRef = useRef<", "reasonCategory": "usageTrusted", "updated": "2021-10-11T21:21:08.188Z" }, { "rule": "React-useRef", "path": "ts/components/Lightbox.dom.tsx", "line": " const downloadToastTimeout = useRef();", "reasonCategory": "usageTrusted", "updated": "2025-01-06T03:53:58.093Z", "reasonDetail": "usageTrusted" }, { "rule": "React-useRef", "path": "ts/components/ListView.dom.tsx", "line": " const listRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2022-11-11T17:11:07.659Z" }, { "rule": "React-useRef", "path": "ts/components/MediaEditor.dom.tsx", "line": " const inputApiRef = useRef();", "reasonCategory": "usageTrusted", "updated": "2023-09-11T20:19:18.681Z" }, { "rule": "React-useRef", "path": "ts/components/MediaEditor.dom.tsx", "line": " const tryClose = useRef<() => void | undefined>();", "reasonCategory": "usageTrusted", "updated": "2025-05-19T22:29:15.758Z", "reasonDetail": "Holding on to a close function" }, { "rule": "React-useRef", "path": "ts/components/MediaQualitySelector.dom.tsx", "line": " const buttonRef = React.useRef(null);", "reasonCategory": "usageTrusted", "updated": "2022-06-14T22:04:43.988Z", "reasonDetail": "Handling outside click" }, { "rule": "React-useRef", "path": "ts/components/Modal.dom.tsx", "line": " const modalRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2021-08-05T00:22:31.660Z" }, { "rule": "React-useRef", "path": "ts/components/Modal.dom.tsx", "line": " const bodyRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2023-07-25T21:55:26.191Z" }, { "rule": "React-useRef", "path": "ts/components/Modal.dom.tsx", "line": " const bodyInnerRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2023-07-25T21:55:26.191Z" }, { "rule": "React-useRef", "path": "ts/components/ModalContainer.dom.tsx", "line": " const containerRef = React.useRef(null);", "reasonCategory": "usageTrusted", "updated": "2022-10-14T16:39:48.461Z" }, { "rule": "React-useRef", "path": "ts/components/ModalHost.dom.tsx", "line": " const containerRef = React.useRef(null);", "reasonCategory": "usageTrusted", "updated": "2022-09-14T16:20:15.384Z", "reasonDetail": "Holds a reference to a container element to prevent outside clicks" }, { "rule": "React-useRef", "path": "ts/components/Preferences.dom.tsx", "line": " const settingsPaneRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2023-04-21T02:12:22.352Z" }, { "rule": "React-useRef", "path": "ts/components/PreferencesDonateFlow.dom.tsx", "line": " const tryClose = useRef<() => void | undefined>();", "reasonCategory": "usageTrusted", "updated": "2025-06-26T23:23:57.292Z", "reasonDetail": "Holding on to a close function" }, { "rule": "React-useRef", "path": "ts/components/PreferencesInternal.dom.tsx", "line": " const prevAbortControlerRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2025-08-20T18:18:34.081Z" }, { "rule": "React-useRef", "path": "ts/components/PreferencesLocalBackups.dom.tsx", "line": " const backupKeyTextareaRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2025-05-30T22:48:14.420Z", "reasonDetail": "For focusing the settings backup key viewer textarea" }, { "rule": "React-useRef", "path": "ts/components/PreferencesNotificationProfiles.dom.tsx", "line": " const tryClose = React.useRef<() => void | undefined>();", "reasonCategory": "usageTrusted", "updated": "2025-08-25T21:04:21.643Z", "reasonDetail": "Holding on to a close function" }, { "rule": "React-useRef", "path": "ts/components/PreferencesNotificationProfiles.dom.tsx", "line": " const selectedHour = React.useRef(null);", "reasonCategory": "usageTrusted", "updated": "2025-09-05T21:41:09.931Z", "reasonDetail": "Holding on to element for focus" }, { "rule": "React-useRef", "path": "ts/components/PreferencesNotificationProfiles.dom.tsx", "line": " const selectedMinute = React.useRef(null);", "reasonCategory": "usageTrusted", "updated": "2025-09-05T21:41:09.931Z", "reasonDetail": "Holding on to element for scrolling into view" }, { "rule": "React-useRef", "path": "ts/components/ProfileEditor.dom.tsx", "line": " const focusInputRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2021-07-30T16:57:33.618Z" }, { "rule": "React-useRef", "path": "ts/components/ProfileEditor.dom.tsx", "line": " const tryClose = useRef<() => void | undefined>();", "reasonCategory": "usageTrusted", "updated": "2025-05-24T03:23:25.769Z", "reasonDetail": "Holding on to a close function" }, { "rule": "React-useRef", "path": "ts/components/QrCode.dom.tsx", "line": " const elRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2022-01-04T21:43:17.517Z", "reasonDetail": "Used to change the style in non-production builds." }, { "rule": "React-useRef", "path": "ts/components/SafetyTipsModal.dom.tsx", "line": " const scrollEndTimer = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2024-03-08T01:48:15.330Z" }, { "rule": "React-useRef", "path": "ts/components/Slider.dom.tsx", "line": " const diff = useRef(0);", "reasonCategory": "usageTrusted", "updated": "2021-07-30T16:57:33.618Z" }, { "rule": "React-useRef", "path": "ts/components/Slider.dom.tsx", "line": " const handleRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2021-07-30T16:57:33.618Z" }, { "rule": "React-useRef", "path": "ts/components/Slider.dom.tsx", "line": " const sliderRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2021-07-30T16:57:33.618Z" }, { "rule": "React-useRef", "path": "ts/components/StandaloneRegistration.dom.tsx", "line": " const elemRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2021-11-30T10:15:33.662Z" }, { "rule": "React-useRef", "path": "ts/components/StandaloneRegistration.dom.tsx", "line": " const pluginRef = useRef();", "reasonCategory": "usageTrusted", "updated": "2024-11-16T00:33:41.092Z" }, { "rule": "React-useRef", "path": "ts/components/StoriesSettingsModal.dom.tsx", "line": " const tryClose = useRef<() => void | undefined>();", "reasonCategory": "usageTrusted", "updated": "2025-05-19T22:29:15.758Z", "reasonDetail": "Holding on to a close function" }, { "rule": "React-useRef", "path": "ts/components/StoryImage.dom.tsx", "line": " const videoRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2022-04-29T23:54:21.656Z" }, { "rule": "React-useRef", "path": "ts/components/StoryProgressSegment.dom.tsx", "line": " const onFinishRef = useRef(onFinish);", "reasonCategory": "usageTrusted", "updated": "2024-08-13T20:48:09.226Z" }, { "rule": "React-useRef", "path": "ts/components/StoryViewsNRepliesModal.dom.tsx", "line": " const inputApiRef = useRef();", "reasonCategory": "usageTrusted", "updated": "2022-02-15T17:57:06.507Z" }, { "rule": "React-useRef", "path": "ts/components/StoryViewsNRepliesModal.dom.tsx", "line": " const containerElementRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2022-08-04T00:52:01.080Z" }, { "rule": "React-useRef", "path": "ts/components/StoryViewsNRepliesModal.dom.tsx", "line": " const shouldScrollToBottomRef = useRef(true);", "reasonCategory": "usageTrusted", "updated": "2022-10-05T18:51:56.411Z" }, { "rule": "React-useRef", "path": "ts/components/StoryViewsNRepliesModal.dom.tsx", "line": " const bottomRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2022-10-05T18:51:56.411Z" }, { "rule": "React-useRef", "path": "ts/components/StoryViewsNRepliesModal.dom.tsx", "line": " const tryClose = useRef<() => void | undefined>();", "reasonCategory": "usageTrusted", "updated": "2025-05-19T23:20:52.448Z", "reasonDetail": "Holding on to a close function" }, { "rule": "React-useRef", "path": "ts/components/TextAttachment.dom.tsx", "line": " const linkPreview = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2022-04-06T00:59:17.194Z" }, { "rule": "React-useRef", "path": "ts/components/TextAttachment.dom.tsx", "line": " const textEditorRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2022-06-16T23:23:32.306Z" }, { "rule": "React-useRef", "path": "ts/components/TextAttachment.dom.tsx", "line": " const ref = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2023-07-25T21:55:26.191Z" }, { "rule": "React-useRef", "path": "ts/components/TextStoryCreator.dom.tsx", "line": " const textEditorRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2022-06-16T23:23:32.306Z" }, { "rule": "React-useRef", "path": "ts/components/TextStoryCreator.dom.tsx", "line": " const tryClose = useRef<() => void | undefined>();", "reasonCategory": "usageTrusted", "updated": "2025-05-19T22:29:15.758Z", "reasonDetail": "Holding on to a close function" }, { "rule": "React-useRef", "path": "ts/components/Tooltip.dom.tsx", "line": " const wrapperRef = React.useRef(null);", "reasonCategory": "usageTrusted", "updated": "2021-07-30T16:57:33.618Z" }, { "rule": "React-useRef", "path": "ts/components/Tooltip.dom.tsx", "line": " const timeoutRef = useRef();", "reasonCategory": "usageTrusted", "updated": "2023-08-10T00:23:35.320Z" }, { "rule": "React-useRef", "path": "ts/components/UsernameEditor.dom.tsx", "line": " const tryClose = useRef<() => void | undefined>();", "reasonCategory": "usageTrusted", "updated": "2025-05-28T00:57:39.376Z", "reasonDetail": "Holding on to a close function" }, { "rule": "React-useRef", "path": "ts/components/UsernameLinkEditor.dom.tsx", "line": " const tryClose = useRef<() => void | undefined>();", "reasonCategory": "usageTrusted", "updated": "2025-05-28T00:57:39.376Z", "reasonDetail": "Holding on to a close function" }, { "rule": "React-useRef", "path": "ts/components/conversation/CallingNotification.dom.tsx", "line": " const menuTriggerRef = React.useRef(null);", "reasonCategory": "usageTrusted", "updated": "2023-12-08T20:28:57.595Z" }, { "rule": "React-useRef", "path": "ts/components/conversation/ConversationHeader.dom.tsx", "line": " const menuTriggerRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2024-03-15T18:29:48.327Z" }, { "rule": "React-useRef", "path": "ts/components/conversation/ConversationHeader.dom.tsx", "line": " const headerRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2024-03-15T18:29:48.327Z" }, { "rule": "React-useRef", "path": "ts/components/conversation/GIF.dom.tsx", "line": " const videoRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2021-07-30T16:57:33.618Z" }, { "rule": "React-useRef", "path": "ts/components/conversation/GroupDescription.dom.tsx", "line": " const textRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2021-07-30T16:57:33.618Z" }, { "rule": "React-useRef", "path": "ts/components/conversation/InlineNotificationWrapper.dom.tsx", "line": " const focusRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2023-04-12T15:51:28.066Z" }, { "rule": "React-createRef", "path": "ts/components/conversation/Message.dom.tsx", "line": " React.createRef();", "reasonCategory": "usageTrusted", "updated": "2021-03-05T19:57:01.431Z", "reasonDetail": "Used for detecting clicks outside reaction viewer" }, { "rule": "React-createRef", "path": "ts/components/conversation/Message.dom.tsx", "line": " public focusRef: React.RefObject = React.createRef();", "reasonCategory": "usageTrusted", "updated": "2021-03-05T19:57:01.431Z", "reasonDetail": "Used for managing focus only" }, { "rule": "React-createRef", "path": "ts/components/conversation/Message.dom.tsx", "line": " public audioButtonRef: React.RefObject = React.createRef();", "reasonCategory": "usageTrusted", "updated": "2021-03-05T19:57:01.431Z", "reasonDetail": "Used for propagating click from the Message to MessageAudio's button" }, { "rule": "React-createRef", "path": "ts/components/conversation/Message.dom.tsx", "line": " #metadataRef: React.RefObject = React.createRef();", "reasonCategory": "usageTrusted", "updated": "2023-06-30T22:12:49.259Z", "reasonDetail": "Used for excluding the message metadata from triple-click selections." }, { "rule": "React-useRef", "path": "ts/components/conversation/Message.dom.tsx", "line": " const reactionsContainerRefMerger = useRef(createRefMerger());", "reasonCategory": "usageTrusted", "updated": "2025-06-05T12:55:51.245Z", "reasonDetail": "Used for merging refs for reactions container" }, { "rule": "React-useRef", "path": "ts/components/conversation/MessageDetail.dom.tsx", "line": " const messageDetailRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2023-09-11T22:53:43.464Z", "reasonDetail": "Used to pass ref of MessageDetail to Message. Used for ReactionViewer overflow detection." }, { "rule": "React-useRef", "path": "ts/components/conversation/Quote.dom.tsx", "line": " const imageRef = useRef(new Image());", "reasonCategory": "usageTrusted", "updated": "2021-01-20T21:30:08.430Z", "reasonDetail": "Doesn't touch the DOM." }, { "rule": "React-useRef", "path": "ts/components/conversation/TimelineMessage.dom.tsx", "line": " const menuTriggerRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2023-12-08T20:28:57.595Z" }, { "rule": "React-useRef", "path": "ts/components/conversation/TypingBubble.dom.tsx", "line": " const prevTypingContactIds = React.useRef<", "reasonCategory": "usageTrusted", "updated": "2023-09-28T21:48:57.488Z", "reasonDetail": "Used to track change of typing contacts while a conversation is actively viewed." }, { "rule": "React-useRef", "path": "ts/components/conversation/WaveformScrubber.dom.tsx", "line": " const waveformRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2023-02-26T23:20:28.848Z" }, { "rule": "React-useRef", "path": "ts/components/conversation/conversation-details/AddGroupMembersModal/ChooseGroupMembersModal.dom.tsx", "line": " const inputRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2021-07-30T16:57:33.618Z" }, { "rule": "React-useRef", "path": "ts/components/conversation/conversation-details/EditConversationAttributesModal.dom.tsx", "line": " const focusDescriptionRef = useRef(", "reasonCategory": "usageTrusted", "updated": "2021-07-30T16:57:33.618Z" }, { "rule": "React-useRef", "path": "ts/components/conversation/conversation-details/EditConversationAttributesModal.dom.tsx", "line": " const startingTitleRef = useRef(externalTitle);", "reasonCategory": "usageTrusted", "updated": "2021-07-30T16:57:33.618Z" }, { "rule": "React-useRef", "path": "ts/components/conversation/conversation-details/EditConversationAttributesModal.dom.tsx", "line": " const startingAvatarUrlRef = useRef(externalAvatarUrl);", "reasonCategory": "usageTrusted", "updated": "2021-07-30T16:57:33.618Z" }, { "rule": "React-useRef", "path": "ts/components/conversation/conversation-details/EditConversationAttributesModal.dom.tsx", "line": " const tryClose = useRef<() => void | undefined>();", "reasonCategory": "usageTrusted", "updated": "2025-05-19T23:20:52.448Z", "reasonDetail": "Holding on to a close function" }, { "rule": "React-useRef", "path": "ts/components/conversation/media-gallery/MediaGallery.dom.tsx", "line": " const focusRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2019-11-01T22:46:33.013Z", "reasonDetail": "Used for setting focus only" }, { "rule": "React-useRef", "path": "ts/components/conversation/media-gallery/MediaGallery.dom.tsx", "line": " const loadingRef = useRef(false);", "reasonCategory": "usageTrusted", "updated": "2024-09-03T00:45:23.978Z", "reasonDetail": "A boolean to help us avoid making too many 'load more' requests" }, { "rule": "React-useRef", "path": "ts/components/conversation/media-gallery/MediaGallery.dom.tsx", "line": " const intersectionObserver = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2024-09-03T00:45:23.978Z", "reasonDetail": "A non-modifying reference to IntersectionObserver" }, { "rule": "React-useRef", "path": "ts/components/conversation/media-gallery/MediaGallery.dom.tsx", "line": " const scrollObserverRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2024-09-03T00:45:23.978Z", "reasonDetail": "A non-modifying reference to the DOM" }, { "rule": "React-useRef", "path": "ts/components/conversation/media-gallery/MediaGallery.dom.tsx", "line": " const tabViewRef = useRef(TabViews.Media);", "reasonCategory": "usageTrusted", "updated": "2024-09-03T00:45:23.978Z", "reasonDetail": "Because we need the current tab value outside the callback" }, { "rule": "React-useRef", "path": "ts/components/fun/FunGif.dom.tsx", "line": " const ref = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2025-03-21T23:22:07.920Z" }, { "rule": "React-useRef", "path": "ts/components/fun/FunGif.dom.tsx", "line": " const timerRef = useRef>();", "reasonCategory": "usageTrusted", "updated": "2025-03-21T23:22:07.920Z" }, { "rule": "React-useRef", "path": "ts/components/fun/FunGif.dom.tsx", "line": " const videoRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2025-03-24T18:57:50.198Z" }, { "rule": "React-useRef", "path": "ts/components/fun/base/FunImage.dom.tsx", "line": " const imageRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2025-02-19T20:14:46.879Z" }, { "rule": "React-useRef", "path": "ts/components/fun/base/FunScroller.dom.tsx", "line": " const scrollerRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2025-02-19T20:14:46.879Z" }, { "rule": "React-useRef", "path": "ts/components/fun/base/FunScroller.dom.tsx", "line": " const scrollerInnerRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2025-02-19T20:14:46.879Z" }, { "rule": "React-useRef", "path": "ts/components/fun/base/FunScroller.dom.tsx", "line": " const observerRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2025-02-19T20:14:46.879Z" }, { "rule": "React-useRef", "path": "ts/components/fun/base/FunScroller.dom.tsx", "line": " const onScrollChangeRef = useRef(props.onScrollSectionChange);", "reasonCategory": "usageTrusted", "updated": "2025-02-19T20:14:46.879Z" }, { "rule": "React-useRef", "path": "ts/components/fun/base/FunScroller.dom.tsx", "line": " const ref = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2025-02-19T20:14:46.879Z" }, { "rule": "React-useRef", "path": "ts/components/fun/base/FunSubNav.dom.tsx", "line": " const outerRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2025-02-19T20:14:46.879Z" }, { "rule": "React-useRef", "path": "ts/components/fun/base/FunSubNav.dom.tsx", "line": " const innerRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2025-02-19T20:14:46.879Z" }, { "rule": "React-useRef", "path": "ts/components/fun/base/FunSubNav.dom.tsx", "line": " const ref = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2025-02-19T20:14:46.879Z" }, { "rule": "React-useRef", "path": "ts/components/fun/base/FunTooltip.dom.tsx", "line": " const ref = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2025-05-30T20:26:57.154Z" }, { "rule": "React-useRef", "path": "ts/components/fun/data/infinite.std.ts", "line": " const loaderRef = useRef(options.loader);", "reasonCategory": "usageTrusted", "updated": "2025-02-19T20:14:46.879Z" }, { "rule": "React-useRef", "path": "ts/components/fun/data/infinite.std.ts", "line": " const hasNextPageRef = useRef(options.hasNextPage);", "reasonCategory": "usageTrusted", "updated": "2025-02-19T20:14:46.879Z" }, { "rule": "React-useRef", "path": "ts/components/fun/data/infinite.std.ts", "line": " const querySignalRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2025-02-19T20:14:46.879Z" }, { "rule": "React-useRef", "path": "ts/components/fun/data/infinite.std.ts", "line": " const stateRef = useRef(state);", "reasonCategory": "usageTrusted", "updated": "2025-02-19T20:14:46.879Z" }, { "rule": "React-useRef", "path": "ts/components/fun/keyboard/FunKeyboard.dom.tsx", "line": " const keyboardRef = useRef(props.keyboard);", "reasonCategory": "usageTrusted", "updated": "2025-02-19T20:14:46.879Z" }, { "rule": "React-useRef", "path": "ts/components/fun/keyboard/FunKeyboard.dom.tsx", "line": " const onStateChangeRef = useRef(props.onStateChange);", "reasonCategory": "usageTrusted", "updated": "2025-02-19T20:14:46.879Z" }, { "rule": "React-useRef", "path": "ts/components/fun/panels/FunPanelEmojis.dom.tsx", "line": " const scrollerRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2025-02-19T20:14:46.879Z" }, { "rule": "React-useRef", "path": "ts/components/fun/panels/FunPanelEmojis.dom.tsx", "line": " const popoverTriggerRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2025-04-10T18:24:54.606Z" }, { "rule": "React-useRef", "path": "ts/components/fun/panels/FunPanelGifs.dom.tsx", "line": " const scrollerRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2025-02-19T20:14:46.879Z" }, { "rule": "React-useRef", "path": "ts/components/fun/panels/FunPanelStickers.dom.tsx", "line": " const scrollerRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2025-02-19T20:14:46.879Z" }, { "rule": "React-useRef", "path": "ts/components/preferences/chatFolders/PreferencesEditChatFoldersPage.dom.tsx", "line": " const didSaveOrDiscardChangesRef = useRef(false);", "reasonCategory": "usageTrusted", "updated": "2025-09-24T17:08:10.620Z" }, { "rule": "React-useRef", "path": "ts/components/preferences/chatFolders/PreferencesEditChatFoldersPage.dom.tsx", "line": " const inputRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2025-10-09T23:03:57.441Z" }, { "rule": "React-useRef", "path": "ts/components/preferences/donations/DonateInputAmount.dom.tsx", "line": " const inputRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2025-08-01T20:31:42.993Z" }, { "rule": "React-useRef", "path": "ts/components/preferences/donations/DonateInputCardCvc.dom.tsx", "line": " const inputRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2025-07-17T19:33:27.401Z" }, { "rule": "React-useRef", "path": "ts/components/preferences/donations/DonateInputCardExp.dom.tsx", "line": " const inputRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2025-07-17T19:33:27.401Z" }, { "rule": "React-useRef", "path": "ts/components/preferences/donations/DonateInputCardNumber.dom.tsx", "line": " const inputRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2025-07-17T19:33:27.401Z" }, { "rule": "React-useRef", "path": "ts/hooks/useConfirmDiscard.dom.tsx", "line": " const confirmDiscardPromise = useRef<", "reasonCategory": "usageTrusted", "updated": "2025-05-19T22:29:15.758Z", "reasonDetail": "Holding on to a promise" }, { "rule": "React-useRef", "path": "ts/hooks/useIntersectionObserver.std.ts", "line": " const unobserveRef = useRef<(() => unknown) | null>(null);", "reasonCategory": "usageTrusted", "updated": "2021-09-17T20:16:37.959Z" }, { "rule": "React-useRef", "path": "ts/hooks/useIsMounted.std.ts", "line": " const isMounted = useRef(false);", "reasonCategory": "usageTrusted", "updated": "2023-10-04T20:50:45.297Z" }, { "rule": "React-useRef", "path": "ts/hooks/useNavBlocker.std.ts", "line": " const nameRef = useRef(name);", "reasonCategory": "usageTrusted", "updated": "2025-09-24T17:08:10.620Z" }, { "rule": "React-useRef", "path": "ts/hooks/useNavBlocker.std.ts", "line": " const shouldBlockRef = useRef(shouldBlock);", "reasonCategory": "usageTrusted", "updated": "2025-09-24T17:08:10.620Z" }, { "rule": "React-useRef", "path": "ts/hooks/usePrevious.std.ts", "line": " const previousValueRef = useRef(initialValue);", "reasonCategory": "usageTrusted", "updated": "2021-09-17T20:16:37.959Z" }, { "rule": "React-useRef", "path": "ts/hooks/useRestoreFocus.dom.ts", "line": " const toFocusRef = React.useRef(null);", "reasonCategory": "usageTrusted", "updated": "2021-07-30T16:57:33.618Z" }, { "rule": "React-useRef", "path": "ts/hooks/useRestoreFocus.dom.ts", "line": " const lastFocusedRef = React.useRef(null);", "reasonCategory": "usageTrusted", "updated": "2021-07-30T16:57:33.618Z" }, { "rule": "React-useRef", "path": "ts/hooks/useRestoreFocus.dom.ts", "line": " const toFocusRef = React.useRef(null);", "reasonCategory": "usageTrusted", "updated": "2021-10-22T00:52:39.251Z" }, { "rule": "React-useRef", "path": "ts/hooks/useRestoreFocus.dom.ts", "line": " const lastFocusedRef = React.useRef(null);", "reasonCategory": "usageTrusted", "updated": "2021-10-22T00:52:39.251Z" }, { "rule": "React-useRef", "path": "ts/hooks/useScrollLock.dom.tsx", "line": " const onUserInterruptRef = useRef(onUserInterrupt);", "reasonCategory": "usageTrusted", "updated": "2023-09-19T17:05:51.321Z" }, { "rule": "React-useRef", "path": "ts/hooks/useSizeObserver.dom.tsx", "line": " const sizeRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2023-07-25T21:55:26.191Z" }, { "rule": "React-useRef", "path": "ts/hooks/useSizeObserver.dom.tsx", "line": " const onSizeChangeRef = useRef(onSizeChange);", "reasonCategory": "usageTrusted", "updated": "2023-07-25T21:55:26.191Z" }, { "rule": "React-useRef", "path": "ts/hooks/useSizeObserver.dom.tsx", "line": " const ref = useRef();", "reasonCategory": "usageTrusted", "updated": "2023-07-25T21:55:26.191Z" }, { "rule": "React-useRef", "path": "ts/hooks/useSizeObserver.dom.tsx", "line": " * const scrollerRef = useRef()", "reasonCategory": "usageTrusted", "updated": "2023-07-25T21:55:26.191Z" }, { "rule": "React-useRef", "path": "ts/hooks/useSizeObserver.dom.tsx", "line": " * const scrollerInnerRef = useRef()", "reasonCategory": "usageTrusted", "updated": "2023-07-25T21:55:26.191Z" }, { "rule": "React-useRef", "path": "ts/hooks/useSizeObserver.dom.tsx", "line": " const scrollRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2023-07-25T21:55:26.191Z" }, { "rule": "React-useRef", "path": "ts/hooks/useSizeObserver.dom.tsx", "line": " const onScrollChangeRef = useRef(onScrollChange);", "reasonCategory": "usageTrusted", "updated": "2023-07-25T21:55:26.191Z" }, { "rule": "React-useRef", "path": "ts/quill/formatting/menu.dom.tsx", "line": " const buttonRef = React.useRef(null);", "reasonCategory": "usageTrusted", "updated": "2023-04-22T00:07:56.294Z", "reasonDetail": "Popper needs to reference the button" }, { "rule": "React-useRef", "path": "ts/quill/formatting/menu.dom.tsx", "line": " const fadeOutTimerRef = React.useRef();", "reasonCategory": "usageTrusted", "updated": "2023-08-02T19:01:24.771Z", "reasonDetail": "We need a persistent timer to know when to remove after fade-out" }, { "rule": "React-useRef", "path": "ts/quill/formatting/menu.dom.tsx", "line": " const hoverTimerRef = React.useRef();", "reasonCategory": "usageTrusted", "updated": "2023-08-02T19:01:24.771Z", "reasonDetail": "We need a persistent timer to track long-hovers" }, { "rule": "DOM-innerHTML", "path": "ts/quill/signal-clipboard/util.dom.ts", "line": " event.clipboardData?.setData('text/signal', container.innerHTML);", "reasonCategory": "regexMatchedSafeCode", "updated": "2023-06-02T00:37:19.861Z", "reasonDetail": "Reading from innerHTML, not setting it" }, { "rule": "React-useRef", "path": "ts/state/smart/ChatsTab.preload.tsx", "line": " const lastOpenedConversationId = useRef();", "reasonCategory": "usageTrusted", "updated": "2023-08-25T17:37:23.002Z" }, { "rule": "React-useRef", "path": "ts/state/smart/ConversationPanel.preload.tsx", "line": " const animateRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2023-07-13T23:34:39.367Z" }, { "rule": "React-useRef", "path": "ts/state/smart/ConversationPanel.preload.tsx", "line": " const overlayRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2023-07-13T23:34:39.367Z" }, { "rule": "React-useRef", "path": "ts/state/smart/ConversationPanel.preload.tsx", "line": " const focusRef = useRef(null);", "reasonCategory": "usageTrusted", "updated": "2023-07-13T23:34:39.367Z" }, { "rule": "React-useRef", "path": "ts/state/smart/ConversationPanel.preload.tsx", "line": " const wasAnimatedRef = useRef(wasAnimated);", "reasonCategory": "usageTrusted", "updated": "2023-08-20T22:14:52.008Z" }, { "rule": "DOM-innerHTML", "path": "ts/windows/loading/start.dom.ts", "line": " message.innerHTML = window.SignalContext.i18n('icu:optimizingApplication');", "reasonCategory": "usageTrusted", "updated": "2021-09-17T21:02:59.414Z" } ]