more conststent check for peer restrictions

This commit is contained in:
or-else
2019-03-03 19:37:16 +03:00
parent 64f1fd4380
commit 32ad99128e
+12 -4
View File
@@ -45,6 +45,14 @@ function isUnconfirmed(acs) {
return false; 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 { class MessagesView extends React.Component {
constructor(props) { constructor(props) {
super(props); super(props);
@@ -211,9 +219,9 @@ class MessagesView extends React.Component {
} }
const peer = topic.p2pPeerDesc(); const peer = topic.p2pPeerDesc();
if (peer && peer.acs) { if (peer) {
Object.assign(nextState, { Object.assign(nextState, {
peerMessagingDisabled: !(peer.acs.isReader('given') && peer.acs.isWriter('given')) peerMessagingDisabled: isPeerRestricted(peer.acs)
}); });
} else if (prevState.peerMessagingDisabled) { } else if (prevState.peerMessagingDisabled) {
Object.assign(nextState, { Object.assign(nextState, {
@@ -350,9 +358,9 @@ class MessagesView extends React.Component {
}); });
const newState = {onlineSubs: subs}; const newState = {onlineSubs: subs};
const peer = topic.p2pPeerDesc(); const peer = topic.p2pPeerDesc();
if (peer && peer.acs) { if (peer) {
Object.assign(newState, { Object.assign(newState, {
peerMessagingDisabled: !(peer.acs.isReader('given') && peer.acs.isWriter('given')) peerMessagingDisabled: isPeerRestricted(peer.acs)
}); });
} else if (this.state.peerMessagingDisabled) { } else if (this.state.peerMessagingDisabled) {
Object.assign(newState, { Object.assign(newState, {