Fix join group modal
This commit is contained in:
parent
88a2f6f92e
commit
ecb19d5a10
9 changed files with 110 additions and 61 deletions
|
@ -70,6 +70,26 @@ export const FunEmojiLocalizationProvider = memo(
|
|||
}
|
||||
);
|
||||
|
||||
export type FunEmptyEmojiLocalizationProviderProps = Readonly<{
|
||||
children: ReactNode;
|
||||
}>;
|
||||
|
||||
export function FunDefaultEnglishEmojiLocalizationProvider(
|
||||
props: FunEmptyEmojiLocalizationProviderProps
|
||||
): JSX.Element {
|
||||
const context = useMemo(() => {
|
||||
return {
|
||||
emojiSearchIndex: getEmojiDefaultEnglishSearchIndex(),
|
||||
emojiLocalizerIndex: getEmojiDefaultEnglishLocalizerIndex(),
|
||||
};
|
||||
}, []);
|
||||
return (
|
||||
<FunEmojiLocalizationContext.Provider value={context}>
|
||||
{props.children}
|
||||
</FunEmojiLocalizationContext.Provider>
|
||||
);
|
||||
}
|
||||
|
||||
function useLocaleEmojiList(i18n: LocalizerType): LocaleEmojiListType | null {
|
||||
const locale = useMemo(() => i18n.getLocale(), [i18n]);
|
||||
|
||||
|
|
|
@ -6,10 +6,13 @@ import { render } from 'react-dom';
|
|||
|
||||
import { ClearingData } from '../components/ClearingData';
|
||||
import { deleteAllData } from './deleteAllData';
|
||||
import { FunDefaultEnglishEmojiLocalizationProvider } from '../components/fun/FunEmojiLocalizationProvider';
|
||||
|
||||
export function renderClearingDataView(): void {
|
||||
render(
|
||||
<ClearingData deleteAllData={deleteAllData} i18n={window.i18n} />,
|
||||
<FunDefaultEnglishEmojiLocalizationProvider>
|
||||
<ClearingData deleteAllData={deleteAllData} i18n={window.i18n} />
|
||||
</FunDefaultEnglishEmojiLocalizationProvider>,
|
||||
document.getElementById('app-container')
|
||||
);
|
||||
}
|
||||
|
|
|
@ -11,6 +11,7 @@ import type { Store } from 'redux';
|
|||
import { ModalHost } from '../../components/ModalHost';
|
||||
import type { SmartGroupV2JoinDialogProps } from '../smart/GroupV2JoinDialog';
|
||||
import { SmartGroupV2JoinDialog } from '../smart/GroupV2JoinDialog';
|
||||
import { FunEmojiLocalizationProvider } from '../../components/fun/FunEmojiLocalizationProvider';
|
||||
|
||||
export const createGroupV2JoinModal = (
|
||||
store: Store,
|
||||
|
@ -20,9 +21,11 @@ export const createGroupV2JoinModal = (
|
|||
|
||||
return (
|
||||
<Provider store={store}>
|
||||
<ModalHost modalName="createGroupV2JoinModal" onClose={onClose}>
|
||||
<SmartGroupV2JoinDialog {...props} />
|
||||
</ModalHost>
|
||||
<FunEmojiLocalizationProvider i18n={window.i18n}>
|
||||
<ModalHost modalName="createGroupV2JoinModal" onClose={onClose}>
|
||||
<SmartGroupV2JoinDialog {...props} />
|
||||
</ModalHost>
|
||||
</FunEmojiLocalizationProvider>
|
||||
</Provider>
|
||||
);
|
||||
};
|
||||
|
|
|
@ -9,6 +9,7 @@ import * as log from '../logging/log';
|
|||
import { ProgressModal } from '../components/ProgressModal';
|
||||
import { clearTimeoutIfNecessary } from './clearTimeoutIfNecessary';
|
||||
import { sleep } from './sleep';
|
||||
import { FunDefaultEnglishEmojiLocalizationProvider } from '../components/fun/FunEmojiLocalizationProvider';
|
||||
|
||||
export async function longRunningTaskWrapper<T>({
|
||||
name,
|
||||
|
@ -31,7 +32,12 @@ export async function longRunningTaskWrapper<T>({
|
|||
progressNode = document.createElement('div');
|
||||
|
||||
log.info(`longRunningTaskWrapper/${idLog}: Creating spinner`);
|
||||
render(<ProgressModal i18n={window.i18n} />, progressNode);
|
||||
render(
|
||||
<FunDefaultEnglishEmojiLocalizationProvider>
|
||||
<ProgressModal i18n={window.i18n} />
|
||||
</FunDefaultEnglishEmojiLocalizationProvider>,
|
||||
progressNode
|
||||
);
|
||||
spinnerStart = Date.now();
|
||||
}, TWO_SECONDS);
|
||||
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
import React from 'react';
|
||||
import { render, unmountComponentAtNode } from 'react-dom';
|
||||
import { ConfirmationDialog } from '../components/ConfirmationDialog';
|
||||
import { FunDefaultEnglishEmojiLocalizationProvider } from '../components/fun/FunEmojiLocalizationProvider';
|
||||
|
||||
type ConfirmationDialogViewProps = {
|
||||
onTopOfEverything?: boolean;
|
||||
|
@ -55,33 +56,37 @@ export function showConfirmationDialog(
|
|||
confirmationDialogPreviousFocus = document.activeElement as HTMLElement;
|
||||
|
||||
render(
|
||||
<ConfirmationDialog
|
||||
dialogName={options.dialogName}
|
||||
onTopOfEverything={options.onTopOfEverything}
|
||||
actions={[
|
||||
{
|
||||
action: () => {
|
||||
options.resolve();
|
||||
<FunDefaultEnglishEmojiLocalizationProvider>
|
||||
<ConfirmationDialog
|
||||
dialogName={options.dialogName}
|
||||
onTopOfEverything={options.onTopOfEverything}
|
||||
actions={[
|
||||
{
|
||||
action: () => {
|
||||
options.resolve();
|
||||
},
|
||||
style: options.confirmStyle,
|
||||
text: options.okText || window.i18n('icu:ok'),
|
||||
},
|
||||
style: options.confirmStyle,
|
||||
text: options.okText || window.i18n('icu:ok'),
|
||||
},
|
||||
]}
|
||||
cancelText={options.cancelText || window.i18n('icu:cancel')}
|
||||
i18n={window.i18n}
|
||||
onCancel={() => {
|
||||
if (options.reject) {
|
||||
options.reject(new Error('showConfirmationDialog: onCancel called'));
|
||||
}
|
||||
}}
|
||||
onClose={() => {
|
||||
removeConfirmationDialog();
|
||||
}}
|
||||
title={options.title}
|
||||
noMouseClose={options.noMouseClose}
|
||||
>
|
||||
{options.description}
|
||||
</ConfirmationDialog>,
|
||||
]}
|
||||
cancelText={options.cancelText || window.i18n('icu:cancel')}
|
||||
i18n={window.i18n}
|
||||
onCancel={() => {
|
||||
if (options.reject) {
|
||||
options.reject(
|
||||
new Error('showConfirmationDialog: onCancel called')
|
||||
);
|
||||
}
|
||||
}}
|
||||
onClose={() => {
|
||||
removeConfirmationDialog();
|
||||
}}
|
||||
title={options.title}
|
||||
noMouseClose={options.noMouseClose}
|
||||
>
|
||||
{options.description}
|
||||
</ConfirmationDialog>
|
||||
</FunDefaultEnglishEmojiLocalizationProvider>,
|
||||
confirmationDialogViewNode
|
||||
);
|
||||
}
|
||||
|
|
|
@ -7,19 +7,22 @@ import ReactDOM from 'react-dom';
|
|||
import { About } from '../../components/About';
|
||||
import { i18n } from '../sandboxedInit';
|
||||
import { strictAssert } from '../../util/assert';
|
||||
import { FunDefaultEnglishEmojiLocalizationProvider } from '../../components/fun/FunEmojiLocalizationProvider';
|
||||
|
||||
const { AboutWindowProps } = window.Signal;
|
||||
|
||||
strictAssert(AboutWindowProps, 'window values not provided');
|
||||
|
||||
ReactDOM.render(
|
||||
<About
|
||||
closeAbout={() => window.SignalContext.executeMenuRole('close')}
|
||||
appEnv={AboutWindowProps.appEnv}
|
||||
platform={AboutWindowProps.platform}
|
||||
arch={AboutWindowProps.arch}
|
||||
i18n={i18n}
|
||||
version={window.SignalContext.getVersion()}
|
||||
/>,
|
||||
<FunDefaultEnglishEmojiLocalizationProvider>
|
||||
<About
|
||||
closeAbout={() => window.SignalContext.executeMenuRole('close')}
|
||||
appEnv={AboutWindowProps.appEnv}
|
||||
platform={AboutWindowProps.platform}
|
||||
arch={AboutWindowProps.arch}
|
||||
i18n={i18n}
|
||||
version={window.SignalContext.getVersion()}
|
||||
/>
|
||||
</FunDefaultEnglishEmojiLocalizationProvider>,
|
||||
document.getElementById('app')
|
||||
);
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
import React from 'react';
|
||||
import { render } from 'react-dom';
|
||||
import { DebugLogWindow } from '../../components/DebugLogWindow';
|
||||
import { FunDefaultEnglishEmojiLocalizationProvider } from '../../components/fun/FunEmojiLocalizationProvider';
|
||||
import { i18n } from '../sandboxedInit';
|
||||
import { strictAssert } from '../../util/assert';
|
||||
|
||||
|
@ -12,12 +13,14 @@ const { DebugLogWindowProps } = window.Signal;
|
|||
strictAssert(DebugLogWindowProps, 'window values not provided');
|
||||
|
||||
render(
|
||||
<DebugLogWindow
|
||||
closeWindow={() => window.SignalContext.executeMenuRole('close')}
|
||||
downloadLog={DebugLogWindowProps.downloadLog}
|
||||
i18n={i18n}
|
||||
fetchLogs={DebugLogWindowProps.fetchLogs}
|
||||
uploadLogs={DebugLogWindowProps.uploadLogs}
|
||||
/>,
|
||||
<FunDefaultEnglishEmojiLocalizationProvider>
|
||||
<DebugLogWindow
|
||||
closeWindow={() => window.SignalContext.executeMenuRole('close')}
|
||||
downloadLog={DebugLogWindowProps.downloadLog}
|
||||
i18n={i18n}
|
||||
fetchLogs={DebugLogWindowProps.fetchLogs}
|
||||
uploadLogs={DebugLogWindowProps.uploadLogs}
|
||||
/>
|
||||
</FunDefaultEnglishEmojiLocalizationProvider>,
|
||||
document.getElementById('app')
|
||||
);
|
||||
|
|
|
@ -7,6 +7,7 @@ import ReactDOM from 'react-dom';
|
|||
import { PermissionsPopup } from '../../components/PermissionsPopup';
|
||||
import { i18n } from '../sandboxedInit';
|
||||
import { strictAssert } from '../../util/assert';
|
||||
import { FunDefaultEnglishEmojiLocalizationProvider } from '../../components/fun/FunEmojiLocalizationProvider';
|
||||
|
||||
const { PermissionsWindowProps } = window.Signal;
|
||||
|
||||
|
@ -26,11 +27,13 @@ if (forCalling) {
|
|||
}
|
||||
|
||||
ReactDOM.render(
|
||||
<PermissionsPopup
|
||||
i18n={i18n}
|
||||
message={message}
|
||||
onAccept={PermissionsWindowProps.onAccept}
|
||||
onClose={PermissionsWindowProps.onClose}
|
||||
/>,
|
||||
<FunDefaultEnglishEmojiLocalizationProvider>
|
||||
<PermissionsPopup
|
||||
i18n={i18n}
|
||||
message={message}
|
||||
onAccept={PermissionsWindowProps.onAccept}
|
||||
onClose={PermissionsWindowProps.onClose}
|
||||
/>
|
||||
</FunDefaultEnglishEmojiLocalizationProvider>,
|
||||
document.getElementById('app')
|
||||
);
|
||||
|
|
|
@ -9,6 +9,7 @@ import { i18n } from '../sandboxedInit';
|
|||
import { strictAssert } from '../../util/assert';
|
||||
import { drop } from '../../util/drop';
|
||||
import { parseEnvironment, setEnvironment } from '../../environment';
|
||||
import { FunDefaultEnglishEmojiLocalizationProvider } from '../../components/fun/FunEmojiLocalizationProvider';
|
||||
|
||||
const { ScreenShareWindowProps } = window.Signal;
|
||||
|
||||
|
@ -28,15 +29,17 @@ function render() {
|
|||
strictAssert(ScreenShareWindowProps, 'window values not provided');
|
||||
|
||||
ReactDOM.render(
|
||||
<div className="App dark-theme">
|
||||
<CallingScreenSharingController
|
||||
i18n={i18n}
|
||||
onCloseController={onCloseController}
|
||||
onStopSharing={ScreenShareWindowProps.onStopSharing}
|
||||
status={ScreenShareWindowProps.getStatus()}
|
||||
presentedSourceName={ScreenShareWindowProps.presentedSourceName}
|
||||
/>
|
||||
</div>,
|
||||
<FunDefaultEnglishEmojiLocalizationProvider>
|
||||
<div className="App dark-theme">
|
||||
<CallingScreenSharingController
|
||||
i18n={i18n}
|
||||
onCloseController={onCloseController}
|
||||
onStopSharing={ScreenShareWindowProps.onStopSharing}
|
||||
status={ScreenShareWindowProps.getStatus()}
|
||||
presentedSourceName={ScreenShareWindowProps.presentedSourceName}
|
||||
/>
|
||||
</div>
|
||||
</FunDefaultEnglishEmojiLocalizationProvider>,
|
||||
|
||||
document.getElementById('app')
|
||||
);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue