- ChatThread send had no onError: a 404 (recipient gone) or 429 (rate-limited) send failed silently (api.req shows no modal for those "caller-handled" statuses). Added onError → toast for 404/429 (400/409/500 already raise the global dialog); draft is kept for retry. New trilingual messages.sendFailed key. - ChatThread scroll-to-bottom effect keyed on `plain` too, so every 20s poll's decrypt pass yanked a scrolled-up reader back to the bottom. Key on items.length. - ChatThread + Messages decrypt effects keyed on `items` (a fresh `?? []` array every render) → a render storm while loading. Key on q.dataUpdatedAt. - chatDock.ts: use LS.chatDock(userId) instead of the bare "siftlode.chatDock.*" literal (matches the storage LS registry). tsc green, re-review clean, localdev boots, Messages renders (locked-state) w/o console errors.
35 lines
1.5 KiB
JSON
35 lines
1.5 KiB
JSON
{
|
|
"tab": "Messages",
|
|
"navLabel": "Messages",
|
|
"popOut": "Open in pop-out",
|
|
"expand": "Expand",
|
|
"minimize": "Minimize",
|
|
"close": "Close",
|
|
"conversations": "Conversations",
|
|
"new": "New message",
|
|
"newTitle": "New message",
|
|
"empty": "No conversations yet. Start one with the New message button.",
|
|
"searchPeople": "Search people…",
|
|
"noPeople": "No one to message yet.",
|
|
"threadEmpty": "No messages yet — say hello.",
|
|
"writePlaceholder": "Write a message…",
|
|
"send": "Send",
|
|
"encrypted": "Encrypted message",
|
|
"encryptedHint": "End-to-end encrypted",
|
|
"cantDecrypt": "Can't decrypt",
|
|
"sendFailed": "Couldn't send your message. Try again.",
|
|
"systemReadOnly": "This is an automated message.",
|
|
"setupTitle": "Set up secure messaging",
|
|
"setupBody": "Messages are end-to-end encrypted. Choose a passphrase to protect your key — it never leaves your device, so no one (not even an admin) can read your conversations.",
|
|
"setupWarn": "If you forget this passphrase, your message history can't be recovered.",
|
|
"setUp": "Set up",
|
|
"unlockTitle": "Unlock messaging",
|
|
"unlockBody": "Enter your message passphrase to unlock your conversations on this device.",
|
|
"unlock": "Unlock",
|
|
"passphrase": "Passphrase",
|
|
"passphraseConfirm": "Confirm passphrase",
|
|
"passTooShort": "Use at least 6 characters.",
|
|
"passMismatch": "The passphrases don't match.",
|
|
"wrongPass": "Wrong passphrase.",
|
|
"setupFailed": "Couldn't set up secure messaging. Please try again."
|
|
}
|