From bc401be294138ccb4f2902e538373061920038b8 Mon Sep 17 00:00:00 2001 From: C4 Patino Date: Wed, 10 Aug 2022 22:26:05 -0500 Subject: [PATCH] Moved logic into controllers --- .../components/QAComponents/AnswerComment.jsx | 20 ++++++++----------- .../src/components/QAComponents/Comment.jsx | 7 ++----- .../QAControllers/AnswerCommentController.jsx | 14 +++++++++++++ .../QAControllers/CommentController.jsx | 9 +++++++++ .../QAPaginatedListController.jsx | 3 +-- client/src/controllers/QAControllers/index.js | 4 ++++ 6 files changed, 38 insertions(+), 19 deletions(-) create mode 100644 client/src/controllers/QAControllers/AnswerCommentController.jsx create mode 100644 client/src/controllers/QAControllers/CommentController.jsx diff --git a/client/src/components/QAComponents/AnswerComment.jsx b/client/src/components/QAComponents/AnswerComment.jsx index ca5fed4..f0a2ef9 100644 --- a/client/src/components/QAComponents/AnswerComment.jsx +++ b/client/src/components/QAComponents/AnswerComment.jsx @@ -1,22 +1,18 @@ import { Divider, ListItem, ListItemText } from '@mui/material'; import { CreationInfoTag } from 'controllers'; import { VoteControl } from 'controllers/QAControllers'; -import { getAnswerCommentVote, updateAnswerCommentVote } from 'services/questionsServices'; -import { useQuestion } from 'contexts'; + export default function AnswerComment({ - answer_id, comment_id, creator, createdAt, downvotes, text, - question_id, - upvotes + upvotes, + getVote, + updateVote, + canVote, }) { - const getVote = () => getAnswerCommentVote(question_id, answer_id, comment_id); - const updateVote = (data) => updateAnswerCommentVote(question_id, answer_id, comment_id, data); - const {permissions} = useQuestion(); - let canVote = permissions.canVote; return ( @@ -25,8 +21,8 @@ export default function AnswerComment({ {text} - + - + ); -} \ No newline at end of file +} diff --git a/client/src/components/QAComponents/Comment.jsx b/client/src/components/QAComponents/Comment.jsx index fde20b1..3ca85f2 100644 --- a/client/src/components/QAComponents/Comment.jsx +++ b/client/src/components/QAComponents/Comment.jsx @@ -1,20 +1,17 @@ import { Divider, ListItem, ListItemText } from '@mui/material'; import { CreationInfoTag } from 'controllers'; import { VoteControl } from 'controllers/QAControllers'; -import { getCommentVote, updateCommentVote } from 'services/questionsServices'; -import { useQuestion } from 'contexts'; export default function Comment({ comment_id, creator, createdAt, downvotes, - question_id, text, upvotes, + getVote, + updateVote, }) { - const getVote = () => getCommentVote(question_id, comment_id); - const updateVote = (data) => updateCommentVote(question_id, comment_id, data); return ( diff --git a/client/src/controllers/QAControllers/AnswerCommentController.jsx b/client/src/controllers/QAControllers/AnswerCommentController.jsx new file mode 100644 index 0000000..f4f3346 --- /dev/null +++ b/client/src/controllers/QAControllers/AnswerCommentController.jsx @@ -0,0 +1,14 @@ +import { getAnswerCommentVote, updateAnswerCommentVote } from 'services/questionsServices'; +import { useQuestion } from 'contexts'; +import { AnswerComment } from 'components/QAComponents'; + +export default function AnswerCommentController({ answer_id, comment_id, question_id, ...props }) { + const { + permissions: { canVote }, + } = useQuestion(); + + const getVote = () => getAnswerCommentVote(question_id, answer_id, comment_id); + const updateVote = (data) => updateAnswerCommentVote(question_id, answer_id, comment_id, data); + + return ; +} diff --git a/client/src/controllers/QAControllers/CommentController.jsx b/client/src/controllers/QAControllers/CommentController.jsx new file mode 100644 index 0000000..9ee7437 --- /dev/null +++ b/client/src/controllers/QAControllers/CommentController.jsx @@ -0,0 +1,9 @@ +import { getCommentVote, updateCommentVote } from 'services/questionsServices'; +import { Comment } from 'components/QAComponents'; + +export default function CommentController({ comment_id, question_id, ...props }) { + const getVote = () => getCommentVote(question_id, comment_id); + const updateVote = (data) => updateCommentVote(question_id, comment_id, data); + + return ; +} diff --git a/client/src/controllers/QAControllers/QAPaginatedListController.jsx b/client/src/controllers/QAControllers/QAPaginatedListController.jsx index cb2f473..85e06c8 100644 --- a/client/src/controllers/QAControllers/QAPaginatedListController.jsx +++ b/client/src/controllers/QAControllers/QAPaginatedListController.jsx @@ -1,7 +1,6 @@ import { useQuestion } from 'contexts'; import { PaginatedList } from 'controllers'; -import { AnswerComment, Comment } from 'components/QAComponents'; -import { Answer } from 'controllers/QAControllers'; +import { Answer, Comment, AnswerComment } from 'controllers/QAControllers'; import { getAnswerComments, getAnswers, getQuestionComments } from 'services/questionsServices'; export function AnswerCommentsList({ answer_id, comments: count }) { diff --git a/client/src/controllers/QAControllers/index.js b/client/src/controllers/QAControllers/index.js index abbbb4b..143ba2f 100644 --- a/client/src/controllers/QAControllers/index.js +++ b/client/src/controllers/QAControllers/index.js @@ -4,6 +4,8 @@ import CreateAnswer from './CreateAnswerController'; import Question from './QuestionController'; import VoteControl from './VoteControlController'; import Answer from './AnswerController'; +import AnswerComment from './AnswerCommentController'; +import Comment from './CommentController'; export { AnswersList, @@ -14,4 +16,6 @@ export { CreateAnswer, Question, VoteControl, + AnswerComment, + Comment, };