mirror of
				https://github.com/vector-im/element-web.git
				synced 2025-11-04 02:02:14 +01:00 
			
		
		
		
	Merge remote-tracking branch 'origin/develop' into develop
This commit is contained in:
		
						commit
						daa1d2ba87
					
				@ -68,6 +68,7 @@
 | 
				
			|||||||
@import "./views/groups/_GroupUserSettings.scss";
 | 
					@import "./views/groups/_GroupUserSettings.scss";
 | 
				
			||||||
@import "./views/login/_InteractiveAuthEntryComponents.scss";
 | 
					@import "./views/login/_InteractiveAuthEntryComponents.scss";
 | 
				
			||||||
@import "./views/login/_ServerConfig.scss";
 | 
					@import "./views/login/_ServerConfig.scss";
 | 
				
			||||||
 | 
					@import "./views/messages/_CreateEvent.scss";
 | 
				
			||||||
@import "./views/messages/_DateSeparator.scss";
 | 
					@import "./views/messages/_DateSeparator.scss";
 | 
				
			||||||
@import "./views/messages/_MEmoteBody.scss";
 | 
					@import "./views/messages/_MEmoteBody.scss";
 | 
				
			||||||
@import "./views/messages/_MFileBody.scss";
 | 
					@import "./views/messages/_MFileBody.scss";
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										37
									
								
								res/css/views/messages/_CreateEvent.scss
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								res/css/views/messages/_CreateEvent.scss
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,37 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					Copyright 2018 New Vector Ltd
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Licensed under the Apache License, Version 2.0 (the "License");
 | 
				
			||||||
 | 
					you may not use this file except in compliance with the License.
 | 
				
			||||||
 | 
					You may obtain a copy of the License at
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    http://www.apache.org/licenses/LICENSE-2.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Unless required by applicable law or agreed to in writing, software
 | 
				
			||||||
 | 
					distributed under the License is distributed on an "AS IS" BASIS,
 | 
				
			||||||
 | 
					WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
				
			||||||
 | 
					See the License for the specific language governing permissions and
 | 
				
			||||||
 | 
					limitations under the License.
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.mx_CreateEvent {
 | 
				
			||||||
 | 
					    background-color: $info-plinth-bg-color;
 | 
				
			||||||
 | 
					    padding-left: 20px;
 | 
				
			||||||
 | 
					    padding-right: 20px;
 | 
				
			||||||
 | 
					    padding-top: 10px;
 | 
				
			||||||
 | 
					    padding-bottom: 10px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.mx_CreateEvent_image {
 | 
				
			||||||
 | 
					    float: left;
 | 
				
			||||||
 | 
					    padding-right: 20px;
 | 
				
			||||||
 | 
					    width: 72px;
 | 
				
			||||||
 | 
					    height: 34px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.mx_CreateEvent_header {
 | 
				
			||||||
 | 
					    font-weight: bold;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.mx_CreateEvent_link {
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										6
									
								
								res/img/room-continuation.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								res/img/room-continuation.svg
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,6 @@
 | 
				
			|||||||
 | 
					<svg width="72" height="34" viewBox="0 0 72 34" fill="none" xmlns="http://www.w3.org/2000/svg">
 | 
				
			||||||
 | 
					<path d="M1 7.26087V1H28.7889V7.26087M1 7.26087V33H28.7889V7.26087M1 7.26087H28.7889M4.16583 4.13043H16.8291" stroke="#454545" stroke-width="2" stroke-linejoin="round"/>
 | 
				
			||||||
 | 
					<path d="M43.2109 7.26087V1H70.9999V7.26087M43.2109 7.26087V33H70.9999V7.26087M43.2109 7.26087H70.9999M46.3768 4.13043H59.0401" stroke="#454545" stroke-width="2" stroke-linejoin="round"/>
 | 
				
			||||||
 | 
					<path d="M27.03 28.8262C34.2226 28.8262 36.0207 26.343 36.0207 25.1014V16.0996C36.0207 12.1264 43.6283 11.3401 47.432 11.4436" stroke="black" stroke-width="2"/>
 | 
				
			||||||
 | 
					</svg>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
		 After Width: | Height: | Size: 623 B  | 
							
								
								
									
										63
									
								
								src/components/views/messages/RoomCreate.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										63
									
								
								src/components/views/messages/RoomCreate.js
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,63 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					Copyright 2018 New Vector Ltd
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Licensed under the Apache License, Version 2.0 (the "License");
 | 
				
			||||||
 | 
					you may not use this file except in compliance with the License.
 | 
				
			||||||
 | 
					You may obtain a copy of the License at
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    http://www.apache.org/licenses/LICENSE-2.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Unless required by applicable law or agreed to in writing, software
 | 
				
			||||||
 | 
					distributed under the License is distributed on an "AS IS" BASIS,
 | 
				
			||||||
 | 
					WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
				
			||||||
 | 
					See the License for the specific language governing permissions and
 | 
				
			||||||
 | 
					limitations under the License.
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import React from 'react';
 | 
				
			||||||
 | 
					import PropTypes from 'prop-types';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import dis from '../../../dispatcher';
 | 
				
			||||||
 | 
					import { makeEventPermalink } from '../../../matrix-to';
 | 
				
			||||||
 | 
					import { _t } from '../../../languageHandler';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					module.exports = React.createClass({
 | 
				
			||||||
 | 
					    displayName: 'RoomCreate',
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    propTypes: {
 | 
				
			||||||
 | 
					        /* the MatrixEvent to show */
 | 
				
			||||||
 | 
					        mxEvent: PropTypes.object.isRequired,
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    _onLinkClicked: function(e) {
 | 
				
			||||||
 | 
					        e.preventDefault();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        const predecessor = this.props.mxEvent.getContent()['predecessor'];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        dis.dispatch({
 | 
				
			||||||
 | 
					            action: 'view_room',
 | 
				
			||||||
 | 
					            event_id: predecessor['event_id'],
 | 
				
			||||||
 | 
					            highlighted: true,
 | 
				
			||||||
 | 
					            room_id: predecessor['room_id'],
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    render: function() {
 | 
				
			||||||
 | 
					        const predecessor = this.props.mxEvent.getContent()['predecessor'];
 | 
				
			||||||
 | 
					        if (predecessor === undefined) {
 | 
				
			||||||
 | 
					            return <div />; // We should never have been instaniated in this case
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        return <div className="mx_CreateEvent">
 | 
				
			||||||
 | 
					            <img className="mx_CreateEvent_image" src="img/room-continuation.svg" />
 | 
				
			||||||
 | 
					            <div className="mx_CreateEvent_header">
 | 
				
			||||||
 | 
					                {_t("This room is a continuation of another conversation.")}
 | 
				
			||||||
 | 
					            </div>
 | 
				
			||||||
 | 
					            <a className="mx_CreateEvent_link"
 | 
				
			||||||
 | 
					                href={makeEventPermalink(predecessor['room_id'], predecessor['event_id'])}
 | 
				
			||||||
 | 
					                onClick={this._onLinkClicked}
 | 
				
			||||||
 | 
					            >
 | 
				
			||||||
 | 
					                {_t("Click here to see older messages.")}
 | 
				
			||||||
 | 
					            </a>
 | 
				
			||||||
 | 
					        </div>;
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
@ -47,6 +47,7 @@ const eventTileTypes = {
 | 
				
			|||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const stateEventTileTypes = {
 | 
					const stateEventTileTypes = {
 | 
				
			||||||
 | 
					    'm.room.create': 'messages.RoomCreate',
 | 
				
			||||||
    'm.room.member': 'messages.TextualEvent',
 | 
					    'm.room.member': 'messages.TextualEvent',
 | 
				
			||||||
    'm.room.name': 'messages.TextualEvent',
 | 
					    'm.room.name': 'messages.TextualEvent',
 | 
				
			||||||
    'm.room.avatar': 'messages.RoomAvatarEvent',
 | 
					    'm.room.avatar': 'messages.RoomAvatarEvent',
 | 
				
			||||||
@ -483,7 +484,7 @@ module.exports = withMatrixClient(React.createClass({
 | 
				
			|||||||
        const eventType = this.props.mxEvent.getType();
 | 
					        const eventType = this.props.mxEvent.getType();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // Info messages are basically information about commands processed on a room
 | 
					        // Info messages are basically information about commands processed on a room
 | 
				
			||||||
        const isInfoMessage = (eventType !== 'm.room.message' && eventType !== 'm.sticker');
 | 
					        const isInfoMessage = (eventType !== 'm.room.message' && eventType !== 'm.sticker' && eventType != 'm.room.create');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        const tileHandler = getHandlerTile(this.props.mxEvent);
 | 
					        const tileHandler = getHandlerTile(this.props.mxEvent);
 | 
				
			||||||
        // This shouldn't happen: the caller should check we support this type
 | 
					        // This shouldn't happen: the caller should check we support this type
 | 
				
			||||||
@ -535,6 +536,9 @@ module.exports = withMatrixClient(React.createClass({
 | 
				
			|||||||
        if (this.props.tileShape === "notif") {
 | 
					        if (this.props.tileShape === "notif") {
 | 
				
			||||||
            avatarSize = 24;
 | 
					            avatarSize = 24;
 | 
				
			||||||
            needsSenderProfile = true;
 | 
					            needsSenderProfile = true;
 | 
				
			||||||
 | 
					        } else if (tileHandler === 'messages.RoomCreate') {
 | 
				
			||||||
 | 
					            avatarSize = 0;
 | 
				
			||||||
 | 
					            needsSenderProfile = false;
 | 
				
			||||||
        } else if (isInfoMessage) {
 | 
					        } else if (isInfoMessage) {
 | 
				
			||||||
            // a small avatar, with no sender profile, for
 | 
					            // a small avatar, with no sender profile, for
 | 
				
			||||||
            // joins/parts/etc
 | 
					            // joins/parts/etc
 | 
				
			||||||
@ -745,6 +749,8 @@ module.exports.haveTileForEvent = function(e) {
 | 
				
			|||||||
    if (handler === undefined) return false;
 | 
					    if (handler === undefined) return false;
 | 
				
			||||||
    if (handler === 'messages.TextualEvent') {
 | 
					    if (handler === 'messages.TextualEvent') {
 | 
				
			||||||
        return TextForEvent.textForEvent(e) !== '';
 | 
					        return TextForEvent.textForEvent(e) !== '';
 | 
				
			||||||
 | 
					    } else if (handler === 'messages.RoomCreate') {
 | 
				
			||||||
 | 
					        return Boolean(e.getContent()['predecessor']);
 | 
				
			||||||
    } else {
 | 
					    } else {
 | 
				
			||||||
        return true;
 | 
					        return true;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
				
			|||||||
@ -607,6 +607,8 @@
 | 
				
			|||||||
    "%(senderDisplayName)s changed the avatar for %(roomName)s": "%(senderDisplayName)s changed the avatar for %(roomName)s",
 | 
					    "%(senderDisplayName)s changed the avatar for %(roomName)s": "%(senderDisplayName)s changed the avatar for %(roomName)s",
 | 
				
			||||||
    "%(senderDisplayName)s removed the room avatar.": "%(senderDisplayName)s removed the room avatar.",
 | 
					    "%(senderDisplayName)s removed the room avatar.": "%(senderDisplayName)s removed the room avatar.",
 | 
				
			||||||
    "%(senderDisplayName)s changed the room avatar to <img/>": "%(senderDisplayName)s changed the room avatar to <img/>",
 | 
					    "%(senderDisplayName)s changed the room avatar to <img/>": "%(senderDisplayName)s changed the room avatar to <img/>",
 | 
				
			||||||
 | 
					    "This room is a continuation of another conversation.": "This room is a continuation of another conversation.",
 | 
				
			||||||
 | 
					    "Click here to see older messages.": "Click here to see older messages.",
 | 
				
			||||||
    "Copied!": "Copied!",
 | 
					    "Copied!": "Copied!",
 | 
				
			||||||
    "Failed to copy": "Failed to copy",
 | 
					    "Failed to copy": "Failed to copy",
 | 
				
			||||||
    "Add an Integration": "Add an Integration",
 | 
					    "Add an Integration": "Add an Integration",
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user