diff --git a/src/components/Procurations/Components/MandantTab/Components/MandatePersonCard/MandatePersonCard.test.tsx b/src/components/Procurations/Components/MandantTab/Components/MandatePersonCard/MandatePersonCard.test.tsx index a39f1909a..3202077f1 100644 --- a/src/components/Procurations/Components/MandantTab/Components/MandatePersonCard/MandatePersonCard.test.tsx +++ b/src/components/Procurations/Components/MandantTab/Components/MandatePersonCard/MandatePersonCard.test.tsx @@ -31,7 +31,12 @@ describe('Mandate person card', () => { } it('Should expand card', async () => { - const tree = render() + const queryClient = new QueryClient() + const tree = render( + + + + ) const moreButton = await tree.findByTestId('moreButton') diff --git a/src/components/Procurations/Components/MandantTab/Components/MandatePersonCard/MandatePersonCard.tsx b/src/components/Procurations/Components/MandantTab/Components/MandatePersonCard/MandatePersonCard.tsx index dc661990b..da58a25e7 100644 --- a/src/components/Procurations/Components/MandantTab/Components/MandatePersonCard/MandatePersonCard.tsx +++ b/src/components/Procurations/Components/MandantTab/Components/MandatePersonCard/MandatePersonCard.tsx @@ -1,7 +1,7 @@ import styled from '@emotion/styled' import { Button, Grid, Paper, Typography } from '@mui/material' import Divider from '@mui/material/Divider' -import { ReactNode } from 'react' +import { Fragment, ReactNode } from 'react' import MandateCardEntry from '~/components/Procurations/Components/MandantTab/Components/MandateCardEntry' import PersonWithAvatar from '~/components/Procurations/Components/PersonWithAvatar/PersonWithAvatar' import pluralize from '~/components/shared/pluralize/pluralize' @@ -96,8 +96,8 @@ export default function MandatePersonCard(props: MandatePersonCardProps) { {linkedPeople?.map(x => ( - <> - + + {x.round.name} @@ -139,7 +139,7 @@ export default function MandatePersonCard(props: MandatePersonCardProps) { {x.proxy.map(el => el ? ( - + - + ))} @@ -191,6 +191,7 @@ export default function MandatePersonCard(props: MandatePersonCardProps) { {props.extraInfos && } + {!props.hideStateActions && } {!props.expended && props.onExpend && props.onExpend?.(props.id)} />} {props.expended && ( @@ -199,8 +200,6 @@ export default function MandatePersonCard(props: MandatePersonCardProps) { {props.onNarrow && } - {!props.hideStateActions && } - {props.onNarrow && props.onNarrow?.(props.id)} />} )} diff --git a/src/components/Procurations/Pages/MandateEditPage.tsx b/src/components/Procurations/Pages/MandateEditPage.tsx index 771f29d74..6d53a92e6 100644 --- a/src/components/Procurations/Pages/MandateEditPage.tsx +++ b/src/components/Procurations/Pages/MandateEditPage.tsx @@ -80,6 +80,7 @@ export default function MandateEditPage() { + typeof x === 'object' && x !== null && 'detail' in x + export const useErrorHandler = () => { const [errorMessages, setErrorMessages] = useState([]) const [errorRawMessage, setErrorRawMessage] = useState(null) @@ -20,12 +22,13 @@ export const useErrorHandler = () => { const handleError = useCallback( error => { - const { response = { data: {} }, stack, message } = error + const { response = { data }, stack, message } = error const { status, data } = response - handleGenericHttpErrors(snackBarWithOptions, status, stack, message) + const errorMessage = hasErrorDetail(data) ? data.detail : message + handleGenericHttpErrors(snackBarWithOptions, status, stack, errorMessage) const formattedErrorMessages = getFormattedErrorMessages(data) setErrorMessages(formattedErrorMessages) - setErrorRawMessage(message) + setErrorRawMessage(errorMessage) Sentry.addBreadcrumb({ category: 'request', message: Object.keys(data).length ? JSON.stringify(data) : message, diff --git a/src/components/shared/notification/hooks.jsx b/src/components/shared/notification/hooks.jsx index a710c95d9..4917e7582 100644 --- a/src/components/shared/notification/hooks.jsx +++ b/src/components/shared/notification/hooks.jsx @@ -11,7 +11,7 @@ export const useCustomSnackbar = () => { (message, variant = notifyVariants.success, detail = null, options = {}) => { const key = uuid() const content = (key, message) => ( - + {detail} ) diff --git a/src/ui/SnackBar/SnackBar.jsx b/src/ui/SnackBar/SnackBar.jsx index 7f0dd651c..2db9dca3e 100644 --- a/src/ui/SnackBar/SnackBar.jsx +++ b/src/ui/SnackBar/SnackBar.jsx @@ -54,8 +54,8 @@ const Content = styled( ` ) -const UISnackBar = forwardRef(({ id, message, variant, dismissResolve, children }, ref) => { - const [expanded, setExpanded] = useState(false) +const UISnackBar = forwardRef(({ id, message, variant, dismissResolve, expend = false, children }, ref) => { + const [expanded, setExpanded] = useState(expend) const { closeSnackbar } = useCustomSnackbar() const handleExpandToggle = useCallback(() => { @@ -100,6 +100,7 @@ UISnackBar.defaultProps = { content: null, dismissResolve: null, children: null, + expend: false, } UISnackBar.propTypes = { id: PropTypes.string.isRequired, @@ -107,6 +108,7 @@ UISnackBar.propTypes = { variant: PropTypes.string.isRequired, children: PropTypes.node, dismissResolve: PropTypes.func, + expend: PropTypes.bool, } export default UISnackBar