aboutsummaryrefslogtreecommitdiffstats
path: root/webui/src/components/CloseBugButton
diff options
context:
space:
mode:
authorCláudio <claudio.engdist@gmail.com>2021-02-02 16:43:09 -0300
committerCláudio <claudio.engdist@gmail.com>2021-02-02 16:43:09 -0300
commit7b1b77dc444518a07779e836ec0c4c6b9406bbf9 (patch)
tree27e248d641b81e9815c1612cda019ba378209d8d /webui/src/components/CloseBugButton
parente68e9306fe334766e7b23fdd3918f45a1a505fc3 (diff)
downloadgit-bug-7b1b77dc444518a07779e836ec0c4c6b9406bbf9.tar.gz
Commit for #546
Diffstat (limited to 'webui/src/components/CloseBugButton')
-rw-r--r--webui/src/components/CloseBugButton/CloseBug.graphql8
-rw-r--r--webui/src/components/CloseBugButton/CloseBugButton.tsx49
2 files changed, 57 insertions, 0 deletions
diff --git a/webui/src/components/CloseBugButton/CloseBug.graphql b/webui/src/components/CloseBugButton/CloseBug.graphql
new file mode 100644
index 00000000..b134cc04
--- /dev/null
+++ b/webui/src/components/CloseBugButton/CloseBug.graphql
@@ -0,0 +1,8 @@
+# Write your query or mutation here
+mutation closeBug($input: CloseBugInput!) {
+ closeBug(input: $input) {
+ bug {
+ humanId
+ }
+ }
+} \ No newline at end of file
diff --git a/webui/src/components/CloseBugButton/CloseBugButton.tsx b/webui/src/components/CloseBugButton/CloseBugButton.tsx
new file mode 100644
index 00000000..9aca6fdd
--- /dev/null
+++ b/webui/src/components/CloseBugButton/CloseBugButton.tsx
@@ -0,0 +1,49 @@
+import React from 'react';
+
+import Button from '@material-ui/core/Button';
+
+import { TimelineDocument } from 'src/pages/bug/TimelineQuery.generated';
+
+import { useCloseBugMutation } from './CloseBug.generated';
+
+interface Props {
+ bugId: string;
+}
+
+function CloseBugButton({ bugId }: Props) {
+ const [closeBug, { loading, error }] = useCloseBugMutation();
+
+ function closeBugAction() {
+ closeBug({
+ variables: {
+ input: {
+ prefix: bugId,
+ },
+ },
+ refetchQueries: [
+ // TODO: update the cache instead of refetching
+ {
+ query: TimelineDocument,
+ variables: {
+ id: bugId,
+ first: 100,
+ },
+ },
+ ],
+ awaitRefetchQueries: true,
+ });
+ }
+
+ if (loading) return <div>Loading...</div>;
+ if (error) return <div>Error</div>;
+
+ return (
+ <div>
+ <Button variant="contained" onClick={() => closeBugAction()}>
+ Close issue
+ </Button>
+ </div>
+ );
+}
+
+export default CloseBugButton;