@@ -36,6 +36,7 @@ import { MatrixError } from 'matrix-js-sdk/src/http-api';
36
36
import { ClientEvent } from "matrix-js-sdk/src/client" ;
37
37
import { CryptoEvent } from "matrix-js-sdk/src/crypto" ;
38
38
import { THREAD_RELATION_TYPE } from 'matrix-js-sdk/src/models/thread' ;
39
+ import { HistoryVisibility } from 'matrix-js-sdk/src/@types/partials' ;
39
40
40
41
import shouldHideEvent from '../../shouldHideEvent' ;
41
42
import { _t } from '../../languageHandler' ;
@@ -166,7 +167,6 @@ export interface IRoomState {
166
167
searchHighlights ?: string [ ] ;
167
168
searchInProgress ?: boolean ;
168
169
callState ?: CallState ;
169
- guestsCanJoin : boolean ;
170
170
canPeek : boolean ;
171
171
showApps : boolean ;
172
172
isPeeking : boolean ;
@@ -250,7 +250,6 @@ export class RoomView extends React.Component<IRoomProps, IRoomState> {
250
250
numUnreadMessages : 0 ,
251
251
searchResults : null ,
252
252
callState : null ,
253
- guestsCanJoin : false ,
254
253
canPeek : false ,
255
254
showApps : false ,
256
255
isPeeking : false ,
@@ -284,11 +283,9 @@ export class RoomView extends React.Component<IRoomProps, IRoomState> {
284
283
context . on ( ClientEvent . Room , this . onRoom ) ;
285
284
context . on ( RoomEvent . Timeline , this . onRoomTimeline ) ;
286
285
context . on ( RoomEvent . Name , this . onRoomName ) ;
287
- context . on ( RoomEvent . AccountData , this . onRoomAccountData ) ;
288
286
context . on ( RoomStateEvent . Events , this . onRoomStateEvents ) ;
289
287
context . on ( RoomStateEvent . Update , this . onRoomStateUpdate ) ;
290
288
context . on ( RoomEvent . MyMembership , this . onMyMembership ) ;
291
- context . on ( ClientEvent . AccountData , this . onAccountData ) ;
292
289
context . on ( CryptoEvent . KeyBackupStatus , this . onKeyBackupStatus ) ;
293
290
context . on ( CryptoEvent . DeviceVerificationChanged , this . onDeviceVerificationChanged ) ;
294
291
context . on ( CryptoEvent . UserTrustStatusChanged , this . onUserVerificationChanged ) ;
@@ -326,6 +323,8 @@ export class RoomView extends React.Component<IRoomProps, IRoomState> {
326
323
SettingsStore . watchSetting ( "showHiddenEventsInTimeline" , null , ( ...[ , , , value ] ) =>
327
324
this . setState ( { showHiddenEvents : value as boolean } ) ,
328
325
) ,
326
+ SettingsStore . watchSetting ( "urlPreviewsEnabled" , null , this . onUrlPreviewsEnabledChange ) ,
327
+ SettingsStore . watchSetting ( "urlPreviewsEnabled_e2ee" , null , this . onUrlPreviewsEnabledChange ) ,
329
328
] ;
330
329
}
331
330
@@ -722,11 +721,9 @@ export class RoomView extends React.Component<IRoomProps, IRoomState> {
722
721
this . context . removeListener ( ClientEvent . Room , this . onRoom ) ;
723
722
this . context . removeListener ( RoomEvent . Timeline , this . onRoomTimeline ) ;
724
723
this . context . removeListener ( RoomEvent . Name , this . onRoomName ) ;
725
- this . context . removeListener ( RoomEvent . AccountData , this . onRoomAccountData ) ;
726
724
this . context . removeListener ( RoomStateEvent . Events , this . onRoomStateEvents ) ;
727
725
this . context . removeListener ( RoomEvent . MyMembership , this . onMyMembership ) ;
728
726
this . context . removeListener ( RoomStateEvent . Update , this . onRoomStateUpdate ) ;
729
- this . context . removeListener ( ClientEvent . AccountData , this . onAccountData ) ;
730
727
this . context . removeListener ( CryptoEvent . KeyBackupStatus , this . onKeyBackupStatus ) ;
731
728
this . context . removeListener ( CryptoEvent . DeviceVerificationChanged , this . onDeviceVerificationChanged ) ;
732
729
this . context . removeListener ( CryptoEvent . UserTrustStatusChanged , this . onUserVerificationChanged ) ;
@@ -1054,19 +1051,10 @@ export class RoomView extends React.Component<IRoomProps, IRoomState> {
1054
1051
}
1055
1052
1056
1053
private calculatePeekRules ( room : Room ) {
1057
- const guestAccessEvent = room . currentState . getStateEvents ( "m.room.guest_access" , "" ) ;
1058
- if ( guestAccessEvent && guestAccessEvent . getContent ( ) . guest_access === "can_join" ) {
1059
- this . setState ( {
1060
- guestsCanJoin : true ,
1061
- } ) ;
1062
- }
1063
-
1064
- const historyVisibility = room . currentState . getStateEvents ( "m.room.history_visibility" , "" ) ;
1065
- if ( historyVisibility && historyVisibility . getContent ( ) . history_visibility === "world_readable" ) {
1066
- this . setState ( {
1067
- canPeek : true ,
1068
- } ) ;
1069
- }
1054
+ const historyVisibility = room . currentState . getStateEvents ( EventType . RoomHistoryVisibility , "" ) ;
1055
+ this . setState ( {
1056
+ canPeek : historyVisibility ?. getContent ( ) . history_visibility === HistoryVisibility . WorldReadable ,
1057
+ } ) ;
1070
1058
}
1071
1059
1072
1060
private updatePreviewUrlVisibility ( { roomId } : Room ) {
@@ -1136,24 +1124,12 @@ export class RoomView extends React.Component<IRoomProps, IRoomState> {
1136
1124
this . setState ( { e2eStatus } ) ;
1137
1125
}
1138
1126
1139
- private onAccountData = ( event : MatrixEvent ) => {
1140
- const type = event . getType ( ) ;
1141
- if ( ( type === "org.matrix.preview_urls" || type === "im.vector.web.settings" ) && this . state . room ) {
1142
- // non-e2ee url previews are stored in legacy event type `org.matrix.room.preview_urls`
1127
+ private onUrlPreviewsEnabledChange = ( ) => {
1128
+ if ( this . state . room ) {
1143
1129
this . updatePreviewUrlVisibility ( this . state . room ) ;
1144
1130
}
1145
1131
} ;
1146
1132
1147
- private onRoomAccountData = ( event : MatrixEvent , room : Room ) => {
1148
- if ( room . roomId == this . state . roomId ) {
1149
- const type = event . getType ( ) ;
1150
- if ( type === "org.matrix.room.preview_urls" || type === "im.vector.web.settings" ) {
1151
- // non-e2ee url previews are stored in legacy event type `org.matrix.room.preview_urls`
1152
- this . updatePreviewUrlVisibility ( room ) ;
1153
- }
1154
- }
1155
- } ;
1156
-
1157
1133
private onRoomStateEvents = ( ev : MatrixEvent , state : RoomState ) => {
1158
1134
// ignore if we don't have a room yet
1159
1135
if ( ! this . state . room || this . state . room . roomId !== state . roomId ) return ;
0 commit comments