From 6f6831e18d08773540a4c897866985c0bf950de5 Mon Sep 17 00:00:00 2001 From: Sascha Date: Tue, 25 May 2021 17:20:36 +0200 Subject: WebUI: Add comment-and-reopen of a bug in one step --- .../ReopenBugWithComment.graphql | 11 ++++ .../ReopenBugWithCommentButton.tsx | 65 ++++++++++++++++++++++ 2 files changed, 76 insertions(+) create mode 100644 webui/src/components/ReopenBugWithCommentButton/ReopenBugWithComment.graphql create mode 100644 webui/src/components/ReopenBugWithCommentButton/ReopenBugWithCommentButton.tsx (limited to 'webui/src/components/ReopenBugWithCommentButton') diff --git a/webui/src/components/ReopenBugWithCommentButton/ReopenBugWithComment.graphql b/webui/src/components/ReopenBugWithCommentButton/ReopenBugWithComment.graphql new file mode 100644 index 00000000..4c220208 --- /dev/null +++ b/webui/src/components/ReopenBugWithCommentButton/ReopenBugWithComment.graphql @@ -0,0 +1,11 @@ +mutation AddCommentAndReopenBug($input: AddCommentAndReopenBugInput!) { + addCommentAndReopen(input: $input) { + statusOperation { + status + } + commentOperation { + message + } + } +} + diff --git a/webui/src/components/ReopenBugWithCommentButton/ReopenBugWithCommentButton.tsx b/webui/src/components/ReopenBugWithCommentButton/ReopenBugWithCommentButton.tsx new file mode 100644 index 00000000..0a534f27 --- /dev/null +++ b/webui/src/components/ReopenBugWithCommentButton/ReopenBugWithCommentButton.tsx @@ -0,0 +1,65 @@ +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 { useAddCommentAndReopenBugMutation } from './ReopenBugWithComment.generated'; + +interface Props { + bug: BugFragment; + comment: string; + postClick?: () => void; +} + +function ReopenBugWithCommentButton({ bug, comment, postClick }: Props) { + const [ + addCommentAndReopenBug, + { loading, error }, + ] = useAddCommentAndReopenBugMutation(); + + function addCommentAndReopenBugAction() { + addCommentAndReopenBug({ + 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 ReopenBugWithCommentButton; -- cgit 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. --- .../ReopenBugWithCommentButton.tsx | 65 ---------------------- .../ReopenBugWithCommentButton/index.tsx | 65 ++++++++++++++++++++++ 2 files changed, 65 insertions(+), 65 deletions(-) delete mode 100644 webui/src/components/ReopenBugWithCommentButton/ReopenBugWithCommentButton.tsx create mode 100644 webui/src/components/ReopenBugWithCommentButton/index.tsx (limited to 'webui/src/components/ReopenBugWithCommentButton') diff --git a/webui/src/components/ReopenBugWithCommentButton/ReopenBugWithCommentButton.tsx b/webui/src/components/ReopenBugWithCommentButton/ReopenBugWithCommentButton.tsx deleted file mode 100644 index 0a534f27..00000000 --- a/webui/src/components/ReopenBugWithCommentButton/ReopenBugWithCommentButton.tsx +++ /dev/null @@ -1,65 +0,0 @@ -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 { useAddCommentAndReopenBugMutation } from './ReopenBugWithComment.generated'; - -interface Props { - bug: BugFragment; - comment: string; - postClick?: () => void; -} - -function ReopenBugWithCommentButton({ bug, comment, postClick }: Props) { - const [ - addCommentAndReopenBug, - { loading, error }, - ] = useAddCommentAndReopenBugMutation(); - - function addCommentAndReopenBugAction() { - addCommentAndReopenBug({ - 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 ReopenBugWithCommentButton; diff --git a/webui/src/components/ReopenBugWithCommentButton/index.tsx b/webui/src/components/ReopenBugWithCommentButton/index.tsx new file mode 100644 index 00000000..0a534f27 --- /dev/null +++ b/webui/src/components/ReopenBugWithCommentButton/index.tsx @@ -0,0 +1,65 @@ +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 { useAddCommentAndReopenBugMutation } from './ReopenBugWithComment.generated'; + +interface Props { + bug: BugFragment; + comment: string; + postClick?: () => void; +} + +function ReopenBugWithCommentButton({ bug, comment, postClick }: Props) { + const [ + addCommentAndReopenBug, + { loading, error }, + ] = useAddCommentAndReopenBugMutation(); + + function addCommentAndReopenBugAction() { + addCommentAndReopenBug({ + 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 ReopenBugWithCommentButton; -- cgit