Changeset View
Changeset View
Standalone View
Standalone View
web/app.react.js
Show First 20 Lines • Show All 65 Lines • ▼ Show 20 Lines | |||||
import FocusHandler from './redux/focus-handler.react.js'; | import FocusHandler from './redux/focus-handler.react.js'; | ||||
import { KeyserverReachabilityHandler } from './redux/keyserver-reachability-handler.js'; | import { KeyserverReachabilityHandler } from './redux/keyserver-reachability-handler.js'; | ||||
import { persistConfig } from './redux/persist.js'; | import { persistConfig } from './redux/persist.js'; | ||||
import PolicyAcknowledgmentHandler from './redux/policy-acknowledgment-handler.js'; | import PolicyAcknowledgmentHandler from './redux/policy-acknowledgment-handler.js'; | ||||
import { useSelector } from './redux/redux-utils.js'; | import { useSelector } from './redux/redux-utils.js'; | ||||
import VisibilityHandler from './redux/visibility-handler.react.js'; | import VisibilityHandler from './redux/visibility-handler.react.js'; | ||||
import history from './router-history.js'; | import history from './router-history.js'; | ||||
import { MessageSearchStateProvider } from './search/message-search-state-provider.react.js'; | import { MessageSearchStateProvider } from './search/message-search-state-provider.react.js'; | ||||
import { createTunnelbrokerInitMessage } from './selectors/tunnelbroker-selectors.js'; | |||||
import AccountSettings from './settings/account-settings.react.js'; | import AccountSettings from './settings/account-settings.react.js'; | ||||
import DangerZone from './settings/danger-zone.react.js'; | import DangerZone from './settings/danger-zone.react.js'; | ||||
import KeyserverSelectionList from './settings/keyserver-selection-list.react.js'; | import KeyserverSelectionList from './settings/keyserver-selection-list.react.js'; | ||||
import { getCommSharedWorker } from './shared-worker/shared-worker-provider.js'; | import { getCommSharedWorker } from './shared-worker/shared-worker-provider.js'; | ||||
import CommunityPicker from './sidebar/community-picker.react.js'; | import CommunityPicker from './sidebar/community-picker.react.js'; | ||||
import Splash from './splash/splash.react.js'; | import Splash from './splash/splash.react.js'; | ||||
import './typography.css'; | import './typography.css'; | ||||
import css from './style.css'; | import css from './style.css'; | ||||
▲ Show 20 Lines • Show All 432 Lines • ▼ Show 20 Lines | function ConnectedApp(props) { | ||||
const modals = React.useMemo( | const modals = React.useMemo( | ||||
() => | () => | ||||
modalContext.modals.map(([modal, key]) => ( | modalContext.modals.map(([modal, key]) => ( | ||||
<React.Fragment key={key}>{modal}</React.Fragment> | <React.Fragment key={key}>{modal}</React.Fragment> | ||||
)), | )), | ||||
[modalContext.modals], | [modalContext.modals], | ||||
); | ); | ||||
const tunnelbrokerInitMessage = useSelector(createTunnelbrokerInitMessage); | |||||
const { lockStatus, releaseLockOrAbortRequest } = useWebLock( | const { lockStatus, releaseLockOrAbortRequest } = useWebLock( | ||||
TUNNELBROKER_LOCK_NAME, | TUNNELBROKER_LOCK_NAME, | ||||
); | ); | ||||
const secondaryTunnelbrokerConnection: SecondaryTunnelbrokerConnection = | const secondaryTunnelbrokerConnection: SecondaryTunnelbrokerConnection = | ||||
useOtherTabsTunnelbrokerConnection(); | useOtherTabsTunnelbrokerConnection(); | ||||
return ( | return ( | ||||
<AppThemeWrapper> | <AppThemeWrapper> | ||||
<TunnelbrokerProvider | <TunnelbrokerProvider | ||||
initMessage={tunnelbrokerInitMessage} | |||||
shouldBeClosed={lockStatus !== 'acquired'} | shouldBeClosed={lockStatus !== 'acquired'} | ||||
onClose={releaseLockOrAbortRequest} | onClose={releaseLockOrAbortRequest} | ||||
secondaryTunnelbrokerConnection={secondaryTunnelbrokerConnection} | secondaryTunnelbrokerConnection={secondaryTunnelbrokerConnection} | ||||
> | > | ||||
<IdentitySearchProvider> | <IdentitySearchProvider> | ||||
<App | <App | ||||
{...props} | {...props} | ||||
navInfo={navInfo} | navInfo={navInfo} | ||||
Show All 22 Lines |