CHANGELOG.md
v2.3.0 (14-08-2025)
Added:
- Added a new
chatButtonHoveredStyle
- Added support for callback function parameter in
replaceMessages
, replacePaths
, replaceToasts
, replaceSettings
and replaceStyles
v2.2.0 (06-07-2025)
Fixed:
- Improved/fixed header title styles to be consistent when updated with just a
string
type
Added:
- Added a new
slots
prop to ChatBot
that provides composability of major UI components (e.g. header, footer) (docs updated here)
v2.1.0 (13-06-2025)
Note:
The themes upstream repository has been moved to the React ChatBotify GitHub Org. With this touchup, v2 is now officially stable! That said, refinements will still be ongoing - do feel free to report bugs or provide suggestions/feedback!
v2.0.0-beta.39 (12-06-2025)
Added:
- Added a new
getIsChatBotVisible
utility function to the useChatWindow
hook
v2.0.0-beta.38 (23-05-2025)
Fixed:
- Fixed an issue where dimensions provided in strings to styles were not handled correctly for internal calculations
v2.0.0-beta.37 (20-05-2025)
Added:
- Added a new export
RcbEvent
that is an enum for all React ChatBotify events
- Added a new
useOnRcbEvent
that accepts RcbEvent
as the first parameter and an event handler as the second parameter
Note:
This update is primarily meant for plugin developers. The addition of useOnRcbEvent
should make registering of events much
cleaner (especially within plugins). Filtering of bot ids is handled automatically within this hook, which means multi-bot
users (and plugin developers) no longer have to check for bot ids to prevent chatbot events being caught by each other. A custom
CLI tool will also be released soon to facilitate setups for developing plugins, themes etc. These changes are all part of an
overall effort to improve developer experience.
v2.0.0-beta.36 (16-05-2025)
Fixed:
- Fixed an issue with
restartFlow
not triggering the start
block again
- Fixed an issue where an interruptable
transition
is not respected in restartFlow
- Fixed an issue where events emitted may be missed during the initial loading of the chatbot
- Fixed an issue with file uploads not resetting properly (note that the files type was updated from
FileList
to Array<File>
)
v2.0.0-beta.35 (13-05-2025)
Fixed:
- Fixed an issue where messages removed are still persisted in chat history storage
- Fixed an issue where
params.userInput
is not updated when user messages are added through utility functions
- Fixed an issue where notifications count for unread messages may be inaccurate
v2.0.0-beta.34 (13-05-2025)
Important:
- This version introduces integration with the
LLM Connector Plugin
and with that, successfully provides out-of-the-box integration with LLMs! The LLM Connector plugin is ready and will be made available on NPM soon.
Breaking Changes:
- Renamed
params.openChat
to params.toggleChatWindow
for consistency with the useChatWindow
hook
- The
injectMessage
, streamMessage
, simulateStreamMessage
and removeMessage
functions now return the entire Message
object instead of just the id
Fixed:
- Fixed an issue where
streamMessage
prevents users from scrolling away
- Fixed an issue where message processing may fail due to a missing type check
- Fixed an issue where rendering messages in code blocks can occasionally cause contents to be cut-off
- Fixed an issue where
endStreamMessage
did not properly emit the message data in its event
- Fixed an issue with audio not playing in simulate message stream due to changes in the previous version
- Optimized all toggle states (resolves rare scenarios where toggles don't work correctly)
Added:
- Added
scrollToBottom
and toggleIsBotTyping
utility functions to the useChatWindow
hook
- Enhanced all toggle functions (
toggleAudio
, toggleVoice
, toggleNotifications
, toggleChatWindow
, toggleTextAreaDisabled
, toggleTextAreaSensitiveMode
) to allow an optional active
parameter which basically specifies desired end state (if no parameter is passed in, it continues to function just as a simple toggle)
- Added
rcb-pre-process-block
and rcb-post-process-block
events
v2.0.0-beta.33 (23-04-2025)
Breaking Change:
- The
botBubble.simStream
and userBubble.simStream
settings have been renamed to botBubble.simulateStream
and userBubble.simulateStream
for greater clarity
- The
botBubble.simulateStream
and userBubble.simulateStream
settings are no longer applied to params.injectMessage
, and are only applied to the message
attribute within a block (you should now defer to the newly added params.simulateStreamMessage
for simulating streaming via utility function)
- The
simStreamChunker
data field has been renamed to simulateStreamChunker
and moved from rcb-pre-inject-message
event to the newly added rcb-start-simulate-stream-message
event
Added:
- Added a new
speakAudio
utility function to the useAudio
hook
- Added a new
params.simulateStreamMessage
for users to simulate stream message
- Added new
rcb-start-simulate-stream-message
and rcb-stop-simulate-stream-message
events
Note:
A couple of breaking changes have been introduced this patch to be more consistent with how messages are handled. This consistency is aimed at simplifying future development work both on the core library and for plugins. If you are using the Markdown Renderer Plugin or HTML Renderer Plugin, you should update both plugins to version 0.2.0 or higher which adds support for listening to the new simulate stream message events.
v2.0.0-beta.32 (16-03-2025)
Fixed:
- Fixed an occasional issue where loading plugins can cause infinite re-renders
- Fixed an issue where stale messages may be used within the
useMessages
hook
v2.0.0-beta.31 (25-02-2025)
Deprecated:
- Removed
botBubble.dangerouslySetInnerHtml
and userBubble.dangerouslySetInnerHtml
properties, whose logic has now been shifted to the newly published HTML Renderer plugin
Added:
- Added a new
rcb-start-audio-speak
event
- Added a new optional
tags
property to Message
component, targeted at plugins looking to add identifiers to messages (for example, to know when a message was processed by a plugin)
- Added a new
simStreamChunker
data field to rcb-pre-inject-message
event, which allows custom parsing of simulated stream
- Added a new
hasChatHistoryLoaded
state to the useChatHistory
hook to determine if chat history has been loaded
v2.0.0-beta.30 (19-02-2025)
Fixed:
- Fixed an issue introduced in the previous version where custom components are wrapped in chat bubbles
v2.0.0-beta.29 (18-02-2025)
Fixed:
- Fixed issues with stream message events
Added:
- Added a new optional
contentWrapper
property to Message
component, targeting niche use cases where additional parsing/rendering of strings for a message are required before it is wrapped in a chat message bubble
Note:
The addition of the niche property contentWrapper
is not typical - in general, we avoid niche implementations in the core library. In this case however, it provides an elegant solution for supporting plugins that need to render messages in specific formats. For example, the newly published Markdown Renderer uses this new property.
v2.0.0-beta.28 (13-02-2025)
Fixed:
- Fixed an issue with redundant styles being applied
- Fixed an issue where specific static svg imports are missing in the final build
v2.0.0-beta.27 (12-02-2025)
Fixed:
- Fixed an issue where
updateStyles
may not reflect updates for certain components
- Fixed an issue where restart flow does not properly reset
isSensitive
attribute
- Fixed an issue where restart flow does not sync live history messages with storage
Added:
- Added a new
blurTextArea
utility function to the useTextArea
hook
- Added a new
chatWindow.showTypingIndicator
setting to allow configuration for whether bot typing indicator is shown (defaults to true
)
- Extended the
voice.timeoutPeriod
setting which can now be disabled with a value of 0 (i.e. voice stays on until user turns it off manually)
v2.0.0-beta.26 (25-11-2024)
Fixed:
- Fixed a bug introduced in v2.0.0-beta.25 that caused simulate streaming of messages to fail
v2.0.0-beta.25 (25-11-2024)
Fixed:
- Fixed an issue with z-index causing display issues in embedded chatbots
- Fixed and improved stream logic for messages
Note:
The message sender
field now defaults to being fully capitalized (i.e. bot
-> BOT
). However, it is also no longer case sensitive so no action is required.
v2.0.0-beta.24 (13-11-2024)
Fixed:
- Fixed an issue where toasts showed up incorrectly positioned in embedded chatbots
v2.0.0-beta.23 (07-11-2024)
Minor Breaking Change:
- All functions in
params
are now async, with the addition of these functions in this version:
params.showToast
params.dismissToast
params.goToPath
params.setTextAreaValue
params.openChat
- The following functions from hooks are now async:
showToast
dismissToast
toggleAudio
toggleNotifications
toggleVoice
toggleChatWindow
goToPath
setTextAreaValue
Fixed:
- Fixed stale values in toggle events
- Fixed an issue with toasts not being positioned properly
- Fixed an issue where new message prompts are not dismissed in embedded chatbots
- Fixed an issue with the chatbot potentially crashing in react native webview
- Fixed warning messages when loading chat history
Added:
- Added support for async event handlers (push promises into
event.promises
for them to be awaited till resolved)
- Added
Plugin
type as an export
- Improved logic for simulating stream messages
v2.0.0-beta.22 (31-10-2024)
Fixed:
- Fixed a rare issue where the latest message sent may not be saved into chat history
- Fixed error messages in console when chat history loads options or checkboxes
Added:
- Added a new
storageType
property to settings.chatHistory
that allows users to specify LOCAL_STORAGE
or SESSION_STORAGE
for storing chat messages
- Improved plugin experience by allowing plugin developers to include auto-setups
- Toasts styles are now handled independently, allowing different toasts to show up concurrently
v2.0.0-beta.21 (22-10-2024)
Minor Breaking Change:
- The
desktopEnabled
and mobileEnabled
properties previously found under settings.general
have been moved to a new settings.device
section
Fixed:
- Fixed an issue with notification sound spams when streaming messages
Added:
- Added a new
sendIconHoveredStyle
to allow users to define send icon styles on hover
- Added a new
device
section (which the desktopEnabled
and mobileEnabled
properties are moved to)
- Added a new
applyMobileOptimizations
property to the newly added settings.device
section
v2.0.0-beta.20 (21-10-2024)
Fixed:
- Fixed an issue with the default chatbot footer icon
- Improved checks for desktop/mobile devices
- Reduced unnecessary re-renders (minor optimizations)
- Properly fixed chatbot svg icon on mobile
Added:
- Added new
replaceSettings
, replaceStyles
, replaceMessages
, replacePaths
and replaceToasts
utility functions to their respective hooks (replaces their respective state setters)
Note:
Hooks no longer directly expose state setters (not a great practice, and hinders optimizations that can be done within the library itself). The new functions serve as a drop-in replacement for the state setters.
v2.0.0-beta.19 (18-10-2024)
Fixed:
- Fixed an issue where using
ChatBotProvider
for hooks will cause infinite re-renders
- Fixed an issue where audio service will read out html tags
- Fixed an issue where
sendOutput
field is being ignored for options
and checkboxes
attributes
- Fixed an issue where tooltip had a much lower z-index than chat window, causing it to be partially hidden
- Fixed an issue with the
useToasts
hook not being imported correctly
- Fixed an issue where chatbot button svg icon was not rendered correctly on mobile devices
Added:
- Added a new
updateSettings
utility function to the useSettings
hook (refer to documentation for details)
- Added a new
updateStyles
utility function to the useStyles
hook (refer to documentation for details)
v2.0.0-beta.18 (14-10-2024)
Fixed:
- Excluded comments from theme css files parsing
- Fixed an issue where icon was not rendered correctly in footer
v2.0.0-beta.17 (13-10-2024)
Fixed:
- Fixed improper parsing of css files in themes
- Fixed toast animation not working
Added:
- Updated button with svgs from: https://fonts.google.com/
- Added disabled icon support for all buttons (now possible to have different icons for enabled/disabled state)
- Added svg component support for button icons (conveniently use the
fill
attribute to recolor icons!)
- Added a new
sendIconDisabledStyle
- Loading of chat history no longer locks the text area
- Standardized keyframe naming conventions
v2.0.0-beta.16 (08-10-2024)
Fixed:
- Fixed an issue where themes may not load properly
- Buttons now properly inherit base styles even in different states (e.g. disabled, hovered)
v2.0.0-beta.15 (06-10-2024)
Fixed:
- Fixed an issue where having
settings.chatHistory.autoLoad: true
will cause the chat history to disappear
- Fixed an issue where loading of chat history may cause previously disabled text area to become enabled
- Renamed
id
inside event.detail
to botId
for better clarity
Added:
- Added a new
rcb-pre-load-chatbot
event
- Added a new
rcb-post-load-chatbot
event
- Added a new
useBotId
hook
v2.0.0-beta.14 (03-10-2024)
Fixed:
- Fixed an issue where having multiple chatbots can cause styling conflicts with themes
- Fixed an issue where
removeMessage
was not working due to outdated messages state
- Fixed an issue where
defaultToggledOn
property for voice
did not properly register voice inputs
- Fixed an issue where setting
defaultOpen
to true
for chatWindow
does not make it open by default
- Fixed an issue where toggling open the chat window does not emit its associated event
- Fixed a rare issue where spamming messages too fast can cause autoscroll to bottom to not work properly
- Fixed notification badge style to prevent it from becoming oval-shaped
- Fixed an issue with the library packaging process, reduces overall size by nearly 60%!
- Renamed
useToast
hook to useToasts
for consistency
Added:
- Added proper support for React 19!
- Added a new
ariaLabel
section to improve accessibility support
- Added a new
useChatHistory
hook that provides 3 new actions (showChatHistory
, getHistoryMessages
and setHistoryMessages
)
- Added a new
sendButtonDisabledStyle
(send button is now properly disabled when textarea is disabled as well)
- Improved localised styling of chatbots to reduce conflicts with host websites (and with other chatbots)
Note:
This update brings about a couple of fantastic improvements - drastically reduced library size (by nearly 60%), React 19 support, improved localised styles and better accessibility support!
v2.0.0-beta.13 (26-09-2024)
Fixed:
- Fixed an issue where the toggle voice event was not properly triggered
Added:
- Improved support for ssr (users now no longer need to rely on dynamic imports as a workaround)
v2.0.0-beta.12 (20-09-2024)
Fixed:
- Fixed an issue where toasts do not obey max limit
- Fixed an issue where toasts are not positioned properly
- Fixed an issue where notification sound does not play correctly in
useNotifications
v2.0.0-beta.11 (20-09-2024)
Added:
- Added a new
useFlow
hook that grants access to retrieving and restarting the conversation flows
- The
hasFlowStarted
boolean which was previously found in useFirstInteraction
has been moved to useFlow
for better consistency
Fixed:
- Fixed an issue where states were not updated in conversation flow
Note:
There have been confusions surrounding the use of ChatBotProvider
such as what props it should be given if used. To reduce the mental load on developers, all props are now centralized to only ChatBot
, regardless of whether you are using ChatBotProvider
or not. There is no functionality change, but developers can now just remember that ChatBot
is what accepts all props so if you're currently passing props to ChatBotProvider
, move them all to ChatBot
instead.
v2.0.0-beta.10 (18-09-2024)
Fixed:
- Fixed an issue where chatbot view on mobile devices may not resize correctly
- Fixed an issue where uuids are not generated properly for non-https environments
v2.0.0-beta.9 (16-09-2024)
Breaking Changes (Advanced Users):
- If you are manually manipulating the
messages
array via advanced messages, note that the message elements now enforce that the following fields must be present (more details here):
- id
- sender
- content
- type
- timestamp
- If you are currently using any of the advanced features (e.g.
SettingsContext
, StylesContext
, MessagesContext
or PathsContext
), note that these have been removed in favor of a single provider (ChatBotProvider
). The advance
configuration section has also been removed from settings
as the entire concept of advanced features is being dropped (more details here).
Breaking Changes (All Users):
- The
isOpen
variable in settings
which tracked the open/close state of the chatbot window has been removed, in favor of useChatWindow
hook. More details here.
- Last beta release, a new
params.injectToast
was added. This has been renamed to params.showToast
to avoid conceptual similarities with messages.
Fixed:
- Fixed an issue where
params.setTextAreaValue
may not respect the character limit of the text area (if set).
Added:
- A new id prop has been added to uniquely identify a bot (relevant for firing events when there are multiple chatbots).
- A new plugins prop is now available. However, there are no plugins released yet - they will come in October. More details here.
- A new hooks feature is now available, granting extreme flexibility in interacting with the chatbot from your own components. This is achieved by nesting your components within a single
<ChatBotProvider/>
. More details here.
- A new events feature is now available, allowing you to listen for chatbot events and run your own application logic. Events are an opt-in feature so you'll need to enable them in
settings
. More details here.
- A message id (string) is now returned for
injectMessage
and streamMessage
which identifies the message the content is sent in (returns null if sending of message was prevented in event listeners).
- A toast id (string) is now returned for
showToast
which identifies the toast the content is sent in (returns null if sending of toast was prevented in event listeners).
- The
transition
attribute now accepts a number
as well (defaults interruptable to false
).
Note:
This beta release includes large scale changes in order to deliver on the events/plugins feature. Pending major bugs or implementation issues, this will be the last round of introducing massive changes as we strive towards a stable version for v2. Note that given the scale of these changes, there are minor breaking changes (in addition to the initial beta release), which largely affects advanced users. For users updating from the older beta versions, I've put together the sections to catch up on for addressing breaking changes:
v2.0.0-beta.8 (06-09-2024)
Fixed:
- Fixed an issue where bot typing indicator is not shown when
params.goToPath
is used
Added:
- A new
params.setTextAreaValue
has been added for users to directly set the text area value
- A new
params.injectToast
has been added for users to show toasts within the chatbot
- A new
toast
section has been added to settings
which contains 3 properties (maxCount
, forbidOnMax
and dismissOnClick
) along with 3 new additions to styles
(toastPromptContainerStyle
, toastPromptStyle
, toastPromptHoveredStyle
)
- The
checkboxes
block attribute now accepts an array of strings as well, and will populate items
property with it (all other values defaulted)
- The
checkboxes
block attribute has 2 new properties sendOutput
and reusable
, which determines whether the selected checkboxes should be sent in chat and whether the checkboxes can be reused
- The
options
block attribute now accepts an object as well, accepting 3 properties which are items
, sendOutput
and reusable
(current array input still works)
Note:
This update adds on to and expands the checkboxes
and options
block attributes. There are no breaking changes but if users are keen to leverage on the new features, do refer to the attributes documentation. In addition, 2 new parameters (params.setTextAreaValue
and params.injectToast
) have also been added which greatly enhances the capabilities of the chatbot and sets the groundwork for the impending events/plugins update. Details of their usage can be found in params documentation.
v2.0.0-beta.7 (01-09-2024)
Added:
- Added
rcbTypingIndicatorContainerStyle
and rcbTypingIndicatorDotStyle
for ease of styling typing indicator
v2.0.0-beta.6 (24-08-2024)
Fixed:
- Fixed an issue where chat icon will not fit in the button correctly
- Fixed an issue where
baseUrl
was wrongly named base_url
Added:
- Added caching of themes locally to improve performance
- Added optional
cacheDuration
field when specifying themes which specifies in seconds the duration to cache the theme for (defaults to 30 days)
v2.0.0-beta.5 (15-08-2024)
Fixed:
- Fixed an issue where cursor disabled icon was not showing up on mac devices
Added:
- Added a bunch of new style props for buttons and icons to improve convenience in styling:
`
// new button styles
audioButtonStyle?: React.CSSProperties;
audioButtonDisabledStyle?: React.CSSProperties;
closeChatButtonStyle?: React.CSSProperties;
emojiButtonStyle?: React.CSSProperties;
emojiButtonDisabledStyle?: React.CSSProperties;
fileAttachmentButtonStyle?: React.CSSProperties;
fileAttachmentButtonDisabledStyle?: React.CSSProperties;
notificationButtonStyle?: React.CSSProperties;
notificationButtonDisabledStyle?: React.CSSProperties;
voiceButtonStyle?: React.CSSProperties;
voiceButtonDisabledStyle?: React.CSSProperties;
// new icon styles
chatIconStyle?: React.CSSProperties;
audioIconStyle?: React.CSSProperties;
audioIconDisabledStyle?: React.CSSProperties;
closeChatIconStyle?: React.CSSProperties;
emojiIconStyle?: React.CSSProperties;
emojiIconDisabledStyle?: React.CSSProperties;
fileAttachmentIconStyle?: React.CSSProperties;
fileAttachmentIconDisabledStyle?: React.CSSProperties;
notificationIconStyle?: React.CSSProperties;
notificationIconDisabledStyle?: React.CSSProperties;
voiceIconStyle?: React.CSSProperties;
voiceIconDisabledStyle?: React.CSSProperties;
sendIconStyle?: React.CSSProperties;
**Note:**
There were minor shifting of a few classes to better separate buttons and icons. This should not be an issue for the vast majority of users, but if you've done very specific changes to button/icon styles by targeting the CSS classes, it is advisable to visually check the appearance of said buttons/icons.
## v2.0.0-beta.4 (02-08-2024)
**Fixed:**
- Fixed an issue where disabling `chatInput` globally cannot be overriden by block-level `chatDisabled` attribute
## v2.0.0-beta.3 (28-07-2024)
**Fixed:**
- Fixed an issue where themes will override the current `isOpen` value in `settings`, causing it to open/close unexpectedly
## v2.0.0-beta.2 (25-07-2024)
**Fixed:**
- Fixed an issue where theme conflicts are not properly resolved
- Fixed an issue where invalid sections are not caught in themes
- Fixed an issue where sensitive inputs permanently mask the remaining conversations
- Fixed an issue where chatbot loses focus in text area when transitioning from a previously disabled state
## v2.0.0-beta.1 (24-07-2024)
**Note:**
v2.0.0-beta.1 is a major release with **breaking changes**. All details are available in the [**migration guide**](https://react-chatbotify.com/docs/introduction/migration_v2).
## v1.7.0 (10-06-2024)
**Added:**
- Added a new `language` property to the `voice` section for managing voice input language
- Added a new `flowStartTrigger` property to the `theme` section for managing when flow starts
**Fixed:**
- Fixed an issue where embedded chatbot notifications are played while chatbot is visible
**Note:**
This release has a minor breaking change for developers who are using advance custom paths. If you are currently initializing paths with `["start"]`, note that specifying the `start` block is no longer needed. This means you can simply use `[]` as shown in the updated custom paths example [here](https://react-chatbotify.com/docs/examples/custom_paths).
## v1.6.3 (05-06-2024)
**Fixed:**
- Fixed a rare issue where streaming of messages can sometimes cause `undefined` to appear
## v1.6.2 (25-05-2024)
**Added:**
- Added a new `allowNewline` property to the `chatInput` section which determines if user input can contain newline (`\n`)
- The notifications feature is now properly supported for embedded chatbots and will chime only if the chatbot is scrolled out of view
**Fixed:**
- Fixed an issue where voice detection may not be properly disabled while the chatbot is still streaming messages
- Fixed an issue where **shift + enter** submits user input instead of attempting to add newline
- Fixed an issue where newline is automatically converted to whitespace in user and bot bubbles
## v1.6.1 (19-05-2024)
**Added:**
- Added a new `showCount` property to the `notification` section which allows showing/hiding of unread message count on the top right corner of chatbot button
**Fixed:**
- Improved performance for streaming messages
- Fixed an issue where streaming messages while `dangerouslySetInnerHtml` is set to `true` will pause briefly on encountering html tags
- Fixed an issue where notification sound may occasionally chime when chatbot is embedded
- Fixed an issue where textarea styles may be inconsistent when disabled/focused
- Fixed an issue where the bot may crash on rare occasions when users spam the voice button
- Fixed an issue where embedded chatbot will force input focus on new messages even when scrolled out of page view
## v1.6.0 (11-05-2024)
**Added:**
- Added a new `sensitiveInput` configuration section to cater for sensitive information (refer to [API documentation](https://react-chatbotify.com/docs/api/bot_options#sensitiveinput))
- Added a new `autoLoad` property to the `chatHistory` section which allows chat history messages to be automatically loaded on start
- Added a new `dangerouslySetInnerHtml` property to both `userBubble` and `botBubble` which allows setting of raw HTML content (use with caution)
**Fixed:**
- Fixed several type definitions within the library itself
- Fixed an issue where the load chat history button can appear distorted if given a long text string
- Fixed an issue where some chat history messages may not be saved when using real-time stream
- Fixed an issue where chat input textarea may resize when focused on some occasions
- Fixed selection of emoji causing textarea to lose focus
- Improved performance for saving chat history
- Further reduced assets file size
**Note:**
This update contains significant additions but they have been documented on the [API documentation](https://react-chatbotify.com/docs/api/bot_options#sensitiveinput) and you will also find new live examples for [Sensitive Input](https://react-chatbotify.com/docs/examples/sensitive_input) and [Markup Message](https://react-chatbotify.com/docs/examples/markup_message). This will be one of the last few (if not the last) release before v2.0.0 arrives. Feel free to join [discord](https://discord.gg/6R4DK4G5Zh) to stay up to date!
## v1.5.2 (08-04-2024)
**Added:**
- Added 2 new style props for `chatInputAreaFocusedStyle` and `chatInputAreaDisabledStyle`
**Fixed:**
- Fixed a few instances where chat history options/checkboxes are not rendered correctly
- Reduced notification sound file size
## v1.5.1 (30-03-2024)
**Fixed:**
- Fixed an issue where library css file is not injected for commonjs users
- Fixed an issue where tooltip mode may not be respected
- Fixed an issue where option boxes do not stretch on much larger chatbot window width
- Fixed an issue where overflowing text are not hidden for checkboxes/option boxes
- Fixed an issue where if `header` section is used, then `showAvatar` is a required property
- Fixed usage of oversized images (improves default chatbot load time!)
## v1.5.0 (29-03-2024)
**Added:**
- Added a new `animate` option to both `userBubble` and `botBubble` to easily toggle animations on and off for them
**Fixed:**
- Fixed an issue where empty chat bubbles from stream messages are being saved to chat history
**Miscellaneous:**
- As of this version (**1.5.0**), it is no longer necessary to import `react-chatbotify.css` file in your projects (injected implicitly). Keeping the import statement will not cause any issues currently but this will be a **breaking change** in version **2.0.0**. It is recommended to remove the import statement as soon as possible and the documentation website has also been updated to reflect this change.
## v1.4.0 (22-03-2024)
**Added:**
- A new `chatWindow` section has been added into the [**Configurations**](https://react-chatbotify.com/docs/introduction/bot_options#configurations) category with the following default values:
chatWindow: {
showScrollbar: false,
autoJumpToBottom: false,
showMessagePrompt: true,
messagePromptText: "New Messages ↓",
messagePromptOffset: 30,
}
`
Explanations for what each property does can be found on the documentation website.
Fixed:
- Fixed an occasional issue where stream messages do not autoscroll when user is at the bottom of the chat
- Fixed an issue where users can interrupt the
start
block if it is streaming
- Fixed a bug where users can pinch-zoom the chat window on mobile devices to cause it to be distorted
- Fixed a rare bug where the chat window could be scrolled out of view
- Fixed a longstanding issue where playing notification sounds on mobile devices causes media controls to appear in notifications tray
Note:
Initially planned for only bug fixes, I eventually added a whole new chatWindow
section simply because I felt there were many small areas that could use enhancements (hiding the scrollbar, showing new message prompts instead of forcing users to the bottom etc). This led to version 1.4.0 which was entirely focused on cleaning up the imperfections from the several changes that have been made in the last few releases.
v1.3.2 (16-03-2024)
Fixed:
- Fixed an issue where chat window auto-scrolling does not work for streamed messages
- Fixed an issue where loading chat history caused current scroll position to shift
- Fixed an issue where extremely long words get abruptly cut-off at the tail end of the message bubble
v1.3.1 (13-03-2024)
Added:
- Added
simStream
and streamSpeed
options for userBubble
to be consistent with botBubble
Fixed:
- Fixed an issue where users can quickly click on options or checkboxes in rapid succession resulting in multiple inputs
- Fixed an issue where simulating stream messages would ignore the
blockSpam
option
v1.3.0 (12-03-2024)
Added:
- Added
simStream
and streamSpeed
options within botBubble
to simulate streaming of messages
- Added
params.streamMessage
parameter that allows real-time streaming of messages (great for integration with LLMs)
Modified:
- The
isUser
field within Message
component has been replaced with sender
.
- Both
params.injectMessage
and newly added params.streamMessage
are now async functions (previously, params.injectMessage
was non-async)
Miscellaneous:
- Internally, logic for chat history, notifications and a few other minor areas have been updated to support stream messages
Note:
The documentation website has been updated to reflect all the latest information. A possible "breaking" change would be params.injectMessage
which is now async. Depending on your existing usage, there might not be a need to make any changes. However, if you are using multiple params.injectMessage
in quick succession, this could mean multiple messages are being sent at once without the use of await.
v1.2.0 (12-02-2024)
Fixed:
- Fixed chatbot window resizing on mobile devices (previously window is out of view on some devices/browsers)
- Fixed chatbot window orientation (previously chatbot would not re-orientate on phone rotation)
Note:
The above fixes are important for users who wish to properly support the chatbot on mobile devices. While there has been significantly more mobile view tests done for these fixes, it is near-impossible to exhaustively run through all devices/browsers. Should anyone still encounter issues with mobile view, please do not hesitate to reach out.
v1.1.0 (28-01-2024)
Added:
- Added support for enforcing & showing character count/limit via the following options:
chatInput.showCharacterCount
: false
chatInput.characterLimit
: -1
- Added support for styling the above character limit display via the following styles:
characterLimitStyle
characterLimitReachedStyle
Note:
The above additions have been updated on the documentation website for reference.
v1.0.6 (10-09-2023)
Fixed:
Miscellaneous:
- Disabled speech recognition on unsupported browsers (e.g. Opera)
v1.0.5 (31-08-2023)
Fixed:
- Fixed missing support for user defined async functions (important fix if you wish to make use of API calls and wait for completion)
v1.0.4 (13-08-2023)
Fixed:
- Fixed module export (imports by consumers should work properly for both cjs and mjs)
v1.0.3 (05-08-2023)
Added:
- Added
desktopEnabled
and mobileEnabled
options under the theme
section to allow developers to control chatbot visibility based on platform
Fixed:
- Fixed a bug with distorted layout for embedded chat windows on mobile
v1.0.2 (03-08-2023)
Fixed:
- Fixed missing export in package.json
v1.0.1 (03-08-2023)
Miscellaneous:
- Cleanup dist folder (halved the build size)
- Cleanup unused exports
- Cleanup documentation and configurations
v1.0.0 (02-08-2023)
Added: