Take the two "could not start" fallbacks out of the source

Otherkamo-internal
Shipped
September 2, 2026 at 1:08 AM UTC
Author
Kamo
Commit
00b3862

Both SMS refusal paths quote the server when it gives a sentence and fall back to one of their own when it gives only a machine code. Those two fallbacks were English string literals in the components, so members reading the product in any of the other twenty locales got them in English — the one place the wording matters most, because it is the only thing on screen when the window has otherwise failed to open. They are now **************** and .resolveFailed, already on the dictionary's main. SmsTool keeps the server's words in state and chooses the wording at render rather than inside the effect. The translator is a fresh function on every render, so an effect closing over it would have to list it as a dependency and would then re-run on every render it had itself caused. Both of this component's test files now mock next-intl: the badge test because it renders SmsTool at all, and the refusal test because the line it asserts is a key lookup now. That test also gains the case the change is really about — a refusal that is only SMS_NOT_PROVISIONED falls back to our own line rather than showing the member an enum.

All changes

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing