TalkJS Changelog logo
Back to Homepage

Changelog

Subscribe to Updates

Labels

  • All Posts
  • Bug fix
  • Announcement
  • Improvement
  • Chat UI
  • JavaScript SDK
  • REST API
  • Dashboard
  • Deprecated
  • New
  • React Native SDK
  • Flutter SDK
  • Security
  • React

Jump to Month

  • April 2025
  • March 2025
  • February 2025
  • January 2025
  • December 2024
  • November 2024
  • October 2024
  • September 2024
  • August 2024
  • July 2024
  • June 2024
  • May 2024
  • April 2024
  • March 2024
  • February 2024
  • January 2024
  • December 2023
  • November 2023
  • October 2023
  • September 2023
  • August 2023
  • July 2023
  • June 2023
  • May 2023
  • January 2023
  • October 2022
  • September 2022
  • August 2022
  • July 2022
  • June 2022
  • May 2022
  • March 2022
  • February 2022
  • December 2021
  • November 2021
  • October 2021
  • August 2021
  • July 2021
  • May 2021
  • April 2021
  • March 2021
  • February 2021
  • January 2021
  • December 2020
  • November 2020
  • September 2020
  • July 2020
  • June 2020
  • May 2020
  • April 2020
  • March 2020
  • February 2020
  • January 2020
Changelog byAnnounceKit

Create yours, for free!

2 years ago

Users can now edit messages in the TalkJS UI

Spelling mistakes and other slip-ups happen just happen sometimes, but it's annoying if you only notice them when you've already sent a message. Now, users can edit messages after they've been sent, from within the TalkJS UI.

Just like with deleting messages, you can configure which roles are allowed to edit messages. You can even allow users to edit all messages in a conversation, which can be useful for moderation. All new roles will allow users to edit their own messages by default. Existing roles have this permission turned off so that nothing changes without you enabling it. 

As you can see in the animation above, once a message has been edited, it is labelled with "(edited)" in the chat. If you haven't made any changes to the UserMessage and MessageBody components in the theme you're using, this will work out of the box. If you did make changes there, you can learn how to add the edit indicator in our documentation on message actions.

Message Editing and the REST API

We've added an editedAt field to messages returned by the API. When a message is first created, this field is null. When the user edits a message it'll be set to the timestamp of the most recent edit.

When updating a message via the REST API, you can now pass a markEdited field (defaulting to false). When set to true, the message's editedAt field will be updated to the time of the update, and in our default theme, the message will show up with "(edited)".

Flutter SDK Changes

  • Breaking: You can now configure a participant to only receive notifications for mentions. This required us to change the type of the notify field on Participant. It is now of type ParticipantNotification, an enum with the supported notification settings.

Bugfixes and improvements

We're constantly improving performance and fixing issues under the hood. Here's an overview of just some o the issues we've fixed recently.

  • We now show upload progress when the user uploads an attachment.
  • Improved the upload preview for videos on mobile. The video now plays back "inline" instead of going full screen.
  • Fixed an issue where certain URLs might be parsed incorrectly in messages sent via the REST API, resulting in broken links.


AnnouncementImprovementJavaScript SDK
2 years ago

@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.

  • Added an onKeyDown method to all  widgets.

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
ImprovementFlutter SDK
2 years ago

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.

AnnouncementImprovementDashboard
3 years ago

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
3 years ago

An Eventful Release

Custom Message Actions


We added the ability to add custom actions to the message menu. This lets you build features like reporting, favouriting or quoting messages. When a user selects a custom message action, an event is triggered in the JavaScript SDK. Check out our documentation on message actions for more info.

New event handlers in the JS SDK

The TalkJS JavaScript SDK emits events in many situations, so you can react to things that happen within our systems or in the chat UI. For instance, we fire an event when a conversation is selected in the inbox. The code to listen for such an event used to look like this: 

inbox.on("conversationSelected", function(event) {
  console.log(event);
});

This style of event handlers is now deprecated. Instead, you can now this:

inbox.onConversationSelected(function(event) {
  console.log(event);
});

These new event methods return a Subscription object that you can use to unsubscribe from events. This replaces the "off()" methods, which are now deprecated too. We never want to break existing code, so even though they're deprecated, the old methods will always continue to work.


For a full list of deprecated methods and their alternatives, see the deprecated methods sections on Session and its associated Unreads object, Chatbox, Popup and Inbox.

React Native SDK
3 years ago

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.


3 years ago

Flutter SDK and Team Access to the Dashboard

Flutter SDK

Want to add chat functionality to your Flutter app? We made that a lot easier with the TalkJS Flutter SDK. To get started with it, check out our docs. With the release of this new SDK, we're expanding our support for mobile app platforms. We released an SDK for React Native last year, and we've always supported embedding TalkJS in a WebView in Ionic and native mobile applications.

Invite your team to the TalkJS dashboard

It used to be that one TalkJS account was linked to one TalkJS instance with a test and live environment. We've heard from many customers that they'd like to give members of their team access to the TalkJS dashboard, without needing to share login details. Now you can!

If you open the account menu in the top right of the dashboard, you'll see some new items. The first set of menu items is related to your project, which is what we call these TalkJS instances now. Each project still has a test environment and a live environment. Billing settings are also saved on a per-project bases.

If you click Manage members, you'll be able to invite your team members to your project. We've also created a set of roles that can limit which sections of the dashboard they can access.

On that same page you'll be able to see and manage current project members and pending invitations.

An account can be associated with multiple projects now too. So if you'd like to make another project to have an extra separate environment for staging or testing, or you work in an agency where you use TalkJS with multiple clients, you can create new projects under the same account.

Bug Fixes:

  • Fixed an issue where conversations with ids containing percentage signs or slashes could not be retrieved.
  • Fixed an issue where a conversation a user was removed from would still show up in the conversation list in the inbox.
  • Fixed an issue whee some attachment URLs would lead to a 403 response.
  • Fixed a bug in the TranslationToggled event causing the "conversation" attribute to hold an empty object.
  • Fixed an issue where removing a user from a conversation could cause an error if that user sent the most recent message, and the app was using a legacy theme.

3 years ago

Users can now delete messages

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


Added:

  • Added a menu for message actions:

For now, "Delete message" is the only action in there, but watch this space for more to come.

If you've customised your theme, you'll need to modify the UserMessage or MessageBody component to add the MessageActionMenu component to it. The code for it should look something like this:


  

Feel free to reach out to customer support if you need help setting it up.

If there are no actions that the current user has permission to perform on a message, then the menu won't show up at all there. Speaking of permissions...

  • Added a message permissions section to roles. In this section, you can give permission to users with this role to perform actions on their own messages, all messages or no messages at all. To match the behaviour of your existing roles, the deletion permission has been set to "None". For newly created roles, it'll default to "Own", so that users can delete their own messages.

Fixed:

  • Fixed an issue where removing a participant from a conversation could cause problems when loading the inbox for other participants.
  • Fixed an issue where a conversation could still show up in a user's inbox after being deleted. No more zombie conversations!

React Native SDK:

  • Added a ConversationList component. It works just like the conversation list in our Inbox for the JavaScript SDK.
  • Added the messageField property to the Chatbox component
  • Fix bug in ConversationBuilder.setAttributes that prevented setting a value to null or undefined after previously having given it a value.
  • (iOS): Fix push notification registration token not getting received.
  • (iOS): Fix zooming when messageField is focused.

🎄Happy holidays from the TalkJS team!

ImprovementJavaScript SDK
3 years ago

Keyboard events

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

Added

  • Capture keyboard events inside the chat UI: 
    • Added captureKeyboardEvents option 
    • Added on("keyup") event
  • Added message field SDK functions: getText and typeText

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
ImprovementChat UI
3 years ago

Message field + emoji picker

A major TalkJS update today! Read more background here.

New message field in 2 flavours

Emoji picker

Emoji auto-suggest

And more:

- File attachment confirmation dialog

- Better accessibility

- Better keyboard navigation

Read more on our blog.