From 12323b94398daa6cedca36fc2c58a97200092e16 Mon Sep 17 00:00:00 2001
From: Cláudio Silva <claudio.engdist@gmail.com>
Date: Fri, 5 Feb 2021 08:45:11 -0300
Subject: Webui 548 (#549)

* Commit for #548

* Commit for #548
---
 .../components/ReopenBugButton/ReopenBugButton.tsx | 55 ++++++++++++++++++++++
 1 file changed, 55 insertions(+)
 create mode 100644 webui/src/components/ReopenBugButton/ReopenBugButton.tsx

(limited to 'webui/src/components/ReopenBugButton/ReopenBugButton.tsx')

diff --git a/webui/src/components/ReopenBugButton/ReopenBugButton.tsx b/webui/src/components/ReopenBugButton/ReopenBugButton.tsx
new file mode 100644
index 00000000..195ca512
--- /dev/null
+++ b/webui/src/components/ReopenBugButton/ReopenBugButton.tsx
@@ -0,0 +1,55 @@
+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 { useOpenBugMutation } from './OpenBug.generated';
+
+interface Props {
+  bug: BugFragment;
+  disabled: boolean;
+}
+
+function ReopenBugButton({ bug, disabled }: Props) {
+  const [openBug, { loading, error }] = useOpenBugMutation();
+
+  function openBugAction() {
+    openBug({
+      variables: {
+        input: {
+          prefix: bug.id,
+        },
+      },
+      refetchQueries: [
+        // TODO: update the cache instead of refetching
+        {
+          query: TimelineDocument,
+          variables: {
+            id: bug.id,
+            first: 100,
+          },
+        },
+      ],
+      awaitRefetchQueries: true,
+    });
+  }
+
+  if (loading) return <div>Loading...</div>;
+  if (error) return <div>Error</div>;
+
+  return (
+    <div>
+      <Button
+        variant="contained"
+        onClick={() => openBugAction()}
+        disabled={bug.status === 'OPEN' || disabled}
+      >
+        Reopen issue
+      </Button>
+    </div>
+  );
+}
+
+export default ReopenBugButton;
-- 
cgit 

