diff --git a/html/js/network/socketHandlers.js b/html/js/network/socketHandlers.js index 8ff34ee..2107939 100644 --- a/html/js/network/socketHandlers.js +++ b/html/js/network/socketHandlers.js @@ -719,18 +719,24 @@ const SocketHandlers = { } catch (err) { console.log('Smirk payment declined/failed, falling back to manual:', err); - var errMsg = String(err.message || err || ''); + var errMsg = String(err.message || err || '').toLowerCase(); - if (errMsg.indexOf('context invalidated') !== -1) { - // Extension was reloaded/updated — stale context - $('#messages').append($('
  • ').text( - 'Smirk extension was reloaded. Please refresh the page to re-enable Smirk payments. Using manual payment for now.' - )); - SmirkAuth._isLinked = false; - } else { + // Check if this is a user-initiated denial vs extension error + var isUserDenied = errMsg.indexOf('denied') !== -1 || + errMsg.indexOf('rejected') !== -1 || + errMsg.indexOf('cancelled') !== -1 || + errMsg.indexOf('user') !== -1; + + if (isUserDenied) { $('#messages').append($('
  • ').text( 'Smirk payment cancelled. Use the address below.' )); + } else { + // Extension error (context invalidated, service worker issue, etc.) + $('#messages').append($('
  • ').text( + 'Smirk payment unavailable — using manual payment. Try refreshing the page to fix Smirk.' + )); + SmirkAuth._isLinked = false; } UI.scrollChat();