webui: upgrade Material UI

This commit is contained in:
Quentin Gliech 2022-02-22 21:50:14 +01:00
parent b0eb041e57
commit fd17d6dd1f
No known key found for this signature in database
GPG Key ID: 22D62B84552719FC
46 changed files with 1196 additions and 471 deletions

1177
webui/package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -5,10 +5,12 @@
"dependencies": { "dependencies": {
"@apollo/client": "^3.5.9", "@apollo/client": "^3.5.9",
"@arrows/composition": "^1.2.2", "@arrows/composition": "^1.2.2",
"@material-ui/core": "^4.12.3", "@emotion/react": "^11.8.1",
"@material-ui/icons": "^4.11.2", "@emotion/styled": "^11.8.1",
"@material-ui/lab": "^4.0.0-alpha.60", "@mui/icons-material": "^5.4.2",
"@material-ui/styles": "^4.10.0", "@mui/lab": "^5.0.0-alpha.70",
"@mui/material": "^5.4.3",
"@mui/styles": "^5.4.2",
"@types/node": "^17.0.18", "@types/node": "^17.0.18",
"@types/react": "^17.0.39", "@types/react": "^17.0.39",
"@types/react-dom": "^17.0.11", "@types/react-dom": "^17.0.11",

View File

@ -6,6 +6,12 @@ const client = new ApolloClient({
uri: '/graphql', uri: '/graphql',
cache: new InMemoryCache({ cache: new InMemoryCache({
possibleTypes: introspectionResult.possibleTypes, possibleTypes: introspectionResult.possibleTypes,
typePolicies: {
// TODO: For now, we only query the default repository, so consider it as a singleton
Repository: {
keyFields: [],
},
},
}), }),
}); });

View File

@ -1,9 +1,8 @@
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 { 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'; import { AuthoredFragment } from '../graphql/fragments.generated';
type Props = AuthoredFragment & { type Props = AuthoredFragment & {
@ -14,7 +13,12 @@ type Props = AuthoredFragment & {
const Author = ({ author, ...props }: Props) => { const Author = ({ author, ...props }: Props) => {
return ( return (
<Tooltip title={`Goto the ${author.displayName}'s profile.`}> <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} {author.displayName}
</Link> </Link>
</Tooltip> </Tooltip>

View File

@ -1,9 +1,8 @@
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 { 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) => ({ const useStyles = makeStyles((theme) => ({
backButton: { backButton: {
position: 'sticky', position: 'sticky',

View File

@ -1,8 +1,8 @@
import { 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 { Link } from 'react-router-dom';
import { Button, makeStyles, Typography } from '@material-ui/core';
import { TimelineDocument } from '../../pages/bug/TimelineQuery.generated'; import { TimelineDocument } from '../../pages/bug/TimelineQuery.generated';
import IfLoggedIn from '../IfLoggedIn/IfLoggedIn'; import IfLoggedIn from '../IfLoggedIn/IfLoggedIn';
import Author from 'src/components/Author'; import Author from 'src/components/Author';
@ -71,11 +71,11 @@ function BugTitleForm({ bug }: Props) {
const [setTitle, { loading, error }] = useSetTitleMutation(); const [setTitle, { loading, error }] = useSetTitleMutation();
const [issueTitle, setIssueTitle] = useState(bug.title); const [issueTitle, setIssueTitle] = useState(bug.title);
const classes = useStyles(); const classes = useStyles();
let issueTitleInput: any; const issueTitleInput = useRef<HTMLInputElement>();
function isFormValid() { function isFormValid() {
if (issueTitleInput) { if (issueTitleInput.current) {
return issueTitleInput.value.length > 0; return issueTitleInput.current.value.length > 0;
} else { } else {
return false; return false;
} }
@ -83,7 +83,7 @@ function BugTitleForm({ bug }: Props) {
function submitNewTitle() { function submitNewTitle() {
if (!isFormValid()) return; if (!isFormValid()) return;
if (bug.title === issueTitleInput.value) { if (bug.title === issueTitleInput.current?.value) {
cancelChange(); cancelChange();
return; return;
} }
@ -91,7 +91,7 @@ function BugTitleForm({ bug }: Props) {
variables: { variables: {
input: { input: {
prefix: bug.id, prefix: bug.id,
title: issueTitleInput.value, title: issueTitleInput.current!!.value,
}, },
}, },
refetchQueries: [ refetchQueries: [
@ -117,9 +117,7 @@ function BugTitleForm({ bug }: Props) {
return ( return (
<form className={classes.headerTitle}> <form className={classes.headerTitle}>
<BugTitleInput <BugTitleInput
inputRef={(node) => { inputRef={issueTitleInput}
issueTitleInput = node;
}}
label="Title" label="Title"
variant="outlined" variant="outlined"
fullWidth fullWidth

View File

@ -1,5 +1,7 @@
import { createStyles, fade, withStyles, TextField } from '@material-ui/core'; import { alpha, TextField } from '@mui/material';
import { Theme } from '@material-ui/core/styles'; import { Theme } from '@mui/material/styles';
import createStyles from '@mui/styles/createStyles';
import withStyles from '@mui/styles/withStyles';
const BugTitleInput = withStyles((theme: Theme) => const BugTitleInput = withStyles((theme: Theme) =>
createStyles({ createStyles({
@ -14,7 +16,7 @@ const BugTitleInput = withStyles((theme: Theme) =>
}, },
'& input:valid:hover + fieldset': { '& input:valid:hover + fieldset': {
color: theme.palette.text.primary, color: theme.palette.text.primary,
borderColor: fade(theme.palette.divider, 0.3), borderColor: alpha(theme.palette.divider, 0.3),
borderWidth: 2, borderWidth: 2,
}, },
'& input:valid:focus + fieldset': { '& input:valid:focus + fieldset': {

View File

@ -1,20 +1,12 @@
import Button from '@material-ui/core/Button'; import ErrorOutlineIcon from '@mui/icons-material/ErrorOutline';
import CircularProgress from '@material-ui/core/CircularProgress'; import Button from '@mui/material/Button';
import { makeStyles, Theme } from '@material-ui/core/styles'; import CircularProgress from '@mui/material/CircularProgress';
import ErrorOutlineIcon from '@material-ui/icons/ErrorOutline';
import { BugFragment } from 'src/pages/bug/Bug.generated'; import { BugFragment } from 'src/pages/bug/Bug.generated';
import { TimelineDocument } from 'src/pages/bug/TimelineQuery.generated'; import { TimelineDocument } from 'src/pages/bug/TimelineQuery.generated';
import { useCloseBugMutation } from './CloseBug.generated'; import { useCloseBugMutation } from './CloseBug.generated';
const useStyles = makeStyles((theme: Theme) => ({
closeIssueIcon: {
color: theme.palette.secondary.dark,
paddingTop: '0.1rem',
},
}));
interface Props { interface Props {
bug: BugFragment; bug: BugFragment;
disabled?: boolean; disabled?: boolean;
@ -22,7 +14,6 @@ interface Props {
function CloseBugButton({ bug, disabled }: Props) { function CloseBugButton({ bug, disabled }: Props) {
const [closeBug, { loading, error }] = useCloseBugMutation(); const [closeBug, { loading, error }] = useCloseBugMutation();
const classes = useStyles();
function closeBugAction() { function closeBugAction() {
closeBug({ closeBug({
@ -54,7 +45,7 @@ function CloseBugButton({ bug, disabled }: Props) {
variant="contained" variant="contained"
onClick={() => closeBugAction()} onClick={() => closeBugAction()}
disabled={bug.status === 'CLOSED' || disabled} disabled={bug.status === 'CLOSED' || disabled}
startIcon={<ErrorOutlineIcon className={classes.closeIssueIcon} />} startIcon={<ErrorOutlineIcon />}
> >
Close bug Close bug
</Button> </Button>

View File

@ -1,20 +1,12 @@
import Button from '@material-ui/core/Button'; import ErrorOutlineIcon from '@mui/icons-material/ErrorOutline';
import CircularProgress from '@material-ui/core/CircularProgress'; import Button from '@mui/material/Button';
import { makeStyles, Theme } from '@material-ui/core/styles'; import CircularProgress from '@mui/material/CircularProgress';
import ErrorOutlineIcon from '@material-ui/icons/ErrorOutline';
import { BugFragment } from 'src/pages/bug/Bug.generated'; import { BugFragment } from 'src/pages/bug/Bug.generated';
import { TimelineDocument } from 'src/pages/bug/TimelineQuery.generated'; import { TimelineDocument } from 'src/pages/bug/TimelineQuery.generated';
import { useAddCommentAndCloseBugMutation } from './CloseBugWithComment.generated'; import { useAddCommentAndCloseBugMutation } from './CloseBugWithComment.generated';
const useStyles = makeStyles((theme: Theme) => ({
closeIssueIcon: {
color: theme.palette.secondary.dark,
paddingTop: '0.1rem',
},
}));
interface Props { interface Props {
bug: BugFragment; bug: BugFragment;
comment: string; comment: string;
@ -24,7 +16,6 @@ interface Props {
function CloseBugWithCommentButton({ bug, comment, postClick }: Props) { function CloseBugWithCommentButton({ bug, comment, postClick }: Props) {
const [addCommentAndCloseBug, { loading, error }] = const [addCommentAndCloseBug, { loading, error }] =
useAddCommentAndCloseBugMutation(); useAddCommentAndCloseBugMutation();
const classes = useStyles();
function addCommentAndCloseBugAction() { function addCommentAndCloseBugAction() {
addCommentAndCloseBug({ addCommentAndCloseBug({
@ -60,7 +51,7 @@ function CloseBugWithCommentButton({ bug, comment, postClick }: Props) {
<Button <Button
variant="contained" variant="contained"
onClick={() => addCommentAndCloseBugAction()} onClick={() => addCommentAndCloseBugAction()}
startIcon={<ErrorOutlineIcon className={classes.closeIssueIcon} />} startIcon={<ErrorOutlineIcon />}
> >
Close bug with comment Close bug with comment
</Button> </Button>

View File

@ -1,11 +1,10 @@
import { useState, useEffect } from 'react'; 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 * as React from 'react';
import { 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 Content from '../Content'; import Content from '../Content';

View File

@ -1,8 +1,7 @@
import makeStyles from '@mui/styles/makeStyles';
import * as React from 'react'; import * as React from 'react';
import { Link } from 'react-router-dom'; import { Link } from 'react-router-dom';
import { makeStyles } from '@material-ui/core/styles';
const useStyles = makeStyles((theme) => ({ const useStyles = makeStyles((theme) => ({
tag: { tag: {
color: theme.palette.text.secondary, color: theme.palette.text.secondary,

View File

@ -1,7 +1,6 @@
import makeStyles from '@mui/styles/makeStyles';
import * as React from 'react'; import * as React from 'react';
import { makeStyles } from '@material-ui/core/styles';
const useStyles = makeStyles((theme) => ({ const useStyles = makeStyles((theme) => ({
tag: { tag: {
color: theme.palette.text.secondary, color: theme.palette.text.secondary,

View File

@ -1,7 +1,6 @@
import { makeStyles } from '@mui/styles';
import * as React from 'react'; import * as React from 'react';
import { makeStyles } from '@material-ui/styles';
const useStyles = makeStyles({ const useStyles = makeStyles({
tag: { tag: {
maxWidth: '100%', maxWidth: '100%',

View File

@ -1,7 +1,6 @@
import { makeStyles } from '@mui/styles';
import * as React from 'react'; import * as React from 'react';
import { makeStyles } from '@material-ui/styles';
const useStyles = makeStyles({ const useStyles = makeStyles({
tag: { tag: {
maxWidth: '100%', maxWidth: '100%',

View File

@ -1,8 +1,7 @@
import Tooltip from '@mui/material/Tooltip/Tooltip';
import moment from 'moment'; import moment from 'moment';
import Moment from 'react-moment'; import Moment from 'react-moment';
import Tooltip from '@material-ui/core/Tooltip/Tooltip';
const HOUR = 1000 * 3600; const HOUR = 1000 * 3600;
const DAY = 24 * HOUR; const DAY = 24 * HOUR;
const WEEK = 7 * DAY; const WEEK = 7 * DAY;
@ -10,7 +9,9 @@ const WEEK = 7 * DAY;
type Props = { date: string }; type Props = { date: string };
const Date = ({ date }: Props) => ( const Date = ({ date }: Props) => (
<Tooltip title={moment(date).format('LLLL')}> <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> </Tooltip>
); );

View File

@ -1,12 +1,12 @@
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 { 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 CurrentIdentity from '../Identity/CurrentIdentity';
import { LightSwitch } from '../Themer'; import { LightSwitch } from '../Themer';
@ -30,7 +30,7 @@ const useStyles = makeStyles((theme) => ({
}, },
lightSwitch: { lightSwitch: {
marginRight: '20px', marginRight: '20px',
color: fade(theme.palette.primary.contrastText, 0.5), color: alpha(theme.palette.primary.contrastText, 0.5),
}, },
logo: { logo: {
height: '42px', height: '42px',

View File

@ -1,7 +1,6 @@
import CssBaseline from '@mui/material/CssBaseline';
import * as React from 'react'; import * as React from 'react';
import CssBaseline from '@material-ui/core/CssBaseline';
import Header from './Header'; import Header from './Header';
type Props = { children: React.ReactNode }; type Props = { children: React.ReactNode };

View File

@ -1,6 +1,4 @@
import { useState, useRef } from 'react'; import LockIcon from '@mui/icons-material/Lock';
import { Link as RouterLink } from 'react-router-dom';
import { import {
Button, Button,
ClickAwayListener, ClickAwayListener,
@ -10,10 +8,11 @@ import {
MenuList, MenuList,
Paper, Paper,
Popper, Popper,
} from '@material-ui/core'; } from '@mui/material';
import Avatar from '@material-ui/core/Avatar'; import Avatar from '@mui/material/Avatar';
import { makeStyles } from '@material-ui/core/styles'; import makeStyles from '@mui/styles/makeStyles';
import LockIcon from '@material-ui/icons/Lock'; import { useState, useRef } from 'react';
import { Link as RouterLink } from 'react-router-dom';
import { useCurrentIdentityQuery } from './CurrentIdentity.generated'; import { useCurrentIdentityQuery } from './CurrentIdentity.generated';
@ -97,6 +96,7 @@ const CurrentIdentity = () => {
className={classes.profileLink} className={classes.profileLink}
component={RouterLink} component={RouterLink}
to={`/user/${user.id}`} to={`/user/${user.id}`}
underline="hover"
> >
Open profile Open profile
</Link> </Link>

View File

@ -1,9 +1,6 @@
import { Chip } from '@material-ui/core'; import { Chip } from '@mui/material';
import { common } from '@material-ui/core/colors'; import { common } from '@mui/material/colors';
import { import { darken, getContrastRatio } from '@mui/material/styles';
darken,
getContrastRatio,
} from '@material-ui/core/styles/colorManipulator';
import { Color } from '../gqlTypes'; import { Color } from '../gqlTypes';
import { LabelFragment } from '../graphql/fragments.generated'; import { LabelFragment } from '../graphql/fragments.generated';

View File

@ -1,5 +1,5 @@
import Button from '@material-ui/core/Button'; import Button from '@mui/material/Button';
import CircularProgress from '@material-ui/core/CircularProgress'; import CircularProgress from '@mui/material/CircularProgress';
import { BugFragment } from 'src/pages/bug/Bug.generated'; import { BugFragment } from 'src/pages/bug/Bug.generated';
import { TimelineDocument } from 'src/pages/bug/TimelineQuery.generated'; import { TimelineDocument } from 'src/pages/bug/TimelineQuery.generated';

View File

@ -1,5 +1,5 @@
import Button from '@material-ui/core/Button'; import Button from '@mui/material/Button';
import CircularProgress from '@material-ui/core/CircularProgress'; import CircularProgress from '@mui/material/CircularProgress';
import { BugFragment } from 'src/pages/bug/Bug.generated'; import { BugFragment } from 'src/pages/bug/Bug.generated';
import { TimelineDocument } from 'src/pages/bug/TimelineQuery.generated'; import { TimelineDocument } from 'src/pages/bug/TimelineQuery.generated';

View File

@ -1,11 +1,15 @@
import { 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 * as React from 'react';
import { createContext, useContext, useState } from 'react';
import { ThemeProvider } from '@material-ui/core'; declare module '@mui/styles/defaultTheme' {
import IconButton from '@material-ui/core/IconButton'; // eslint-disable-next-line @typescript-eslint/no-empty-interface
import Tooltip from '@material-ui/core/Tooltip'; interface DefaultTheme extends Theme {}
import { Theme } from '@material-ui/core/styles'; }
import { NightsStayRounded, WbSunnyRounded } from '@material-ui/icons';
const ThemeContext = createContext({ const ThemeContext = createContext({
toggleMode: () => {}, toggleMode: () => {},
@ -26,6 +30,7 @@ const LightSwitch = ({ className }: LightSwitchProps) => {
onClick={toggleMode} onClick={toggleMode}
aria-label={description} aria-label={description}
className={className} className={className}
size="large"
> >
{mode === 'light' ? <WbSunnyRounded /> : <NightsStayRounded />} {mode === 'light' ? <WbSunnyRounded /> : <NightsStayRounded />}
</IconButton> </IconButton>
@ -53,7 +58,9 @@ const Themer = ({ children, lightTheme, darkTheme }: Props) => {
return ( return (
<ThemeContext.Provider value={{ toggleMode: toggleMode, mode: mode }}> <ThemeContext.Provider value={{ toggleMode: toggleMode, mode: mode }}>
<ThemeProvider theme={preferedTheme}>{children}</ThemeProvider> <StyledEngineProvider injectFirst>
<ThemeProvider theme={preferedTheme}>{children}</ThemeProvider>
</StyledEngineProvider>
</ThemeContext.Provider> </ThemeContext.Provider>
); );
}; };

View File

@ -1,4 +1,4 @@
import { makeStyles } from '@material-ui/core/styles'; import makeStyles from '@mui/styles/makeStyles';
import BugTitleForm from 'src/components/BugTitleForm/BugTitleForm'; import BugTitleForm from 'src/components/BugTitleForm/BugTitleForm';
import IfLoggedIn from 'src/components/IfLoggedIn/IfLoggedIn'; import IfLoggedIn from 'src/components/IfLoggedIn/IfLoggedIn';

View File

@ -1,8 +1,7 @@
import CircularProgress from '@mui/material/CircularProgress';
import * as React from 'react'; import * as React from 'react';
import { useParams } from 'react-router-dom'; import { useParams } from 'react-router-dom';
import CircularProgress from '@material-ui/core/CircularProgress';
import NotFoundPage from '../notfound/NotFoundPage'; import NotFoundPage from '../notfound/NotFoundPage';
import Bug from './Bug'; import Bug from './Bug';

View File

@ -1,9 +1,9 @@
import { useState, useRef } from 'react'; import Button from '@mui/material/Button';
import Paper from '@mui/material/Paper';
import { Theme } from '@mui/material/styles';
import makeStyles from '@mui/styles/makeStyles';
import * as React from 'react'; import * as React from 'react';
import { useState, useRef } from 'react';
import Button from '@material-ui/core/Button';
import Paper from '@material-ui/core/Paper';
import { makeStyles, Theme } from '@material-ui/core/styles';
import CommentInput from '../../components/CommentInput/CommentInput'; import CommentInput from '../../components/CommentInput/CommentInput';
import CloseBugButton from 'src/components/CloseBugButton'; import CloseBugButton from 'src/components/CloseBugButton';

View File

@ -1,9 +1,9 @@
import { useState, useRef } from 'react'; import Button from '@mui/material/Button';
import Paper from '@mui/material/Paper';
import { Theme } from '@mui/material/styles';
import makeStyles from '@mui/styles/makeStyles';
import * as React from 'react'; import * as React from 'react';
import { useState, useRef } from 'react';
import Button from '@material-ui/core/Button';
import Paper from '@material-ui/core/Paper';
import { makeStyles, Theme } from '@material-ui/core/styles';
import CommentInput from '../../components/CommentInput/CommentInput'; import CommentInput from '../../components/CommentInput/CommentInput';

View File

@ -1,5 +1,5 @@
import { Typography } from '@material-ui/core'; import { Typography } from '@mui/material';
import { makeStyles } from '@material-ui/core/styles'; import makeStyles from '@mui/styles/makeStyles';
import Author from 'src/components/Author'; import Author from 'src/components/Author';
import Date from 'src/components/Date'; import Date from 'src/components/Date';

View File

@ -1,12 +1,11 @@
import { useState } from 'react'; import EditIcon from '@mui/icons-material/Edit';
import HistoryIcon from '@mui/icons-material/History';
import IconButton from '@mui/material/IconButton';
import Paper from '@mui/material/Paper';
import Tooltip from '@mui/material/Tooltip/Tooltip';
import makeStyles from '@mui/styles/makeStyles';
import * as React from 'react'; import * as React from 'react';
import { useState } from 'react';
import IconButton from '@material-ui/core/IconButton';
import Paper from '@material-ui/core/Paper';
import Tooltip from '@material-ui/core/Tooltip/Tooltip';
import { makeStyles } from '@material-ui/core/styles';
import EditIcon from '@material-ui/icons/Edit';
import HistoryIcon from '@material-ui/icons/History';
import Author, { Avatar } from 'src/components/Author'; import Author, { Avatar } from 'src/components/Author';
import Content from 'src/components/Content'; import Content from 'src/components/Content';
@ -98,6 +97,7 @@ function HistoryMenuToggleButton({ bugId, commentId }: HistBtnProps) {
aria-haspopup="true" aria-haspopup="true"
onClick={handleClickOpen} onClick={handleClickOpen}
className={classes.headerActions} className={classes.headerActions}
size="large"
> >
<HistoryIcon /> <HistoryIcon />
</IconButton> </IconButton>
@ -150,6 +150,7 @@ function Message({ bug, op }: Props) {
className={classes.headerActions} className={classes.headerActions}
aria-label="edit message" aria-label="edit message"
onClick={() => editComment(comment.id)} onClick={() => editComment(comment.id)}
size="large"
> >
<EditIcon /> <EditIcon />
</IconButton> </IconButton>

View File

@ -1,27 +1,24 @@
import CloseIcon from '@mui/icons-material/Close';
import ExpandMoreIcon from '@mui/icons-material/ExpandMore';
import MuiAccordion from '@mui/material/Accordion';
import MuiAccordionDetails from '@mui/material/AccordionDetails';
import MuiAccordionSummary from '@mui/material/AccordionSummary';
import CircularProgress from '@mui/material/CircularProgress';
import Dialog from '@mui/material/Dialog';
import MuiDialogContent from '@mui/material/DialogContent';
import MuiDialogTitle from '@mui/material/DialogTitle';
import Grid from '@mui/material/Grid';
import IconButton from '@mui/material/IconButton';
import Tooltip from '@mui/material/Tooltip/Tooltip';
import Typography from '@mui/material/Typography';
import { Theme } from '@mui/material/styles';
import { WithStyles } from '@mui/styles';
import createStyles from '@mui/styles/createStyles';
import withStyles from '@mui/styles/withStyles';
import moment from 'moment'; import moment from 'moment';
import * as React from 'react'; import * as React from 'react';
import Moment from 'react-moment'; import Moment from 'react-moment';
import MuiAccordion from '@material-ui/core/Accordion';
import MuiAccordionDetails from '@material-ui/core/AccordionDetails';
import MuiAccordionSummary from '@material-ui/core/AccordionSummary';
import CircularProgress from '@material-ui/core/CircularProgress';
import Dialog from '@material-ui/core/Dialog';
import MuiDialogContent from '@material-ui/core/DialogContent';
import MuiDialogTitle from '@material-ui/core/DialogTitle';
import Grid from '@material-ui/core/Grid';
import IconButton from '@material-ui/core/IconButton';
import Tooltip from '@material-ui/core/Tooltip/Tooltip';
import Typography from '@material-ui/core/Typography';
import {
createStyles,
Theme,
withStyles,
WithStyles,
} from '@material-ui/core/styles';
import CloseIcon from '@material-ui/icons/Close';
import ExpandMoreIcon from '@material-ui/icons/ExpandMore';
import Content from '../../components/Content'; import Content from '../../components/Content';
import { AddCommentFragment } from './MessageCommentFragment.generated'; import { AddCommentFragment } from './MessageCommentFragment.generated';
@ -50,13 +47,14 @@ export interface DialogTitleProps extends WithStyles<typeof styles> {
const DialogTitle = withStyles(styles)((props: DialogTitleProps) => { const DialogTitle = withStyles(styles)((props: DialogTitleProps) => {
const { children, classes, onClose, ...other } = props; const { children, classes, onClose, ...other } = props;
return ( return (
<MuiDialogTitle disableTypography className={classes.root} {...other}> <MuiDialogTitle className={classes.root} {...other}>
<Typography variant="h6">{children}</Typography> <Typography variant="h6">{children}</Typography>
{onClose ? ( {onClose ? (
<IconButton <IconButton
aria-label="close" aria-label="close"
className={classes.closeButton} className={classes.closeButton}
onClick={onClose} onClick={onClose}
size="large"
> >
<CloseIcon /> <CloseIcon />
</IconButton> </IconButton>
@ -141,7 +139,7 @@ function MessageHistoryDialog({ bugId, commentId, open, onClose }: Props) {
Loading... Loading...
</DialogTitle> </DialogTitle>
<DialogContent dividers> <DialogContent dividers>
<Grid container justify="center"> <Grid container justifyContent="center">
<CircularProgress /> <CircularProgress />
</Grid> </Grid>
</DialogContent> </DialogContent>

View File

@ -1,5 +1,5 @@
import { Typography } from '@material-ui/core'; import { Typography } from '@mui/material';
import { makeStyles } from '@material-ui/core/styles'; import makeStyles from '@mui/styles/makeStyles';
import { Status } from '../../gqlTypes'; import { Status } from '../../gqlTypes';
import Author from 'src/components/Author'; import Author from 'src/components/Author';

View File

@ -1,5 +1,5 @@
import { Typography } from '@material-ui/core'; import { Typography } from '@mui/material';
import { makeStyles } from '@material-ui/core/styles'; import makeStyles from '@mui/styles/makeStyles';
import Author from 'src/components/Author'; import Author from 'src/components/Author';
import Date from 'src/components/Date'; import Date from 'src/components/Date';

View File

@ -1,4 +1,4 @@
import { makeStyles } from '@material-ui/core/styles'; import makeStyles from '@mui/styles/makeStyles';
import { BugFragment } from './Bug.generated'; import { BugFragment } from './Bug.generated';
import LabelChange from './LabelChange'; import LabelChange from './LabelChange';

View File

@ -1,4 +1,4 @@
import CircularProgress from '@material-ui/core/CircularProgress'; import CircularProgress from '@mui/material/CircularProgress';
import { BugFragment } from './Bug.generated'; import { BugFragment } from './Bug.generated';
import Timeline from './Timeline'; import Timeline from './Timeline';

View File

@ -1,14 +1,14 @@
import { useEffect, useRef, useState } from 'react'; import CheckIcon from '@mui/icons-material/Check';
import SettingsIcon from '@mui/icons-material/Settings';
import { IconButton } from '@mui/material';
import Menu from '@mui/material/Menu';
import MenuItem from '@mui/material/MenuItem';
import TextField from '@mui/material/TextField';
import { darken } from '@mui/material/styles';
import makeStyles from '@mui/styles/makeStyles';
import withStyles from '@mui/styles/withStyles';
import * as React from 'react'; import * as React from 'react';
import { useEffect, useRef, useState } from 'react';
import { IconButton } from '@material-ui/core';
import Menu from '@material-ui/core/Menu';
import MenuItem from '@material-ui/core/MenuItem';
import TextField from '@material-ui/core/TextField';
import { makeStyles, withStyles } from '@material-ui/core/styles';
import { darken } from '@material-ui/core/styles/colorManipulator';
import CheckIcon from '@material-ui/icons/Check';
import SettingsIcon from '@material-ui/icons/Settings';
import { Color } from '../../../gqlTypes'; import { Color } from '../../../gqlTypes';
import { import {
@ -109,7 +109,7 @@ function FilterDropdown({
const [open, setOpen] = useState(false); const [open, setOpen] = useState(false);
const [filter, setFilter] = useState<string>(''); const [filter, setFilter] = useState<string>('');
const buttonRef = useRef<HTMLButtonElement>(null); const buttonRef = useRef<HTMLButtonElement>(null);
const searchRef = useRef<HTMLButtonElement>(null); const searchRef = useRef<HTMLInputElement>(null);
const classes = useStyles({ active: false }); const classes = useStyles({ active: false });
useEffect(() => { useEffect(() => {
@ -125,6 +125,7 @@ function FilterDropdown({
onClick={() => setOpen(!open)} onClick={() => setOpen(!open)}
className={classes.gearBtn} className={classes.gearBtn}
disableRipple disableRipple
size="large"
> >
<SettingsIcon fontSize={'small'} /> <SettingsIcon fontSize={'small'} />
</IconButton> </IconButton>
@ -132,8 +133,6 @@ function FilterDropdown({
<Menu <Menu
className={classes.menu} className={classes.menu}
getContentAnchorEl={null}
ref={searchRef}
anchorOrigin={{ anchorOrigin={{
vertical: 'bottom', vertical: 'bottom',
horizontal: 'left', horizontal: 'left',
@ -147,7 +146,6 @@ function FilterDropdown({
setOpen(false); setOpen(false);
onClose(); onClose();
}} }}
onExited={() => setFilter('')}
anchorEl={buttonRef.current} anchorEl={buttonRef.current}
PaperProps={{ PaperProps={{
style: { style: {
@ -155,9 +153,13 @@ function FilterDropdown({
width: '25ch', width: '25ch',
}, },
}} }}
TransitionProps={{
onExited: () => setFilter(''),
}}
> >
{hasFilter && ( {hasFilter && (
<CustomTextField <CustomTextField
inputRef={searchRef}
onChange={(e) => { onChange={(e) => {
const { value } = e.target; const { value } = e.target;
setFilter(value); setFilter(value);

View File

@ -1,6 +1,6 @@
import { Card, Divider, Link, Typography } from '@material-ui/core'; import { Card, Divider, Link, Typography } from '@mui/material';
import CircularProgress from '@material-ui/core/CircularProgress'; import CircularProgress from '@mui/material/CircularProgress';
import { makeStyles } from '@material-ui/core/styles'; import makeStyles from '@mui/styles/makeStyles';
import Date from '../../components/Date'; import Date from '../../components/Date';
@ -47,6 +47,7 @@ function BugList({ id }: Props) {
className={classes.bugLink} className={classes.bugLink}
href={'/bug/' + bug.id} href={'/bug/' + bug.id}
color={'inherit'} color={'inherit'}
underline="hover"
> >
{bug.title} {bug.title}
</Link> </Link>

View File

@ -1,13 +1,12 @@
import InfoIcon from '@mui/icons-material/Info';
import MailOutlineIcon from '@mui/icons-material/MailOutline';
import { Link, Paper, Typography } from '@mui/material';
import Avatar from '@mui/material/Avatar';
import CircularProgress from '@mui/material/CircularProgress';
import Grid from '@mui/material/Grid';
import makeStyles from '@mui/styles/makeStyles';
import { Link as RouterLink } from 'react-router-dom'; import { Link as RouterLink } from 'react-router-dom';
import { Link, Paper, Typography } from '@material-ui/core';
import Avatar from '@material-ui/core/Avatar';
import CircularProgress from '@material-ui/core/CircularProgress';
import Grid from '@material-ui/core/Grid';
import { makeStyles } from '@material-ui/core/styles';
import InfoIcon from '@material-ui/icons/Info';
import MailOutlineIcon from '@material-ui/icons/MailOutline';
import { IdentityFragment } from '../../components/Identity/IdentityFragment.generated'; import { IdentityFragment } from '../../components/Identity/IdentityFragment.generated';
import { useGetUserStatisticQuery } from './GetUserStatistic.generated'; import { useGetUserStatisticQuery } from './GetUserStatistic.generated';
@ -98,7 +97,11 @@ const Identity = ({ identity }: Props) => {
}} }}
> >
<MailOutlineIcon /> <MailOutlineIcon />
<Link href={'mailto:' + user?.email} color={'inherit'}> <Link
href={'mailto:' + user?.email}
color={'inherit'}
underline="hover"
>
{user?.email} {user?.email}
</Link> </Link>
</Typography> </Typography>
@ -112,6 +115,7 @@ const Identity = ({ identity }: Props) => {
component={RouterLink} component={RouterLink}
to={`/?q=author%3A${user?.id}+sort%3Acreation`} to={`/?q=author%3A${user?.id}+sort%3Acreation`}
color={'inherit'} color={'inherit'}
underline="hover"
> >
<Typography variant="subtitle1"> <Typography variant="subtitle1">
Created {authoredCount} bugs. Created {authoredCount} bugs.
@ -121,6 +125,7 @@ const Identity = ({ identity }: Props) => {
component={RouterLink} component={RouterLink}
to={`/?q=participant%3A${user?.id}+sort%3Acreation`} to={`/?q=participant%3A${user?.id}+sort%3Acreation`}
color={'inherit'} color={'inherit'}
underline="hover"
> >
<Typography variant="subtitle1"> <Typography variant="subtitle1">
Participated to {participatedCount} bugs. Participated to {participatedCount} bugs.
@ -130,6 +135,7 @@ const Identity = ({ identity }: Props) => {
component={RouterLink} component={RouterLink}
to={`/?q=actor%3A${user?.id}+sort%3Acreation`} to={`/?q=actor%3A${user?.id}+sort%3Acreation`}
color={'inherit'} color={'inherit'}
underline="hover"
> >
<Typography variant="subtitle1"> <Typography variant="subtitle1">
Interacted with {actionCount} bugs. Interacted with {actionCount} bugs.

View File

@ -9,7 +9,7 @@ import Identity from './Identity';
const UserQuery: React.FC = () => { const UserQuery: React.FC = () => {
const params = useParams<'id'>(); const params = useParams<'id'>();
if (params.id === undefined) throw new Error(); if (params.id === undefined) throw new Error('missing route parameters');
const { loading, error, data } = useGetUserByIdQuery({ const { loading, error, data } = useGetUserByIdQuery({
variables: { userId: params.id }, variables: { userId: params.id },

View File

@ -1,14 +1,13 @@
import CheckCircleOutline from '@mui/icons-material/CheckCircleOutline';
import CommentOutlinedIcon from '@mui/icons-material/CommentOutlined';
import ErrorOutline from '@mui/icons-material/ErrorOutline';
import TableCell from '@mui/material/TableCell/TableCell';
import TableRow from '@mui/material/TableRow/TableRow';
import Tooltip from '@mui/material/Tooltip/Tooltip';
import makeStyles from '@mui/styles/makeStyles';
import * as React from 'react'; import * as React from 'react';
import { Link } from 'react-router-dom'; import { Link } from 'react-router-dom';
import TableCell from '@material-ui/core/TableCell/TableCell';
import TableRow from '@material-ui/core/TableRow/TableRow';
import Tooltip from '@material-ui/core/Tooltip/Tooltip';
import { makeStyles } from '@material-ui/core/styles';
import CheckCircleOutline from '@material-ui/icons/CheckCircleOutline';
import CommentOutlinedIcon from '@material-ui/icons/CommentOutlined';
import ErrorOutline from '@material-ui/icons/ErrorOutline';
import Author from 'src/components/Author'; import Author from 'src/components/Author';
import Date from 'src/components/Date'; import Date from 'src/components/Date';
import Label from 'src/components/Label'; import Label from 'src/components/Label';

View File

@ -1,17 +1,17 @@
import ArrowDropDown from '@mui/icons-material/ArrowDropDown';
import CheckIcon from '@mui/icons-material/Check';
import Menu from '@mui/material/Menu';
import MenuItem from '@mui/material/MenuItem';
import { SvgIconProps } from '@mui/material/SvgIcon';
import TextField from '@mui/material/TextField';
import { darken } from '@mui/material/styles';
import makeStyles from '@mui/styles/makeStyles';
import withStyles from '@mui/styles/withStyles';
import clsx from 'clsx'; import clsx from 'clsx';
import { useRef, useState, useEffect } from 'react';
import * as React from 'react'; import * as React from 'react';
import { useRef, useState, useEffect } from 'react';
import { Location, Link } from 'react-router-dom'; import { Location, Link } from 'react-router-dom';
import Menu from '@material-ui/core/Menu';
import MenuItem from '@material-ui/core/MenuItem';
import { SvgIconProps } from '@material-ui/core/SvgIcon';
import TextField from '@material-ui/core/TextField';
import { makeStyles, withStyles } from '@material-ui/core/styles';
import { darken } from '@material-ui/core/styles/colorManipulator';
import ArrowDropDown from '@material-ui/icons/ArrowDropDown';
import CheckIcon from '@material-ui/icons/Check';
import { Color } from '../../gqlTypes'; import { Color } from '../../gqlTypes';
const CustomTextField = withStyles((theme) => ({ const CustomTextField = withStyles((theme) => ({
@ -153,7 +153,7 @@ function FilterDropdown({
const [open, setOpen] = useState(false); const [open, setOpen] = useState(false);
const [filter, setFilter] = useState<string>(''); const [filter, setFilter] = useState<string>('');
const buttonRef = useRef<HTMLButtonElement>(null); const buttonRef = useRef<HTMLButtonElement>(null);
const searchRef = useRef<HTMLButtonElement>(null); const searchRef = useRef<HTMLInputElement>(null);
const classes = useStyles({ active: false }); const classes = useStyles({ active: false });
useEffect(() => { useEffect(() => {
@ -180,8 +180,6 @@ function FilterDropdown({
</button> </button>
<Menu <Menu
className={classes.labelMenu} className={classes.labelMenu}
getContentAnchorEl={null}
ref={searchRef}
anchorOrigin={{ anchorOrigin={{
vertical: 'bottom', vertical: 'bottom',
horizontal: 'left', horizontal: 'left',
@ -202,6 +200,7 @@ function FilterDropdown({
> >
{hasFilter && ( {hasFilter && (
<CustomTextField <CustomTextField
inputRef={searchRef}
onChange={(e) => { onChange={(e) => {
const { value } = e.target; const { value } = e.target;
setFilter(value); setFilter(value);

View File

@ -1,12 +1,11 @@
import { pipe } from '@arrows/composition'; import { pipe } from '@arrows/composition';
import CheckCircleOutline from '@mui/icons-material/CheckCircleOutline';
import ErrorOutline from '@mui/icons-material/ErrorOutline';
import Toolbar from '@mui/material/Toolbar';
import makeStyles from '@mui/styles/makeStyles';
import * as React from 'react'; import * as React from 'react';
import { Location } from 'react-router-dom'; import { Location } from 'react-router-dom';
import Toolbar from '@material-ui/core/Toolbar';
import { makeStyles } from '@material-ui/core/styles';
import CheckCircleOutline from '@material-ui/icons/CheckCircleOutline';
import ErrorOutline from '@material-ui/icons/ErrorOutline';
import { import {
Filter, Filter,
FilterDropdown, FilterDropdown,

View File

@ -1,5 +1,5 @@
import Table from '@material-ui/core/Table/Table'; import Table from '@mui/material/Table/Table';
import TableBody from '@material-ui/core/TableBody/TableBody'; import TableBody from '@mui/material/TableBody/TableBody';
import BugRow from './BugRow'; import BugRow from './BugRow';
import { BugListFragment } from './ListQuery.generated'; import { BugListFragment } from './ListQuery.generated';

View File

@ -1,20 +1,20 @@
import { ApolloError } from '@apollo/client'; import { ApolloError } from '@apollo/client';
import { pipe } from '@arrows/composition'; import { pipe } from '@arrows/composition';
import { useState, useEffect, useRef } from 'react'; import ArrowDropDownIcon from '@mui/icons-material/ArrowDropDown';
import ErrorOutline from '@mui/icons-material/ErrorOutline';
import KeyboardArrowLeft from '@mui/icons-material/KeyboardArrowLeft';
import KeyboardArrowRight from '@mui/icons-material/KeyboardArrowRight';
import { Button, FormControl, Menu, MenuItem } from '@mui/material';
import IconButton from '@mui/material/IconButton';
import InputBase from '@mui/material/InputBase';
import Paper from '@mui/material/Paper';
import Skeleton from '@mui/material/Skeleton';
import { Theme } from '@mui/material/styles';
import makeStyles from '@mui/styles/makeStyles';
import * as React from 'react'; import * as React from 'react';
import { useState, useEffect, useRef } from 'react';
import { useLocation, useNavigate, Link } from 'react-router-dom'; import { useLocation, useNavigate, Link } from 'react-router-dom';
import { Button, FormControl, Menu, MenuItem } from '@material-ui/core';
import IconButton from '@material-ui/core/IconButton';
import InputBase from '@material-ui/core/InputBase';
import Paper from '@material-ui/core/Paper';
import { makeStyles, Theme } from '@material-ui/core/styles';
import ArrowDropDownIcon from '@material-ui/icons/ArrowDropDown';
import ErrorOutline from '@material-ui/icons/ErrorOutline';
import KeyboardArrowLeft from '@material-ui/icons/KeyboardArrowLeft';
import KeyboardArrowRight from '@material-ui/icons/KeyboardArrowRight';
import Skeleton from '@material-ui/lab/Skeleton';
import { useCurrentIdentityQuery } from '../../components/Identity/CurrentIdentity.generated'; import { useCurrentIdentityQuery } from '../../components/Identity/CurrentIdentity.generated';
import IfLoggedIn from 'src/components/IfLoggedIn/IfLoggedIn'; import IfLoggedIn from 'src/components/IfLoggedIn/IfLoggedIn';
@ -88,7 +88,7 @@ const useStyles = makeStyles<Theme, StylesProps>((theme) => ({
...theme.typography.h5, ...theme.typography.h5,
padding: theme.spacing(8), padding: theme.spacing(8),
textAlign: 'center', textAlign: 'center',
color: theme.palette.text.hint, color: theme.palette.text.primary,
borderBottomColor: theme.palette.divider, borderBottomColor: theme.palette.divider,
borderBottomWidth: '1px', borderBottomWidth: '1px',
borderBottomStyle: 'solid', borderBottomStyle: 'solid',
@ -141,7 +141,7 @@ const Placeholder: React.FC<PlaceholderProps> = ({
<div key={i} className={classes.placeholderRow}> <div key={i} className={classes.placeholderRow}>
<Skeleton <Skeleton
className={classes.placeholderRowStatus} className={classes.placeholderRowStatus}
variant="circle" variant="circular"
width={20} width={20}
height={20} height={20}
/> />
@ -327,7 +327,6 @@ function ListQuery() {
<Menu <Menu
open={filterMenuIsOpen} open={filterMenuIsOpen}
onClose={() => setFilterMenuIsOpen(false)} onClose={() => setFilterMenuIsOpen(false)}
getContentAnchorEl={null}
anchorEl={filterButtonRef.current} anchorEl={filterButtonRef.current}
anchorOrigin={{ anchorOrigin={{
vertical: 'bottom', vertical: 'bottom',
@ -382,21 +381,21 @@ function ListQuery() {
{content} {content}
<div className={classes.pagination}> <div className={classes.pagination}>
{previousPage ? ( {previousPage ? (
<IconButton component={Link} to={previousPage}> <IconButton component={Link} to={previousPage} size="large">
<KeyboardArrowLeft /> <KeyboardArrowLeft />
</IconButton> </IconButton>
) : ( ) : (
<IconButton disabled> <IconButton disabled size="large">
<KeyboardArrowLeft /> <KeyboardArrowLeft />
</IconButton> </IconButton>
)} )}
<div>{loading ? 'Loading' : `Total: ${count}`}</div> <div>{loading ? 'Loading' : `Total: ${count}`}</div>
{nextPage ? ( {nextPage ? (
<IconButton component={Link} to={nextPage}> <IconButton component={Link} to={nextPage} size="large">
<KeyboardArrowRight /> <KeyboardArrowRight />
</IconButton> </IconButton>
) : ( ) : (
<IconButton disabled> <IconButton disabled size="large">
<KeyboardArrowRight /> <KeyboardArrowRight />
</IconButton> </IconButton>
)} )}

View File

@ -1,9 +1,9 @@
import { FormEvent, useState } from 'react'; import { Button, Paper } from '@mui/material';
import { Theme } from '@mui/material/styles';
import makeStyles from '@mui/styles/makeStyles';
import { FormEvent, useRef, useState } from 'react';
import { useNavigate } from 'react-router-dom'; import { useNavigate } from 'react-router-dom';
import { Button, Paper } from '@material-ui/core';
import { makeStyles, Theme } from '@material-ui/core/styles';
import BugTitleInput from '../../components/BugTitleForm/BugTitleInput'; import BugTitleInput from '../../components/BugTitleForm/BugTitleInput';
import CommentInput from '../../components/CommentInput/CommentInput'; import CommentInput from '../../components/CommentInput/CommentInput';
@ -48,8 +48,8 @@ function NewBugPage() {
const [issueComment, setIssueComment] = useState(''); const [issueComment, setIssueComment] = useState('');
const classes = useStyles(); const classes = useStyles();
let issueTitleInput: any; const issueTitleInput = useRef<HTMLInputElement>(null);
let navigate = useNavigate(); const navigate = useNavigate();
function submitNewIssue(e: FormEvent) { function submitNewIssue(e: FormEvent) {
e.preventDefault(); e.preventDefault();
@ -65,7 +65,10 @@ function NewBugPage() {
const id = data.data?.newBug.bug.id; const id = data.data?.newBug.bug.id;
navigate('/bug/' + id); navigate('/bug/' + id);
}); });
issueTitleInput.value = '';
if (issueTitleInput.current) {
issueTitleInput.current.value = '';
}
} }
function isFormValid() { function isFormValid() {
@ -79,9 +82,7 @@ function NewBugPage() {
<Paper className={classes.main}> <Paper className={classes.main}>
<form className={classes.form} onSubmit={submitNewIssue}> <form className={classes.form} onSubmit={submitNewIssue}>
<BugTitleInput <BugTitleInput
inputRef={(node) => { inputRef={issueTitleInput}
issueTitleInput = node;
}}
label="Title" label="Title"
variant="outlined" variant="outlined"
fullWidth fullWidth

View File

@ -1,4 +1,4 @@
import { makeStyles } from '@material-ui/core/styles'; import makeStyles from '@mui/styles/makeStyles';
import BackToListButton from '../../components/BackToListButton'; import BackToListButton from '../../components/BackToListButton';

View File

@ -1,8 +1,8 @@
import { createMuiTheme } from '@material-ui/core/styles'; import { createTheme } from '@mui/material/styles';
const defaultDarkTheme = createMuiTheme({ const defaultDarkTheme = createTheme({
palette: { palette: {
type: 'dark', mode: 'dark',
primary: { primary: {
dark: '#263238', dark: '#263238',
main: '#2a393e', main: '#2a393e',

View File

@ -1,8 +1,8 @@
import { createMuiTheme } from '@material-ui/core/styles'; import { createTheme } from '@mui/material/styles';
const defaultLightTheme = createMuiTheme({ const defaultLightTheme = createTheme({
palette: { palette: {
type: 'light', mode: 'light',
primary: { primary: {
dark: '#263238', dark: '#263238',
main: '#5a6b73', main: '#5a6b73',