import Routing from "/src/services/routing.service.ts"; import Services from "/src/services/service.ts"; document.querySelectorAll('.tab').forEach(tab => { tab.addEventListener('click', () => { document.querySelectorAll('.tab').forEach(t => t.classList.remove('active')); tab.classList.add('active'); document.querySelectorAll('.tab-content').forEach(content => content.classList.remove('active')); document.getElementById(tab.getAttribute('data-tab')).classList.add('active'); }); }); document.getElementById('notification-bell').addEventListener('click', openCloseNotifications); export function toggleMenu() { var menu = document.getElementById('menu'); if (menu.style.display === 'block') { menu.style.display = 'none'; } else { menu.style.display = 'block'; } } //// Modal export async function openModal(myAddress, receiverAddress) { const router = await Routing.getInstance(); router.openLoginModal(myAddress, receiverAddress) } function openCloseNotifications() { const notifications = document.querySelector('.notification-board') notifications.style.display = notifications?.style.display === 'none' ? 'block' : 'none' } const service = await Services.getInstance() service.setNotification() window.toggleMenu = toggleMenu; window.openModal = openModal; /// Scan QR Code function docReady(fn) { // see if DOM is already available if (document.readyState === "complete" || document.readyState === "interactive") { // call on next available tick setTimeout(fn, 1); } else { document.addEventListener("DOMContentLoaded", fn); } } docReady(function () { var resultContainer = document.getElementById('qr-reader-results'); var lastResult, countResults = 0; function onScanSuccess(decodedText, decodedResult) { ++countResults; lastResult = decodedText; // Handle on success condition with the decoded message. console.log(`Scan result ${decodedText}`, decodedResult); try { // Attempt to parse the decoded text as a URL const scannedUrl = new URL(decodedText); // Extract the 'sp_address' parameter const spAddress = scannedUrl.searchParams.get('sp_address'); if (spAddress) { // Call the sendPairingTx function with the extracted sp_address service.sendPairingTx(spAddress); } else { console.error('The scanned URL does not contain the sp_address parameter.'); alert('Invalid QR code: sp_address parameter missing.'); } } catch (error) { // Handle cases where decodedText is not a valid URL console.error('Scanned text is not a valid URL:', error); alert('Invalid QR code: Unable to parse URL.'); } } var html5QrcodeScanner = new Html5QrcodeScanner( "qr-reader", { fps: 10, qrbox: 250 }); html5QrcodeScanner.render(onScanSuccess); }); function scanDevice() { // service.sendPairingTx('decodedText') const scannerImg = document.querySelector('#scanner') if(scannerImg) scannerImg.style.display = 'none' const scannerQrCode = document.querySelector('.qr-code-scanner') if(scannerQrCode) scannerQrCode.style.display = 'block' } window.scanDevice = scanDevice