// Copyright 2021 Signal Messenger, LLC // SPDX-License-Identifier: AGPL-3.0-only // This file is here temporarily while we're switching off of Backbone into // React. In the future, and in React-land, please just import and use // the component directly. This is the thin API layer to bridge the gap // while we convert things over. Please delete this file once all usages are // ported over. import React from 'react'; import { unmountComponentAtNode, render } from 'react-dom'; import { ConversationModel } from '../models/conversations'; import { SafetyNumberChangeDialog } from '../components/SafetyNumberChangeDialog'; export type SafetyNumberChangeViewProps = { confirmText?: string; contacts: Array; reject: () => void; resolve: () => void; }; let dialogContainerNode: HTMLElement | undefined; function removeDialog() { if (!dialogContainerNode) { return; } unmountComponentAtNode(dialogContainerNode); document.body.removeChild(dialogContainerNode); dialogContainerNode = undefined; } export function showSafetyNumberChangeDialog( options: SafetyNumberChangeViewProps ): void { if (dialogContainerNode) { removeDialog(); } dialogContainerNode = document.createElement('div'); document.body.appendChild(dialogContainerNode); render( contact.format())} i18n={window.i18n} onCancel={() => { options.reject(); removeDialog(); }} onConfirm={() => { options.resolve(); removeDialog(); }} renderSafetyNumber={props => { return window.Signal.State.Roots.createSafetyNumberViewer( window.reduxStore, props ); }} />, dialogContainerNode ); }