Skip to content

fix(ui): build live indicator glyph at runtime to avoid release-mode mojibake - #118

Merged
tvanlaerhoven merged 2 commits into
mainfrom
devin/1783083509-fix-live-indicator-mojibake
Jul 3, 2026
Merged

fix(ui): build live indicator glyph at runtime to avoid release-mode mojibake#118
tvanlaerhoven merged 2 commits into
mainfrom
devin/1783083509-fix-live-indicator-mojibake

Conversation

@tvanlaerhoven

@tvanlaerhoven tvanlaerhoven commented Jul 3, 2026

Copy link
Copy Markdown
Member

Summary

The live indicator (U+25CF) rendered as mojibake â— in web release builds. It was a raw non-ASCII glyph in the output bundle, and correct display depended on the served bundle being decoded as UTF-8 — not guaranteed across static hosts/CDNs (dev works only because webpack-dev-server sends charset=utf-8). A source escape (\u25CF) doesn't help: terser un-escapes it back to the raw glyph during minification.

Fix: keep the out of the source entirely and build it at runtime, so the emitted bundle stays ASCII (terser won't constant-fold String.fromCodePoint unless unsafe is enabled).

- <Text ...>●</Text>
+ <Text ...>{String.fromCodePoint(9679)}</Text>

Verified: the web-release bundle no longer contains the raw byte sequence (E2 97 8F) and the runtime fromCodePoint(9679) call survives minification; lint/prettier pass.

Link to Devin session: https://dolby.devinenterprise.com/sessions/53b41d6c6beb4b88984929b5cc172d73
Requested by: @tvanlaerhoven


Open in Devin Review

@tvanlaerhoven tvanlaerhoven self-assigned this Jul 3, 2026
@devin-ai-integration

Copy link
Copy Markdown
Contributor

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment, CI, and merge conflict monitoring

@changeset-bot

changeset-bot Bot commented Jul 3, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: b6de892

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
@theoplayer/react-native-ui Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

devin-ai-integration[bot]

This comment was marked as resolved.

@devin-ai-integration devin-ai-integration Bot changed the title fix(ui): render live indicator via unicode escape to avoid release-mode mojibake fix(example): declare UTF-8 charset so web-release renders live indicator correctly Jul 3, 2026
@devin-ai-integration devin-ai-integration Bot changed the title fix(example): declare UTF-8 charset so web-release renders live indicator correctly fix(ui): render live indicator as a drawn circle instead of a text glyph Jul 3, 2026
devin-ai-integration[bot]

This comment was marked as resolved.

Comment thread src/ui/components/button/GoToLiveButton.tsx
@devin-ai-integration
devin-ai-integration Bot force-pushed the devin/1783083509-fix-live-indicator-mojibake branch from 44774d0 to 73587ba Compare July 3, 2026 13:35
@devin-ai-integration devin-ai-integration Bot changed the title fix(ui): render live indicator as a drawn circle instead of a text glyph fix(ui): render live indicator as a drawn circle to avoid release-mode mojibake Jul 3, 2026
@MattiasBuelens
MattiasBuelens self-requested a review July 3, 2026 13:50
…mojibake

Co-Authored-By: tom.vanlaerhoven <tom.vanlaerhoven@dolby.com>
@devin-ai-integration
devin-ai-integration Bot force-pushed the devin/1783083509-fix-live-indicator-mojibake branch from 733895a to c5b7ca5 Compare July 3, 2026 13:51
@devin-ai-integration devin-ai-integration Bot changed the title fix(ui): render live indicator as a drawn circle to avoid release-mode mojibake fix(ui): build live indicator glyph at runtime to avoid release-mode mojibake Jul 3, 2026
Co-Authored-By: tom.vanlaerhoven <tom.vanlaerhoven@dolby.com>
@devin-ai-integration
devin-ai-integration Bot force-pushed the devin/1783083509-fix-live-indicator-mojibake branch from c5b7ca5 to b6de892 Compare July 3, 2026 13:53
@tvanlaerhoven
tvanlaerhoven merged commit 5d3e12a into main Jul 3, 2026
2 checks passed
@tvanlaerhoven
tvanlaerhoven deleted the devin/1783083509-fix-live-indicator-mojibake branch July 3, 2026 13:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants