finishing touches, all seems to work
This commit is contained in:
@@ -3190,6 +3190,10 @@ ul.phone-country-selector span.country {
|
|||||||
#mountPoint {
|
#mountPoint {
|
||||||
padding: 0;
|
padding: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.pinned {
|
||||||
|
min-width: 16rem;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (max-width: 640px) {
|
@media (max-width: 640px) {
|
||||||
@@ -3223,4 +3227,13 @@ ul.phone-country-selector span.country {
|
|||||||
/* Just an indicator that the screen is in mobile mode */
|
/* Just an indicator that the screen is in mobile mode */
|
||||||
transition-property: -tinode-mobile;
|
transition-property: -tinode-mobile;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#pinned-wrapper {
|
||||||
|
height: 3.5rem;
|
||||||
|
margin: 0.25rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pinned {
|
||||||
|
min-width: unset;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Vendored
+1
-1
File diff suppressed because one or more lines are too long
+24
-12
@@ -362,7 +362,6 @@ class MessagesView extends React.Component {
|
|||||||
peerMessagingDisabled: false
|
peerMessagingDisabled: false
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
console.log("getDerivedStateFromProps", nextProps.topic, prevState.topic);
|
|
||||||
Object.assign(nextState, {
|
Object.assign(nextState, {
|
||||||
minSeqId: topic.minMsgSeq(),
|
minSeqId: topic.minMsgSeq(),
|
||||||
maxSeqId: topic.maxMsgSeq(),
|
maxSeqId: topic.maxMsgSeq(),
|
||||||
@@ -1634,13 +1633,16 @@ class MessagesView extends React.Component {
|
|||||||
}<ContactBadges badges={icon_badges} /></div>
|
}<ContactBadges badges={icon_badges} /></div>
|
||||||
<div id="topic-last-seen">{lastSeen}</div>
|
<div id="topic-last-seen">{lastSeen}</div>
|
||||||
</div>
|
</div>
|
||||||
<PinnedMessages
|
{!this.props.displayMobile ?
|
||||||
tinode={this.props.tinode}
|
<PinnedMessages
|
||||||
messages={pinnedMessages}
|
tinode={this.props.tinode}
|
||||||
selected={this.state.selectedPin}
|
messages={pinnedMessages}
|
||||||
setSelected={index => this.setState({selectedPin: index})}
|
selected={this.state.selectedPin}
|
||||||
onSelected={this.handleQuoteClick}
|
isAdmin={this.state.isAdmin}
|
||||||
onCancel={this.handleUnpinMessage} />
|
setSelected={index => this.setState({selectedPin: index})}
|
||||||
|
onSelected={this.handleQuoteClick}
|
||||||
|
onCancel={this.handleUnpinMessage} />
|
||||||
|
: null}
|
||||||
{groupTopic ?
|
{groupTopic ?
|
||||||
<GroupSubs
|
<GroupSubs
|
||||||
tinode={this.props.tinode}
|
tinode={this.props.tinode}
|
||||||
@@ -1654,10 +1656,20 @@ class MessagesView extends React.Component {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{this.props.displayMobile ?
|
{this.props.displayMobile ?
|
||||||
<ErrorPanel
|
<>
|
||||||
level={this.props.errorLevel}
|
<PinnedMessages
|
||||||
text={this.props.errorText}
|
tinode={this.props.tinode}
|
||||||
onClearError={this.props.onError} />
|
messages={pinnedMessages}
|
||||||
|
selected={this.state.selectedPin}
|
||||||
|
isAdmin={this.state.isAdmin}
|
||||||
|
setSelected={index => this.setState({selectedPin: index})}
|
||||||
|
onSelected={this.handleQuoteClick}
|
||||||
|
onCancel={this.handleUnpinMessage} />
|
||||||
|
<ErrorPanel
|
||||||
|
level={this.props.errorLevel}
|
||||||
|
text={this.props.errorText}
|
||||||
|
onClearError={this.props.onError} />
|
||||||
|
</>
|
||||||
: null}
|
: null}
|
||||||
<LoadSpinner show={this.state.fetchingMessages} />
|
<LoadSpinner show={this.state.fetchingMessages} />
|
||||||
{messagesComponent}
|
{messagesComponent}
|
||||||
|
|||||||
@@ -36,7 +36,6 @@ class PinnedMessages extends React.PureComponent {
|
|||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
const idx = Math.max(this.props.selected - 1, 0);
|
const idx = Math.max(this.props.selected - 1, 0);
|
||||||
if (idx != this.props.selected) {
|
if (idx != this.props.selected) {
|
||||||
console.log("Move selection to ", idx);
|
|
||||||
this.props.setSelected(idx);
|
this.props.setSelected(idx);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -46,7 +45,6 @@ class PinnedMessages extends React.PureComponent {
|
|||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
const idx = Math.min(this.props.selected + 1, (this.props.messages || []).length - 1);
|
const idx = Math.min(this.props.selected + 1, (this.props.messages || []).length - 1);
|
||||||
if (idx != this.props.selected) {
|
if (idx != this.props.selected) {
|
||||||
console.log("Move selection to ", idx);
|
|
||||||
this.props.setSelected(idx);
|
this.props.setSelected(idx);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -67,9 +65,12 @@ class PinnedMessages extends React.PureComponent {
|
|||||||
|
|
||||||
return shown ?
|
return shown ?
|
||||||
(<div id="pinned-wrapper">
|
(<div id="pinned-wrapper">
|
||||||
<div className="cancel">
|
{this.props.isAdmin ?
|
||||||
<a href="#" onClick={this.handleCancel}><i className="material-icons gray">close</i></a>
|
<div className="cancel">
|
||||||
</div>
|
<a href="#" onClick={this.handleCancel}><i className="material-icons gray">close</i></a>
|
||||||
|
</div> :
|
||||||
|
<div><i className="material-icons gray">push_pin</i></div>
|
||||||
|
}
|
||||||
<div className="pinned-scroll">{dots}</div>
|
<div className="pinned-scroll">{dots}</div>
|
||||||
<div className="pinned" onClick={this.handleSelected}>{shown}</div>
|
<div className="pinned" onClick={this.handleSelected}>{shown}</div>
|
||||||
{selected > 0 ?
|
{selected > 0 ?
|
||||||
|
|||||||
+19
-9
@@ -5390,7 +5390,6 @@ class MessagesView extends (react__WEBPACK_IMPORTED_MODULE_0___default().Compone
|
|||||||
peerMessagingDisabled: false
|
peerMessagingDisabled: false
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
console.log("getDerivedStateFromProps", nextProps.topic, prevState.topic);
|
|
||||||
Object.assign(nextState, {
|
Object.assign(nextState, {
|
||||||
minSeqId: topic.minMsgSeq(),
|
minSeqId: topic.minMsgSeq(),
|
||||||
maxSeqId: topic.maxMsgSeq(),
|
maxSeqId: topic.maxMsgSeq(),
|
||||||
@@ -6536,16 +6535,17 @@ class MessagesView extends (react__WEBPACK_IMPORTED_MODULE_0___default().Compone
|
|||||||
badges: icon_badges
|
badges: icon_badges
|
||||||
})), react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
|
})), react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
|
||||||
id: "topic-last-seen"
|
id: "topic-last-seen"
|
||||||
}, lastSeen)), react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_widgets_pinned_messages_jsx__WEBPACK_IMPORTED_MODULE_15__["default"], {
|
}, lastSeen)), !this.props.displayMobile ? react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_widgets_pinned_messages_jsx__WEBPACK_IMPORTED_MODULE_15__["default"], {
|
||||||
tinode: this.props.tinode,
|
tinode: this.props.tinode,
|
||||||
messages: pinnedMessages,
|
messages: pinnedMessages,
|
||||||
selected: this.state.selectedPin,
|
selected: this.state.selectedPin,
|
||||||
|
isAdmin: this.state.isAdmin,
|
||||||
setSelected: index => this.setState({
|
setSelected: index => this.setState({
|
||||||
selectedPin: index
|
selectedPin: index
|
||||||
}),
|
}),
|
||||||
onSelected: this.handleQuoteClick,
|
onSelected: this.handleQuoteClick,
|
||||||
onCancel: this.handleUnpinMessage
|
onCancel: this.handleUnpinMessage
|
||||||
}), groupTopic ? react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_widgets_group_subs_jsx__WEBPACK_IMPORTED_MODULE_8__["default"], {
|
}) : null, groupTopic ? react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_widgets_group_subs_jsx__WEBPACK_IMPORTED_MODULE_8__["default"], {
|
||||||
tinode: this.props.tinode,
|
tinode: this.props.tinode,
|
||||||
subscribers: this.state.onlineSubs
|
subscribers: this.state.onlineSubs
|
||||||
}) : null, react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", null, react__WEBPACK_IMPORTED_MODULE_0___default().createElement("a", {
|
}) : null, react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", null, react__WEBPACK_IMPORTED_MODULE_0___default().createElement("a", {
|
||||||
@@ -6553,11 +6553,21 @@ class MessagesView extends (react__WEBPACK_IMPORTED_MODULE_0___default().Compone
|
|||||||
onClick: this.handleContextClick
|
onClick: this.handleContextClick
|
||||||
}, react__WEBPACK_IMPORTED_MODULE_0___default().createElement("i", {
|
}, react__WEBPACK_IMPORTED_MODULE_0___default().createElement("i", {
|
||||||
className: "material-icons"
|
className: "material-icons"
|
||||||
}, "more_vert")))), this.props.displayMobile ? react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_widgets_error_panel_jsx__WEBPACK_IMPORTED_MODULE_7__["default"], {
|
}, "more_vert")))), this.props.displayMobile ? react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_widgets_pinned_messages_jsx__WEBPACK_IMPORTED_MODULE_15__["default"], {
|
||||||
|
tinode: this.props.tinode,
|
||||||
|
messages: pinnedMessages,
|
||||||
|
selected: this.state.selectedPin,
|
||||||
|
isAdmin: this.state.isAdmin,
|
||||||
|
setSelected: index => this.setState({
|
||||||
|
selectedPin: index
|
||||||
|
}),
|
||||||
|
onSelected: this.handleQuoteClick,
|
||||||
|
onCancel: this.handleUnpinMessage
|
||||||
|
}), react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_widgets_error_panel_jsx__WEBPACK_IMPORTED_MODULE_7__["default"], {
|
||||||
level: this.props.errorLevel,
|
level: this.props.errorLevel,
|
||||||
text: this.props.errorText,
|
text: this.props.errorText,
|
||||||
onClearError: this.props.onError
|
onClearError: this.props.onError
|
||||||
}) : null, react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_widgets_load_spinner_jsx__WEBPACK_IMPORTED_MODULE_12__["default"], {
|
})) : null, react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_widgets_load_spinner_jsx__WEBPACK_IMPORTED_MODULE_12__["default"], {
|
||||||
show: this.state.fetchingMessages
|
show: this.state.fetchingMessages
|
||||||
}), messagesComponent, this.state.dragging && this.isDragEnabled() ? react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
|
}), messagesComponent, this.state.dragging && this.isDragEnabled() ? react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
|
||||||
className: "drag-n-drop"
|
className: "drag-n-drop"
|
||||||
@@ -14828,7 +14838,6 @@ class PinnedMessages extends (react__WEBPACK_IMPORTED_MODULE_0___default().PureC
|
|||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
const idx = Math.max(this.props.selected - 1, 0);
|
const idx = Math.max(this.props.selected - 1, 0);
|
||||||
if (idx != this.props.selected) {
|
if (idx != this.props.selected) {
|
||||||
console.log("Move selection to ", idx);
|
|
||||||
this.props.setSelected(idx);
|
this.props.setSelected(idx);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -14837,7 +14846,6 @@ class PinnedMessages extends (react__WEBPACK_IMPORTED_MODULE_0___default().PureC
|
|||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
const idx = Math.min(this.props.selected + 1, (this.props.messages || []).length - 1);
|
const idx = Math.min(this.props.selected + 1, (this.props.messages || []).length - 1);
|
||||||
if (idx != this.props.selected) {
|
if (idx != this.props.selected) {
|
||||||
console.log("Move selection to ", idx);
|
|
||||||
this.props.setSelected(idx);
|
this.props.setSelected(idx);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -14858,14 +14866,16 @@ class PinnedMessages extends (react__WEBPACK_IMPORTED_MODULE_0___default().PureC
|
|||||||
});
|
});
|
||||||
return shown ? react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
|
return shown ? react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
|
||||||
id: "pinned-wrapper"
|
id: "pinned-wrapper"
|
||||||
}, react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
|
}, this.props.isAdmin ? react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
|
||||||
className: "cancel"
|
className: "cancel"
|
||||||
}, react__WEBPACK_IMPORTED_MODULE_0___default().createElement("a", {
|
}, react__WEBPACK_IMPORTED_MODULE_0___default().createElement("a", {
|
||||||
href: "#",
|
href: "#",
|
||||||
onClick: this.handleCancel
|
onClick: this.handleCancel
|
||||||
}, react__WEBPACK_IMPORTED_MODULE_0___default().createElement("i", {
|
}, react__WEBPACK_IMPORTED_MODULE_0___default().createElement("i", {
|
||||||
className: "material-icons gray"
|
className: "material-icons gray"
|
||||||
}, "close"))), react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
|
}, "close"))) : react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", null, react__WEBPACK_IMPORTED_MODULE_0___default().createElement("i", {
|
||||||
|
className: "material-icons gray"
|
||||||
|
}, "push_pin")), react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
|
||||||
className: "pinned-scroll"
|
className: "pinned-scroll"
|
||||||
}, dots), react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
|
}, dots), react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
|
||||||
className: "pinned",
|
className: "pinned",
|
||||||
|
|||||||
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
Reference in New Issue
Block a user