diff --git a/src/views/messages-view.jsx b/src/views/messages-view.jsx index 4270796e..966afc57 100644 --- a/src/views/messages-view.jsx +++ b/src/views/messages-view.jsx @@ -45,6 +45,14 @@ function isUnconfirmed(acs) { return false; } +function isPeerRestricted(acs) { + if (acs) { + const ms = acs.getMissing() || ''; + return acs.isJoiner('want') && (ms.includes('R') || ms.includes('W')); + } + return false; +} + class MessagesView extends React.Component { constructor(props) { super(props); @@ -211,9 +219,9 @@ class MessagesView extends React.Component { } const peer = topic.p2pPeerDesc(); - if (peer && peer.acs) { + if (peer) { Object.assign(nextState, { - peerMessagingDisabled: !(peer.acs.isReader('given') && peer.acs.isWriter('given')) + peerMessagingDisabled: isPeerRestricted(peer.acs) }); } else if (prevState.peerMessagingDisabled) { Object.assign(nextState, { @@ -350,9 +358,9 @@ class MessagesView extends React.Component { }); const newState = {onlineSubs: subs}; const peer = topic.p2pPeerDesc(); - if (peer && peer.acs) { + if (peer) { Object.assign(newState, { - peerMessagingDisabled: !(peer.acs.isReader('given') && peer.acs.isWriter('given')) + peerMessagingDisabled: isPeerRestricted(peer.acs) }); } else if (this.state.peerMessagingDisabled) { Object.assign(newState, {