From e867663bf01841684da6c74a7bcac478cf99655a Mon Sep 17 00:00:00 2001 From: Sascha Date: Tue, 25 May 2021 17:31:28 +0200 Subject: Rename default component filename to index.tsx This reduces duplicate filepath components and with it the overall import filepath length. --- .../components/CloseBugWithCommentButton/index.tsx | 75 ++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 webui/src/components/CloseBugWithCommentButton/index.tsx (limited to 'webui/src/components/CloseBugWithCommentButton/index.tsx') diff --git a/webui/src/components/CloseBugWithCommentButton/index.tsx b/webui/src/components/CloseBugWithCommentButton/index.tsx new file mode 100644 index 00000000..a0fefa4a --- /dev/null +++ b/webui/src/components/CloseBugWithCommentButton/index.tsx @@ -0,0 +1,75 @@ +import React from 'react'; + +import Button from '@material-ui/core/Button'; +import CircularProgress from '@material-ui/core/CircularProgress'; +import { makeStyles, Theme } from '@material-ui/core/styles'; +import ErrorOutlineIcon from '@material-ui/icons/ErrorOutline'; + +import { BugFragment } from 'src/pages/bug/Bug.generated'; +import { TimelineDocument } from 'src/pages/bug/TimelineQuery.generated'; + +import { useAddCommentAndCloseBugMutation } from './CloseBugWithComment.generated'; + +const useStyles = makeStyles((theme: Theme) => ({ + closeIssueIcon: { + color: theme.palette.secondary.dark, + paddingTop: '0.1rem', + }, +})); + +interface Props { + bug: BugFragment; + comment: string; + postClick?: () => void; +} + +function CloseBugWithCommentButton({ bug, comment, postClick }: Props) { + const [ + addCommentAndCloseBug, + { loading, error }, + ] = useAddCommentAndCloseBugMutation(); + const classes = useStyles(); + + function addCommentAndCloseBugAction() { + addCommentAndCloseBug({ + variables: { + input: { + prefix: bug.id, + message: comment, + }, + }, + refetchQueries: [ + // TODO: update the cache instead of refetching + { + query: TimelineDocument, + variables: { + id: bug.id, + first: 100, + }, + }, + ], + awaitRefetchQueries: true, + }).then(() => { + if (postClick) { + postClick(); + } + }); + } + + if (loading) return ; + if (error) return
Error
; + + return ( +
+ +
+ ); +} + +export default CloseBugWithCommentButton; -- cgit