diff --git a/packages/pl-fe/src/contexts/chat-context.tsx b/packages/pl-fe/src/contexts/chat-context.tsx index ad623593e..838eefaf3 100644 --- a/packages/pl-fe/src/contexts/chat-context.tsx +++ b/packages/pl-fe/src/contexts/chat-context.tsx @@ -16,7 +16,8 @@ enum ChatWidgetScreens { INBOX = 'INBOX', SEARCH = 'SEARCH', CHAT = 'CHAT', - CHAT_SETTINGS = 'CHAT_SETTINGS' + CHAT_SETTINGS = 'CHAT_SETTINGS', + SHOUTBOX = 'SHOUTBOX', } interface IChatProvider { diff --git a/packages/pl-fe/src/features/chats/components/chat-pane/chat-pane.tsx b/packages/pl-fe/src/features/chats/components/chat-pane/chat-pane.tsx index d8a69e912..e1ac12487 100644 --- a/packages/pl-fe/src/features/chats/components/chat-pane/chat-pane.tsx +++ b/packages/pl-fe/src/features/chats/components/chat-pane/chat-pane.tsx @@ -12,6 +12,7 @@ import ChatSearch from '../chat-search/chat-search'; import ChatPaneHeader from '../chat-widget/chat-pane-header'; import ChatWindow from '../chat-widget/chat-window'; import ChatSearchHeader from '../chat-widget/headers/chat-search-header'; +import ShoutboxWindow from '../chat-widget/shoutbox-window'; import { Pane } from '../ui/pane'; import Blankslate from './blankslate'; @@ -27,7 +28,7 @@ const ChatPane = () => { const handleClickChat = (nextChat: Chat | 'shoutbox') => { if (nextChat === 'shoutbox') { - // changeScreen(ChatWidgetScreens.SHOUTBOX); + changeScreen(ChatWidgetScreens.SHOUTBOX); } else { changeScreen(ChatWidgetScreens.CHAT, nextChat.id); } @@ -60,6 +61,15 @@ const ChatPane = () => { ); } + // Shoutbox + if (screen === ChatWidgetScreens.SHOUTBOX) { + return ( + + + + ); + } + if (screen === ChatWidgetScreens.SEARCH) { return ( diff --git a/packages/pl-fe/src/features/chats/components/chat-widget/shoutbox-window.tsx b/packages/pl-fe/src/features/chats/components/chat-widget/shoutbox-window.tsx new file mode 100644 index 000000000..07e555b66 --- /dev/null +++ b/packages/pl-fe/src/features/chats/components/chat-widget/shoutbox-window.tsx @@ -0,0 +1,65 @@ +import React from 'react'; +import { FormattedMessage } from 'react-intl'; + +import Avatar from 'pl-fe/components/ui/avatar'; +import HStack from 'pl-fe/components/ui/hstack'; +import Icon from 'pl-fe/components/ui/icon'; +import Stack from 'pl-fe/components/ui/stack'; +import Text from 'pl-fe/components/ui/text'; +import { ChatWidgetScreens, useChatContext } from 'pl-fe/contexts/chat-context'; +import { usePlFeConfig } from 'pl-fe/hooks/use-pl-fe-config'; + +import Shoutbox from '../shoutbox'; + +import ChatPaneHeader from './chat-pane-header'; + +const ShoutboxWindow = () => { + const { changeScreen, isOpen, toggleChatPane } = useChatContext(); + const { logo } = usePlFeConfig(); + + const closeChat = () => { + changeScreen(ChatWidgetScreens.INBOX); + }; + + return ( + <> + + {isOpen && ( + + )} + + + {isOpen && ( + + )} + + +
+ + + +
+
+
+ + } + isToggleable={!isOpen} + isOpen={isOpen} + onToggle={toggleChatPane} + /> + + + + + + ); +}; + +export { ShoutboxWindow as default };