Fix #546

Clรกudio created

- Fixing code review requests

Change summary

webui/src/components/CloseBugButton/CloseBugButton.tsx | 16 ++++++++---
webui/src/pages/bug/Bug.tsx                            |  2 
webui/src/pages/bug/CommentForm.tsx                    | 11 ++++---
3 files changed, 18 insertions(+), 11 deletions(-)

Detailed changes

webui/src/components/CloseBugButton/CloseBugButton.tsx ๐Ÿ”—

@@ -2,22 +2,24 @@ import React from 'react';
 
 import Button from '@material-ui/core/Button';
 
+import { BugFragment } from 'src/pages/bug/Bug.generated';
 import { TimelineDocument } from 'src/pages/bug/TimelineQuery.generated';
 
 import { useCloseBugMutation } from './CloseBug.generated';
 
 interface Props {
-  bugId: string;
+  bug: BugFragment;
+  disabled: boolean;
 }
 
-function CloseBugButton({ bugId }: Props) {
+function CloseBugButton({ bug, disabled }: Props) {
   const [closeBug, { loading, error }] = useCloseBugMutation();
 
   function closeBugAction() {
     closeBug({
       variables: {
         input: {
-          prefix: bugId,
+          prefix: bug.id,
         },
       },
       refetchQueries: [
@@ -25,7 +27,7 @@ function CloseBugButton({ bugId }: Props) {
         {
           query: TimelineDocument,
           variables: {
-            id: bugId,
+            id: bug.id,
             first: 100,
           },
         },
@@ -39,7 +41,11 @@ function CloseBugButton({ bugId }: Props) {
 
   return (
     <div>
-      <Button variant="contained" onClick={() => closeBugAction()}>
+      <Button
+        variant="contained"
+        onClick={() => closeBugAction()}
+        disabled={bug.status === 'CLOSED' || disabled}
+      >
         Close issue
       </Button>
     </div>

webui/src/pages/bug/Bug.tsx ๐Ÿ”—

@@ -82,7 +82,7 @@ function Bug({ bug }: Props) {
           <IfLoggedIn>
             {() => (
               <div className={classes.commentForm}>
-                <CommentForm bugId={bug.id} />
+                <CommentForm bug={bug} />
               </div>
             )}
           </IfLoggedIn>

webui/src/pages/bug/CommentForm.tsx ๐Ÿ”—

@@ -7,6 +7,7 @@ import { makeStyles, Theme } from '@material-ui/core/styles';
 import CommentInput from '../../layout/CommentInput/CommentInput';
 import CloseBugButton from 'src/components/CloseBugButton/CloseBugButton';
 
+import { BugFragment } from './Bug.generated';
 import { useAddCommentMutation } from './CommentForm.generated';
 import { TimelineDocument } from './TimelineQuery.generated';
 
@@ -39,10 +40,10 @@ const useStyles = makeStyles<Theme, StyleProps>((theme) => ({
 }));
 
 type Props = {
-  bugId: string;
+  bug: BugFragment;
 };
 
-function CommentForm({ bugId }: Props) {
+function CommentForm({ bug }: Props) {
   const [addComment, { loading }] = useAddCommentMutation();
   const [issueComment, setIssueComment] = useState('');
   const [inputProp, setInputProp] = useState<any>('');
@@ -53,7 +54,7 @@ function CommentForm({ bugId }: Props) {
     addComment({
       variables: {
         input: {
-          prefix: bugId,
+          prefix: bug.id,
           message: issueComment,
         },
       },
@@ -62,7 +63,7 @@ function CommentForm({ bugId }: Props) {
         {
           query: TimelineDocument,
           variables: {
-            id: bugId,
+            id: bug.id,
             first: 100,
           },
         },
@@ -91,7 +92,7 @@ function CommentForm({ bugId }: Props) {
           onChange={(comment: string) => setIssueComment(comment)}
         />
         <div className={classes.actions}>
-          <CloseBugButton bugId={bugId} />
+          <CloseBugButton bug={bug} disabled={issueComment.length > 0} />
           <Button
             className={classes.greenButton}
             variant="contained"