Currently, events that trigger a chat initialization would simply duplicate the chat panel every time those events are triggered.
I think the Chat Reconnects section of the docs might help you here. If you set the chat api to reconnect and then try to create a new chat, it will reconnect to the existing chat, if there is one.