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