diff options
author | Sascha <GlancingMind@outlook.com> | 2021-05-25 17:31:28 +0200 |
---|---|---|
committer | Sascha <GlancingMind@outlook.com> | 2021-05-26 12:52:55 +0200 |
commit | e867663bf01841684da6c74a7bcac478cf99655a (patch) | |
tree | 6e9a55cd1ae661d4da6376d544c22593a19369d4 /webui/src/components/ReopenBugButton/index.tsx | |
parent | dcf4a49840f406bf13e17febd144039372ebb1bc (diff) | |
download | git-bug-e867663bf01841684da6c74a7bcac478cf99655a.tar.gz git-bug-e867663bf01841684da6c74a7bcac478cf99655a.zip |
Rename default component filename to index.tsx
This reduces duplicate filepath components and with it the overall
import filepath length.
Diffstat (limited to 'webui/src/components/ReopenBugButton/index.tsx')
-rw-r--r-- | webui/src/components/ReopenBugButton/index.tsx | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/webui/src/components/ReopenBugButton/index.tsx b/webui/src/components/ReopenBugButton/index.tsx new file mode 100644 index 000000000..e62c58df7 --- /dev/null +++ b/webui/src/components/ReopenBugButton/index.tsx @@ -0,0 +1,56 @@ +import React from 'react'; + +import Button from '@material-ui/core/Button'; +import CircularProgress from '@material-ui/core/CircularProgress'; + +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 <CircularProgress />; + if (error) return <div>Error</div>; + + return ( + <div> + <Button + variant="contained" + onClick={() => openBugAction()} + disabled={bug.status === 'OPEN' || disabled} + > + Reopen bug + </Button> + </div> + ); +} + +export default ReopenBugButton; |