2023-01-02 21:34:41 +00:00
|
|
|
// Copyright 2022 Signal Messenger, LLC
|
|
|
|
// SPDX-License-Identifier: AGPL-3.0-only
|
|
|
|
|
|
|
|
import React from 'react';
|
|
|
|
import { useSelector } from 'react-redux';
|
|
|
|
import type { AppStateType } from '../ducks/app';
|
|
|
|
import type { ConversationsStateType } from '../ducks/conversations';
|
|
|
|
import type { StateType } from '../reducer';
|
|
|
|
import { Inbox } from '../../components/Inbox';
|
|
|
|
import { getIntl } from '../selectors/user';
|
|
|
|
import { SmartConversationView } from './ConversationView';
|
|
|
|
import { SmartCustomizingPreferredReactionsModal } from './CustomizingPreferredReactionsModal';
|
|
|
|
import { SmartLeftPane } from './LeftPane';
|
|
|
|
import { useConversationsActions } from '../ducks/conversations';
|
|
|
|
import { useGlobalModalActions } from '../ducks/globalModals';
|
|
|
|
import { getIsCustomizingPreferredReactions } from '../selectors/preferredReactions';
|
2023-03-20 18:03:21 +00:00
|
|
|
import { SmartMiniPlayer } from './MiniPlayer';
|
2023-01-02 21:34:41 +00:00
|
|
|
|
|
|
|
function renderConversationView() {
|
|
|
|
return <SmartConversationView />;
|
|
|
|
}
|
|
|
|
|
|
|
|
function renderCustomizingPreferredReactionsModal() {
|
|
|
|
return <SmartCustomizingPreferredReactionsModal />;
|
|
|
|
}
|
|
|
|
|
2023-03-20 18:03:21 +00:00
|
|
|
function renderMiniPlayer(options: { shouldFlow: boolean }) {
|
|
|
|
return <SmartMiniPlayer {...options} />;
|
|
|
|
}
|
|
|
|
|
2023-01-02 21:34:41 +00:00
|
|
|
function renderLeftPane() {
|
|
|
|
return <SmartLeftPane />;
|
|
|
|
}
|
|
|
|
|
|
|
|
export function SmartInbox(): JSX.Element {
|
|
|
|
const i18n = useSelector(getIntl);
|
|
|
|
const isCustomizingPreferredReactions = useSelector(
|
|
|
|
getIsCustomizingPreferredReactions
|
|
|
|
);
|
|
|
|
const { hasInitialLoadCompleted } = useSelector<StateType, AppStateType>(
|
|
|
|
state => state.app
|
|
|
|
);
|
|
|
|
const { selectedConversationId, selectedMessage, selectedMessageSource } =
|
|
|
|
useSelector<StateType, ConversationsStateType>(
|
|
|
|
state => state.conversations
|
|
|
|
);
|
|
|
|
const {
|
|
|
|
onConversationClosed,
|
|
|
|
onConversationOpened,
|
|
|
|
scrollToMessage,
|
|
|
|
showConversation,
|
|
|
|
} = useConversationsActions();
|
|
|
|
const { showWhatsNewModal } = useGlobalModalActions();
|
|
|
|
|
|
|
|
return (
|
|
|
|
<Inbox
|
|
|
|
hasInitialLoadCompleted={hasInitialLoadCompleted}
|
|
|
|
i18n={i18n}
|
|
|
|
isCustomizingPreferredReactions={isCustomizingPreferredReactions}
|
|
|
|
onConversationClosed={onConversationClosed}
|
|
|
|
onConversationOpened={onConversationOpened}
|
|
|
|
renderConversationView={renderConversationView}
|
|
|
|
renderCustomizingPreferredReactionsModal={
|
|
|
|
renderCustomizingPreferredReactionsModal
|
|
|
|
}
|
|
|
|
renderLeftPane={renderLeftPane}
|
2023-03-20 18:03:21 +00:00
|
|
|
renderMiniPlayer={renderMiniPlayer}
|
2023-01-02 21:34:41 +00:00
|
|
|
scrollToMessage={scrollToMessage}
|
|
|
|
selectedConversationId={selectedConversationId}
|
|
|
|
selectedMessage={selectedMessage}
|
|
|
|
selectedMessageSource={selectedMessageSource}
|
|
|
|
showConversation={showConversation}
|
|
|
|
showWhatsNewModal={showWhatsNewModal}
|
|
|
|
/>
|
|
|
|
);
|
|
|
|
}
|