diff --git a/packages/console/src/components/InlineNotification/index.module.scss b/packages/console/src/components/InlineNotification/index.module.scss index e14548b0a..1b4dfb3d3 100644 --- a/packages/console/src/components/InlineNotification/index.module.scss +++ b/packages/console/src/components/InlineNotification/index.module.scss @@ -21,6 +21,8 @@ .content { flex: 1; + overflow: hidden; + overflow-wrap: break-word; } &.info { diff --git a/packages/console/src/consts/custom-domain.ts b/packages/console/src/consts/custom-domain.ts new file mode 100644 index 000000000..6606fdb8f --- /dev/null +++ b/packages/console/src/consts/custom-domain.ts @@ -0,0 +1 @@ +export const customDomainSyncInterval = 10; // In seconds diff --git a/packages/console/src/pages/TenantSettings/TenantDomainSettings/CustomDomain/ActivationProcess/index.module.scss b/packages/console/src/pages/TenantSettings/TenantDomainSettings/CustomDomain/ActivationProcess/index.module.scss index f69a1d97a..bf868a5f2 100644 --- a/packages/console/src/pages/TenantSettings/TenantDomainSettings/CustomDomain/ActivationProcess/index.module.scss +++ b/packages/console/src/pages/TenantSettings/TenantDomainSettings/CustomDomain/ActivationProcess/index.module.scss @@ -4,3 +4,12 @@ border-top: 1px solid var(--color-divider); padding: _.unit(5) _.unit(6) 0; } + +.errorNotification { + margin-bottom: _.unit(6); + + .hint { + margin-top: _.unit(1); + color: var(--color-text-secondary); + } +} diff --git a/packages/console/src/pages/TenantSettings/TenantDomainSettings/CustomDomain/ActivationProcess/index.tsx b/packages/console/src/pages/TenantSettings/TenantDomainSettings/CustomDomain/ActivationProcess/index.tsx index ac70d61e4..7af2fc9f6 100644 --- a/packages/console/src/pages/TenantSettings/TenantDomainSettings/CustomDomain/ActivationProcess/index.tsx +++ b/packages/console/src/pages/TenantSettings/TenantDomainSettings/CustomDomain/ActivationProcess/index.tsx @@ -1,5 +1,9 @@ import { type Domain, type DomainDnsRecords, type DomainDnsRecord } from '@logto/schemas'; +import DynamicT from '@/components/DynamicT'; +import InlineNotification from '@/components/InlineNotification'; +import { customDomainSyncInterval } from '@/consts/custom-domain'; + import DnsRecordsTable from './DnsRecordsTable'; import Step from './Step'; import * as styles from './index.module.scss'; @@ -12,7 +16,7 @@ const isSetupSslDnsRecord = ({ type, name }: DomainDnsRecord) => type.toUpperCase() === 'TXT' && name.includes('_acme-challenge'); function ActivationProcess({ customDomain }: Props) { - const { dnsRecords, status: domainStatus } = customDomain; + const { dnsRecords, status: domainStatus, errorMessage } = customDomain; const { verifyDomainDnsRecord, setupSslDnsRecord } = dnsRecords.reduce<{ verifyDomainDnsRecord: DomainDnsRecords; @@ -36,6 +40,17 @@ function ActivationProcess({ customDomain }: Props) { return (