import React, { render } from 'preact/compat';
import type { Account, GetAccounts } from '../LedgerWallet.js';
import { ConfirmContent } from './ConfirmContent.js';
import { ConnectingContent } from './ConnectingContent.js';
import { getLangText } from './lang.js';
import { Modal } from './Modal.js';
import { SelectAccount } from './SelectAccount.js';
import { modalStyleSheetContent } from './style.js';
function prepareDomNode() {
const div = document.createElement('div');
const style = document.createElement('style');
style.textContent = modalStyleSheetContent;
document.body.append(style);
document.body.append(div);
function onClose() {
div.remove();
style.remove();
}
return {
onClose,
div,
};
}
export function openConnectingModal() {
const { onClose, div } = prepareDomNode();
const langText = getLangText();
render(
,
div
);
return onClose;
}
export function openVerifyAddressModal(address: string) {
const { onClose, div } = prepareDomNode();
const langText = getLangText();
render(
,
div
);
return onClose;
}
export function openSelectAccountModal(options: {
accounts: Account[];
selectedIndex?: number;
getAccounts: GetAccounts;
}): Promise {
const { onClose, div } = prepareDomNode();
const langText = getLangText();
return new Promise((resolve, reject) => {
function onConfirm(account: Account) {
resolve(account);
onClose();
}
function onCancel() {
reject(new Error('Operation is canceled.'));
onClose();
}
render(
,
div
);
});
}