From 812e23d0fa7a9e9d86c8f08044ff6a54354bb73c Mon Sep 17 00:00:00 2001 From: danitw Date: Tue, 1 Feb 2022 11:59:35 -0300 Subject: [PATCH 1/7] add dependency bcrypt because meteor request --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index e5179982..eff3246b 100644 --- a/package.json +++ b/package.json @@ -16,6 +16,7 @@ "@mapbox/leaflet-pip": "^1.1.0", "@sentry/node": "^5.21.1", "axios": "^0.21.1", + "bcrypt": "^5.0.1", "body-parser": "^1.19.0", "cep-promise": "^3.0.9", "circle-to-polygon": "^2.0.2", From fe25b72ebecca20dabb8038e616000a34064bc80 Mon Sep 17 00:00:00 2001 From: danitw Date: Tue, 1 Feb 2022 12:06:15 -0300 Subject: [PATCH 2/7] making comments selectable with a checkbox --- imports/ui2/components/Comment.jsx | 38 +++++++++++++++++++++++++- imports/ui2/components/CommentList.jsx | 5 ++-- imports/ui2/pages/Comments.jsx | 18 ++++++++++-- 3 files changed, 55 insertions(+), 6 deletions(-) diff --git a/imports/ui2/components/Comment.jsx b/imports/ui2/components/Comment.jsx index 5366cc88..fbf82810 100644 --- a/imports/ui2/components/Comment.jsx +++ b/imports/ui2/components/Comment.jsx @@ -217,6 +217,13 @@ export const getFBCommentUrl = (comment) => { }; class Comment extends Component { + constructor(props) { + super(props); + this.state = { + selectedComment: false + }; + } + static Count = CountIntl; action = () => { const { comment } = this.props; @@ -295,11 +302,40 @@ class Comment extends Component { return ["fab", "facebook-square"]; } }; + + _handleModifySelectedComment = (id) => { + const { handleSelectedComments} = this.props; + handleSelectedComments(id) + } + + _handleChecked = (selectedComments, comment_id) => { + this.setState({selectedComment: selectedComments.has(comment_id)}); + } + render() { - const { intl, comment, actions } = this.props; + const { intl, comment, actions, handleSelectedComments, selectedComments} = this.props; + //console.log(this.state.selectedComment) + + + //const { selectedComment } = this.state; + + //const selectedCommentsSet = new Set(selectedComments) + + //console.log(comment) + + //this._getSelectComment(selectedCommentsSet.has(comment._id)); + + //this.setState({selectedComment: selectedCommentsSet.has(comment._id)}) + if (comment) { return ( +
+ this._handleChecked(selectedComments, comment._id) } onClick={() => { + this._handleModifySelectedComment(comment._id); + //console.log(selectedComments); + }} /> +

diff --git a/imports/ui2/components/CommentList.jsx b/imports/ui2/components/CommentList.jsx index aef3ffae..310af9c9 100644 --- a/imports/ui2/components/CommentList.jsx +++ b/imports/ui2/components/CommentList.jsx @@ -284,14 +284,15 @@ class CommentList extends Component { } }; render() { - const { intl, comments } = this.props; + const { intl, comments, selectedComments, handleSelectedComments } = this.props; + if (!comments || !comments.length) return null; return (
{comments.map((comment, i) => (
- +
{userCan("categorize", "comments") ? ( <> diff --git a/imports/ui2/pages/Comments.jsx b/imports/ui2/pages/Comments.jsx index 372c0ff1..77cf3ae6 100755 --- a/imports/ui2/pages/Comments.jsx +++ b/imports/ui2/pages/Comments.jsx @@ -87,7 +87,8 @@ class CommentsPage extends Component { this.state = { loadingCount: false, count: 0, - personMeta: {} + personMeta: {}, + selectedComments: new Set() }; } componentDidMount() { @@ -180,9 +181,20 @@ class CommentsPage extends Component { FlowRouter.setQueryParams({ page: page - 1 }); } }; + + _handleSelectedComments = (comment_id) => { + let { selectedComments } = this.state; + if(selectedComments.has(comment_id)) { + selectedComments.delete(comment_id); + } else { + selectedComments.add(comment_id); + } + console.log(selectedComments); + //this.setState() + } render() { const { intl, campaignId, comments, limit, page } = this.props; - const { loadingCount, count } = this.state; + const { loadingCount, count, selectedComments } = this.state; const queryingCategory = this.queryingCategory(); return ( @@ -345,7 +357,7 @@ class CommentsPage extends Component { onNext={this._handleNext} onPrev={this._handlePrev} /> - + ); From 3e57d119ff0375ae141a053126538050ae04c4ba Mon Sep 17 00:00:00 2001 From: danitw Date: Tue, 1 Feb 2022 12:06:15 -0300 Subject: [PATCH 3/7] making comments selectable with a checkbox --- imports/ui2/components/Comment.jsx | 30 +++++++++++++++++++++++++- imports/ui2/components/CommentList.jsx | 5 +++-- imports/ui2/pages/Comments.jsx | 17 ++++++++++++--- 3 files changed, 46 insertions(+), 6 deletions(-) diff --git a/imports/ui2/components/Comment.jsx b/imports/ui2/components/Comment.jsx index 5366cc88..43fe9739 100644 --- a/imports/ui2/components/Comment.jsx +++ b/imports/ui2/components/Comment.jsx @@ -217,6 +217,13 @@ export const getFBCommentUrl = (comment) => { }; class Comment extends Component { + constructor(props) { + super(props); + this.state = { + selectedComment: false, + }; + } + static Count = CountIntl; action = () => { const { comment } = this.props; @@ -295,11 +302,32 @@ class Comment extends Component { return ["fab", "facebook-square"]; } }; + + _handleModifySelectedComment = (id) => { + const { handleSelectedComments } = this.props; + handleSelectedComments(id); + }; + + _handleChecked = (selectedComments, comment_id) => { + this.setState({ selectedComment: selectedComments.has(comment_id) }); + }; + render() { - const { intl, comment, actions } = this.props; + const { intl, comment, actions, selectedComments } = this.props; + if (comment) { return ( +
+ + this._handleChecked(selectedComments, comment._id) + } + onClick={() => this._handleModifySelectedComment(comment._id)} + /> +

diff --git a/imports/ui2/components/CommentList.jsx b/imports/ui2/components/CommentList.jsx index aef3ffae..310af9c9 100644 --- a/imports/ui2/components/CommentList.jsx +++ b/imports/ui2/components/CommentList.jsx @@ -284,14 +284,15 @@ class CommentList extends Component { } }; render() { - const { intl, comments } = this.props; + const { intl, comments, selectedComments, handleSelectedComments } = this.props; + if (!comments || !comments.length) return null; return (
{comments.map((comment, i) => (
- +
{userCan("categorize", "comments") ? ( <> diff --git a/imports/ui2/pages/Comments.jsx b/imports/ui2/pages/Comments.jsx index 372c0ff1..737f0057 100755 --- a/imports/ui2/pages/Comments.jsx +++ b/imports/ui2/pages/Comments.jsx @@ -87,7 +87,8 @@ class CommentsPage extends Component { this.state = { loadingCount: false, count: 0, - personMeta: {} + personMeta: {}, + selectedComments: new Set() }; } componentDidMount() { @@ -180,9 +181,19 @@ class CommentsPage extends Component { FlowRouter.setQueryParams({ page: page - 1 }); } }; + + _handleSelectedComments = (comment_id) => { + let { selectedComments } = this.state; + if(selectedComments.has(comment_id)) { + selectedComments.delete(comment_id); + } else { + selectedComments.add(comment_id); + } + console.log(selectedComments); // debug, remove before of pull request + } render() { const { intl, campaignId, comments, limit, page } = this.props; - const { loadingCount, count } = this.state; + const { loadingCount, count, selectedComments } = this.state; const queryingCategory = this.queryingCategory(); return ( @@ -345,7 +356,7 @@ class CommentsPage extends Component { onNext={this._handleNext} onPrev={this._handlePrev} /> - + ); From 3860d85fdc18dc09a26be296f468fb578d244640 Mon Sep 17 00:00:00 2001 From: danitw Date: Tue, 1 Feb 2022 16:14:12 -0300 Subject: [PATCH 4/7] doing the bulk of the feature (marking up comments and bulk modifying categories) --- imports/ui2/components/Comment.jsx | 14 ++-- imports/ui2/components/CommentList.jsx | 10 ++- imports/ui2/pages/Comments.jsx | 88 ++++++++++++++++++++------ 3 files changed, 87 insertions(+), 25 deletions(-) diff --git a/imports/ui2/components/Comment.jsx b/imports/ui2/components/Comment.jsx index 43fe9739..ee3e7314 100644 --- a/imports/ui2/components/Comment.jsx +++ b/imports/ui2/components/Comment.jsx @@ -303,18 +303,20 @@ class Comment extends Component { } }; - _handleModifySelectedComment = (id) => { + _handleModifySelectedComment = (comments) => { const { handleSelectedComments } = this.props; - handleSelectedComments(id); + handleSelectedComments(comments); }; - _handleChecked = (selectedComments, comment_id) => { - this.setState({ selectedComment: selectedComments.has(comment_id) }); + _handleChecked = (selectedComments, comment) => { + this.setState({ selectedComment: selectedComments.has(comment) }); }; render() { const { intl, comment, actions, selectedComments } = this.props; + //console.log(comment); + if (comment) { return ( @@ -323,9 +325,9 @@ class Comment extends Component { type="checkbox" checked={this.selectedComment} onChange={() => - this._handleChecked(selectedComments, comment._id) + this._handleChecked(selectedComments, comment) } - onClick={() => this._handleModifySelectedComment(comment._id)} + onClick={() => this._handleModifySelectedComment(comment)} />
diff --git a/imports/ui2/components/CommentList.jsx b/imports/ui2/components/CommentList.jsx index 310af9c9..44a2dfc3 100644 --- a/imports/ui2/components/CommentList.jsx +++ b/imports/ui2/components/CommentList.jsx @@ -286,13 +286,21 @@ class CommentList extends Component { render() { const { intl, comments, selectedComments, handleSelectedComments } = this.props; + //const a = new Set(comments); + //console.log(a) + //a.add(comments[0]) + //a.add({a: "dsa"}) + //console.log(a) + //console.log(a.has(comments[0])) + //console.log(a.keys()jjjjj) + if (!comments || !comments.length) return null; return (
{comments.map((comment, i) => (
- +
{userCan("categorize", "comments") ? ( <> diff --git a/imports/ui2/pages/Comments.jsx b/imports/ui2/pages/Comments.jsx index 737f0057..95cc4932 100755 --- a/imports/ui2/pages/Comments.jsx +++ b/imports/ui2/pages/Comments.jsx @@ -3,7 +3,7 @@ import { injectIntl, intlShape, defineMessages, - FormattedMessage + FormattedMessage, } from "react-intl"; import ReactTooltip from "react-tooltip"; import styled from "styled-components"; @@ -11,6 +11,9 @@ import { debounce } from "lodash"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; + +import { alertStore } from "../containers/Alerts.jsx"; + import Form from "../components/Form.jsx"; import Page from "../components/Page.jsx"; import PageFilters from "../components/PageFilters.jsx"; @@ -23,16 +26,16 @@ import CommentList from "../components/CommentList.jsx"; const messages = defineMessages({ textSearch: { id: "app.comments.text_search_placeholder", - defaultMessage: "Text search..." + defaultMessage: "Text search...", }, postFilter: { id: "app.comments.entry_select_placeholder", - defaultMessage: "Filter by post..." + defaultMessage: "Filter by post...", }, commentSourceFilter: { id: "app.comments.source_select_placeholder", - defaultMessage: "Filter by source..." - } + defaultMessage: "Filter by source...", + }, }); const Container = styled.div` @@ -70,7 +73,7 @@ const CommentsContent = styled.div` text-align: center; margin: 4rem; } - ${props => + ${(props) => props.loading && css` .comments { @@ -88,7 +91,7 @@ class CommentsPage extends Component { loadingCount: false, count: 0, personMeta: {}, - selectedComments: new Set() + selectedComments: new Set(), }; } componentDidMount() { @@ -107,19 +110,19 @@ class CommentsPage extends Component { _fetchCount = debounce(() => { const { campaignId, query } = this.props; this.setState({ - loadingCount: true + loadingCount: true, }); Meteor.call( "comments.queryCount", { campaignId, - query + query, }, (err, res) => { if (!err) { this.setState({ count: res, - loadingCount: false + loadingCount: false, }); } } @@ -161,10 +164,10 @@ class CommentsPage extends Component { _handleCheckboxChange = ({ target }) => { FlowRouter.setQueryParams({ [target.name]: target.checked || null, - page: 1 + page: 1, }); }; - _handleQueryResolveClick = resolved => ev => { + _handleQueryResolveClick = (resolved) => (ev) => { ev.preventDefault(); FlowRouter.setQueryParams({ resolved: resolved ? true : null, page: 1 }); }; @@ -184,13 +187,48 @@ class CommentsPage extends Component { _handleSelectedComments = (comment_id) => { let { selectedComments } = this.state; - if(selectedComments.has(comment_id)) { + if (selectedComments.has(comment_id)) { selectedComments.delete(comment_id); } else { selectedComments.add(comment_id); } console.log(selectedComments); // debug, remove before of pull request - } + }; + + // WIP + + hasCategory = (comment, category) => { + return comment.categories && comment.categories.indexOf(category) != -1; + }; + + _handleVariousCategoryClick = (comments, category) => { + console.log(comments); + const { campaignId } = this.props; + console.log(campaignId) + + comments.forEach((comment) => { + let categories = (comment.categories || []).slice(0); + if (!this.hasCategory(comment, category)) { + categories.push(category); + } else { + categories = categories.filter((cat) => cat != category); + } + Meteor.call( + "comments.updateCategories", + { + campaignId, + commentId: comment._id, + categories, + }, + (err, res) => { + if (err) { + alertStore.add(err); + } + } + ); + }); + }; + render() { const { intl, campaignId, comments, limit, page } = this.props; const { loadingCount, count, selectedComments } = this.state; @@ -200,7 +238,7 @@ class CommentsPage extends Component {
-
ev.preventDefault()}> + ev.preventDefault()}> + +
+ + ); @@ -364,7 +416,7 @@ class CommentsPage extends Component { } CommentsPage.propTypes = { - intl: intlShape.isRequired + intl: intlShape.isRequired, }; export default injectIntl(CommentsPage); From e32666ce903a14c60ce3c9c75f0accd17b293861 Mon Sep 17 00:00:00 2001 From: danitw Date: Mon, 14 Feb 2022 15:58:32 -0300 Subject: [PATCH 5/7] making the feature(selection in mass) only appear when the post filter is being used --- imports/ui2/components/Comment.jsx | 4 ++-- imports/ui2/pages/Comments.jsx | 21 ++++++++++++++------- imports/ui2/pages/People.jsx | 1 - 3 files changed, 16 insertions(+), 10 deletions(-) diff --git a/imports/ui2/components/Comment.jsx b/imports/ui2/components/Comment.jsx index ee3e7314..b1a13edb 100644 --- a/imports/ui2/components/Comment.jsx +++ b/imports/ui2/components/Comment.jsx @@ -315,12 +315,11 @@ class Comment extends Component { render() { const { intl, comment, actions, selectedComments } = this.props; - //console.log(comment); - if (comment) { return (
+ {FlowRouter.getQueryParam("entry") ? ( this._handleModifySelectedComment(comment)} /> + ) : null}

diff --git a/imports/ui2/pages/Comments.jsx b/imports/ui2/pages/Comments.jsx index 95cc4932..813f2bfa 100755 --- a/imports/ui2/pages/Comments.jsx +++ b/imports/ui2/pages/Comments.jsx @@ -11,7 +11,6 @@ import { debounce } from "lodash"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; - import { alertStore } from "../containers/Alerts.jsx"; import Form from "../components/Form.jsx"; @@ -204,7 +203,7 @@ class CommentsPage extends Component { _handleVariousCategoryClick = (comments, category) => { console.log(comments); const { campaignId } = this.props; - console.log(campaignId) + console.log(campaignId); comments.forEach((comment) => { let categories = (comment.categories || []).slice(0); @@ -233,6 +232,7 @@ class CommentsPage extends Component { const { intl, campaignId, comments, limit, page } = this.props; const { loadingCount, count, selectedComments } = this.state; const queryingCategory = this.queryingCategory(); + console.log(FlowRouter.getQueryParam("entry")); return ( @@ -397,11 +397,18 @@ class CommentsPage extends Component { onPrev={this._handlePrev} /> -
- Marcar os selecionados como - - -
+ {FlowRouter.getQueryParam("entry") ? ( +
+ Marcar os selecionados como + +
+ ) : null} -

Prueba

From 0470dfbcc6904d4440d49d8e2f2534f2d742e352 Mon Sep 17 00:00:00 2001 From: danitw Date: Mon, 14 Feb 2022 17:15:18 -0300 Subject: [PATCH 6/7] update .gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 0dfa28b7..0e24736f 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,4 @@ docker-compose.dev.yml *.rdb generated-files/* .vscode +session.vim From 45f8bd10263bef2816e3d37fbf8c28d3f38141a1 Mon Sep 17 00:00:00 2001 From: danitw Date: Thu, 17 Feb 2022 09:23:42 -0300 Subject: [PATCH 7/7] functional feature, but with several bugs --- imports/ui2/components/Comment.jsx | 15 +- imports/ui2/components/CommentList.jsx | 159 ++++++++-------- imports/ui2/pages/Comments.jsx | 248 +++++++++++++++++++++++-- 3 files changed, 332 insertions(+), 90 deletions(-) diff --git a/imports/ui2/components/Comment.jsx b/imports/ui2/components/Comment.jsx index b1a13edb..43107434 100644 --- a/imports/ui2/components/Comment.jsx +++ b/imports/ui2/components/Comment.jsx @@ -1,4 +1,4 @@ -import React, { Component } from "react"; +import React, { Component, useCallback } from "react"; import { injectIntl, intlShape, @@ -305,6 +305,7 @@ class Comment extends Component { _handleModifySelectedComment = (comments) => { const { handleSelectedComments } = this.props; + console.log(comments) handleSelectedComments(comments); }; @@ -312,8 +313,16 @@ class Comment extends Component { this.setState({ selectedComment: selectedComments.has(comment) }); }; + //componentDidUpdate(prevProps, prevState) { + //console.log(prevProps); + //console.log(prevState); + //console.log("did update"); + //} + render() { - const { intl, comment, actions, selectedComments } = this.props; + const { intl, comment, actions, selectedComments, selectedComment } = this.props; + + //console.log("selected comment: ", selectedComment()); if (comment) { return ( @@ -322,7 +331,7 @@ class Comment extends Component { {FlowRouter.getQueryParam("entry") ? ( this._handleChecked(selectedComments, comment) } diff --git a/imports/ui2/components/CommentList.jsx b/imports/ui2/components/CommentList.jsx index 44a2dfc3..b06cac3f 100644 --- a/imports/ui2/components/CommentList.jsx +++ b/imports/ui2/components/CommentList.jsx @@ -284,91 +284,100 @@ class CommentList extends Component { } }; render() { - const { intl, comments, selectedComments, handleSelectedComments } = this.props; - - //const a = new Set(comments); - //console.log(a) - //a.add(comments[0]) - //a.add({a: "dsa"}) - //console.log(a) - //console.log(a.has(comments[0])) - //console.log(a.keys()jjjjj) + const { intl, comments, selectedComments, handleSelectedComments } = + this.props; if (!comments || !comments.length) return null; return (
- {comments.map((comment, i) => ( - -
- -
- {userCan("categorize", "comments") ? ( - <> -
-

- -

-
- - - - - - + {comments.map((comment, i) => { + //const fn = () => { + //console.log(selectedComments.has(comment)); + //return selectedComments.has(comment); + //}; + + console.log(selectedComments.has(comment)) + let selected_comment = selectedComments.has(comment); + + return ( + +
+ +
+ {userCan("categorize", "comments") ? ( + <> +
+

+ +

+ +
+ -
-
- - - -
- - ) : null} - - ))} + + ) : null} + + ); + })}
); diff --git a/imports/ui2/pages/Comments.jsx b/imports/ui2/pages/Comments.jsx index 813f2bfa..59682afe 100755 --- a/imports/ui2/pages/Comments.jsx +++ b/imports/ui2/pages/Comments.jsx @@ -72,6 +72,60 @@ const CommentsContent = styled.div` text-align: center; margin: 4rem; } + .actions { + display: flex; + justify-content: space-between; + padding: 8px; + } + + .action-icons { + display: flex; + flex-direction: row; + justify-content: center; + align-items: center; + a { + width: 30px; + height: 30px; + font-size: 0.8em; + display: flex; + margin: 0 0.25rem; + justify-content: center; + align-items: center; + color: #306; + background-color: rgba(51, 0, 102, 0); + border: 1px solid rgba(51, 0, 102, 0.25); + border-radius: 100%; + transition: all 0.1s linear; + &:hover { + background-color: rgba(51, 0, 102, 0.5); + color: #fff; + } + &.active { + background-color: #306; + color: #fff; + &:hover { + background-color: rgba(51, 0, 102, 0.75); + } + } + &.troll { + color: #c00; + background-color: rgba(204, 51, 51, 0); + border: 1px solid rgba(204, 51, 51, 0.25); + &:hover { + background-color: rgba(204, 51, 51, 0.5); + color: #fff; + } + &.active { + background-color: #ca3333; + color: #fff; + &:hover { + background-color: rgba(204, 0, 0, 0.75); + } + } + } + } + } + ${(props) => props.loading && css` @@ -91,6 +145,8 @@ class CommentsPage extends Component { count: 0, personMeta: {}, selectedComments: new Set(), + selectedAll: false, + personAll: {}, // TODO: modify variable name }; } componentDidMount() { @@ -192,10 +248,9 @@ class CommentsPage extends Component { selectedComments.add(comment_id); } console.log(selectedComments); // debug, remove before of pull request + this.setState({ selectedComments, selectedComments }); }; - // WIP - hasCategory = (comment, category) => { return comment.categories && comment.categories.indexOf(category) != -1; }; @@ -226,13 +281,121 @@ class CommentsPage extends Component { } ); }); + console.log(this.selectedComments); + }; + + isTroll = (comment) => { + const { personMeta } = this.state; + if ( + personMeta[comment.personId] && + personMeta[comment.personId].hasOwnProperty("troll") + ) { + return personMeta[comment.personId].troll; + } else if (comment.person) { + return comment.person.campaignMeta && comment.person.campaignMeta.troll; + } + return false; + }; + + _handleTroll = (comments) => { + //const { intl } = this.props; + //const { personMeta } + const { personAll } = this.state; + + comments.forEach((comment) => { + console.log(comment); + const isTroll = this.isTroll(comment); + { + /*if (!comment.person) { + alertStore.add(intl.formatMessage(messages.person_not_found), "error"); + return; + }*/ + } + Meteor.call( + "facebook.people.updatePersonMeta", + { + personId: comment.person._id, + metaKey: "troll", + metaValue: !isTroll, + }, + (err, res) => { + if (err) { + alertStore.add(err); + } else { + this.setState({ + personAll: { + ...personAll, + [comment.personId]: { troll: !isTroll }, + }, + }); + } + } + ); + }); + }; + + _handleTrollClick = (comment) => () => { + const { intl } = this.props; + const { personMeta } = this.state; + const isTroll = this.isTroll(comment); + if (!comment.person) { + alertStore.add(intl.formatMessage(messages.person_not_found), "error"); + return; + } + Meteor.call( + "facebook.people.updatePersonMeta", + { + personId: comment.person._id, + metaKey: "troll", + metaValue: !isTroll, + }, + (err, res) => { + if (err) { + alertStore.add(err); + } else { + this.setState({ + personMeta: { + ...personMeta, + [comment.personId]: { troll: !isTroll }, + }, + }); + } + } + ); + }; + + _handleSelectAll = () => { + let { selectedComments } = this.state; + const { comments } = this.props; + comments.forEach((comment) => { + if (selectedComments.has(comment)) { + selectedComments.delete(comment); + } else { + selectedComments.add(comment); + } + }); + + this.setState({ selectedComments, selectedComments }); + console.log(selectedComments); // debug, remove before of pull request + }; + + _checkSelectedAll = () => { + let { selectedComments } = this.state; + const { comments } = this.props; + comments.forEach((comment) => { + if (selectedComments.has(comment)) { + this.setstate(selectedall, false); + } + }); + + this.setstate(selectedall, true); }; render() { const { intl, campaignId, comments, limit, page } = this.props; const { loadingCount, count, selectedComments } = this.state; const queryingCategory = this.queryingCategory(); - console.log(FlowRouter.getQueryParam("entry")); + return ( @@ -398,15 +561,76 @@ class CommentsPage extends Component { /> {FlowRouter.getQueryParam("entry") ? ( -
- Marcar os selecionados como - + ) : null}