|
@@ -89,6 +89,14 @@ export default class Comment extends React.Component {
|
|
|
);
|
|
);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ toggleOlderReplies() {
|
|
|
|
|
+ this.setState((prevState) => {
|
|
|
|
|
+ return {
|
|
|
|
|
+ showOlderReplies: !prevState.showOlderReplies,
|
|
|
|
|
+ };
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
renderHtml(markdown) {
|
|
renderHtml(markdown) {
|
|
|
const context = {
|
|
const context = {
|
|
|
markdown,
|
|
markdown,
|
|
@@ -126,11 +134,26 @@ export default class Comment extends React.Component {
|
|
|
if (!isLayoutTypeGrowi) {
|
|
if (!isLayoutTypeGrowi) {
|
|
|
replyList = replyList.slice().reverse();
|
|
replyList = replyList.slice().reverse();
|
|
|
}
|
|
}
|
|
|
- return replyList.map((reply) => {
|
|
|
|
|
- return (
|
|
|
|
|
- <div key={reply._id} className="col-xs-offset-1 col-xs-11 col-sm-offset-1 col-sm-11 col-md-offset-1 col-md-11 col-lg-offset-1 col-lg-11">
|
|
|
|
|
|
|
+
|
|
|
|
|
+ const hiddenRepliesCount = replyList.length <= 2 ? 0 : replyList.length - 2;
|
|
|
|
|
+
|
|
|
|
|
+ const iconForOlder = (this.state.isLayoutTypeGrowi)
|
|
|
|
|
+ ? <i className="fa fa-angle-double-up"></i>
|
|
|
|
|
+ : <i className="fa fa-angle-double-down"></i>;
|
|
|
|
|
+ const toggleOlder = (hiddenRepliesCount === 0)
|
|
|
|
|
+ ? <div></div>
|
|
|
|
|
+ : (
|
|
|
|
|
+ <a className="page-comments-list-toggle-older text-center" data-toggle="collapse" href="#page-comments-list-older">
|
|
|
|
|
+ {iconForOlder} Show Older Replies {iconForOlder}
|
|
|
|
|
+ </a>
|
|
|
|
|
+ );
|
|
|
|
|
+
|
|
|
|
|
+ const toggleElements = [];
|
|
|
|
|
+ for (let i = 0; i < hiddenRepliesCount; i++) {
|
|
|
|
|
+ toggleElements.push(
|
|
|
|
|
+ <div key={replyList[i]._id} className="col-xs-offset-1 col-xs-11 col-sm-offset-1 col-sm-11 col-md-offset-1 col-md-11 col-lg-offset-1 col-lg-11">
|
|
|
<Comment
|
|
<Comment
|
|
|
- comment={reply}
|
|
|
|
|
|
|
+ comment={replyList[i]}
|
|
|
deleteBtnClicked={this.props.deleteBtnClicked}
|
|
deleteBtnClicked={this.props.deleteBtnClicked}
|
|
|
crowiRenderer={this.props.crowiRenderer}
|
|
crowiRenderer={this.props.crowiRenderer}
|
|
|
crowi={this.props.crowi}
|
|
crowi={this.props.crowi}
|
|
@@ -138,9 +161,40 @@ export default class Comment extends React.Component {
|
|
|
revisionCreatedAt={this.props.revisionCreatedAt}
|
|
revisionCreatedAt={this.props.revisionCreatedAt}
|
|
|
revisionId={this.props.revisionId}
|
|
revisionId={this.props.revisionId}
|
|
|
/>
|
|
/>
|
|
|
- </div>
|
|
|
|
|
|
|
+ </div>,
|
|
|
);
|
|
);
|
|
|
- });
|
|
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ const toggleBlock = (
|
|
|
|
|
+ <div className="page-comments-list-older collapse out" id="page-comments-list-older">
|
|
|
|
|
+ {toggleElements}
|
|
|
|
|
+ </div>
|
|
|
|
|
+ );
|
|
|
|
|
+
|
|
|
|
|
+ const shownBlock = [];
|
|
|
|
|
+ for (let i = hiddenRepliesCount; i < replyList.length; i++) {
|
|
|
|
|
+ shownBlock.push(
|
|
|
|
|
+ <div key={replyList[i]._id} className="col-xs-offset-1 col-xs-11 col-sm-offset-1 col-sm-11 col-md-offset-1 col-md-11 col-lg-offset-1 col-lg-11">
|
|
|
|
|
+ <Comment
|
|
|
|
|
+ comment={replyList[i]}
|
|
|
|
|
+ deleteBtnClicked={this.props.deleteBtnClicked}
|
|
|
|
|
+ crowiRenderer={this.props.crowiRenderer}
|
|
|
|
|
+ crowi={this.props.crowi}
|
|
|
|
|
+ replyList={[]}
|
|
|
|
|
+ revisionCreatedAt={this.props.revisionCreatedAt}
|
|
|
|
|
+ revisionId={this.props.revisionId}
|
|
|
|
|
+ />
|
|
|
|
|
+ </div>,
|
|
|
|
|
+ );
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ return (
|
|
|
|
|
+ <div>
|
|
|
|
|
+ {toggleBlock}
|
|
|
|
|
+ {toggleOlder}
|
|
|
|
|
+ {shownBlock}
|
|
|
|
|
+ </div>
|
|
|
|
|
+ );
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
render() {
|
|
render() {
|