Просмотр исходного кода

add conditional branch for reEdit

itizawa 6 лет назад
Родитель
Сommit
deef4b1e16
1 измененных файлов с 32 добавлено и 25 удалено
  1. 32 25
      src/client/js/components/PageComment/Comment.jsx

+ 32 - 25
src/client/js/components/PageComment/Comment.jsx

@@ -33,6 +33,7 @@ class Comment extends React.Component {
     this.state = {
     this.state = {
       html: '',
       html: '',
       isOlderRepliesShown: false,
       isOlderRepliesShown: false,
+      showReEditorIds: new Set(),
     };
     };
 
 
     this.isCurrentUserIsAuthor = this.isCurrentUserEqualsToAuthor.bind(this);
     this.isCurrentUserIsAuthor = this.isCurrentUserEqualsToAuthor.bind(this);
@@ -92,8 +93,9 @@ class Comment extends React.Component {
       this.isCurrentRevision() ? 'label-primary' : 'label-default'}`;
       this.isCurrentRevision() ? 'label-primary' : 'label-default'}`;
   }
   }
 
 
-  editBtnClickedHandler() {
-    this.props.editBtnClicked(this.props.comment);
+  editBtnClickedHandler(commentId) {
+    const ids = this.state.showReEditorIds.add(commentId);
+    this.setState({ showReEditorIds: ids });
   }
   }
 
 
   deleteBtnClickedHandler() {
   deleteBtnClickedHandler() {
@@ -223,9 +225,12 @@ class Comment extends React.Component {
 
 
   render() {
   render() {
     const comment = this.props.comment;
     const comment = this.props.comment;
+    const commentId = comment._id;
     const creator = comment.creator;
     const creator = comment.creator;
     const isMarkdown = comment.isMarkdown;
     const isMarkdown = comment.isMarkdown;
 
 
+    const showReEditor = this.state.showReEditorIds.has(commentId);
+
     const rootClassName = this.getRootClassName(comment);
     const rootClassName = this.getRootClassName(comment);
     const commentDate = distanceInWordsStrict(comment.createdAt, new Date());
     const commentDate = distanceInWordsStrict(comment.createdAt, new Date());
     const commentBody = isMarkdown ? this.renderRevisionBody() : this.renderText(comment.comment);
     const commentBody = isMarkdown ? this.renderRevisionBody() : this.renderText(comment.comment);
@@ -242,31 +247,33 @@ class Comment extends React.Component {
     return (
     return (
       <React.Fragment>
       <React.Fragment>
 
 
-        <div className={rootClassName}>
-          <UserPicture user={creator} />
-          <div className="page-comment-main">
-            <div className="page-comment-creator">
-              <Username user={creator} />
-            </div>
-            <div className="page-comment-body">{commentBody}</div>
-            <div className="page-comment-meta">
-              <OverlayTrigger overlay={commentDateTooltip} placement="bottom">
-                <span>{commentDate}</span>
-              </OverlayTrigger>
-              <span className="ml-2"><a className={revisionLavelClassName} href={revHref}>{revFirst8Letters}</a></span>
-            </div>
-            <div className="page-comment-control">
-              {/* TODO GW-63 adjust layout */}
-              <button type="button" className="btn btn-link" onClick={this.editBtnClickedHandler}>
-                <i className="ti-pencil"></i>
-              </button>
-              <button type="button" className="btn btn-link" onClick={this.deleteBtnClickedHandler}>
-                <i className="ti-close"></i>
-              </button>
+        {showReEditor ? (<p>reEditは押された</p>) : (
+          <div className={rootClassName}>
+            <UserPicture user={creator} />
+            <div className="page-comment-main">
+              <div className="page-comment-creator">
+                <Username user={creator} />
+              </div>
+              <div className="page-comment-body">{commentBody}</div>
+              <div className="page-comment-meta">
+                <OverlayTrigger overlay={commentDateTooltip} placement="bottom">
+                  <span>{commentDate}</span>
+                </OverlayTrigger>
+                <span className="ml-2"><a className={revisionLavelClassName} href={revHref}>{revFirst8Letters}</a></span>
+              </div>
+              <div className="page-comment-control">
+                {/* TODO GW-63 adjust layout */}
+                <button type="button" className="btn btn-link" onClick={() => { this.editBtnClickedHandler(commentId) }}>
+                  <i className="ti-pencil"></i>
+                </button>
+                <button type="button" className="btn btn-link" onClick={this.deleteBtnClickedHandler}>
+                  <i className="ti-close"></i>
+                </button>
+              </div>
             </div>
             </div>
           </div>
           </div>
-        </div>
-
+        )
+      }
         {this.renderReplies()}
         {this.renderReplies()}
 
 
       </React.Fragment>
       </React.Fragment>