@mentions in TalkJS are here!

You can now mention any participant in a conversation by typing @ followed by their name. Once you've typed the at-symbol, a menu will come up so you can quickly select the person you're looking for.

With the addition of mentions also comes a new option for notifications. When adding/updating a participant to a conversation, you can now set the "notify" option to "MentionsOnly" to only be notified when someone mentions the user. You can learn more about the different notification settings in our documentation on participants.

New Additions to the JavaScript SDK

  • Added a sendFile method to all widgets to send a file to the current conversation.. You can pass it a Blob to upload a specific file directly from your application. If you don't specify a file, the file picker dialog will open, so the user can pick a file to upload.
  • Added a sendLocation method to all widgets. It will send the user's current location in the current conversation.

Note that both methods still open the confirmation dialog, so the user can confirm or cancel sending the message.

React Native SDK TalkJS for React Native v0.4.0

With this release, we have updated the SDK's dependencies and peer dependencies to keep them up to date and also fix bugs in some of them. As of npm v7, peer dependencies are installed by default so upgrading the TalkJS SDK should also upgrade the peer dependencies accordingly. For yarn users, you may have to update the packages individually as shown:

yarn upgrade @notifee/react-native@^5.3.0 @react-native-community/push-notification-ios@^1.10.1 @react-native-firebase/app@^14.11.0 @react-native-firebase/messaging@^14.11.0 react-native-webview@^11.21.2

These libraries are defined as peer dependencies rather than dependencies since they contain native code and currently, React Native does not auto link transitive dependencies.

The new version of the notifee library also eliminates the need to add the local maven repository manually to your project. You can remove the section below. (Your app will still build and run if you don't remove it)

maven {
  url "$rootDir/../node_modules/@notifee/react-native/android/libs"
}

Improvements and Bug Fixes

  • Fixed an issue where certain sequences could of numbers and symbols could be incorrectly treated as phone numbers, meaning they would be turned into links or suppressed by contact info suppression.
  • Fixed an issue where the scroll position was not maintained properly when the on-screen keyboard opened.
  • Fixed an issue where quickly switching between conversations on a slow network could cause an error.
  • Fixed an issue in Safari where message parsing could cause an error.
  • Our dashboard should now give more useful errors for invalid APNS certificates
  • Guests can now delete messages in conversations, if their role grants them to necessary permissions.
  • Screen readers should now be able to better announce emoji in messages
  • Fixed an issue where push notifications on IOS didn't have a sound
  • Fixed an issue where the activity pag'e on the dashboard wouldn't load for certain customers with a lot of conversations
  • Fixed an issue where the scroll bar wasn't visible on dark themes

Keyboard events

TalkJS lets you build a chat feature in hours instead of months.

Added

Improved

  • Bugfix: Users sporadically unable to send messages after seeing "Conversation not found" or creating a conversation in parallel with loading a chat UI
  • Bugfix: when enterSendsMessage is true, pressing enter did not inserts a newline
  • Security improvements

New Conversation List Item theme component, Push notification improvements, message.deleted add to webhooks, added idempotency keys


Added

Conversation List Item component: Theme your inbox list items with the new component.

Idempotency keys: Ensure exactly-once delivery of messages - Read more.

Webhooks: message.deleted added to the webhooks list in the dashboard.

API: Fully delete participants when leaving a conversation - Read more.

Push notification tester: You can now test your push notifications via the dashboard UI.

Improved

Android Push Notifications: Priority changed to high, which helps apps that aren't running in the background.

Emojis 😲: Updated to include newer emojis.

Dashboard Settings: Improved layout to give saving settings more visible.

Improved UX for autoscrolling new messages.

Security and performance improvements.

Fixed

System messages suppressed in emails: Fixed a bug where system messages containing contact information were incorrectly being suppressed.

Faster, better, more secure

Added: You can now run TalkJS on a custom subdomain (eg chat.yourcompany.com). This way, no network requests go to talkjs.com at all. (Enterprise plan only - get in touch if you're interested).

Improved

  • The Chat UI got much faster 🚀. It's snappier and uses less battery than before.
  • Made it possible to run TalkJS with a stricter Content-Security-Policy (docs)
  • "Send message" REST API endpoint now returns message IDs in the response payload
  • Made dashboard "Role editor" navigation clearer and easier to use

Fixed:

  • Sending a large message would not always scroll the message list down to the bottom correctly.
  • Inbox Feed Filters would sometimes not show sufficient data in the conversation list, or the "load more" button would be unavailable
  • showChatHeader: false was ignored in some cases, making it impossible to hide the header.
  • In the enlarged shared image view, the close button would display as "⨯" and not as "X" (on sites/apps that did not use UTF-8 encoding)
  • Email attachment file sizes were sometimes incorrectly reported in the Chat UI
  • CSS syntax errors in the Theme Editor could break the Chat UI without an actionable error. Now, it shows a useful error in the devtools console.

Bug fixes - 27th Feb, 2020

Fixed: Certain characters were incorrectly encoded for real-time message translations
Fixed: Removed unnecessary dependancy for the JavaScript SDK
Fixed: A bug which would cause the single-conversation embeddable view from working correctly at times