Can K. and Can Kirca
8ee28cfd04
Render the branded page title on the server ( #81 )
...
* Render the branded page title on the server
The root layout sent a fixed "Mailflare" title and the browser swapped in the configured app name after the page loaded. Screen readers announced both. The title now comes from the branding settings in the first response, and the branding is passed to the provider as its initial value so the name and the icon do not flash their defaults first.
The inbox page also kept its own "Inbox (n)" title after leaving it, so the sign-in page after a logout still read as the inbox. It now puts the previous title back when it unmounts.
* Stub the branding lookup in the layout i18n test
The root layout now reads the app name from the server, which pulls in the Workers runtime. The i18n test bundles the layout with stubs for its server-only imports, so add one for the branding helper too.
---------
Co-authored-by: Can Kirca <9063990+cankirca@users.noreply.github.com >
2026-10-11 02:06:28 +07:00
Hieu Nguyen (Jack)
5635ab0f48
Merge branch 'main' of https://github.com/hieunc229/mailflare
2026-10-10 15:41:50 +07:00
Hieu Nguyen (Jack)
4b31136ac7
Add scheduled tab #97
2026-10-10 15:41:48 +07:00
Hieu Nguyen (Jack)
a5c2efabff
improve drafts view on mobile
2026-10-10 15:21:56 +07:00
yi111
f90de963d6
Show the IAM policy when a save is refused for missing SES permissions ( #98 )
...
Saving credentials that validate against AWS but carry no SES permissions
answers 400 with "Attach the policy shown below", yet the panel rendered
nothing below it. Two causes: the 400 body carried the report but not the
policy, and requestJson discarded the parsed body on a rejected response,
so the report never reached the panel. The block was also gated on
`configured && !editing`, which is exactly the state a refused save leaves.
The 400 now carries the policy, requestJson throws an ApiError that keeps
the parsed body, and the panel keeps a refused report so the missing
permissions and the policy render under the message, expanded. A later
successful save, re-check, replace or remove clears it.
Refs #79
2026-10-10 07:50:28 +07:00
Hieu Nguyen (Jack)
83ade981e5
Add support for AWS S3, BackBlaze B2 as storage
2026-10-09 17:07:33 +07:00
Hieu Nguyen (Jack)
3c90a03171
update Drive layout
2026-10-09 16:04:19 +07:00
Hieu Nguyen (Jack)
9f66e13560
Added Drive
2026-10-08 21:52:49 +07:00
Hieu Nguyen (Jack)
850661ae3e
update localization to reduce sizes
2026-10-08 21:52:35 +07:00
Hieu Nguyen (Jack)
6978c01de1
update languages
2026-10-07 17:09:03 +07:00
Hieu Nguyen (Jack) and Claude Sonnet 5.5
c8795ae39e
Merge main into feat/pwa-web-push
...
Resolve conflicts in favor of main; re-apply Web Push on top.
Renumber push_subscriptions migration 0032 -> 0054 (0032 now taken).
Skip push for agent_draft notifications.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-07 16:27:13 +07:00
Hieu Nguyen (Jack)
9816a61b3c
support more languages
2026-10-07 16:15:13 +07:00
Hieu Nguyen (Jack) and Claude Sonnet 5.5
0d561f1b25
Move language and time zone to account settings, add README language docs
...
Add a General section to Settings > Account holding language and time zone,
render the homepage language selector as a compact text label sized to its
value, drop the sidebar language field, and document localization.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-07 13:44:01 +07:00
Hieu Nguyen (Jack) and Claude Sonnet 5.5
5ac0931101
Add Urdu interface language
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-07 13:43:45 +07:00
Hieu Nguyen (Jack) and Claude Sonnet 5.5
d7ae8f77d1
Move language and time zone to account settings, add README language docs
...
Add a General section to Settings > Account holding language and time zone,
render the homepage language selector as a compact text label sized to its
value, drop the sidebar language field, and document localization.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-07 13:43:41 +07:00
Hieu Nguyen (Jack) and Claude Sonnet 5.5
149eb85bd5
Add Bengali interface language
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-07 13:39:40 +07:00
Hieu Nguyen (Jack) and Claude Sonnet 5.5
ae5d9badc5
Add Arabic interface language
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-07 13:35:04 +07:00
Hieu Nguyen (Jack) and Claude Sonnet 5.5
2d2c1507a8
Add Hindi interface language
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-07 13:30:24 +07:00
Hieu Nguyen (Jack) and Claude Sonnet 5.5
634614bb70
Add Vietnamese interface language
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-07 13:26:43 +07:00
Hieu Nguyen (Jack) and Claude Sonnet 5.5
4fc5689cba
Add Turkish interface language
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-07 13:23:42 +07:00
Hieu Nguyen (Jack) and Claude Sonnet 5.5
303c9e7548
Add Indonesian interface language
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-07 13:20:27 +07:00
Hieu Nguyen (Jack) and Claude Sonnet 5.5
4919d82e5f
Add Japanese interface language
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-07 13:17:46 +07:00
Hieu Nguyen (Jack) and Claude Sonnet 5.5
40e5899ae8
Add Simplified Chinese interface language
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-07 13:15:09 +07:00
Hieu Nguyen (Jack) and Claude Sonnet 5.5
abfb8e3653
Add Russian interface language
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-07 13:12:35 +07:00
Hieu Nguyen (Jack) and Claude Sonnet 5.5
68d37898a7
Add German interface language
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-07 13:08:49 +07:00
Hieu Nguyen (Jack) and Claude Sonnet 5.5
e04ddf1d7e
Add Spanish and French interface languages
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-07 13:05:36 +07:00
Hieu Nguyen (Jack) and Claude Sonnet 5.5
07f4ac2f70
Load locale catalogs on demand
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-07 12:58:46 +07:00
Hieu Nguyen (Jack) and Claude Sonnet 5.5
0db440c24c
Prune unused keys; plural-aware catalog parity test
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-07 12:57:18 +07:00
Hieu Nguyen (Jack) and Claude Sonnet 5.5
d9ff5c5677
Translate remaining shell components
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-07 12:55:55 +07:00
Hieu Nguyen (Jack) and Claude Sonnet 5.5
bcf17d07f9
Translate mailbox import
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-07 12:54:58 +07:00
Hieu Nguyen (Jack) and Claude Sonnet 5.5
06f881b316
Translate the email assistant
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-07 12:54:16 +07:00
Hieu Nguyen (Jack) and Claude Sonnet 5.5
8a4474e920
Translate public booking pages
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-07 12:52:42 +07:00
Hieu Nguyen (Jack) and Claude Sonnet 5.5
132ed85ebf
Translate calendar sidebar and bookings
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-07 12:51:59 +07:00
Hieu Nguyen (Jack) and Claude Sonnet 5.5
d32fd47148
Translate calendar page; locale-aware date formatting
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-07 12:50:19 +07:00
Hieu Nguyen (Jack) and Claude Sonnet 5.5
84ec386c76
Translate activity, agent and AI usage admin pages
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-07 12:49:08 +07:00
Hieu Nguyen (Jack) and Claude Sonnet 5.5
64cf4de5df
Translate admin API keys, branding and licenses
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-07 12:48:09 +07:00
Hieu Nguyen (Jack) and Claude Sonnet 5.5
b50fa94bf2
Translate backups
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-07 12:47:12 +07:00
Hieu Nguyen (Jack) and Claude Sonnet 5.5
379be2955b
Translate webhooks
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-07 12:46:36 +07:00
Hieu Nguyen (Jack) and Claude Sonnet 5.5
f5c3aeabc5
Translate provider setup panels
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-07 12:45:54 +07:00
Hieu Nguyen (Jack) and Claude Sonnet 5.5
d554f84b37
Translate domain management
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-07 12:45:00 +07:00
Hieu Nguyen (Jack) and Claude Sonnet 5.5
5e822f5782
Translate mailbox admin pages
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-07 12:43:27 +07:00
Hieu Nguyen (Jack) and Claude Sonnet 5.5
a4182db798
Translate account detail admin pages
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-07 12:42:42 +07:00
Hieu Nguyen (Jack) and Claude Sonnet 5.5
316fce2479
Translate admin overview, general, routing and accounts
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-07 12:41:46 +07:00
Hieu Nguyen (Jack) and Claude Sonnet 5.5
93c00e3f10
Translate landing page
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-07 12:40:30 +07:00
Hieu Nguyen (Jack) and Claude Sonnet 5.5
28e401d1df
Translate setup and onboarding
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-07 12:39:54 +07:00
Hieu Nguyen (Jack) and Claude Sonnet 5.5
6e16cd54b3
Translate settings pages, message detail and sign-in screens
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-07 12:39:06 +07:00
Hieu Nguyen (Jack) and Claude Sonnet 5.5
c3a7d108ae
Translate mailbox and domain routing rules
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-07 12:37:45 +07:00
Hieu Nguyen (Jack) and Claude Sonnet 5.5
c4c3bb5865
Translate inbox, spam, import and email client settings
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-07 12:36:41 +07:00
Hieu Nguyen (Jack) and Claude Sonnet 5.5
e6728d6a57
Translate MFA, API keys, avatar settings
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-07 12:35:41 +07:00
Hieu Nguyen (Jack) and Claude Sonnet 5.5
176c867f46
Translate account settings forms
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-07 12:34:37 +07:00