const showNotice = ({ title, message, retryLabel = scanMessages.retry }) => { if (typeof document === 'undefined') { return; } dismissNotice(); notice = document.createElement('aside'); notice.className = 'scan-location-notice'; notice.setAttribute('role', 'alert'); notice.innerHTML = ` ${title}

${message}

`; notice.querySelector('[data-scan-location-retry]')?.addEventListener('click', () => { triedHighAccuracy = false; requestLocationWithFallback(); }); notice.querySelector('[data-scan-location-dismiss]')?.addEventListener('click', () => { dismissNotice(); }); document.body.appendChild(notice); }; const showPermissionNotice = () => { showNotice({ title: scanMessages.permissionTitle, message: scanMessages.permissionMessage, }); }; const showUnavailableNotice = () => { showNotice({ title: scanMessages.unavailableTitle, message: scanMessages.unavailableMessage, }); }; const showTimeoutNotice = () => { showNotice({ title: scanMessages.timeoutTitle, message: scanMessages.timeoutMessage, }); };