@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

TalkJS for Flutter v0.3.0

New  Push Notifications

Push notifications are a critical part of what we offer and we are very excited to make it available on our Flutter SDK. Similar to our React Native SDK, we have abstracted registering of the device token among other things to make adding push notifications a fairly straightforward thing. You can check out our documentation for a step by step guide on what you'll need to do to setup push notifications on Android and iOS through Firebase and Apple Push Notification service respectively.

We are continuously working on improving our push notification implementation to make sure we properly cater to our users needs. Feel free to reach out to us with your suggestions and feature requests.

improvement File Upload on Android

Due to the nature of the WebView implementation on Android and limitations of the Flutter equivalent, we had initially shipped the Flutter SDK without support for file uploads on Android. At the time of writing, various factors prevent the maintainers of the Flutter Webview plugin from shipping this feature. We believe file upload is a core component of TalkJS and so we forked the plugin and added it to cater to our Flutter SDK.

Other than your users on Android being able to upload files, there's nothing to be done from your end. Remember, you can always enable or disable file attachment for a specific role through the dashboard.

Link Previews, Custom Message Actions in the Flutter SDK, and More!

We just added Link Previews to TalkJS.

For most websites, the preview will show the title and a description of the page, but for media sites like YouTube, we'll embed the media right inside the message.

If you haven't made any changes to the UserMessage or SystemMessage component of the theme you use in TalkJS, they should start working automatically. If you did already change these templates, head over to our docs to learn how to add link previews to your theme.

Improvements to the Flutter SDK

The Flutter SDK also has some new goodies in store:

  • The Chatbox and ConversationList widget now accepts an onLoadingStateChanged parameter, which can notify you when the widget's content has fully loaded.
  • The Chatbox widget now takes an onCustomMessageAction handler, which you can use to respond when the user triggers custom message actions.
  • Fixed a scrolling issue when the Chatbox widget is placed in a bottom sheet.

Easily Set Up a Custom Domain for Emails 📧

For a long time now, TalkJS has let you use your own domain for sending emails, and handling email replies, but up until recently, this required contacting support. Now, you can easily do this yourself.

To add a custom email domain, click the account menu in the top right of the TalkJS dashboard, then click "Email domains". After adding the domain, click "details". You'll see some instructions on how to set up the necessary DNS records. Lastly, you'll want to go to the Settings page of your dashboard, and under Email Domain, select the domain you just added.

Bugfixes 🐞 

We've fixed several bugs since our last changelog entry, including:

  • Fixed an issue where flag emoji wouldn't show up on Windows in most browsers
  • Fixed an issue where in dark themes, the scroll bar wasn't visible.
  • Fixed an issue where we sometimes sent the same email notification multiple times

TalkJS for React Native v0.3.0

New Expo SDK

To properly support users of Expo's Managed Workflow, we have released a new package: @talkjs/expo. This package is identical to @talkjs/react-native except it has push notifications disabled. This is because the push notification libraries used have native code which make them incompatible with the Managed Workflow. 

If you need push notifications, you can send them from your own backend using our webhooks or you can use @talkjs/react-native and create a development build for your project using EAS Build or eject to the bare workflow.

The versioning for this new package will be identical to @talkjs/react-native

Better Notifications

We have changed the libraries we use for push notifications which has allowed us to greatly improve notifications, particularly on Android. Notifications are now shown as Conversations and grouped accordingly. Applies only to devices running Android 7.0 (API level 24) and up.

Image showing an two Android notifications representing two dummy conversations.

Images sent will also appear in the notifications. (Android only).

Image showing an Android notification that includes an image.

The function, registerPushNotificationHandlers, now allows for more configuration options when creating Android's Notification Channels. It also supports providing iOS notification related permissions you want your app to have.

As part of these changes you'll need to update your android/build.gradle file by adding the following block to the repositories section of allprojects:

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

Better Error Reporting

It should now be clearer what is wrong with your code. Should you encounter a scenario where an error has occurred but React Native's Logbox doesn't show, notify us via our livesupport.

Image showing an error in React Native from the TalkJS SDK

Other changes

  • Add support for Guest Access through the addition of asGuest prop in Chatbox.
  • Enable capturing of keyup events in Chatbox through the captureKeyboardEvents and onKeyup props.
  • Added the methods: getText and typeText to MessageField.
  • Changed oneOnOneId to also accept User Objects.
  • Changed showFeedHeader default to false.
  • Fix issue when user and/or conversation synchronization were disabled.
  • Deprecated the following props in ConversationList: feedConversationTitleMode, thirdParties, onBlur and onFocus.
  • Deprecated the following props in Chatbox: chatSubtitleMode, chatTitleMode, thirdParties, translateConversations, onBlur and onFocus.


React Native SDK

New We have some exciting news! We have shipped a React Native SDK 😄.

Prior to this release, getting TalkJS running in React Native applications required developers to perform multiple tasks like creating an HTML file for the webview, passing parameters from the app to the JavaScript running in the webview and sometimes even adding handlers so the code in the webview could call back to the app.

With the React Native SDK you can get TalkJS running in your React Native application with a few lines of code:

<TalkRn.Session appId='YOUR_APP_ID' me={me}>
  <TalkRn.Chatbox conversationBuilder={conversationBuilder} />
</TalkRn.Session>

The new SDK makes it easier to use TalkJS in React Native applications by providing React Native Components that will feel natural to anyone using React Native.

Developers will now write significantly less code, save time and also make their code less error-prone. Additionally by using the SDK developers are guaranteed of backwards compatibility, meaning their code will always run even as TalkJS evolves.

So go ahead and check out our React Native Getting Started Guide.

We can't wait to see the cool stuff you are building!

 

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.

View Current MAU & Various Bug Fixes

Added: the current amount of Monthly Active Users to the billing page.

Fixed: Issue with headers not expanding when the Panel style has higher padding than the default.

Fixed: Issue where the inbox would show no conversations when a feed filter was applied, even when there were conversations that match the filter.

Several other bug fixes.

New themeable components (Chat Header & No Chats View), bug fixes

Added: New themeable component, Chat Header - customize the chat header with the new HTML & CSS template.

Added: New themeable component, No Chats view - customize the messaging and layout of the view when there aren't any chats with the new HTML & CSS template.

Added: Autofocus the message field on desktop devices, new option to toggle this behaviour with messageField.autofocus.

Fixed: When a user has been removed from a conversation, it will no longer be reported as unread when new messages come in.

Show Previous EntriesShow Previous Entries