diff options
author | 2019-05-24 16:10:40 +0530 | |
---|---|---|
committer | 2019-05-24 18:40:40 +0800 | |
commit | 8dea8581295920ce8ce0c42792fed9b6a205eaef (patch) | |
tree | 4314433f69cd8a9e0af75491815f9f88a0c1f5ea /source/libs/on-pr-file-load.tsx | |
parent | 347b4e9db675fd404f9e47b4cf7042f9e4c0b556 (diff) | |
download | refined-github-8dea8581295920ce8ce0c42792fed9b6a205eaef.tar.gz refined-github-8dea8581295920ce8ce0c42792fed9b6a205eaef.tar.zst refined-github-8dea8581295920ce8ce0c42792fed9b6a205eaef.zip |
Add `indented-code-wrapping` feature (#1989)19.5.24.1922
Co-authored-by: Federico Brigante <github@bfred.it>
Diffstat (limited to '')
-rw-r--r-- | source/libs/on-pr-file-load.tsx | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/source/libs/on-pr-file-load.tsx b/source/libs/on-pr-file-load.tsx new file mode 100644 index 00000000..ee61c73c --- /dev/null +++ b/source/libs/on-pr-file-load.tsx @@ -0,0 +1,15 @@ +// In PRs' Files tab, some files are loaded progressively later. +const handlers = new WeakMap<EventListener, EventListener>(); + +export default function onPrFileLoad(callback: EventListener): void { + // When a fragment loads, more fragments might be nested in it. The following code avoids duplicate event handlers. + const recursiveCallback = handlers.get(callback) || ((event: Event) => { + callback(event); + onPrFileLoad(callback); + }); + handlers.set(callback, recursiveCallback); + + for (const fragment of document.querySelectorAll('include-fragment.diff-progressive-loader')) { + fragment.addEventListener('load', recursiveCallback); + } +} |