aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Vitaly Takmazov2018-06-20 17:57:33 +0300
committerGravatar Vitaly Takmazov2023-01-13 10:37:53 +0300
commit17972c0bf27c9b80836dbe663d8f50b7aab01c92 (patch)
treebf599205f806a0564d7527be8409b64554f19c3c
parent7b763f412e358eb75ade1d0a7d466fe8d367f76d (diff)
push message to thread state
-rw-r--r--vnext/src/components/Message.js4
-rw-r--r--vnext/src/components/Thread.js11
2 files changed, 9 insertions, 6 deletions
diff --git a/vnext/src/components/Message.js b/vnext/src/components/Message.js
index 8e060aa8..e9d3eebd 100644
--- a/vnext/src/components/Message.js
+++ b/vnext/src/components/Message.js
@@ -22,7 +22,7 @@ export default function Message(props) {
</span>
<Avatar user={msg.user} />
<div className="msg-ts">
- <Link to={{ pathname: `/${msg.user.uname}/${msg.mid}` }}>
+ <Link to={{ pathname: `/${msg.user.uname}/${msg.mid}`, state: {msg: msg} }}>
<time itemProp="datePublished dateModified" itemType="http://schema.org/Date" dateTime={msg.timestamp}
title={moment.utc(msg.timestamp).local().format('lll')}>
{moment.utc(msg.timestamp).fromNow()}
@@ -69,7 +69,7 @@ export default function Message(props) {
)}
{!Boolean(msg.ReadOnly) | (visitor.uid === msg.user.uid) && (
<React.Fragment>
- <Link to={{ pathname: `/${msg.user.uname}/${msg.mid}` }} className="a-comment msg-button">
+ <Link to={{ pathname: `/${msg.user.uname}/${msg.mid}`, state: {msg: msg} }} className="a-comment msg-button">
<span className="msg-button-icon">
<Icon name="ei-comment" size="s" />
{msg.replies > 0 &&
diff --git a/vnext/src/components/Thread.js b/vnext/src/components/Thread.js
index a1aaa837..a404cf57 100644
--- a/vnext/src/components/Thread.js
+++ b/vnext/src/components/Thread.js
@@ -13,8 +13,9 @@ import { format } from '../utils/embed';
export default class Thread extends React.Component {
constructor(props) {
super(props);
+ const { msg } = this.props.location.state || {}
this.state = {
- msg: {},
+ msg: msg,
replies: [],
active: 0
};
@@ -53,7 +54,7 @@ export default class Thread extends React.Component {
});
}
loaded() {
- return this.state.msg.mid;
+ return this.state.msg && this.state.msg.mid;
}
setActive(msg, event) {
this.setState({
@@ -85,7 +86,7 @@ export default class Thread extends React.Component {
<ul id="0">
<li className="msg msgthread">
{
- this.loaded() ? (
+ this.state.msg ? (
<Message data={msg} visitor={this.props.visitor}>
{ this.state.active === (msg.rid || 0) && <MessageInput data={msg} onSend={this.postComment} /> }
<Recommendations src={msg.recommendations} />
@@ -97,7 +98,7 @@ export default class Thread extends React.Component {
</li>
</ul>
{
- this.loaded() && (
+ this.loaded() ? (
<React.Fragment>
<div className="title2">
{
@@ -165,6 +166,8 @@ export default class Thread extends React.Component {
}
</ul>
</React.Fragment>
+ ) : (
+ <Spinner /><Spinner /><Spinner />
)
}
</React.Fragment>