make some components lazy-loaded
This commit is contained in:
@@ -11,7 +11,7 @@ import ContactsView from './contacts-view.jsx';
|
|||||||
const CreateAccountView = React.lazy(_ => import('./create-account-view.jsx'));
|
const CreateAccountView = React.lazy(_ => import('./create-account-view.jsx'));
|
||||||
import AccAppearanceView from './acc-appearance-view.jsx';
|
import AccAppearanceView from './acc-appearance-view.jsx';
|
||||||
import AccNotificationsView from './acc-notifications-view.jsx';
|
import AccNotificationsView from './acc-notifications-view.jsx';
|
||||||
import AccSecurityView from './acc-security-view.jsx';
|
const AccSecurityView = React.lazy(_ => import('./acc-security-view.jsx'));
|
||||||
import AccSupportView from './acc-support-view.jsx';
|
import AccSupportView from './acc-support-view.jsx';
|
||||||
import LoginView from './login-view.jsx';
|
import LoginView from './login-view.jsx';
|
||||||
import NewTopicView from './new-topic-view.jsx';
|
import NewTopicView from './new-topic-view.jsx';
|
||||||
@@ -211,27 +211,30 @@ class SidepanelView extends React.PureComponent {
|
|||||||
colorSchema={this.props.colorSchema}
|
colorSchema={this.props.colorSchema}
|
||||||
textSize={this.props.textSize}
|
textSize={this.props.textSize}
|
||||||
onChangeColorSchema={this.props.onChangeColorSchema}
|
onChangeColorSchema={this.props.onChangeColorSchema}
|
||||||
onChangeTextSize={this.props.onChangeTextSize} /> :
|
onTextSizeChanged={this.props.onTextSizeChanged} /> :
|
||||||
|
|
||||||
view === 'notif' ?
|
view === 'notif' ?
|
||||||
<AccNotificationsView
|
<AccNotificationsView
|
||||||
messageSounds={this.props.messageSounds}
|
messageSounds={this.props.messageSounds}
|
||||||
desktopAlerts={this.props.desktopAlerts}
|
desktopAlerts={this.props.desktopAlerts}
|
||||||
desktopAlertsEnabled={this.props.desktopAlertsEnabled}
|
desktopAlertsEnabled={this.props.desktopAlertsEnabled}
|
||||||
incognitoMode={this.props.incognitoMode}
|
|
||||||
onTogglePushNotifications={this.props.onTogglePushNotifications}
|
onTogglePushNotifications={this.props.onTogglePushNotifications}
|
||||||
onToggleMessageSounds={this.props.onToggleMessageSounds}
|
onToggleMessageSounds={this.props.onToggleMessageSounds} /> :
|
||||||
onToggleIncognitoMode={this.props.onToggleIncognitoMode} /> :
|
|
||||||
|
|
||||||
view === 'security' ?
|
view === 'security' ?
|
||||||
<AccSecurityView
|
<Suspense fallback={<div className="panel-form-row"><FormattedMessage id="loading_note"
|
||||||
tinode={this.props.tinode}
|
defaultMessage="Loading..." description="Message shown when component is loading"/></div>}>
|
||||||
onUpdateAccountDesc={this.props.onUpdateAccountDesc}
|
<AccSecurityView
|
||||||
onUpdatePassword={this.props.onUpdatePassword}
|
tinode={this.props.tinode}
|
||||||
onLogout={this.props.onLogout}
|
incognitoMode={this.props.incognitoMode}
|
||||||
onDeleteAccount={this.props.onDeleteAccount}
|
onUpdateAccountDesc={this.props.onUpdateAccountDesc}
|
||||||
onShowAlert={this.props.onShowAlert}
|
onUpdatePassword={this.props.onUpdatePassword}
|
||||||
onShowBlocked={this.props.onShowBlocked} /> :
|
onLogout={this.props.onLogout}
|
||||||
|
onDeleteAccount={this.props.onDeleteAccount}
|
||||||
|
onShowAlert={this.props.onShowAlert}
|
||||||
|
onShowBlocked={this.props.onShowBlocked}
|
||||||
|
onToggleIncognitoMode={this.props.onToggleIncognitoMode} />
|
||||||
|
</Suspense> :
|
||||||
|
|
||||||
view === 'support' ?
|
view === 'support' ?
|
||||||
<AccSupportView
|
<AccSupportView
|
||||||
|
|||||||
+39
-34
@@ -14,11 +14,11 @@ import ForwardDialog from '../widgets/forward-dialog.jsx';
|
|||||||
import CallIncoming from '../widgets/call-incoming.jsx';
|
import CallIncoming from '../widgets/call-incoming.jsx';
|
||||||
const PhoneCountrySelector = React.lazy(_ => import('../widgets/phone-country-selector.jsx'));
|
const PhoneCountrySelector = React.lazy(_ => import('../widgets/phone-country-selector.jsx'));
|
||||||
|
|
||||||
import InfoView from './info-view.jsx';
|
const InfoView = React.lazy(_ => import('./info-view.jsx'));
|
||||||
import MessagesView from './messages-view.jsx';
|
import MessagesView from './messages-view.jsx';
|
||||||
import SidepanelView from './sidepanel-view.jsx';
|
import SidepanelView from './sidepanel-view.jsx';
|
||||||
|
|
||||||
import { API_KEY, APP_NAME, DEFAULT_COLOR_SCHEME, DEFAULT_P2P_ACCESS_MODE, FORWARDED_PREVIEW_LENGTH,
|
import { API_KEY, APP_NAME, DEFAULT_COLOR_SCHEME, DEFAULT_P2P_ACCESS_MODE, DEFAULT_TEXT_SIZE, FORWARDED_PREVIEW_LENGTH,
|
||||||
LOGGING_ENABLED, MEDIA_BREAKPOINT, WAKE_UP_TICK, WAKE_UP_TIMEOUT } from '../config.js';
|
LOGGING_ENABLED, MEDIA_BREAKPOINT, WAKE_UP_TICK, WAKE_UP_TIMEOUT } from '../config.js';
|
||||||
import { CALL_STATE_NONE, CALL_STATE_OUTGOING_INITATED,
|
import { CALL_STATE_NONE, CALL_STATE_OUTGOING_INITATED,
|
||||||
CALL_STATE_INCOMING_RECEIVED, CALL_STATE_IN_PROGRESS,
|
CALL_STATE_INCOMING_RECEIVED, CALL_STATE_IN_PROGRESS,
|
||||||
@@ -216,7 +216,7 @@ class TinodeWeb extends React.Component {
|
|||||||
messageSounds: !settings.messageSoundsOff,
|
messageSounds: !settings.messageSoundsOff,
|
||||||
incognitoMode: false,
|
incognitoMode: false,
|
||||||
colorSchema: settings.colorSchema || DEFAULT_COLOR_SCHEME, // default: system default
|
colorSchema: settings.colorSchema || DEFAULT_COLOR_SCHEME, // default: system default
|
||||||
textSize: settings.textSize || 10, // default size: 10pt
|
textSize: settings.textSize || DEFAULT_TEXT_SIZE, // default size: 10pt
|
||||||
// Persistent request to enable alerts.
|
// Persistent request to enable alerts.
|
||||||
desktopAlerts: persist && !!settings.desktopAlerts,
|
desktopAlerts: persist && !!settings.desktopAlerts,
|
||||||
// Enable / disable checkbox.
|
// Enable / disable checkbox.
|
||||||
@@ -298,6 +298,7 @@ class TinodeWeb extends React.Component {
|
|||||||
window.addEventListener('hashchange', this.handleHashRoute);
|
window.addEventListener('hashchange', this.handleHashRoute);
|
||||||
|
|
||||||
document.documentElement.style.colorScheme = this.state.colorSchema;
|
document.documentElement.style.colorScheme = this.state.colorSchema;
|
||||||
|
document.documentElement.style.setProperty('--message-text-size', `${this.state.textSize}pt`);
|
||||||
|
|
||||||
// Process background notifications from the service worker.
|
// Process background notifications from the service worker.
|
||||||
if (typeof BroadcastChannel == 'function') {
|
if (typeof BroadcastChannel == 'function') {
|
||||||
@@ -1219,7 +1220,7 @@ class TinodeWeb extends React.Component {
|
|||||||
handleChangeTextSize(size) {
|
handleChangeTextSize(size) {
|
||||||
this.setState({textSize: size | 0});
|
this.setState({textSize: size | 0});
|
||||||
LocalStorageUtil.updateObject('settings', {textSize: size});
|
LocalStorageUtil.updateObject('settings', {textSize: size});
|
||||||
document.documentElement.style.fontSize = `${size}pt`;
|
document.documentElement.style.setProperty('--message-text-size', `${size}pt`);
|
||||||
}
|
}
|
||||||
|
|
||||||
handleUpdateAccountTagsRequest(_, tags) {
|
handleUpdateAccountTagsRequest(_, tags) {
|
||||||
@@ -1490,6 +1491,7 @@ class TinodeWeb extends React.Component {
|
|||||||
|
|
||||||
// Reset color scheme.
|
// Reset color scheme.
|
||||||
document.documentElement.style.colorScheme = DEFAULT_COLOR_SCHEME;
|
document.documentElement.style.colorScheme = DEFAULT_COLOR_SCHEME;
|
||||||
|
document.documentElement.style.setProperty('--message-text-size', `${DEFAULT_TEXT_SIZE}pt`);
|
||||||
|
|
||||||
clearInterval(this.reconnectCountdown);
|
clearInterval(this.reconnectCountdown);
|
||||||
|
|
||||||
@@ -2097,7 +2099,7 @@ class TinodeWeb extends React.Component {
|
|||||||
onToggleMessageSounds={this.handleToggleMessageSounds}
|
onToggleMessageSounds={this.handleToggleMessageSounds}
|
||||||
onToggleIncognitoMode={this.handleToggleIncognitoMode}
|
onToggleIncognitoMode={this.handleToggleIncognitoMode}
|
||||||
onChangeColorSchema={this.handleChangeColorSchema}
|
onChangeColorSchema={this.handleChangeColorSchema}
|
||||||
onChangeTextSize={this.handleChangeTextSize}
|
onTextSizeChanged={this.handleChangeTextSize}
|
||||||
onCredAdd={this.handleCredAdd}
|
onCredAdd={this.handleCredAdd}
|
||||||
onCredDelete={this.handleCredDelete}
|
onCredDelete={this.handleCredDelete}
|
||||||
onCredConfirm={this.handleCredConfirm}
|
onCredConfirm={this.handleCredConfirm}
|
||||||
@@ -2174,38 +2176,41 @@ class TinodeWeb extends React.Component {
|
|||||||
: null}
|
: null}
|
||||||
|
|
||||||
{this.state.infoPanel ?
|
{this.state.infoPanel ?
|
||||||
<InfoView
|
<Suspense fallback={<div><FormattedMessage id="loading_note" defaultMessage="Loading..."
|
||||||
tinode={this.tinode}
|
description="Message shown when component is loading"/></div>}>
|
||||||
connected={this.state.connected}
|
<InfoView
|
||||||
displayMobile={this.state.displayMobile}
|
tinode={this.tinode}
|
||||||
topic={this.state.topicSelected}
|
connected={this.state.connected}
|
||||||
searchableContacts={this.state.searchableContacts}
|
displayMobile={this.state.displayMobile}
|
||||||
myUserId={this.state.myUserId}
|
topic={this.state.topicSelected}
|
||||||
panel={this.state.infoPanel}
|
searchableContacts={this.state.searchableContacts}
|
||||||
|
myUserId={this.state.myUserId}
|
||||||
|
panel={this.state.infoPanel}
|
||||||
|
|
||||||
errorText={this.state.errorText}
|
errorText={this.state.errorText}
|
||||||
errorLevel={this.state.errorLevel}
|
errorLevel={this.state.errorLevel}
|
||||||
errorAction={this.state.errorAction}
|
errorAction={this.state.errorAction}
|
||||||
errorActionText={this.state.errorActionText}
|
errorActionText={this.state.errorActionText}
|
||||||
|
|
||||||
onNavigate={this.infoNavigator}
|
onNavigate={this.infoNavigator}
|
||||||
onTopicDescUpdateRequest={this.handleTopicUpdateRequest}
|
onTopicDescUpdateRequest={this.handleTopicUpdateRequest}
|
||||||
onShowAlert={this.handleShowAlert}
|
onShowAlert={this.handleShowAlert}
|
||||||
onChangePermissions={this.handleChangePermissions}
|
onChangePermissions={this.handleChangePermissions}
|
||||||
onMemberUpdateRequest={this.handleMemberUpdateRequest}
|
onMemberUpdateRequest={this.handleMemberUpdateRequest}
|
||||||
onDeleteTopic={this.handleDeleteTopicRequest}
|
onDeleteTopic={this.handleDeleteTopicRequest}
|
||||||
onDeleteMessages={this.handleDeleteMessagesRequest}
|
onDeleteMessages={this.handleDeleteMessagesRequest}
|
||||||
onLeaveTopic={this.handleLeaveUnsubRequest}
|
onLeaveTopic={this.handleLeaveUnsubRequest}
|
||||||
onBlockTopic={this.handleBlockTopicRequest}
|
onBlockTopic={this.handleBlockTopicRequest}
|
||||||
onReportTopic={this.handleReportTopic}
|
onReportTopic={this.handleReportTopic}
|
||||||
onAddMember={this.handleManageGroupMembers}
|
onAddMember={this.handleManageGroupMembers}
|
||||||
onTopicTagsUpdateRequest={this.handleTagsUpdateRequest}
|
onTopicTagsUpdateRequest={this.handleTagsUpdateRequest}
|
||||||
onTopicUnArchive={this.handleUnarchive}
|
onTopicUnArchive={this.handleUnarchive}
|
||||||
onInitFind={this.tnInitFind}
|
onInitFind={this.tnInitFind}
|
||||||
onError={this.handleError}
|
onError={this.handleError}
|
||||||
|
|
||||||
showContextMenu={this.handleShowContextMenu}
|
showContextMenu={this.handleShowContextMenu}
|
||||||
/>
|
/>
|
||||||
|
</Suspense>
|
||||||
:
|
:
|
||||||
null
|
null
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user