diff --git a/packages/twenty-emails/src/constants/DefaultWorkspaceLogo.ts b/packages/twenty-emails/src/constants/DefaultWorkspaceLogo.ts
new file mode 100644
index 000000000..7428bf82b
--- /dev/null
+++ b/packages/twenty-emails/src/constants/DefaultWorkspaceLogo.ts
@@ -0,0 +1,2 @@
+export const DEFAULT_WORKSPACE_LOGO =
+ 'https://twentyhq.github.io/placeholder-images/workspaces/twenty-logo.png';
diff --git a/packages/twenty-emails/src/emails/validate-approved-access-domain.email.tsx b/packages/twenty-emails/src/emails/validate-approved-access-domain.email.tsx
index 1fc25586e..fd4190285 100644
--- a/packages/twenty-emails/src/emails/validate-approved-access-domain.email.tsx
+++ b/packages/twenty-emails/src/emails/validate-approved-access-domain.email.tsx
@@ -13,6 +13,7 @@ import { Title } from 'src/components/Title';
import { capitalize } from 'src/utils/capitalize';
import { APP_LOCALES } from 'twenty-shared/translations';
import { getImageAbsoluteURI } from 'twenty-shared/utils';
+import { DEFAULT_WORKSPACE_LOGO } from 'src/constants/DefaultWorkspaceLogo';
type SendApprovedAccessDomainValidationProps = {
link: string;
@@ -63,16 +64,19 @@ export const SendApprovedAccessDomainValidation = ({
- {workspaceLogo ? (
+
{workspace.name ? : <>>}
diff --git a/packages/twenty-front/src/modules/settings/security/components/approvedAccessDomains/SettingsSecurityApprovedAccessDomainValidationEffect.tsx b/packages/twenty-front/src/modules/settings/security/components/approvedAccessDomains/SettingsSecurityApprovedAccessDomainValidationEffect.tsx
index 1f41579de..e2f9022ab 100644
--- a/packages/twenty-front/src/modules/settings/security/components/approvedAccessDomains/SettingsSecurityApprovedAccessDomainValidationEffect.tsx
+++ b/packages/twenty-front/src/modules/settings/security/components/approvedAccessDomains/SettingsSecurityApprovedAccessDomainValidationEffect.tsx
@@ -3,7 +3,9 @@ import { t } from '@lingui/core/macro';
import { useEffect } from 'react';
import { useSearchParams } from 'react-router-dom';
import { isDefined } from 'twenty-shared/utils';
+import { useSetRecoilState } from 'recoil';
import { useValidateApprovedAccessDomainMutation } from '~/generated-metadata/graphql';
+import { approvedAccessDomainsState } from '@/settings/security/states/ApprovedAccessDomainsState';
export const SettingsSecurityApprovedAccessDomainValidationEffect = () => {
const [validateApprovedAccessDomainMutation] =
@@ -12,6 +14,9 @@ export const SettingsSecurityApprovedAccessDomainValidationEffect = () => {
const [searchParams] = useSearchParams();
const approvedAccessDomainId = searchParams.get('wtdId');
const validationToken = searchParams.get('validationToken');
+ const setApprovedAccessDomains = useSetRecoilState(
+ approvedAccessDomainsState,
+ );
useEffect(() => {
if (isDefined(validationToken) && isDefined(approvedAccessDomainId)) {
@@ -23,6 +28,15 @@ export const SettingsSecurityApprovedAccessDomainValidationEffect = () => {
},
},
onCompleted: () => {
+ setApprovedAccessDomains((approvedAccessDomains) =>
+ approvedAccessDomains.map((approvedAccessDomain) => ({
+ ...approvedAccessDomain,
+ isValidated:
+ approvedAccessDomain.id === approvedAccessDomainId
+ ? true
+ : approvedAccessDomain.isValidated,
+ })),
+ );
enqueueSuccessSnackBar({
message: t`Approved access domain validated`,
options: {
@@ -30,9 +44,12 @@ export const SettingsSecurityApprovedAccessDomainValidationEffect = () => {
},
});
},
- onError: () => {
+ onError: (error) => {
+ const message = error?.message
+ ? error.message
+ : 'Error validating approved access domain';
enqueueErrorSnackBar({
- message: t`Error validating approved access domain`,
+ message: t`${message}`,
options: {
dedupeKey: 'approved-access-domain-validation-error-dedupe-key',
},