mirror of
https://github.com/owncast/owncast.git
synced 2024-11-21 20:28:15 +03:00
Address chat modal button issues (#3042)
* don't display chat button or modal if isModal is true. dont display the show/hide chat option in the userdropedown for tablet sizes either. tweak chat button styles and make chat button bg the same as the chat component bg color. * only show chat button if online * fix(chat): chat should be available through 5min buffer period. Fixes #3044 * fix(test): update mobile test --------- Co-authored-by: Gabe Kangas <gabek@real-ity.com>
This commit is contained in:
parent
b6aee0eda9
commit
29041e6d76
4 changed files with 17 additions and 7 deletions
|
@ -29,6 +29,10 @@ filterTests(['mobile'], () => {
|
|||
cy.get('#chat-input').should('be.visible');
|
||||
});
|
||||
|
||||
it('Chat user menu should be visible', () => {
|
||||
cy.get('#chat-modal-user-menu').should('be.visible');
|
||||
});
|
||||
|
||||
it('Click on user menu', () => {
|
||||
cy.get('#chat-modal-user-menu').click();
|
||||
});
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
}
|
||||
|
||||
.chatToggle {
|
||||
@include screen(mobile) {
|
||||
@include screen(tablet) {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -110,6 +110,11 @@
|
|||
width: 100px;
|
||||
height: 40px;
|
||||
bottom: 40px;
|
||||
right: 10px;
|
||||
right: var(--content-padding);
|
||||
font-weight: 600;
|
||||
font-size: 1em;
|
||||
z-index: 99;
|
||||
background-color: var(--theme-color-components-chat-background);
|
||||
border-width: 0;
|
||||
box-shadow: 0px 1px 3px 1px rgb(0 0 0 / 20%);
|
||||
}
|
||||
|
|
|
@ -17,6 +17,7 @@ import {
|
|||
isOnlineSelector,
|
||||
isMobileAtom,
|
||||
serverStatusState,
|
||||
isChatAvailableSelector,
|
||||
} from '../../stores/ClientConfigStore';
|
||||
import { ClientConfig } from '../../../interfaces/client-config.model';
|
||||
|
||||
|
@ -97,6 +98,7 @@ export const Content: FC = () => {
|
|||
const [isMobile, setIsMobile] = useRecoilState<boolean | undefined>(isMobileAtom);
|
||||
const messages = useRecoilValue<ChatMessage[]>(chatMessagesAtom);
|
||||
const online = useRecoilValue<boolean>(isOnlineSelector);
|
||||
const isChatAvailable = useRecoilValue<boolean>(isChatAvailableSelector);
|
||||
|
||||
const { viewerCount, lastConnectTime, lastDisconnectTime, streamTitle } =
|
||||
useRecoilValue<ServerStatus>(serverStatusState);
|
||||
|
@ -180,7 +182,7 @@ export const Content: FC = () => {
|
|||
setSupportsBrowserNotifications(isPushNotificationSupported() && browserNotificationsEnabled);
|
||||
}, [browserNotificationsEnabled]);
|
||||
|
||||
const showChat = online && !chatDisabled && isChatVisible;
|
||||
const showChat = isChatAvailable && !chatDisabled && isChatVisible;
|
||||
|
||||
// accounts for sidebar width when online in desktop
|
||||
const dynamicPadding = showChat && !isMobile ? '320px' : '0px';
|
||||
|
@ -303,22 +305,21 @@ export const Content: FC = () => {
|
|||
handleClose={() => setShowFollowModal(false)}
|
||||
/>
|
||||
</Modal>
|
||||
{showChatModal && isChatVisible && (
|
||||
{isMobile && showChatModal && isChatVisible && (
|
||||
<ChatModal
|
||||
messages={messages}
|
||||
currentUser={currentUser}
|
||||
handleClose={() => setShowChatModal(false)}
|
||||
/>
|
||||
)}
|
||||
{isChatVisible && (
|
||||
{isMobile && isChatAvailable && (
|
||||
<Button
|
||||
id="mobile-chat-button"
|
||||
type="primary"
|
||||
onClick={() => setShowChatModal(true)}
|
||||
className={styles.floatingMobileChatModalButton}
|
||||
style={{ zIndex: 99 }}
|
||||
>
|
||||
Chat <MessageFilled style={{ transform: 'translateX(-1px)' }} />
|
||||
Chat <MessageFilled />
|
||||
</Button>
|
||||
)}
|
||||
</>
|
||||
|
|
Loading…
Reference in a new issue