mirror of
https://github.com/vector-im/element-web.git
synced 2024-11-18 06:35:35 +08:00
Add dock for pinned messages at the top of the room
Signed-off-by: Travis Ralston <travpc@gmail.com>
This commit is contained in:
parent
3a58e1c066
commit
874d383a8f
@ -1128,6 +1128,10 @@ module.exports = React.createClass({
|
|||||||
return ret;
|
return ret;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
onPinnedClick: function() {
|
||||||
|
this.setState({showingPinned: !this.state.showingPinned, searching: false});
|
||||||
|
},
|
||||||
|
|
||||||
onSettingsClick: function() {
|
onSettingsClick: function() {
|
||||||
this.showSettings(true);
|
this.showSettings(true);
|
||||||
},
|
},
|
||||||
@ -1248,7 +1252,7 @@ module.exports = React.createClass({
|
|||||||
},
|
},
|
||||||
|
|
||||||
onSearchClick: function() {
|
onSearchClick: function() {
|
||||||
this.setState({ searching: true });
|
this.setState({ searching: true, showingPinned: false });
|
||||||
},
|
},
|
||||||
|
|
||||||
onCancelSearchClick: function() {
|
onCancelSearchClick: function() {
|
||||||
@ -1447,6 +1451,7 @@ module.exports = React.createClass({
|
|||||||
const RoomSettings = sdk.getComponent("rooms.RoomSettings");
|
const RoomSettings = sdk.getComponent("rooms.RoomSettings");
|
||||||
const AuxPanel = sdk.getComponent("rooms.AuxPanel");
|
const AuxPanel = sdk.getComponent("rooms.AuxPanel");
|
||||||
const SearchBar = sdk.getComponent("rooms.SearchBar");
|
const SearchBar = sdk.getComponent("rooms.SearchBar");
|
||||||
|
const PinnedEventsPanel = sdk.getComponent("rooms.PinnedEventsPanel");
|
||||||
const ScrollPanel = sdk.getComponent("structures.ScrollPanel");
|
const ScrollPanel = sdk.getComponent("structures.ScrollPanel");
|
||||||
const TintableSvg = sdk.getComponent("elements.TintableSvg");
|
const TintableSvg = sdk.getComponent("elements.TintableSvg");
|
||||||
const RoomPreviewBar = sdk.getComponent("rooms.RoomPreviewBar");
|
const RoomPreviewBar = sdk.getComponent("rooms.RoomPreviewBar");
|
||||||
@ -1587,7 +1592,11 @@ module.exports = React.createClass({
|
|||||||
aux = <ForwardMessage onCancelClick={this.onCancelClick} />;
|
aux = <ForwardMessage onCancelClick={this.onCancelClick} />;
|
||||||
} else if (this.state.searching) {
|
} else if (this.state.searching) {
|
||||||
hideCancel = true; // has own cancel
|
hideCancel = true; // has own cancel
|
||||||
aux = <SearchBar ref="search_bar" searchInProgress={this.state.searchInProgress } onCancelClick={this.onCancelSearchClick} onSearch={this.onSearch}/>;
|
aux = <SearchBar ref="search_bar" searchInProgress={this.state.searchInProgress}
|
||||||
|
onCancelClick={this.onCancelSearchClick} onSearch={this.onSearch}/>;
|
||||||
|
} else if (this.state.showingPinned) {
|
||||||
|
hideCancel = true; // has own cancel
|
||||||
|
aux = <PinnedEventsPanel room={this.state.room} />;
|
||||||
} else if (!myMember || myMember.membership !== "join") {
|
} else if (!myMember || myMember.membership !== "join") {
|
||||||
// We do have a room object for this room, but we're not currently in it.
|
// We do have a room object for this room, but we're not currently in it.
|
||||||
// We may have a 3rd party invite to it.
|
// We may have a 3rd party invite to it.
|
||||||
@ -1761,6 +1770,7 @@ module.exports = React.createClass({
|
|||||||
collapsedRhs={ this.props.collapsedRhs }
|
collapsedRhs={ this.props.collapsedRhs }
|
||||||
onSearchClick={this.onSearchClick}
|
onSearchClick={this.onSearchClick}
|
||||||
onSettingsClick={this.onSettingsClick}
|
onSettingsClick={this.onSettingsClick}
|
||||||
|
onPinnedClick={this.onPinnedClick}
|
||||||
onSaveClick={this.onSettingsSaveClick}
|
onSaveClick={this.onSettingsSaveClick}
|
||||||
onCancelClick={(aux && !hideCancel) ? this.onCancelClick : null}
|
onCancelClick={(aux && !hideCancel) ? this.onCancelClick : null}
|
||||||
onForgetClick={(myMember && myMember.membership === "leave") ? this.onForgetClick : null}
|
onForgetClick={(myMember && myMember.membership === "leave") ? this.onForgetClick : null}
|
||||||
|
@ -45,6 +45,7 @@ module.exports = React.createClass({
|
|||||||
inRoom: React.PropTypes.bool,
|
inRoom: React.PropTypes.bool,
|
||||||
collapsedRhs: React.PropTypes.bool,
|
collapsedRhs: React.PropTypes.bool,
|
||||||
onSettingsClick: React.PropTypes.func,
|
onSettingsClick: React.PropTypes.func,
|
||||||
|
onPinnedClick: React.PropTypes.func,
|
||||||
onSaveClick: React.PropTypes.func,
|
onSaveClick: React.PropTypes.func,
|
||||||
onSearchClick: React.PropTypes.func,
|
onSearchClick: React.PropTypes.func,
|
||||||
onLeaveClick: React.PropTypes.func,
|
onLeaveClick: React.PropTypes.func,
|
||||||
@ -172,6 +173,7 @@ module.exports = React.createClass({
|
|||||||
let spinner = null;
|
let spinner = null;
|
||||||
let saveButton = null;
|
let saveButton = null;
|
||||||
let settingsButton = null;
|
let settingsButton = null;
|
||||||
|
let pinnedEventsButton = null;
|
||||||
|
|
||||||
let canSetRoomName;
|
let canSetRoomName;
|
||||||
let canSetRoomAvatar;
|
let canSetRoomAvatar;
|
||||||
@ -290,6 +292,13 @@ module.exports = React.createClass({
|
|||||||
</AccessibleButton>;
|
</AccessibleButton>;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (this.props.onPinnedClick) {
|
||||||
|
pinnedEventsButton =
|
||||||
|
<AccessibleButton className="mx_RoomHeader_button" onClick={this.props.onPinnedClick} title={_t("Pinned Messages")}>
|
||||||
|
<TintableSvg src="img/icons-pin.svg" width="16" height="16" />
|
||||||
|
</AccessibleButton>;
|
||||||
|
}
|
||||||
|
|
||||||
// var leave_button;
|
// var leave_button;
|
||||||
// if (this.props.onLeaveClick) {
|
// if (this.props.onLeaveClick) {
|
||||||
// leave_button =
|
// leave_button =
|
||||||
@ -334,6 +343,7 @@ module.exports = React.createClass({
|
|||||||
rightRow =
|
rightRow =
|
||||||
<div className="mx_RoomHeader_rightRow">
|
<div className="mx_RoomHeader_rightRow">
|
||||||
{ settingsButton }
|
{ settingsButton }
|
||||||
|
{ pinnedEventsButton }
|
||||||
{ manageIntegsButton }
|
{ manageIntegsButton }
|
||||||
{ forgetButton }
|
{ forgetButton }
|
||||||
{ searchButton }
|
{ searchButton }
|
||||||
|
@ -875,6 +875,7 @@
|
|||||||
"Add rooms to the group summary": "Add rooms to the group summary",
|
"Add rooms to the group summary": "Add rooms to the group summary",
|
||||||
"Which rooms would you like to add to this summary?": "Which rooms would you like to add to this summary?",
|
"Which rooms would you like to add to this summary?": "Which rooms would you like to add to this summary?",
|
||||||
"Room name or alias": "Room name or alias",
|
"Room name or alias": "Room name or alias",
|
||||||
|
"Pinned Messages": "Pinned Messages",
|
||||||
"%(senderName)s changed the pinned messages for the room.": "%(senderName)s changed the pinned messages for the room.",
|
"%(senderName)s changed the pinned messages for the room.": "%(senderName)s changed the pinned messages for the room.",
|
||||||
"You are an administrator of this group": "You are an administrator of this group",
|
"You are an administrator of this group": "You are an administrator of this group",
|
||||||
"Failed to add the following rooms to the summary of %(groupId)s:": "Failed to add the following rooms to the summary of %(groupId)s:",
|
"Failed to add the following rooms to the summary of %(groupId)s:": "Failed to add the following rooms to the summary of %(groupId)s:",
|
||||||
|
@ -837,6 +837,7 @@
|
|||||||
"+example:%(domain)s": "+example:%(domain)s",
|
"+example:%(domain)s": "+example:%(domain)s",
|
||||||
"Group IDs must be of the form +localpart:%(domain)s": "Group IDs must be of the form +localpart:%(domain)s",
|
"Group IDs must be of the form +localpart:%(domain)s": "Group IDs must be of the form +localpart:%(domain)s",
|
||||||
"Room creation failed": "Room creation failed",
|
"Room creation failed": "Room creation failed",
|
||||||
|
"Pinned Messages": "Pinned Messages",
|
||||||
"You are a member of these groups:": "You are a member of these groups:",
|
"You are a member of these groups:": "You are a member of these groups:",
|
||||||
"Create a group to represent your community! Define a set of rooms and your own custom homepage to mark out your space in the Matrix universe.": "Create a group to represent your community! Define a set of rooms and your own custom homepage to mark out your space in the Matrix universe.",
|
"Create a group to represent your community! Define a set of rooms and your own custom homepage to mark out your space in the Matrix universe.": "Create a group to represent your community! Define a set of rooms and your own custom homepage to mark out your space in the Matrix universe.",
|
||||||
"Join an existing group": "Join an existing group",
|
"Join an existing group": "Join an existing group",
|
||||||
|
Loading…
Reference in New Issue
Block a user