diff options
| author | stonedDiscord <Tukz@gmx.de> | 2026-04-06 20:38:41 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-04-06 20:38:41 +0200 |
| commit | 4be4f4665fe03a0267ac88c36f0e3b73d8fc2d48 (patch) | |
| tree | b76ef7b627523a8daebe0beb59e404d3da82d04e /webAO/client/setEmoteFromUrl.ts | |
| parent | 815f56add06b92a48b964cb1343f70c86ea36435 (diff) | |
| parent | 20810aa0d3dfac49e1f43fe84634f74f56374fcd (diff) | |
Merge pull request #301 from AttorneyOnline/rendering-fix
Fix IC rendering race conditions with asset preloading
Diffstat (limited to 'webAO/client/setEmoteFromUrl.ts')
| -rw-r--r-- | webAO/client/setEmoteFromUrl.ts | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/webAO/client/setEmoteFromUrl.ts b/webAO/client/setEmoteFromUrl.ts new file mode 100644 index 0000000..8075bbd --- /dev/null +++ b/webAO/client/setEmoteFromUrl.ts @@ -0,0 +1,21 @@ +import transparentPng from "../constants/transparentPng"; + +/** + * Sets a pre-resolved emote URL on the correct DOM <img> element. + * This is synchronous because the image should already be in the browser cache + * from preloading. + */ +const setEmoteFromUrl = (url: string, pair: boolean, side: string): void => { + const pairID = pair ? "pair" : "char"; + const acceptedPositions = ["def", "pro", "wit"]; + const position = acceptedPositions.includes(side) ? `${side}_` : ""; + const emoteSelector = document.getElementById( + `client_${position}${pairID}_img`, + ) as HTMLImageElement; + + if (emoteSelector) { + emoteSelector.src = url || transparentPng; + } +}; + +export default setEmoteFromUrl; |
