mirror of
https://github.com/oxen-io/session-desktop.git
synced 2023-12-14 02:12:57 +01:00
fix: disable typing and message request on sogs without write
This commit is contained in:
parent
b008e9d792
commit
17742539af
6 changed files with 34 additions and 6 deletions
|
@ -79,7 +79,7 @@ textarea {
|
|||
overflow: hidden;
|
||||
outline: none;
|
||||
color: $textAndBorderColor;
|
||||
border: 2px solid $textAndBorderColor;
|
||||
border: 1px solid $textAndBorderColor;
|
||||
}
|
||||
|
||||
width: auto;
|
||||
|
|
|
@ -14,7 +14,7 @@ const StyledTypingContainer = styled.div`
|
|||
|
||||
const StyledTypingDot = styled.div<{ index: number }>`
|
||||
border-radius: 50%;
|
||||
background-color: var(--color-text-subtle); // TODO Theming update
|
||||
background-color: var(--color-text-subtle); // TODO Theming update
|
||||
|
||||
height: 6px;
|
||||
width: 6px;
|
||||
|
|
|
@ -9,6 +9,7 @@ import { PubKey } from '../../../../session/types';
|
|||
import { openConversationWithMessages } from '../../../../state/ducks/conversations';
|
||||
import { updateUserDetailsModal } from '../../../../state/ducks/modalDialog';
|
||||
import {
|
||||
getIsTypingEnabled,
|
||||
getMessageAvatarProps,
|
||||
getSelectedConversationKey,
|
||||
} from '../../../../state/selectors/conversations';
|
||||
|
@ -37,6 +38,8 @@ export const MessageAvatar = (props: Props) => {
|
|||
const avatarProps = useSelector(state => getMessageAvatarProps(state as any, messageId));
|
||||
const selectedConvoKey = useSelector(getSelectedConversationKey);
|
||||
|
||||
const isTypingEnabled = useSelector(getIsTypingEnabled);
|
||||
|
||||
if (!avatarProps) {
|
||||
return null;
|
||||
}
|
||||
|
@ -75,6 +78,11 @@ export const MessageAvatar = (props: Props) => {
|
|||
}
|
||||
}
|
||||
|
||||
if (isPublic && !isTypingEnabled) {
|
||||
window.log.info('onMessageAvatarClick: no typing enabled. Dropping...');
|
||||
return;
|
||||
}
|
||||
|
||||
if (isPublic && selectedConvoKey) {
|
||||
const convoOpen = getConversationController().get(selectedConvoKey);
|
||||
const room = OpenGroupData.getV2OpenGroupRoom(convoOpen.id);
|
||||
|
|
|
@ -416,6 +416,23 @@ export class ConversationModel extends Backbone.Model<ConversationAttributes> {
|
|||
toRet.currentNotificationSetting = currentNotificationSetting;
|
||||
}
|
||||
|
||||
if (this.isOpenGroupV2()) {
|
||||
const room = OpenGroupData.getV2OpenGroupRoom(this.id);
|
||||
if (room && isArray(room.capabilities) && room.capabilities.length) {
|
||||
toRet.capabilities = room.capabilities;
|
||||
}
|
||||
|
||||
if (this.get('writeCapability')) {
|
||||
toRet.writeCapability = this.get('writeCapability');
|
||||
}
|
||||
if (this.get('readCapability')) {
|
||||
toRet.readCapability = this.get('readCapability');
|
||||
}
|
||||
if (this.get('uploadCapability')) {
|
||||
toRet.uploadCapability = this.get('uploadCapability');
|
||||
}
|
||||
}
|
||||
|
||||
const lastMessageText = this.get('lastMessage');
|
||||
if (lastMessageText && lastMessageText.length) {
|
||||
const lastMessageStatus = this.get('lastMessageStatus');
|
||||
|
|
|
@ -268,8 +268,11 @@ export interface ReduxConversationType {
|
|||
isApproved?: boolean;
|
||||
didApproveMe?: boolean;
|
||||
|
||||
/** Should only be present on open groups - the key (stored as hex) that should be used when sending messages to an open group */
|
||||
blindedPublicKey?: string;
|
||||
// Should only be present on opengroups - the capabilities we have on this room.
|
||||
capabilities?: Array<string>;
|
||||
readCapability?: boolean;
|
||||
writeCapability?: boolean;
|
||||
uploadCapability?: boolean;
|
||||
}
|
||||
|
||||
export interface NotificationForConvoOption {
|
||||
|
|
|
@ -85,9 +85,9 @@ export const getIsTypingEnabled = createSelector(
|
|||
if (!selectedConvo) {
|
||||
return false;
|
||||
}
|
||||
const { isBlocked, isKickedFromGroup, left } = selectedConvo;
|
||||
const { isBlocked, isKickedFromGroup, left, isPublic, writeCapability } = selectedConvo;
|
||||
|
||||
return !(isBlocked || isKickedFromGroup || left);
|
||||
return !(isBlocked || isKickedFromGroup || left || (isPublic && !writeCapability));
|
||||
}
|
||||
);
|
||||
/**
|
||||
|
|
Loading…
Reference in a new issue