2261 lines
78 KiB
JSON
2261 lines
78 KiB
JSON
[
|
|
{
|
|
"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/calling/useGetCallingFrameBuffer.ts",
|
|
"line": " const ref = useRef<Buffer | null>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2021-12-10T23:24:03.829Z",
|
|
"reasonDetail": "Doesn't touch the DOM."
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/AutoSizeInput.tsx",
|
|
"line": " const hiddenRef = useRef<HTMLSpanElement | null>(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.tsx",
|
|
"line": " const ownRef = useRef<HTMLTextAreaElement | null>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2024-03-26T17:14:14.370Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/AvatarEditor.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.tsx",
|
|
"line": " const measureElRef = useRef<null | HTMLDivElement>(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.tsx",
|
|
"line": " const inputRef = useRef<HTMLInputElement | null>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2021-08-04T22:02:17.074Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/AvatarTextEditor.tsx",
|
|
"line": " const onDoneRef = useRef<DoneHandleType>(onDone);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2021-08-05T23:40:55.699Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/AvatarUploadButton.tsx",
|
|
"line": " const fileInputRef = useRef<null | HTMLInputElement>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2021-08-03T21:17:38.615Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/CallManager.tsx",
|
|
"line": " const imageDataCache = React.useRef<CallingImageDataCache>(new Map());",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2024-05-06T20:18:59.647Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/CallNeedPermissionScreen.tsx",
|
|
"line": " const autoCloseAtRef = useRef<number>(Date.now() + AUTO_CLOSE_MS);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2021-07-30T16:57:33.618Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/CallReactionBurst.tsx",
|
|
"line": " const timeouts = useRef<Map<string, NodeJS.Timeout>>(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.tsx",
|
|
"line": " const burstsShown = useRef<Set<string>>(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.tsx",
|
|
"line": " const shownBursts = useRef<Set<string>>(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.tsx",
|
|
"line": " const containerRef = React.useRef<HTMLDivElement | null>(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.tsx",
|
|
"line": " const burstsShown = useRef<Map<string, number>>(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.tsx",
|
|
"line": " const toastRegionRef = useRef<HTMLDivElement>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2023-11-14T23:29:51.425Z",
|
|
"reasonDetail": "For calling reactions toasts"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/CallScreen.tsx",
|
|
"line": " const reactionPickerRef = React.useRef<null | HTMLDivElement>(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.tsx",
|
|
"line": " const burstRegionRef = useRef<HTMLDivElement>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2023-12-21T11:13:56.623Z",
|
|
"reasonDetail": "Calling reactions bursts"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/CallScreen.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.tsx",
|
|
"line": " const reactButtonRef = React.useRef<null | HTMLDivElement>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2024-01-16T22:59:06.336Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/CallScreen.tsx",
|
|
"line": " const reactionPickerContainerRef = React.useRef<null | HTMLDivElement>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2024-01-16T22:59:06.336Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/CallingPendingParticipants.tsx",
|
|
"line": " const expandedListRef = useRef<HTMLDivElement>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2024-06-28T01:22:22.509Z",
|
|
"reasonDetail": "For outside click handling"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/CallingPendingParticipants.tsx",
|
|
"line": " const lastParticipantRef = React.useRef<ConversationType | undefined>();",
|
|
"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.tsx",
|
|
"line": " const videoContainerRef = React.useRef<null | HTMLDivElement>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2021-07-30T16:57:33.618Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/CallingToast.tsx",
|
|
"line": " const shownToasts = React.useRef<Set<string>>(new Set());",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2023-10-04T20:50:45.297Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/CallingToast.tsx",
|
|
"line": " const timeouts = React.useRef<Map<string, TimeoutType>>(new Map());",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2023-10-10T17:05:02.468Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/CallingToast.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.tsx",
|
|
"line": " const toastsShown = useRef<Set<string>>(new Set());",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2023-10-10T17:05:02.468Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/CallingToast.tsx",
|
|
"line": " const toastId = useRef<string>(uuid());",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2023-11-14T16:52:45.342Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/CallingToastManager.tsx",
|
|
"line": " const toastRegionRef = useRef<HTMLDivElement>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2023-10-26T13:57:41.860Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/CallingToastManager.tsx",
|
|
"line": " const toastLastShownAt = useRef<number>(0);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2024-01-12T18:56:18.138Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/CallingToastManager.tsx",
|
|
"line": " const handsForLastShownToast = useRef<Set<number>>(new Set());",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2024-01-12T18:56:18.138Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/CallsList.tsx",
|
|
"line": " const infiniteLoaderRef = useRef<InfiniteLoader>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2023-08-02T00:21:37.858Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/CallsList.tsx",
|
|
"line": " const listRef = useRef<List>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2023-08-02T00:21:37.858Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/CallsList.tsx",
|
|
"line": " const prevOptionsRef = useRef<CallHistoryFilterOptions | null>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2023-08-18T19:09:30.283Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/CallsList.tsx",
|
|
"line": " const getCallHistoryGroupsCountRef = useRef(getCallHistoryGroupsCount);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2023-11-27T20:25:10.634Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/CallsList.tsx",
|
|
"line": " const getCallHistoryGroupsRef = useRef(getCallHistoryGroups);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2023-11-27T20:25:10.634Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/CallsList.tsx",
|
|
"line": " const searchStateItemsRef = useRef<ReadonlyArray<CallHistoryGroup> | null>(",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2024-05-16T02:10:00.652Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/CallsList.tsx",
|
|
"line": " const peekQueueRef = useRef<Set<string>>(new Set());",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2024-05-16T02:10:00.652Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/CallsList.tsx",
|
|
"line": " const peekQueueArgsRef = useRef<Map<string, PeekNotConnectedGroupCallType>>(",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2024-05-16T02:10:00.652Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/CallsList.tsx",
|
|
"line": " const inactiveCallLinksPeekedAtRef = useRef<Map<string, number>>(new Map());",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2024-05-16T02:10:00.652Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/CallsList.tsx",
|
|
"line": " const peekQueueTimerRef = useRef<NodeJS.Timeout | null>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2024-05-16T02:10:00.652Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/CaptchaDialog.tsx",
|
|
"line": " const buttonRef = useRef<HTMLButtonElement | null>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2021-07-30T16:57:33.618Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/ChatColorPicker.tsx",
|
|
"line": " const menuRef = useRef<any | null>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2021-07-30T16:57:33.618Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/CompositionArea.tsx",
|
|
"line": " const inputApiRef = useRef<InputApi | undefined>();",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2021-09-23T00:07:11.885Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/CompositionArea.tsx",
|
|
"line": " const fileInputRef = useRef<null | HTMLInputElement>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2021-09-23T00:07:11.885Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/CompositionArea.tsx",
|
|
"line": " const emojiButtonRef = useRef<EmojiButtonAPI | undefined>();",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2022-07-07T20:51:44.602Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/CompositionInput.tsx",
|
|
"line": " const callbacksRef = React.useRef(unstaleCallbacks);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2021-04-21T21:35:38.757Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/CompositionInput.tsx",
|
|
"line": " const emojiCompletionRef = React.useRef<EmojiCompletion>();",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2021-07-30T16:57:33.618Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/CompositionInput.tsx",
|
|
"line": " const mentionCompletionRef = React.useRef<MentionCompletion>();",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2021-07-30T16:57:33.618Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/CompositionInput.tsx",
|
|
"line": " const quillRef = React.useRef<Quill>();",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2021-07-30T16:57:33.618Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/CompositionInput.tsx",
|
|
"line": " const propsRef = React.useRef<Props>(props);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2021-07-30T16:57:33.618Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/CompositionInput.tsx",
|
|
"line": " const memberRepositoryRef = React.useRef<MemberRepository>(",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2021-07-30T16:57:33.618Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/CompositionInput.tsx",
|
|
"line": " const canSendRef = React.useRef<boolean>(false);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2022-06-25T00:06:19.860Z",
|
|
"reasonDetail": "Not used for DOM manipulation"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/CompositionRecording.tsx",
|
|
"line": " const startTime = useRef(Date.now());",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2023-02-26T23:17:41.234Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/CompositionRecording.tsx",
|
|
"line": " const drift = useRef(0);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2023-02-26T23:20:28.848Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/CompositionRecordingDraft.tsx",
|
|
"line": " const timeout = useRef<undefined | NodeJS.Timeout>(undefined);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2023-02-26T23:20:28.848Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/CompositionTextArea.tsx",
|
|
"line": " const inputApiRef = useRef<InputApi | undefined>();",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2025-04-01T21:15:44.903Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/ContactPills.tsx",
|
|
"line": " const elRef = useRef<null | HTMLDivElement>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2021-07-30T16:57:33.618Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/ContextMenu.tsx",
|
|
"line": " const virtualElement = useRef<VirtualElement>(generateVirtualElement(0, 0));",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2022-08-19T17:09:38.534Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/CustomizingPreferredReactionsModal.tsx",
|
|
"line": " const pickerRef = useRef<HTMLDivElement>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2025-04-07T19:15:28.908Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/DirectCallRemoteParticipant.tsx",
|
|
"line": " const remoteVideoRef = useRef<HTMLCanvasElement | null>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2021-07-30T16:57:33.618Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/EditHistoryMessagesModal.tsx",
|
|
"line": " const containerElementRef = useRef<HTMLDivElement | null>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2023-03-25T01:59:04.590Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/ForwardMessagesModal.tsx",
|
|
"line": " const inputRef = useRef<null | HTMLInputElement>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2021-07-30T16:57:33.618Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/GradientDial.tsx",
|
|
"line": " const containerRef = useRef<HTMLDivElement | null>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2021-07-30T16:57:33.618Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/GroupCallOverflowArea.tsx",
|
|
"line": " const overflowRef = useRef<HTMLDivElement | null>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2021-07-30T16:57:33.618Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/GroupCallRemoteParticipant.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.tsx",
|
|
"line": " const remoteVideoRef = useRef<HTMLCanvasElement | null>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2021-07-30T16:57:33.618Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/GroupCallRemoteParticipant.tsx",
|
|
"line": " const canvasContextRef = useRef<CanvasRenderingContext2D | null>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2021-07-30T16:57:33.618Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/GroupCallRemoteParticipant.tsx",
|
|
"line": " const imageDataRef = useRef<ImageData | null>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2021-12-10T23:24:31.237Z",
|
|
"reasonDetail": "Doesn't touch the DOM."
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/IncomingCallBar.tsx",
|
|
"line": " const initialTitleRef = useRef<string>(title);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2021-08-16T20:52:11.043Z",
|
|
"reasonDetail": "Doesn't interact with the DOM."
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/Input.tsx",
|
|
"line": " const innerRef = useRef<HTMLInputElement | HTMLTextAreaElement | null>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2021-07-30T16:57:33.618Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/Input.tsx",
|
|
"line": " const valueOnKeydownRef = useRef<string>(value);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2021-07-30T16:57:33.618Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/Input.tsx",
|
|
"line": " const selectionStartOnKeydownRef = useRef<number>(value.length);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2021-07-30T16:57:33.618Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/LeftPane.tsx",
|
|
"line": " const measureRef = useRef<HTMLDivElement>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2023-08-09T21:48:42.602Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/LeftPaneSearchInput.tsx",
|
|
"line": " const inputRef = useRef<null | HTMLInputElement>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2022-02-11T20:49:03.879Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/Lightbox.tsx",
|
|
"line": " const containerRef = useRef<HTMLDivElement | null>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2021-08-23T18:39:37.081Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/Lightbox.tsx",
|
|
"line": " const imageRef = useRef<HTMLImageElement | null>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2021-09-24T00:03:36.061Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/Lightbox.tsx",
|
|
"line": " const animateRef = useRef<HTMLDivElement | null>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2021-10-11T21:21:08.188Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/Lightbox.tsx",
|
|
"line": " const dragCacheRef = useRef<",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2021-10-11T21:21:08.188Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/Lightbox.tsx",
|
|
"line": " const zoomCacheRef = useRef<",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2021-10-11T21:21:08.188Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/Lightbox.tsx",
|
|
"line": " const downloadToastTimeout = useRef<NodeJS.Timeout | number | undefined>();",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2025-01-06T03:53:58.093Z",
|
|
"reasonDetail": "usageTrusted"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/ListView.tsx",
|
|
"line": " const listRef = useRef<null | List>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2022-11-11T17:11:07.659Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/MediaEditor.tsx",
|
|
"line": " const inputApiRef = useRef<InputApi | undefined>();",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2023-09-11T20:19:18.681Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/MediaEditor.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.tsx",
|
|
"line": " const buttonRef = React.useRef<HTMLButtonElement | null>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2022-06-14T22:04:43.988Z",
|
|
"reasonDetail": "Handling outside click"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/Modal.tsx",
|
|
"line": " const modalRef = useRef<HTMLDivElement | null>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2021-08-05T00:22:31.660Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/Modal.tsx",
|
|
"line": " const bodyRef = useRef<HTMLDivElement>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2023-07-25T21:55:26.191Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/Modal.tsx",
|
|
"line": " const bodyInnerRef = useRef<HTMLDivElement>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2023-07-25T21:55:26.191Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/ModalContainer.tsx",
|
|
"line": " const containerRef = React.useRef<HTMLDivElement | null>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2022-10-14T16:39:48.461Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/ModalHost.tsx",
|
|
"line": " const containerRef = React.useRef<HTMLDivElement | null>(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.tsx",
|
|
"line": " const settingsPaneRef = useRef<HTMLDivElement | null>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2023-04-21T02:12:22.352Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/PreferencesDonations.tsx",
|
|
"line": " const tryClose = useRef<() => void | undefined>();",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2025-06-10T19:00:29.489Z",
|
|
"reasonDetail": "Holding on to a close function"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/PreferencesLocalBackups.tsx",
|
|
"line": " const backupKeyTextareaRef = useRef<HTMLTextAreaElement>(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/ProfileEditor.tsx",
|
|
"line": " const focusInputRef = useRef<HTMLInputElement | null>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2021-07-30T16:57:33.618Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/ProfileEditor.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.tsx",
|
|
"line": " const elRef = useRef<null | HTMLImageElement>(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.tsx",
|
|
"line": " const scrollEndTimer = useRef<NodeJS.Timeout | null>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2024-03-08T01:48:15.330Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/Slider.tsx",
|
|
"line": " const diff = useRef<number>(0);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2021-07-30T16:57:33.618Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/Slider.tsx",
|
|
"line": " const handleRef = useRef<HTMLDivElement | null>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2021-07-30T16:57:33.618Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/Slider.tsx",
|
|
"line": " const sliderRef = useRef<HTMLDivElement | null>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2021-07-30T16:57:33.618Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/StandaloneRegistration.tsx",
|
|
"line": " const elemRef = useRef<HTMLInputElement | null>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2021-11-30T10:15:33.662Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/StandaloneRegistration.tsx",
|
|
"line": " const pluginRef = useRef<Iti | undefined>();",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2024-11-16T00:33:41.092Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/StoriesSettingsModal.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.tsx",
|
|
"line": " const videoRef = useRef<HTMLVideoElement | null>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2022-04-29T23:54:21.656Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/StoryProgressSegment.tsx",
|
|
"line": " const onFinishRef = useRef(onFinish);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2024-08-13T20:48:09.226Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/StoryViewsNRepliesModal.tsx",
|
|
"line": " const inputApiRef = useRef<InputApi | undefined>();",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2022-02-15T17:57:06.507Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/StoryViewsNRepliesModal.tsx",
|
|
"line": " const containerElementRef = useRef<HTMLDivElement | null>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2022-08-04T00:52:01.080Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/StoryViewsNRepliesModal.tsx",
|
|
"line": " const shouldScrollToBottomRef = useRef(true);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2022-10-05T18:51:56.411Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/StoryViewsNRepliesModal.tsx",
|
|
"line": " const bottomRef = useRef<HTMLDivElement>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2022-10-05T18:51:56.411Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/StoryViewsNRepliesModal.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.tsx",
|
|
"line": " const linkPreview = useRef<HTMLDivElement | null>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2022-04-06T00:59:17.194Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/TextAttachment.tsx",
|
|
"line": " const textEditorRef = useRef<HTMLTextAreaElement | null>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2022-06-16T23:23:32.306Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/TextAttachment.tsx",
|
|
"line": " const ref = useRef<HTMLDivElement>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2023-07-25T21:55:26.191Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/TextStoryCreator.tsx",
|
|
"line": " const textEditorRef = useRef<HTMLTextAreaElement | null>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2022-06-16T23:23:32.306Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/TextStoryCreator.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.tsx",
|
|
"line": " const wrapperRef = React.useRef<HTMLSpanElement | null>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2021-07-30T16:57:33.618Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/Tooltip.tsx",
|
|
"line": " const timeoutRef = useRef<NodeJS.Timeout | undefined>();",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2023-08-10T00:23:35.320Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/UsernameEditor.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.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/AttachmentStatusIcon.tsx",
|
|
"line": " const timerRef = useRef<NodeJS.Timeout | undefined>();",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2025-02-21T04:17:59.239Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/conversation/CallingNotification.tsx",
|
|
"line": " const menuTriggerRef = React.useRef<ContextMenuTriggerType | null>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2023-12-08T20:28:57.595Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/conversation/ConversationHeader.tsx",
|
|
"line": " const menuTriggerRef = useRef<any>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2024-03-15T18:29:48.327Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/conversation/ConversationHeader.tsx",
|
|
"line": " const headerRef = useRef<HTMLDivElement>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2024-03-15T18:29:48.327Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/conversation/GIF.tsx",
|
|
"line": " const videoRef = useRef<HTMLVideoElement | null>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2021-07-30T16:57:33.618Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/conversation/GroupDescription.tsx",
|
|
"line": " const textRef = useRef<HTMLDivElement | null>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2021-07-30T16:57:33.618Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/conversation/InlineNotificationWrapper.tsx",
|
|
"line": " const focusRef = useRef<HTMLDivElement>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2023-04-12T15:51:28.066Z"
|
|
},
|
|
{
|
|
"rule": "React-createRef",
|
|
"path": "ts/components/conversation/Message.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.tsx",
|
|
"line": " public focusRef: React.RefObject<HTMLDivElement> = 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.tsx",
|
|
"line": " public audioButtonRef: React.RefObject<HTMLButtonElement> = 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.tsx",
|
|
"line": " #metadataRef: React.RefObject<HTMLDivElement> = 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.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.tsx",
|
|
"line": " const messageDetailRef = useRef<HTMLDivElement>(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.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.tsx",
|
|
"line": " const menuTriggerRef = useRef<ContextMenuTriggerType | null>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2023-12-08T20:28:57.595Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/conversation/TypingBubble.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.tsx",
|
|
"line": " const waveformRef = useRef<HTMLDivElement | null>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2023-02-26T23:20:28.848Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/conversation/conversation-details/AddGroupMembersModal/ChooseGroupMembersModal.tsx",
|
|
"line": " const inputRef = useRef<null | HTMLInputElement>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2021-07-30T16:57:33.618Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/conversation/conversation-details/EditConversationAttributesModal.tsx",
|
|
"line": " const focusDescriptionRef = useRef<undefined | boolean>(",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2021-07-30T16:57:33.618Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/conversation/conversation-details/EditConversationAttributesModal.tsx",
|
|
"line": " const startingTitleRef = useRef<string>(externalTitle);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2021-07-30T16:57:33.618Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/conversation/conversation-details/EditConversationAttributesModal.tsx",
|
|
"line": " const startingAvatarUrlRef = useRef<undefined | string>(externalAvatarUrl);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2021-07-30T16:57:33.618Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/conversation/conversation-details/EditConversationAttributesModal.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.tsx",
|
|
"line": " const focusRef = useRef<HTMLDivElement | null>(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.tsx",
|
|
"line": " const loadingRef = useRef<boolean>(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.tsx",
|
|
"line": " const intersectionObserver = useRef<IntersectionObserver | null>(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.tsx",
|
|
"line": " const scrollObserverRef = useRef<HTMLDivElement | null>(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.tsx",
|
|
"line": " const tabViewRef = useRef<TabViews>(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/emoji/EmojiButton.tsx",
|
|
"line": " const buttonRef = React.useRef<HTMLButtonElement | null>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2022-06-14T22:04:43.988Z",
|
|
"reasonDetail": "Handling outside click"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/emoji/EmojiButton.tsx",
|
|
"line": " const popperRef = React.useRef<HTMLDivElement | null>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2023-01-18T22:32:43.901Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/fun/FunGif.tsx",
|
|
"line": " const ref = useRef<HTMLVideoElement>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2025-03-21T23:22:07.920Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/fun/FunGif.tsx",
|
|
"line": " const timerRef = useRef<ReturnType<typeof setTimeout>>();",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2025-03-21T23:22:07.920Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/fun/FunGif.tsx",
|
|
"line": " const videoRef = useRef<HTMLVideoElement>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2025-03-24T18:57:50.198Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/fun/base/FunImage.tsx",
|
|
"line": " const imageRef = useRef<HTMLImageElement>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2025-02-19T20:14:46.879Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/fun/base/FunScroller.tsx",
|
|
"line": " const scrollerRef = useRef<HTMLDivElement>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2025-02-19T20:14:46.879Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/fun/base/FunScroller.tsx",
|
|
"line": " const scrollerInnerRef = useRef<HTMLDivElement>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2025-02-19T20:14:46.879Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/fun/base/FunScroller.tsx",
|
|
"line": " const observerRef = useRef<IntersectionObserver | null>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2025-02-19T20:14:46.879Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/fun/base/FunScroller.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.tsx",
|
|
"line": " const ref = useRef<HTMLDivElement>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2025-02-19T20:14:46.879Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/fun/base/FunSubNav.tsx",
|
|
"line": " const outerRef = useRef<HTMLDivElement>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2025-02-19T20:14:46.879Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/fun/base/FunSubNav.tsx",
|
|
"line": " const innerRef = useRef<HTMLDivElement>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2025-02-19T20:14:46.879Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/fun/base/FunSubNav.tsx",
|
|
"line": " const ref = useRef<HTMLDivElement>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2025-02-19T20:14:46.879Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/fun/base/FunTooltip.tsx",
|
|
"line": " const ref = useRef<HTMLButtonElement>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2025-05-30T20:26:57.154Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/fun/data/infinite.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.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.ts",
|
|
"line": " const querySignalRef = useRef<AbortSignal | null>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2025-02-19T20:14:46.879Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/fun/data/infinite.ts",
|
|
"line": " const stateRef = useRef(state);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2025-02-19T20:14:46.879Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/fun/keyboard/FunKeyboard.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.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.tsx",
|
|
"line": " const scrollerRef = useRef<HTMLDivElement>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2025-02-19T20:14:46.879Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/fun/panels/FunPanelEmojis.tsx",
|
|
"line": " const popoverTriggerRef = useRef<HTMLButtonElement>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2025-04-10T18:24:54.606Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/fun/panels/FunPanelGifs.tsx",
|
|
"line": " const scrollerRef = useRef<HTMLDivElement>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2025-02-19T20:14:46.879Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/fun/panels/FunPanelStickers.tsx",
|
|
"line": " const scrollerRef = useRef<HTMLDivElement>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2025-02-19T20:14:46.879Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/components/stickers/StickerButton.tsx",
|
|
"line": " const buttonRef = React.useRef<HTMLButtonElement | null>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2022-06-14T22:04:43.988Z",
|
|
"reasonDetail": "Handling outside click"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/hooks/useConfirmDiscard.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.ts",
|
|
"line": " const unobserveRef = useRef<(() => unknown) | null>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2021-09-17T20:16:37.959Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/hooks/useIsMounted.ts",
|
|
"line": " const isMounted = useRef(false);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2023-10-04T20:50:45.297Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/hooks/usePrevious.ts",
|
|
"line": " const previousValueRef = useRef<T>(initialValue);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2021-09-17T20:16:37.959Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/hooks/useRestoreFocus.ts",
|
|
"line": " const toFocusRef = React.useRef<HTMLElement | null>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2021-07-30T16:57:33.618Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/hooks/useRestoreFocus.ts",
|
|
"line": " const lastFocusedRef = React.useRef<HTMLElement | null>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2021-07-30T16:57:33.618Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/hooks/useRestoreFocus.ts",
|
|
"line": " const toFocusRef = React.useRef<HTMLElement | null>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2021-10-22T00:52:39.251Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/hooks/useRestoreFocus.ts",
|
|
"line": " const lastFocusedRef = React.useRef<HTMLElement | null>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2021-10-22T00:52:39.251Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/hooks/useScrollLock.tsx",
|
|
"line": " const onUserInterruptRef = useRef(onUserInterrupt);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2023-09-19T17:05:51.321Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/hooks/useSizeObserver.tsx",
|
|
"line": " const sizeRef = useRef<Size | null>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2023-07-25T21:55:26.191Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/hooks/useSizeObserver.tsx",
|
|
"line": " const onSizeChangeRef = useRef<SizeChangeHandler | void>(onSizeChange);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2023-07-25T21:55:26.191Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/hooks/useSizeObserver.tsx",
|
|
"line": " const ref = useRef<any>();",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2023-07-25T21:55:26.191Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/hooks/useSizeObserver.tsx",
|
|
"line": " * const scrollerRef = useRef()",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2023-07-25T21:55:26.191Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/hooks/useSizeObserver.tsx",
|
|
"line": " * const scrollerInnerRef = useRef()",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2023-07-25T21:55:26.191Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/hooks/useSizeObserver.tsx",
|
|
"line": " const scrollRef = useRef<Scroll | null>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2023-07-25T21:55:26.191Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/hooks/useSizeObserver.tsx",
|
|
"line": " const onScrollChangeRef = useRef<ScrollChangeHandler>(onScrollChange);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2023-07-25T21:55:26.191Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/quill/formatting/menu.tsx",
|
|
"line": " const buttonRef = React.useRef<HTMLButtonElement | null>(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.tsx",
|
|
"line": " const fadeOutTimerRef = React.useRef<NodeJS.Timeout | undefined>();",
|
|
"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.tsx",
|
|
"line": " const hoverTimerRef = React.useRef<NodeJS.Timeout | undefined>();",
|
|
"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.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.tsx",
|
|
"line": " const lastOpenedConversationId = useRef<string | undefined>();",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2023-08-25T17:37:23.002Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/state/smart/ConversationPanel.tsx",
|
|
"line": " const animateRef = useRef<HTMLDivElement | null>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2023-07-13T23:34:39.367Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/state/smart/ConversationPanel.tsx",
|
|
"line": " const overlayRef = useRef<HTMLDivElement | null>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2023-07-13T23:34:39.367Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/state/smart/ConversationPanel.tsx",
|
|
"line": " const focusRef = useRef<HTMLDivElement | null>(null);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2023-07-13T23:34:39.367Z"
|
|
},
|
|
{
|
|
"rule": "React-useRef",
|
|
"path": "ts/state/smart/ConversationPanel.tsx",
|
|
"line": " const wasAnimatedRef = useRef(wasAnimated);",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2023-08-20T22:14:52.008Z"
|
|
},
|
|
{
|
|
"rule": "DOM-innerHTML",
|
|
"path": "ts/windows/loading/start.ts",
|
|
"line": " message.innerHTML = window.i18n('icu:optimizingApplication');",
|
|
"reasonCategory": "usageTrusted",
|
|
"updated": "2021-09-17T21:02:59.414Z"
|
|
}
|
|
]
|