diff --git a/src/components/header/header.ts b/src/components/header/header.ts index c6e11ee..47f52be 100644 --- a/src/components/header/header.ts +++ b/src/components/header/header.ts @@ -1,4 +1,4 @@ -import { INotification } from '~/models/notification.model'; +import { INotification } from '../../models/notification.model'; import { currentRoute, navigate } from '../../router'; import Services from '../../services/service'; diff --git a/src/html/confirmation-modal.html b/src/components/modal/confirmation-modal.html similarity index 100% rename from src/html/confirmation-modal.html rename to src/components/modal/confirmation-modal.html diff --git a/src/components/modal/confirmation-modal.ts b/src/components/modal/confirmation-modal.ts new file mode 100644 index 0000000..2cbb8f6 --- /dev/null +++ b/src/components/modal/confirmation-modal.ts @@ -0,0 +1,13 @@ +import ModalService from "../../services/modal.service"; + +const modalService = await ModalService.getInstance(); +export async function confirm() { + modalService.confirmPairing() +} + +export async function closeConfirmationModal() { + modalService.closeConfirmationModal() +} + +(window as any).confirm = confirm; +(window as any).closeConfirmationModal = closeConfirmationModal; \ No newline at end of file diff --git a/src/html/confirmation-modal.js b/src/html/confirmation-modal.js deleted file mode 100644 index 298ffd1..0000000 --- a/src/html/confirmation-modal.js +++ /dev/null @@ -1,13 +0,0 @@ -import Routing from "/src/services/routing.service.ts"; - -const router = await Routing.getInstance(); -export async function confirm() { - router.confirmPairing() -} - -export async function closeConfirmationModal() { - router.closeConirmationModal() -} - -window.confirm = confirm; -window.closeConfirmationModal = closeConfirmationModal; \ No newline at end of file diff --git a/src/services/modal.service.ts b/src/services/modal.service.ts index b4ddbfc..1706e81 100644 --- a/src/services/modal.service.ts +++ b/src/services/modal.service.ts @@ -1,7 +1,5 @@ import modalHtml from '../html/login-modal.html?raw'; -import confirmationModalHtml from '../html/confirmation-modal.html?raw'; import modalScript from '../html/login-modal.js?raw'; -import confirmationModalScript from '../html/confirmation-modal.js?raw'; import Services from './service'; import { U32_MAX } from './service'; import { navigate } from '../router'; @@ -37,6 +35,22 @@ export default class ModalService { document.head.appendChild(newScript).parentNode?.removeChild(newScript); } + async injectModal(members: any[]) { + const container = document.querySelector('.page-container'); + if (container) { + let html = await fetch('/src/components/modal/confirmation-modal.html').then((res) => res.text()); + html = html.replace('{{device1}}', await addressToEmoji(members[0]['sp_addresses'][0])); + html = html.replace('{{device2}}', await addressToEmoji(members[0]['sp_addresses'][1])); + container.innerHTML += html; + + // Dynamically load the header JS + const script = document.createElement('script'); + script.src = '/src/components/modal/confirmation-modal.ts'; + script.type = 'module'; + document.head.appendChild(script); + } + } + public async openConfirmationModal(pcd: any, outpointCommitment: string) { let roles = JSON.parse(pcd['roles']); // ['members'][0]; console.log(roles); @@ -51,19 +65,13 @@ export default class ModalService { this.paired_addresses.push(address); } } - let html = confirmationModalHtml; - html = html.replace('{{device1}}', await addressToEmoji(members[0]['sp_addresses'][0])); - html = html.replace('{{device2}}', await addressToEmoji(members[0]['sp_addresses'][1])); - this.currentOutpoint = outpointCommitment as string; - const container = document.querySelector('.page-container'); - - if (container) container.innerHTML += html; + await this.injectModal(members) const modal = document.getElementById('modal'); if (modal) modal.style.display = 'flex'; - const newScript = document.createElement('script'); - newScript.setAttribute('type', 'module'); - newScript.textContent = confirmationModalScript; - document.head.appendChild(newScript).parentNode?.removeChild(newScript); + // const newScript = document.createElement('script'); + // newScript.setAttribute('type', 'module'); + // newScript.textContent = confirmationModalScript; + // document.head.appendChild(newScript).parentNode?.removeChild(newScript); // Add correct text