diff options
Diffstat (limited to 'webui/src/components')
26 files changed, 142 insertions, 161 deletions
diff --git a/webui/src/components/Author.tsx b/webui/src/components/Author.tsx index 593b5d36..92e14d40 100644 --- a/webui/src/components/Author.tsx +++ b/webui/src/components/Author.tsx @@ -1,10 +1,8 @@ -import React from 'react'; +import MAvatar from '@mui/material/Avatar'; +import Link from '@mui/material/Link'; +import Tooltip from '@mui/material/Tooltip/Tooltip'; import { Link as RouterLink } from 'react-router-dom'; -import MAvatar from '@material-ui/core/Avatar'; -import Link from '@material-ui/core/Link'; -import Tooltip from '@material-ui/core/Tooltip/Tooltip'; - import { AuthoredFragment } from '../graphql/fragments.generated'; type Props = AuthoredFragment & { @@ -15,7 +13,12 @@ type Props = AuthoredFragment & { const Author = ({ author, ...props }: Props) => { return ( <Tooltip title={`Goto the ${author.displayName}'s profile.`}> - <Link {...props} component={RouterLink} to={`/user/${author.id}`}> + <Link + {...props} + component={RouterLink} + to={`/user/${author.id}`} + underline="hover" + > {author.displayName} </Link> </Tooltip> diff --git a/webui/src/components/BackToListButton.tsx b/webui/src/components/BackToListButton.tsx index 41e1d68a..a4e4ea9c 100644 --- a/webui/src/components/BackToListButton.tsx +++ b/webui/src/components/BackToListButton.tsx @@ -1,10 +1,8 @@ -import React from 'react'; +import ArrowBackIcon from '@mui/icons-material/ArrowBack'; +import Button from '@mui/material/Button'; +import makeStyles from '@mui/styles/makeStyles'; import { Link } from 'react-router-dom'; -import Button from '@material-ui/core/Button'; -import { makeStyles } from '@material-ui/core/styles'; -import ArrowBackIcon from '@material-ui/icons/ArrowBack'; - const useStyles = makeStyles((theme) => ({ backButton: { position: 'sticky', diff --git a/webui/src/components/BugTitleForm/BugTitleForm.tsx b/webui/src/components/BugTitleForm/BugTitleForm.tsx index 2a3c4db0..78b9e901 100644 --- a/webui/src/components/BugTitleForm/BugTitleForm.tsx +++ b/webui/src/components/BugTitleForm/BugTitleForm.tsx @@ -1,8 +1,8 @@ -import React, { useState } from 'react'; +import { Button, Typography } from '@mui/material'; +import makeStyles from '@mui/styles/makeStyles'; +import { useRef, useState } from 'react'; import { Link } from 'react-router-dom'; -import { Button, makeStyles, Typography } from '@material-ui/core'; - import { TimelineDocument } from '../../pages/bug/TimelineQuery.generated'; import IfLoggedIn from '../IfLoggedIn/IfLoggedIn'; import Author from 'src/components/Author'; @@ -71,11 +71,11 @@ function BugTitleForm({ bug }: Props) { const [setTitle, { loading, error }] = useSetTitleMutation(); const [issueTitle, setIssueTitle] = useState(bug.title); const classes = useStyles(); - let issueTitleInput: any; + const issueTitleInput = useRef<HTMLInputElement>(); function isFormValid() { - if (issueTitleInput) { - return issueTitleInput.value.length > 0; + if (issueTitleInput.current) { + return issueTitleInput.current.value.length > 0; } else { return false; } @@ -83,7 +83,7 @@ function BugTitleForm({ bug }: Props) { function submitNewTitle() { if (!isFormValid()) return; - if (bug.title === issueTitleInput.value) { + if (bug.title === issueTitleInput.current?.value) { cancelChange(); return; } @@ -91,7 +91,7 @@ function BugTitleForm({ bug }: Props) { variables: { input: { prefix: bug.id, - title: issueTitleInput.value, + title: issueTitleInput.current!!.value, }, }, refetchQueries: [ @@ -117,9 +117,7 @@ function BugTitleForm({ bug }: Props) { return ( <form className={classes.headerTitle}> <BugTitleInput - inputRef={(node) => { - issueTitleInput = node; - }} + inputRef={issueTitleInput} label="Title" variant="outlined" fullWidth diff --git a/webui/src/components/BugTitleForm/BugTitleInput.tsx b/webui/src/components/BugTitleForm/BugTitleInput.tsx index d2b060a2..11cbbdb6 100644 --- a/webui/src/components/BugTitleForm/BugTitleInput.tsx +++ b/webui/src/components/BugTitleForm/BugTitleInput.tsx @@ -1,5 +1,7 @@ -import { createStyles, fade, withStyles, TextField } from '@material-ui/core'; -import { Theme } from '@material-ui/core/styles'; +import { alpha, TextField } from '@mui/material'; +import { Theme } from '@mui/material/styles'; +import createStyles from '@mui/styles/createStyles'; +import withStyles from '@mui/styles/withStyles'; const BugTitleInput = withStyles((theme: Theme) => createStyles({ @@ -14,7 +16,7 @@ const BugTitleInput = withStyles((theme: Theme) => }, '& input:valid:hover + fieldset': { color: theme.palette.text.primary, - borderColor: fade(theme.palette.divider, 0.3), + borderColor: alpha(theme.palette.divider, 0.3), borderWidth: 2, }, '& input:valid:focus + fieldset': { diff --git a/webui/src/components/BugTitleForm/SetTitle.graphql b/webui/src/components/BugTitleForm/SetTitle.graphql index b96af155..9dc2d096 100644 --- a/webui/src/components/BugTitleForm/SetTitle.graphql +++ b/webui/src/components/BugTitleForm/SetTitle.graphql @@ -1,7 +1,7 @@ mutation setTitle($input: SetTitleInput!) { setTitle(input: $input) { - bug { - id - } + bug { + id + } } -}
\ No newline at end of file +} diff --git a/webui/src/components/CloseBugButton/CloseBug.graphql b/webui/src/components/CloseBugButton/CloseBug.graphql index e2f4bff2..fc03d1f3 100644 --- a/webui/src/components/CloseBugButton/CloseBug.graphql +++ b/webui/src/components/CloseBugButton/CloseBug.graphql @@ -5,4 +5,4 @@ mutation closeBug($input: CloseBugInput!) { id } } -}
\ No newline at end of file +} diff --git a/webui/src/components/CloseBugButton/index.tsx b/webui/src/components/CloseBugButton/index.tsx index bb154ea7..70b92392 100644 --- a/webui/src/components/CloseBugButton/index.tsx +++ b/webui/src/components/CloseBugButton/index.tsx @@ -1,22 +1,12 @@ -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 ErrorOutlineIcon from '@mui/icons-material/ErrorOutline'; +import Button from '@mui/material/Button'; +import CircularProgress from '@mui/material/CircularProgress'; import { BugFragment } from 'src/pages/bug/Bug.generated'; import { TimelineDocument } from 'src/pages/bug/TimelineQuery.generated'; import { useCloseBugMutation } from './CloseBug.generated'; -const useStyles = makeStyles((theme: Theme) => ({ - closeIssueIcon: { - color: theme.palette.secondary.dark, - paddingTop: '0.1rem', - }, -})); - interface Props { bug: BugFragment; disabled?: boolean; @@ -24,7 +14,6 @@ interface Props { function CloseBugButton({ bug, disabled }: Props) { const [closeBug, { loading, error }] = useCloseBugMutation(); - const classes = useStyles(); function closeBugAction() { closeBug({ @@ -56,7 +45,7 @@ function CloseBugButton({ bug, disabled }: Props) { variant="contained" onClick={() => closeBugAction()} disabled={bug.status === 'CLOSED' || disabled} - startIcon={<ErrorOutlineIcon className={classes.closeIssueIcon} />} + startIcon={<ErrorOutlineIcon />} > Close bug </Button> diff --git a/webui/src/components/CloseBugWithCommentButton/CloseBugWithComment.graphql b/webui/src/components/CloseBugWithCommentButton/CloseBugWithComment.graphql index eb736f53..66c84c35 100644 --- a/webui/src/components/CloseBugWithCommentButton/CloseBugWithComment.graphql +++ b/webui/src/components/CloseBugWithCommentButton/CloseBugWithComment.graphql @@ -8,4 +8,3 @@ mutation AddCommentAndCloseBug($input: AddCommentAndCloseBugInput!) { } } } - diff --git a/webui/src/components/CloseBugWithCommentButton/index.tsx b/webui/src/components/CloseBugWithCommentButton/index.tsx index a0fefa4a..efad39b3 100644 --- a/webui/src/components/CloseBugWithCommentButton/index.tsx +++ b/webui/src/components/CloseBugWithCommentButton/index.tsx @@ -1,22 +1,12 @@ -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 ErrorOutlineIcon from '@mui/icons-material/ErrorOutline'; +import Button from '@mui/material/Button'; +import CircularProgress from '@mui/material/CircularProgress'; 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; @@ -24,11 +14,8 @@ interface Props { } function CloseBugWithCommentButton({ bug, comment, postClick }: Props) { - const [ - addCommentAndCloseBug, - { loading, error }, - ] = useAddCommentAndCloseBugMutation(); - const classes = useStyles(); + const [addCommentAndCloseBug, { loading, error }] = + useAddCommentAndCloseBugMutation(); function addCommentAndCloseBugAction() { addCommentAndCloseBug({ @@ -64,7 +51,7 @@ function CloseBugWithCommentButton({ bug, comment, postClick }: Props) { <Button variant="contained" onClick={() => addCommentAndCloseBugAction()} - startIcon={<ErrorOutlineIcon className={classes.closeIssueIcon} />} + startIcon={<ErrorOutlineIcon />} > Close bug with comment </Button> diff --git a/webui/src/components/CommentInput/CommentInput.tsx b/webui/src/components/CommentInput/CommentInput.tsx index babd495c..0fde1d95 100644 --- a/webui/src/components/CommentInput/CommentInput.tsx +++ b/webui/src/components/CommentInput/CommentInput.tsx @@ -1,10 +1,10 @@ -import React, { useState, useEffect } from 'react'; - -import { Typography } from '@material-ui/core'; -import Tab from '@material-ui/core/Tab'; -import Tabs from '@material-ui/core/Tabs'; -import TextField from '@material-ui/core/TextField'; -import { makeStyles } from '@material-ui/core/styles'; +import { Typography } from '@mui/material'; +import Tab from '@mui/material/Tab'; +import Tabs from '@mui/material/Tabs'; +import TextField from '@mui/material/TextField'; +import makeStyles from '@mui/styles/makeStyles'; +import * as React from 'react'; +import { useState, useEffect } from 'react'; import Content from '../Content'; diff --git a/webui/src/components/Content/AnchorTag.tsx b/webui/src/components/Content/AnchorTag.tsx index 47d5e2fa..e9edef95 100644 --- a/webui/src/components/Content/AnchorTag.tsx +++ b/webui/src/components/Content/AnchorTag.tsx @@ -1,15 +1,17 @@ -import React from 'react'; +import makeStyles from '@mui/styles/makeStyles'; +import * as React from 'react'; import { Link } from 'react-router-dom'; -import { makeStyles } from '@material-ui/core/styles'; - const useStyles = makeStyles((theme) => ({ tag: { color: theme.palette.text.secondary, }, })); -const AnchorTag = ({ children, href }: React.HTMLProps<HTMLAnchorElement>) => { +const AnchorTag: React.FC = ({ + children, + href, +}: React.HTMLProps<HTMLAnchorElement>) => { const classes = useStyles(); const origin = window.location.origin; const destination = href === undefined ? '' : href; diff --git a/webui/src/components/Content/BlockQuoteTag.tsx b/webui/src/components/Content/BlockQuoteTag.tsx index 18c34d8a..ae6c34f4 100644 --- a/webui/src/components/Content/BlockQuoteTag.tsx +++ b/webui/src/components/Content/BlockQuoteTag.tsx @@ -1,6 +1,5 @@ -import React from 'react'; - -import { makeStyles } from '@material-ui/core/styles'; +import makeStyles from '@mui/styles/makeStyles'; +import * as React from 'react'; const useStyles = makeStyles((theme) => ({ tag: { @@ -13,7 +12,7 @@ const useStyles = makeStyles((theme) => ({ }, })); -const BlockQuoteTag = (props: React.HTMLProps<HTMLPreElement>) => { +const BlockQuoteTag: React.FC<React.HTMLProps<HTMLElement>> = (props) => { const classes = useStyles(); return <blockquote className={classes.tag} {...props} />; }; diff --git a/webui/src/components/Content/ImageTag.tsx b/webui/src/components/Content/ImageTag.tsx index 29b01da3..f6e7d5ba 100644 --- a/webui/src/components/Content/ImageTag.tsx +++ b/webui/src/components/Content/ImageTag.tsx @@ -1,6 +1,5 @@ -import React from 'react'; - -import { makeStyles } from '@material-ui/styles'; +import { makeStyles } from '@mui/styles'; +import * as React from 'react'; const useStyles = makeStyles({ tag: { @@ -8,10 +7,10 @@ const useStyles = makeStyles({ }, }); -const ImageTag = ({ +const ImageTag: React.FC<React.ImgHTMLAttributes<HTMLImageElement>> = ({ alt, ...props -}: React.ImgHTMLAttributes<HTMLImageElement>) => { +}) => { const classes = useStyles(); return ( <> diff --git a/webui/src/components/Content/PreTag.tsx b/webui/src/components/Content/PreTag.tsx index 8e352153..aeefa655 100644 --- a/webui/src/components/Content/PreTag.tsx +++ b/webui/src/components/Content/PreTag.tsx @@ -1,6 +1,5 @@ -import React from 'react'; - -import { makeStyles } from '@material-ui/styles'; +import { makeStyles } from '@mui/styles'; +import * as React from 'react'; const useStyles = makeStyles({ tag: { @@ -9,7 +8,7 @@ const useStyles = makeStyles({ }, }); -const PreTag = (props: React.HTMLProps<HTMLPreElement>) => { +const PreTag: React.FC<React.HTMLProps<HTMLPreElement>> = (props) => { const classes = useStyles(); return <pre className={classes.tag} {...props} />; }; diff --git a/webui/src/components/Content/index.tsx b/webui/src/components/Content/index.tsx index e4018809..9bf9ff7a 100644 --- a/webui/src/components/Content/index.tsx +++ b/webui/src/components/Content/index.tsx @@ -1,9 +1,11 @@ -import React from 'react'; +import { createElement, Fragment, useEffect, useState } from 'react'; +import * as React from 'react'; +import rehypeReact from 'rehype-react'; import gemoji from 'remark-gemoji'; import html from 'remark-html'; import parse from 'remark-parse'; -import remark2react from 'remark-react'; -import unified from 'unified'; +import remarkRehype from 'remark-rehype'; +import { unified } from 'unified'; import AnchorTag from './AnchorTag'; import BlockQuoteTag from './BlockQuoteTag'; @@ -12,21 +14,31 @@ import PreTag from './PreTag'; type Props = { markdown: string }; const Content: React.FC<Props> = ({ markdown }: Props) => { - const content = unified() - .use(parse) - .use(gemoji) - .use(html) - .use(remark2react, { - remarkReactComponents: { - img: ImageTag, - pre: PreTag, - a: AnchorTag, - blockquote: BlockQuoteTag, - }, - }) - .processSync(markdown).result; + const [Content, setContent] = useState(<></>); - return <>{content}</>; + useEffect(() => { + unified() + .use(parse) + .use(gemoji) + .use(html) + .use(remarkRehype) + .use(rehypeReact, { + createElement, + Fragment, + components: { + img: ImageTag, + pre: PreTag, + a: AnchorTag, + blockquote: BlockQuoteTag, + }, + }) + .process(markdown) + .then((file) => { + setContent(file.result); + }); + }, [markdown]); + + return Content; }; export default Content; diff --git a/webui/src/components/Date.tsx b/webui/src/components/Date.tsx index f9e0a0b2..1454fac7 100644 --- a/webui/src/components/Date.tsx +++ b/webui/src/components/Date.tsx @@ -1,9 +1,7 @@ +import Tooltip from '@mui/material/Tooltip/Tooltip'; import moment from 'moment'; -import React from 'react'; import Moment from 'react-moment'; -import Tooltip from '@material-ui/core/Tooltip/Tooltip'; - const HOUR = 1000 * 3600; const DAY = 24 * HOUR; const WEEK = 7 * DAY; @@ -11,7 +9,9 @@ const WEEK = 7 * DAY; type Props = { date: string }; const Date = ({ date }: Props) => ( <Tooltip title={moment(date).format('LLLL')}> - <Moment date={date} format="on ll" fromNowDuring={WEEK} /> + <span> + <Moment date={date} format="on ll" fromNowDuring={WEEK} /> + </span> </Tooltip> ); diff --git a/webui/src/components/Header/Header.tsx b/webui/src/components/Header/Header.tsx index 866e52db..961696d7 100644 --- a/webui/src/components/Header/Header.tsx +++ b/webui/src/components/Header/Header.tsx @@ -1,13 +1,12 @@ -import React from 'react'; +import AppBar from '@mui/material/AppBar'; +import Tab, { TabProps } from '@mui/material/Tab'; +import Tabs from '@mui/material/Tabs'; +import Toolbar from '@mui/material/Toolbar'; +import Tooltip from '@mui/material/Tooltip/Tooltip'; +import { alpha } from '@mui/material/styles'; +import makeStyles from '@mui/styles/makeStyles'; import { Link, useLocation } from 'react-router-dom'; -import AppBar from '@material-ui/core/AppBar'; -import Tab, { TabProps } from '@material-ui/core/Tab'; -import Tabs from '@material-ui/core/Tabs'; -import Toolbar from '@material-ui/core/Toolbar'; -import Tooltip from '@material-ui/core/Tooltip/Tooltip'; -import { fade, makeStyles } from '@material-ui/core/styles'; - import CurrentIdentity from '../Identity/CurrentIdentity'; import { LightSwitch } from '../Themer'; @@ -31,7 +30,7 @@ const useStyles = makeStyles((theme) => ({ }, lightSwitch: { marginRight: '20px', - color: fade(theme.palette.primary.contrastText, 0.5), + color: alpha(theme.palette.primary.contrastText, 0.5), }, logo: { height: '42px', diff --git a/webui/src/components/Header/index.tsx b/webui/src/components/Header/index.tsx index 42a0cfc1..8375c74a 100644 --- a/webui/src/components/Header/index.tsx +++ b/webui/src/components/Header/index.tsx @@ -1,6 +1,5 @@ -import React from 'react'; - -import CssBaseline from '@material-ui/core/CssBaseline'; +import CssBaseline from '@mui/material/CssBaseline'; +import * as React from 'react'; import Header from './Header'; diff --git a/webui/src/components/Identity/CurrentIdentity.tsx b/webui/src/components/Identity/CurrentIdentity.tsx index 2d62dcdb..e6a396a8 100644 --- a/webui/src/components/Identity/CurrentIdentity.tsx +++ b/webui/src/components/Identity/CurrentIdentity.tsx @@ -1,6 +1,4 @@ -import React from 'react'; -import { Link as RouterLink } from 'react-router-dom'; - +import LockIcon from '@mui/icons-material/Lock'; import { Button, ClickAwayListener, @@ -10,10 +8,11 @@ import { MenuList, Paper, Popper, -} from '@material-ui/core'; -import Avatar from '@material-ui/core/Avatar'; -import { makeStyles } from '@material-ui/core/styles'; -import LockIcon from '@material-ui/icons/Lock'; +} from '@mui/material'; +import Avatar from '@mui/material/Avatar'; +import makeStyles from '@mui/styles/makeStyles'; +import { useState, useRef } from 'react'; +import { Link as RouterLink } from 'react-router-dom'; import { useCurrentIdentityQuery } from './CurrentIdentity.generated'; @@ -37,8 +36,8 @@ const CurrentIdentity = () => { const classes = useStyles(); const { loading, error, data } = useCurrentIdentityQuery(); - const [open, setOpen] = React.useState(false); - const anchorRef = React.useRef<HTMLButtonElement>(null); + const [open, setOpen] = useState(false); + const anchorRef = useRef<HTMLButtonElement>(null); if (error || loading || !data?.repository?.userIdentity) return null; @@ -97,6 +96,7 @@ const CurrentIdentity = () => { className={classes.profileLink} component={RouterLink} to={`/user/${user.id}`} + underline="hover" > Open profile </Link> diff --git a/webui/src/components/IfLoggedIn/IfLoggedIn.tsx b/webui/src/components/IfLoggedIn/IfLoggedIn.tsx index ce120da1..965135d9 100644 --- a/webui/src/components/IfLoggedIn/IfLoggedIn.tsx +++ b/webui/src/components/IfLoggedIn/IfLoggedIn.tsx @@ -1,4 +1,4 @@ -import React from 'react'; +import * as React from 'react'; import { useCurrentIdentityQuery } from '../Identity/CurrentIdentity.generated'; diff --git a/webui/src/components/Label.tsx b/webui/src/components/Label.tsx index a1d3c6f9..709aceff 100644 --- a/webui/src/components/Label.tsx +++ b/webui/src/components/Label.tsx @@ -1,11 +1,6 @@ -import React from 'react'; - -import { Chip } from '@material-ui/core'; -import { common } from '@material-ui/core/colors'; -import { - darken, - getContrastRatio, -} from '@material-ui/core/styles/colorManipulator'; +import { Chip } from '@mui/material'; +import { common } from '@mui/material/colors'; +import { darken, getContrastRatio } from '@mui/material/styles'; import { Color } from '../gqlTypes'; import { LabelFragment } from '../graphql/fragments.generated'; diff --git a/webui/src/components/ReopenBugButton/OpenBug.graphql b/webui/src/components/ReopenBugButton/OpenBug.graphql index cf9e49e5..12673e65 100644 --- a/webui/src/components/ReopenBugButton/OpenBug.graphql +++ b/webui/src/components/ReopenBugButton/OpenBug.graphql @@ -4,4 +4,4 @@ mutation openBug($input: OpenBugInput!) { id } } -}
\ No newline at end of file +} diff --git a/webui/src/components/ReopenBugButton/index.tsx b/webui/src/components/ReopenBugButton/index.tsx index e62c58df..b6321560 100644 --- a/webui/src/components/ReopenBugButton/index.tsx +++ b/webui/src/components/ReopenBugButton/index.tsx @@ -1,7 +1,5 @@ -import React from 'react'; - -import Button from '@material-ui/core/Button'; -import CircularProgress from '@material-ui/core/CircularProgress'; +import Button from '@mui/material/Button'; +import CircularProgress from '@mui/material/CircularProgress'; import { BugFragment } from 'src/pages/bug/Bug.generated'; import { TimelineDocument } from 'src/pages/bug/TimelineQuery.generated'; diff --git a/webui/src/components/ReopenBugWithCommentButton/ReopenBugWithComment.graphql b/webui/src/components/ReopenBugWithCommentButton/ReopenBugWithComment.graphql index 4c220208..5258a1aa 100644 --- a/webui/src/components/ReopenBugWithCommentButton/ReopenBugWithComment.graphql +++ b/webui/src/components/ReopenBugWithCommentButton/ReopenBugWithComment.graphql @@ -8,4 +8,3 @@ mutation AddCommentAndReopenBug($input: AddCommentAndReopenBugInput!) { } } } - diff --git a/webui/src/components/ReopenBugWithCommentButton/index.tsx b/webui/src/components/ReopenBugWithCommentButton/index.tsx index 0a534f27..66bc04c6 100644 --- a/webui/src/components/ReopenBugWithCommentButton/index.tsx +++ b/webui/src/components/ReopenBugWithCommentButton/index.tsx @@ -1,7 +1,5 @@ -import React from 'react'; - -import Button from '@material-ui/core/Button'; -import CircularProgress from '@material-ui/core/CircularProgress'; +import Button from '@mui/material/Button'; +import CircularProgress from '@mui/material/CircularProgress'; import { BugFragment } from 'src/pages/bug/Bug.generated'; import { TimelineDocument } from 'src/pages/bug/TimelineQuery.generated'; @@ -15,10 +13,8 @@ interface Props { } function ReopenBugWithCommentButton({ bug, comment, postClick }: Props) { - const [ - addCommentAndReopenBug, - { loading, error }, - ] = useAddCommentAndReopenBugMutation(); + const [addCommentAndReopenBug, { loading, error }] = + useAddCommentAndReopenBugMutation(); function addCommentAndReopenBugAction() { addCommentAndReopenBug({ diff --git a/webui/src/components/Themer.tsx b/webui/src/components/Themer.tsx index edf1f352..9934888d 100644 --- a/webui/src/components/Themer.tsx +++ b/webui/src/components/Themer.tsx @@ -1,10 +1,15 @@ -import React, { createContext, useContext, useState } from 'react'; +import { NightsStayRounded, WbSunnyRounded } from '@mui/icons-material'; +import { ThemeProvider, StyledEngineProvider } from '@mui/material'; +import IconButton from '@mui/material/IconButton'; +import Tooltip from '@mui/material/Tooltip'; +import { Theme } from '@mui/material/styles'; +import * as React from 'react'; +import { createContext, useContext, useState } from 'react'; -import { ThemeProvider } from '@material-ui/core'; -import IconButton from '@material-ui/core/IconButton'; -import Tooltip from '@material-ui/core/Tooltip'; -import { Theme } from '@material-ui/core/styles'; -import { NightsStayRounded, WbSunnyRounded } from '@material-ui/icons'; +declare module '@mui/styles/defaultTheme' { + // eslint-disable-next-line @typescript-eslint/no-empty-interface + interface DefaultTheme extends Theme {} +} const ThemeContext = createContext({ toggleMode: () => {}, @@ -25,6 +30,7 @@ const LightSwitch = ({ className }: LightSwitchProps) => { onClick={toggleMode} aria-label={description} className={className} + size="large" > {mode === 'light' ? <WbSunnyRounded /> : <NightsStayRounded />} </IconButton> @@ -52,7 +58,9 @@ const Themer = ({ children, lightTheme, darkTheme }: Props) => { return ( <ThemeContext.Provider value={{ toggleMode: toggleMode, mode: mode }}> - <ThemeProvider theme={preferedTheme}>{children}</ThemeProvider> + <StyledEngineProvider injectFirst> + <ThemeProvider theme={preferedTheme}>{children}</ThemeProvider> + </StyledEngineProvider> </ThemeContext.Provider> ); }; |