diff --git a/dailyjs/shared/components/Aside/PeopleAside.js b/dailyjs/shared/components/Aside/PeopleAside.js
index 7c6d172..88ee50f 100644
--- a/dailyjs/shared/components/Aside/PeopleAside.js
+++ b/dailyjs/shared/components/Aside/PeopleAside.js
@@ -98,7 +98,7 @@ export const PeopleAside = () => {
const { showAside, setShowAside } = useUIState();
const { allParticipants, isOwner } = useParticipants();
- if (!showAside && showAside !== PEOPLE_ASIDE) {
+ if (!showAside || showAside !== PEOPLE_ASIDE) {
return null;
}
diff --git a/dailyjs/shared/components/Tray/BasicTray.js b/dailyjs/shared/components/Tray/BasicTray.js
index 05193fd..45326ae 100644
--- a/dailyjs/shared/components/Tray/BasicTray.js
+++ b/dailyjs/shared/components/Tray/BasicTray.js
@@ -14,8 +14,7 @@ import { Tray, TrayButton } from './Tray';
export const BasicTray = () => {
const { callObject, leave } = useCallState();
- const { customTrayComponent, setShowDeviceModal, setShowAside } =
- useUIState();
+ const { customTrayComponent, setShowDeviceModal, toggleAside } = useUIState();
const { isCamMuted, isMicMuted } = useMediaDevices();
const toggleCamera = (newState) => {
@@ -48,10 +47,7 @@ export const BasicTray = () => {
- setShowAside((p) => (p ? null : PEOPLE_ASIDE))}
- >
+ toggleAside(PEOPLE_ASIDE)}>
diff --git a/dailyjs/shared/contexts/UIStateProvider.js b/dailyjs/shared/contexts/UIStateProvider.js
index be6676e..a9458cb 100644
--- a/dailyjs/shared/contexts/UIStateProvider.js
+++ b/dailyjs/shared/contexts/UIStateProvider.js
@@ -1,4 +1,4 @@
-import React, { createContext, useContext, useState } from 'react';
+import React, { useCallback, createContext, useContext, useState } from 'react';
import PropTypes from 'prop-types';
export const UIStateContext = createContext();
@@ -7,6 +7,10 @@ export const UIStateProvider = ({ asides, customTrayComponent, children }) => {
const [showDeviceModal, setShowDeviceModal] = useState(false);
const [showAside, setShowAside] = useState();
+ const toggleAside = useCallback((newAside) => {
+ setShowAside((p) => (p === newAside ? null : newAside));
+ }, []);
+
return (
{
customTrayComponent,
showDeviceModal,
setShowDeviceModal,
+ toggleAside,
showAside,
setShowAside,
}}
diff --git a/dailyjs/text-chat/components/ChatAside/ChatAside.js b/dailyjs/text-chat/components/ChatAside/ChatAside.js
new file mode 100644
index 0000000..6b33cb1
--- /dev/null
+++ b/dailyjs/text-chat/components/ChatAside/ChatAside.js
@@ -0,0 +1,19 @@
+import React from 'react';
+import Aside from '@dailyjs/shared/components/Aside';
+import { useUIState } from '@dailyjs/shared/contexts/UIStateProvider';
+
+export const CHAT_ASIDE = 'chat';
+
+export const ChatAside = () => {
+ const { showAside, setShowAside } = useUIState();
+
+ if (!showAside || showAside !== CHAT_ASIDE) {
+ return null;
+ }
+
+ return (
+
+ );
+};
+
+export default ChatAside;
diff --git a/dailyjs/text-chat/components/ChatAside/index.js b/dailyjs/text-chat/components/ChatAside/index.js
new file mode 100644
index 0000000..8e15e50
--- /dev/null
+++ b/dailyjs/text-chat/components/ChatAside/index.js
@@ -0,0 +1 @@
+export { ChatAside as default } from './ChatAside';
diff --git a/dailyjs/text-chat/components/Tray/Tray.js b/dailyjs/text-chat/components/Tray/Tray.js
index 62a7aa3..1af9c31 100644
--- a/dailyjs/text-chat/components/Tray/Tray.js
+++ b/dailyjs/text-chat/components/Tray/Tray.js
@@ -1,14 +1,20 @@
import React from 'react';
import { TrayButton } from '@dailyjs/shared/components/Tray';
+import { useUIState } from '@dailyjs/shared/contexts/UIStateProvider';
import { ReactComponent as IconChat } from '@dailyjs/shared/icons/chat-md.svg';
+import { CHAT_ASIDE } from '../ChatAside/ChatAside';
-export const Tray = () => (
- <>
-
-
-
- >
-);
+export const Tray = () => {
+ const { toggleAside } = useUIState();
+
+ return (
+ <>
+ toggleAside(CHAT_ASIDE)}>
+
+
+ >
+ );
+};
export default Tray;
diff --git a/dailyjs/text-chat/pages/_app.js b/dailyjs/text-chat/pages/_app.js
index 907f02e..ce35664 100644
--- a/dailyjs/text-chat/pages/_app.js
+++ b/dailyjs/text-chat/pages/_app.js
@@ -1,9 +1,10 @@
import React from 'react';
import App from '@dailyjs/basic-call/pages/_app';
+import ChatAside from '../components/ChatAside/ChatAside';
import Tray from '../components/Tray';
-App.asides = [];
+App.asides = [ChatAside];
App.customTrayComponent = ;
export default App;