import React from 'react'; import { useSelector } from 'react-redux'; import styled from 'styled-components'; import { getSelectedHasMessages, hasSelectedConversationIncomingMessages, } from '../../state/selectors/conversations'; import { getSelectedCanWrite, useSelectedConversationKey, useSelectedHasDisabledBlindedMsgRequests, useSelectedNicknameOrProfileNameOrShortenedPubkey, useSelectedisNoteToSelf, } from '../../state/selectors/selectedConversation'; import { LocalizerKeys } from '../../types/LocalizerKeys'; import { SessionHtmlRenderer } from '../basic/SessionHTMLRenderer'; import { useIsIncomingRequest } from '../../hooks/useParamSelector'; const Container = styled.div` display: flex; flex-direction: row; justify-content: center; padding: var(--margins-lg); background-color: var(--background-secondary-color); `; const TextInner = styled.div` color: var(--text-secondary-color); text-align: center; max-width: 390px; `; /** * This component is used to display a warning when the user is responding to a message request. * */ export const ConversationRequestExplanation = () => { const selectedConversation = useSelectedConversationKey(); const isIncomingMessageRequest = useIsIncomingRequest(selectedConversation); const showMsgRequestUI = selectedConversation && isIncomingMessageRequest; const hasIncomingMessages = useSelector(hasSelectedConversationIncomingMessages); if (!showMsgRequestUI || !hasIncomingMessages) { return null; } return ( {window.i18n('respondingToRequestWarning')} ); }; /** * This component is used to display a warning when the user is looking at an empty conversation. */ export const NoMessageInConversation = () => { const selectedConversation = useSelectedConversationKey(); const hasMessage = useSelector(getSelectedHasMessages); const isMe = useSelectedisNoteToSelf(); const canWrite = useSelector(getSelectedCanWrite); const privateBlindedAndBlockingMsgReqs = useSelectedHasDisabledBlindedMsgRequests(); // TODOLATER use this selector accross the whole application (left pane excluded) const nameToRender = useSelectedNicknameOrProfileNameOrShortenedPubkey(); if (!selectedConversation || hasMessage) { return null; } let localizedKey: LocalizerKeys = 'noMessagesInEverythingElse'; if (!canWrite) { if (privateBlindedAndBlockingMsgReqs) { localizedKey = 'noMessagesInBlindedDisabledMsgRequests'; } else { localizedKey = 'noMessagesInReadOnly'; } } else if (isMe) { localizedKey = 'noMessagesInNoteToSelf'; } return ( ); };