diff --git a/dailyjs/shared/components/Aside/Aside.js b/dailyjs/shared/components/Aside/Aside.js index 1f717ef..669f32d 100644 --- a/dailyjs/shared/components/Aside/Aside.js +++ b/dailyjs/shared/components/Aside/Aside.js @@ -22,6 +22,8 @@ export const Aside = ({ onClose, children }) => ( .call-aside { background: white; position: relative; + flex-shrink: 0; + flex-grow: 0; width: ${ASIDE_WIDTH}px; height: 100vh; box-sizing: border-box; @@ -32,6 +34,9 @@ export const Aside = ({ onClose, children }) => ( .call-aside .inner { overflow-x: hidden; overflow-y: scroll; + height: 100%; + display: flex; + flex-flow: column wrap; } .call-aside .close { diff --git a/dailyjs/shared/components/Button/Button.js b/dailyjs/shared/components/Button/Button.js index d0c80f4..d705ef6 100644 --- a/dailyjs/shared/components/Button/Button.js +++ b/dailyjs/shared/components/Button/Button.js @@ -242,6 +242,19 @@ export const Button = forwardRef( background: ${hexa(theme.blue.light, 1)}; } + .button.transparent { + background: transparent; + color: var(--primary-default); + border: 0px; + } + .button.transparent:hover, + .button.transparent:focus, + .button.transparent:active { + border: 0px; + box-shadow: none; + color: var(--primary-dark); + } + .button.blur { background: ${hexa(theme.blue.default, 0.35)}; backdrop-filter: blur(10px); diff --git a/dailyjs/shared/components/Input/Input.js b/dailyjs/shared/components/Input/Input.js index b968731..06a8150 100644 --- a/dailyjs/shared/components/Input/Input.js +++ b/dailyjs/shared/components/Input/Input.js @@ -120,6 +120,12 @@ const InputContainer = ({ children, prefix, className }) => ( color: var(--text-mid); opacity: 1; } + + .transparent :global(input) { + background: transparent; + border: 0px; + box-shadow: none; + } `} ); diff --git a/dailyjs/text-chat/components/ChatAside/ChatAside.js b/dailyjs/text-chat/components/ChatAside/ChatAside.js index d0b91a5..347de26 100644 --- a/dailyjs/text-chat/components/ChatAside/ChatAside.js +++ b/dailyjs/text-chat/components/ChatAside/ChatAside.js @@ -1,5 +1,7 @@ -import React, { useEffect, useState } from 'react'; +import React, { useEffect, useRef, useState } from 'react'; import Aside from '@dailyjs/shared/components/Aside'; +import { Button } from '@dailyjs/shared/components/Button'; +import { TextInput } from '@dailyjs/shared/components/Input'; import { useUIState } from '@dailyjs/shared/contexts/UIStateProvider'; import { useChat } from '../../contexts/ChatProvider'; @@ -9,6 +11,7 @@ export const ChatAside = () => { const { showAside, setShowAside } = useUIState(); const { sendMessage, chatHistory, setHasNewMessages } = useChat(); const [newMessage, setNewMessage] = useState(''); + const chatWindowRef = useRef(); useEffect(() => { // Clear out any new message otifications if we're showing the chat screen @@ -17,33 +20,101 @@ export const ChatAside = () => { } }, [showAside, chatHistory.length, setHasNewMessages]); + useEffect(() => { + if (chatWindowRef.current) { + chatWindowRef.current.scrollTop = chatWindowRef.current.scrollHeight; + } + }, [chatHistory?.length]); + if (!showAside || showAside !== CHAT_ASIDE) { return null; } return ( ); }; diff --git a/dailyjs/text-chat/contexts/ChatProvider.js b/dailyjs/text-chat/contexts/ChatProvider.js index a3ecd34..86d469d 100644 --- a/dailyjs/text-chat/contexts/ChatProvider.js +++ b/dailyjs/text-chat/contexts/ChatProvider.js @@ -53,7 +53,7 @@ export const ChatProvider = ({ children }) => { // Update local chat history return setChatHistory((oldState) => [ ...oldState, - { sender, message, id: nanoid() }, + { sender, message, id: nanoid(), isLocal: true }, ]); }, [callObject] diff --git a/dailyjs/text-chat/pages/api b/dailyjs/text-chat/pages/api new file mode 120000 index 0000000..85d0d85 --- /dev/null +++ b/dailyjs/text-chat/pages/api @@ -0,0 +1 @@ +basic-call/pages/api \ No newline at end of file