From 19a5ccf9426e3baa1271ecc756d7a1010d5bbeb3 Mon Sep 17 00:00:00 2001 From: "kasia.oczkowska" Date: Wed, 16 Oct 2024 14:31:05 +0100 Subject: [PATCH] feat: add error snackbar when creating or updating saml auth provider --- .../src/hooks/useAdminCreateSamlAuthProvider.js | 15 +++++++++++++++ .../src/hooks/useAdminUpdateSamlAuthProvider.js | 15 +++++++++++++++ .../pages/Authentication/SamlConfiguration.jsx | 2 +- 3 files changed, 31 insertions(+), 1 deletion(-) diff --git a/packages/web/src/hooks/useAdminCreateSamlAuthProvider.js b/packages/web/src/hooks/useAdminCreateSamlAuthProvider.js index 33fa7e79..5cf8c6bc 100644 --- a/packages/web/src/hooks/useAdminCreateSamlAuthProvider.js +++ b/packages/web/src/hooks/useAdminCreateSamlAuthProvider.js @@ -1,5 +1,6 @@ import { useMutation, useQueryClient } from '@tanstack/react-query'; import api from 'helpers/api'; +import { enqueueSnackbar } from 'notistack'; export default function useAdminCreateSamlAuthProvider() { const queryClient = useQueryClient(); @@ -15,6 +16,20 @@ export default function useAdminCreateSamlAuthProvider() { queryKey: ['admin', 'samlAuthProviders'], }); }, + onError: (error) => { + const errors = Object.entries( + error.response.data.errors || [['', 'Failed while saving!']], + ); + + for (const error of errors) { + enqueueSnackbar(`${error[0] ? error[0] + ': ' : ''} ${error[1]}`, { + variant: 'error', + SnackbarProps: { + 'data-test': 'snackbar-create-saml-auth-provider-error', + }, + }); + } + }, }); return query; diff --git a/packages/web/src/hooks/useAdminUpdateSamlAuthProvider.js b/packages/web/src/hooks/useAdminUpdateSamlAuthProvider.js index 9e6600f4..ab7dd2fa 100644 --- a/packages/web/src/hooks/useAdminUpdateSamlAuthProvider.js +++ b/packages/web/src/hooks/useAdminUpdateSamlAuthProvider.js @@ -1,5 +1,6 @@ import { useMutation, useQueryClient } from '@tanstack/react-query'; import api from 'helpers/api'; +import { enqueueSnackbar } from 'notistack'; export default function useAdminUpdateSamlAuthProvider(samlAuthProviderId) { const queryClient = useQueryClient(); @@ -18,6 +19,20 @@ export default function useAdminUpdateSamlAuthProvider(samlAuthProviderId) { queryKey: ['admin', 'samlAuthProviders'], }); }, + onError: (error) => { + const errors = Object.entries( + error.response.data.errors || [['', 'Failed while saving!']], + ); + + for (const error of errors) { + enqueueSnackbar(`${error[0] ? error[0] + ': ' : ''} ${error[1]}`, { + variant: 'error', + SnackbarProps: { + 'data-test': 'snackbar-update-saml-auth-provider-error', + }, + }); + } + }, }); return query; diff --git a/packages/web/src/pages/Authentication/SamlConfiguration.jsx b/packages/web/src/pages/Authentication/SamlConfiguration.jsx index 719ee1e8..47488241 100644 --- a/packages/web/src/pages/Authentication/SamlConfiguration.jsx +++ b/packages/web/src/pages/Authentication/SamlConfiguration.jsx @@ -65,7 +65,7 @@ function SamlConfiguration({ provider, providerLoading }) { 'data-test': 'snackbar-save-saml-provider-success', }, }); - } catch (error) { + } catch { throw new Error('Failed while saving!'); } };