more work on confirming topic subscriptions, update permissions without subscribing
This commit is contained in:
+1
-1
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "tinode-webapp",
|
"name": "tinode-webapp",
|
||||||
"description": "Tinode messenger for the web",
|
"description": "Tinode messenger for the web",
|
||||||
"version": "0.15.13-rc2",
|
"version": "0.15.13-rc3",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@babel/core": "^7.2.2",
|
"@babel/core": "^7.2.2",
|
||||||
"@babel/preset-env": "^7.3.1",
|
"@babel/preset-env": "^7.3.1",
|
||||||
|
|||||||
+1
-1
@@ -1,3 +1,3 @@
|
|||||||
// This is a generated file. Don't edit.
|
// This is a generated file. Don't edit.
|
||||||
|
|
||||||
export const PACKAGE_VERSION = "0.15.13-rc2";
|
export const PACKAGE_VERSION = "0.15.13-rc3";
|
||||||
|
|||||||
@@ -36,10 +36,18 @@ const messages = defineMessages({
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Checks if the access permissions are granted but not yet accepted.
|
||||||
|
function isUnconfirmed(acs) {
|
||||||
|
const ex = acs ? acs.getExcessive() || '' : '';
|
||||||
|
return (ex.includes('R') || ex.includes('W'));
|
||||||
|
}
|
||||||
|
|
||||||
class MessagesView extends React.Component {
|
class MessagesView extends React.Component {
|
||||||
constructor(props) {
|
constructor(props) {
|
||||||
super(props);
|
super(props);
|
||||||
|
|
||||||
|
console.log(props.acs);
|
||||||
|
|
||||||
this.state = {
|
this.state = {
|
||||||
messages: [],
|
messages: [],
|
||||||
onlineSubs: [],
|
onlineSubs: [],
|
||||||
@@ -49,6 +57,7 @@ class MessagesView extends React.Component {
|
|||||||
scrollPosition: 0,
|
scrollPosition: 0,
|
||||||
readOnly: props.acs ? !props.acs.isWriter() : true,
|
readOnly: props.acs ? !props.acs.isWriter() : true,
|
||||||
writeOnly: props.acs ? !props.acs.isReader() : true,
|
writeOnly: props.acs ? !props.acs.isReader() : true,
|
||||||
|
unconfirmed: isUnconfirmed(props.acs),
|
||||||
typingIndicator: false,
|
typingIndicator: false,
|
||||||
imagePreview: null
|
imagePreview: null
|
||||||
};
|
};
|
||||||
@@ -169,9 +178,11 @@ class MessagesView extends React.Component {
|
|||||||
this.props.readTimerHandler(null);
|
this.props.readTimerHandler(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
console.log("propsChange", props.acs);
|
||||||
this.setState({
|
this.setState({
|
||||||
readOnly: props.acs ? !props.acs.isWriter() : true,
|
readOnly: props.acs ? !props.acs.isWriter() : true,
|
||||||
writeOnly: props.acs ? !props.acs.isReader() : true
|
writeOnly: props.acs ? !props.acs.isReader() : true,
|
||||||
|
unconfirmed: isUnconfirmed(props.acs)
|
||||||
});
|
});
|
||||||
|
|
||||||
if (!topic.isSubscribed() && tryToResubscribe) {
|
if (!topic.isSubscribed() && tryToResubscribe) {
|
||||||
@@ -199,11 +210,14 @@ class MessagesView extends React.Component {
|
|||||||
.catch((err) => {
|
.catch((err) => {
|
||||||
props.onError(err.message, 'err');
|
props.onError(err.message, 'err');
|
||||||
const {formatMessage} = props.intl;
|
const {formatMessage} = props.intl;
|
||||||
|
|
||||||
|
console.log("subscribe failed", props.acs);
|
||||||
this.setState({
|
this.setState({
|
||||||
title: formatMessage(messages.not_found),
|
title: formatMessage(messages.not_found),
|
||||||
avatar: null,
|
avatar: null,
|
||||||
readOnly: true,
|
readOnly: true,
|
||||||
writeOnly: true,
|
writeOnly: true,
|
||||||
|
unconfirmed: false,
|
||||||
fetchingMessages: false,
|
fetchingMessages: false,
|
||||||
messages: [],
|
messages: [],
|
||||||
onlineSubs: [],
|
onlineSubs: [],
|
||||||
@@ -276,10 +290,13 @@ class MessagesView extends React.Component {
|
|||||||
avatar: null
|
avatar: null
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
console.log("handleDescChange", desc.acs);
|
||||||
if (desc.acs) {
|
if (desc.acs) {
|
||||||
this.setState({
|
this.setState({
|
||||||
readOnly: !desc.acs.isWriter(),
|
readOnly: !desc.acs.isWriter(),
|
||||||
writeOnly: !desc.acs.isReader()
|
writeOnly: !desc.acs.isReader(),
|
||||||
|
unconfirmed: isUnconfirmed(desc.acs),
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -551,13 +568,16 @@ class MessagesView extends React.Component {
|
|||||||
null
|
null
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
<SendMessage
|
{this.state.unconfirmed ?
|
||||||
tinode={this.props.tinode}
|
<Invitation onAction={this.handleNewChatAcceptance} />
|
||||||
topic={this.props.topic}
|
:
|
||||||
disabled={this.state.readOnly}
|
<SendMessage
|
||||||
sendMessage={this.props.sendMessage}
|
tinode={this.props.tinode}
|
||||||
onError={this.props.onError} />
|
topic={this.props.topic}
|
||||||
<Invitation onAction={this.handleNewChatAcceptance} />
|
disabled={this.state.readOnly}
|
||||||
|
sendMessage={this.props.sendMessage}
|
||||||
|
onError={this.props.onError} />
|
||||||
|
}
|
||||||
{this.state.imagePreview ?
|
{this.state.imagePreview ?
|
||||||
<ImagePreview content={this.state.imagePreview}
|
<ImagePreview content={this.state.imagePreview}
|
||||||
onClose={this.handleCloseImagePreview} /> : null}
|
onClose={this.handleCloseImagePreview} /> : null}
|
||||||
|
|||||||
@@ -1037,9 +1037,9 @@ class TinodeWeb extends React.Component {
|
|||||||
subscribed ? {title: formatMessage({id: 'menu_item_info'}), handler: this.handleShowInfoView} : null,
|
subscribed ? {title: formatMessage({id: 'menu_item_info'}), handler: this.handleShowInfoView} : null,
|
||||||
subscribed ? 'messages_clear' : null,
|
subscribed ? 'messages_clear' : null,
|
||||||
subscribed && deleter ? 'messages_clear_hard' : null,
|
subscribed && deleter ? 'messages_clear_hard' : null,
|
||||||
subscribed ? (muted ? 'topic_unmute' : 'topic_mute') : null,
|
muted ? 'topic_unmute' : 'topic_mute',
|
||||||
subscribed ? (blocked ? 'topic_unblock' : 'topic_block') : null,
|
blocked ? 'topic_unblock' : 'topic_block',
|
||||||
subscribed && !archived ? 'topic_archive' : null,
|
!archived ? 'topic_archive' : null,
|
||||||
'topic_delete'
|
'topic_delete'
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
+22
-8
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1
-1
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1
-1
@@ -8,7 +8,7 @@ module.exports = {
|
|||||||
module: {
|
module: {
|
||||||
rules: [
|
rules: [
|
||||||
{
|
{
|
||||||
test: /src\/.*\.jsx?$/,
|
test: /src\/.*\.(js|jsx)?$/,
|
||||||
loaders: [
|
loaders: [
|
||||||
'babel-loader',
|
'babel-loader',
|
||||||
],
|
],
|
||||||
|
|||||||
Reference in New Issue
Block a user