Skip to content

Commit daa721d

Browse files
committed
Create separate mutation object for domains
1 parent 222c676 commit daa721d

24 files changed

Lines changed: 206 additions & 39 deletions

packages/localizations/src/bg-BG.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -200,6 +200,22 @@ export const bgBG: LocalizationResource = {
200200
verifyDomainsStep: {
201201
title: 'Потвърди домейна',
202202
subtitle: 'Посочете и потвърдете домейна, за който да конфигурирате SSO.',
203+
formFieldLabel__domain: 'Домейни',
204+
formFieldInputPlaceholder__domain: 'Въведете домейна си тук и щракнете върху добавяне, за да започнете',
205+
formButtonPrimary__add: 'Добави',
206+
txtRecordInstructions: {
207+
paragraph1: 'Добавете този TXT запис при своя DNS доставчик.',
208+
paragraph2:
209+
'Ще го потвърдим автоматично, щом записът се активира. Това обикновено отнема под минута, въпреки че актуализирането на съществуващ TXT запис може да отнеме малко повече време.',
210+
},
211+
txtRecordTable: {
212+
columns: {
213+
domain: 'Домейн',
214+
type: 'Тип',
215+
hostName: 'Хост / Име',
216+
value: 'Стойност',
217+
},
218+
},
203219
},
204220
},
205221
createOrganization: {

packages/localizations/src/cs-CZ.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -203,6 +203,22 @@ export const csCZ: LocalizationResource = {
203203
verifyDomainsStep: {
204204
title: 'Ověřit doménu',
205205
subtitle: 'Zadejte a ověřte doménu, pro kterou chcete nakonfigurovat SSO.',
206+
formFieldLabel__domain: 'Domény',
207+
formFieldInputPlaceholder__domain: 'Zde zadejte svou doménu a kliknutím na přidat začněte',
208+
formButtonPrimary__add: 'Přidat',
209+
txtRecordInstructions: {
210+
paragraph1: 'Přidejte tento záznam TXT u svého poskytovatele DNS.',
211+
paragraph2:
212+
'Jakmile bude záznam aktivní, ověříme jej automaticky. Obvykle to trvá méně než minutu, i když aktualizace stávajícího záznamu TXT může chvíli trvat déle.',
213+
},
214+
txtRecordTable: {
215+
columns: {
216+
domain: 'Doména',
217+
type: 'Typ',
218+
hostName: 'Host / Název',
219+
value: 'Hodnota',
220+
},
221+
},
206222
},
207223
},
208224
createOrganization: {

packages/localizations/src/hr-HR.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -228,6 +228,22 @@ export const hrHR: LocalizationResource = {
228228
verifyDomainsStep: {
229229
title: 'Potvrdi domenu',
230230
subtitle: 'Navedite i potvrdite domenu za koju želite konfigurirati SSO.',
231+
formFieldLabel__domain: 'Domene',
232+
formFieldInputPlaceholder__domain: 'Ovdje upišite svoju domenu i kliknite dodaj za početak',
233+
formButtonPrimary__add: 'Dodaj',
234+
txtRecordInstructions: {
235+
paragraph1: 'Dodajte ovaj TXT zapis kod svog DNS pružatelja.',
236+
paragraph2:
237+
'Automatski ćemo ga provjeriti čim zapis postane aktivan. To obično traje manje od minute, iako ažuriranje postojećeg TXT zapisa može potrajati nešto dulje.',
238+
},
239+
txtRecordTable: {
240+
columns: {
241+
domain: 'Domena',
242+
type: 'Vrsta',
243+
hostName: 'Host / Naziv',
244+
value: 'Vrijednost',
245+
},
246+
},
231247
},
232248
},
233249
createOrganization: {

packages/localizations/src/pl-PL.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -199,6 +199,22 @@ export const plPL: LocalizationResource = {
199199
verifyDomainsStep: {
200200
title: 'Zweryfikuj domenę',
201201
subtitle: 'Określ i zweryfikuj domenę, dla której chcesz skonfigurować SSO.',
202+
formFieldLabel__domain: 'Domeny',
203+
formFieldInputPlaceholder__domain: 'Wpisz tutaj swoją domenę i kliknij dodaj, aby rozpocząć',
204+
formButtonPrimary__add: 'Dodaj',
205+
txtRecordInstructions: {
206+
paragraph1: 'Dodaj ten rekord TXT u swojego dostawcy DNS.',
207+
paragraph2:
208+
'Zweryfikujemy go automatycznie, gdy rekord będzie aktywny. Zwykle trwa to krócej niż minutę, choć aktualizacja istniejącego rekordu TXT może potrwać nieco dłużej.',
209+
},
210+
txtRecordTable: {
211+
columns: {
212+
domain: 'Domena',
213+
type: 'Typ',
214+
hostName: 'Host / Nazwa',
215+
value: 'Wartość',
216+
},
217+
},
202218
},
203219
},
204220
createOrganization: {

packages/localizations/src/pt-PT.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,22 @@ export const ptPT: LocalizationResource = {
207207
verifyDomainsStep: {
208208
title: 'Verificar domínio',
209209
subtitle: 'Especifique e verifique o domínio para configurar o SSO.',
210+
formFieldLabel__domain: 'Domínios',
211+
formFieldInputPlaceholder__domain: 'Escreva aqui o seu domínio e clique em adicionar para começar',
212+
formButtonPrimary__add: 'Adicionar',
213+
txtRecordInstructions: {
214+
paragraph1: 'Adicione este registo TXT ao seu fornecedor de DNS.',
215+
paragraph2:
216+
'Verificaremos automaticamente assim que o registo estiver ativo. Normalmente demora menos de um minuto, embora a atualização de um registo TXT existente possa demorar um pouco mais.',
217+
},
218+
txtRecordTable: {
219+
columns: {
220+
domain: 'Domínio',
221+
type: 'Tipo',
222+
hostName: 'Anfitrião / Nome',
223+
value: 'Valor',
224+
},
225+
},
210226
},
211227
},
212228
createOrganization: {

packages/localizations/src/ro-RO.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -205,6 +205,22 @@ export const roRO: LocalizationResource = {
205205
verifyDomainsStep: {
206206
title: 'Verifică domeniul',
207207
subtitle: 'Specifică și verifică domeniul pentru care configurezi SSO.',
208+
formFieldLabel__domain: 'Domenii',
209+
formFieldInputPlaceholder__domain: 'Scrie aici domeniul tău și fă clic pe adaugă pentru a începe',
210+
formButtonPrimary__add: 'Adaugă',
211+
txtRecordInstructions: {
212+
paragraph1: 'Adaugă această înregistrare TXT la furnizorul tău DNS.',
213+
paragraph2:
214+
'Vom verifica automat de îndată ce înregistrarea este activă. De obicei durează mai puțin de un minut, deși actualizarea unei înregistrări TXT existente poate dura puțin mai mult.',
215+
},
216+
txtRecordTable: {
217+
columns: {
218+
domain: 'Domeniu',
219+
type: 'Tip',
220+
hostName: 'Gazdă / Nume',
221+
value: 'Valoare',
222+
},
223+
},
208224
},
209225
},
210226
createOrganization: {

packages/localizations/src/sk-SK.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -199,6 +199,22 @@ export const skSK: LocalizationResource = {
199199
verifyDomainsStep: {
200200
title: 'Overiť doménu',
201201
subtitle: 'Zadajte a overte doménu, pre ktorú chcete nakonfigurovať SSO.',
202+
formFieldLabel__domain: 'Domény',
203+
formFieldInputPlaceholder__domain: 'Sem zadajte svoju doménu a kliknutím na pridať začnite',
204+
formButtonPrimary__add: 'Pridať',
205+
txtRecordInstructions: {
206+
paragraph1: 'Pridajte tento záznam TXT u svojho poskytovateľa DNS.',
207+
paragraph2:
208+
'Po sprístupnení záznamu ho overíme automaticky. Zvyčajne to trvá menej než minútu, hoci aktualizácia existujúceho záznamu TXT môže trvať o niečo dlhšie.',
209+
},
210+
txtRecordTable: {
211+
columns: {
212+
domain: 'Doména',
213+
type: 'Typ',
214+
hostName: 'Hostiteľ / Názov',
215+
value: 'Hodnota',
216+
},
217+
},
202218
},
203219
},
204220
createOrganization: {

packages/localizations/src/sr-RS.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -199,6 +199,22 @@ export const srRS: LocalizationResource = {
199199
verifyDomainsStep: {
200200
title: 'Potvrdi domen',
201201
subtitle: 'Navedite i potvrdite domen za koji želite da konfigurišete SSO.',
202+
formFieldLabel__domain: 'Domeni',
203+
formFieldInputPlaceholder__domain: 'Ovde unesite svoj domen i kliknite na dodaj da biste počeli',
204+
formButtonPrimary__add: 'Dodaj',
205+
txtRecordInstructions: {
206+
paragraph1: 'Dodajte ovaj TXT zapis kod svog DNS provajdera.',
207+
paragraph2:
208+
'Automatski ćemo ga proveriti čim zapis postane aktivan. To obično traje manje od minuta, iako ažuriranje postojećeg TXT zapisa može potrajati malo duže.',
209+
},
210+
txtRecordTable: {
211+
columns: {
212+
domain: 'Domen',
213+
type: 'Tip',
214+
hostName: 'Host / Naziv',
215+
value: 'Vrednost',
216+
},
217+
},
202218
},
203219
},
204220
createOrganization: {

packages/ui/src/components/ConfigureSSO/ConfigureSSO.tsx

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import { ProfileCard } from '@/elements/ProfileCard';
1010
import { ExclamationTriangle } from '@/icons';
1111
import { Route, Switch } from '@/router';
1212

13-
import { ConfigureSSOProvider } from './ConfigureSSOContext';
13+
import { ConfigureSSOProvider, type OrganizationDomainMutations } from './ConfigureSSOContext';
1414
import { ConfigureSSONavbar } from './ConfigureSSONavbar';
1515
import { ConfigureSSOSkeleton } from './ConfigureSSOSkeleton';
1616
import { ConfigureSSOSteps } from './ConfigureSSOSteps';
@@ -50,13 +50,25 @@ export const ConfigureSSOContent = ({ contentRef }: { contentRef: React.RefObjec
5050
enterpriseConnection,
5151
organizationEnterpriseConnection,
5252
testRuns,
53-
mutations,
53+
enterpriseConnectionMutations,
5454
} = useOrganizationEnterpriseConnection();
5555

56-
const { isLoading: isLoadingOrganizationDomains, data: organizationDomains } = __internal_useOrganizationDomains({
56+
const {
57+
isLoading: isLoadingOrganizationDomains,
58+
data: organizationDomains,
59+
createDomain,
60+
prepareOwnershipVerification,
61+
attemptOwnershipVerification,
62+
revalidate,
63+
} = __internal_useOrganizationDomains({
5764
enrollmentMode: 'enterprise_sso',
5865
});
5966

67+
const organizationDomainMutations = React.useMemo<OrganizationDomainMutations>(
68+
() => ({ createDomain, prepareOwnershipVerification, attemptOwnershipVerification, revalidate }),
69+
[createDomain, prepareOwnershipVerification, attemptOwnershipVerification, revalidate],
70+
);
71+
6072
const isLoading = isLoadingEnterpriseConnection || isLoadingOrganizationDomains;
6173
if (isLoading) {
6274
return <ConfigureSSOSkeleton />;
@@ -69,7 +81,8 @@ export const ConfigureSSOContent = ({ contentRef }: { contentRef: React.RefObjec
6981
testRuns={testRuns}
7082
enterpriseConnection={enterpriseConnection}
7183
contentRef={contentRef}
72-
mutations={mutations}
84+
enterpriseConnectionMutations={enterpriseConnectionMutations}
85+
organizationDomainMutations={organizationDomainMutations}
7386
organizationDomains={organizationDomains}
7487
>
7588
<ConfigureSSOSteps />

packages/ui/src/components/ConfigureSSO/ConfigureSSOContext.tsx

Lines changed: 30 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,19 @@ import React, { type PropsWithChildren } from 'react';
44
import type { OrganizationEnterpriseConnection } from './domain/organizationEnterpriseConnection';
55
import type { EnterpriseConnectionMutations, TestRunsView } from './hooks/useOrganizationEnterpriseConnection';
66

7+
/**
8+
* Domain-scoped mutations for the active organization's domains, sourced from
9+
* `__internal_useOrganizationDomains`. Kept separate from the
10+
* connection-scoped `EnterpriseConnectionMutations` so the two surfaces stay
11+
* decoupled and can be lifted independently.
12+
*/
13+
export interface OrganizationDomainMutations {
14+
createDomain: (name: string) => Promise<OrganizationDomainResource | undefined>;
15+
prepareOwnershipVerification: (domain: OrganizationDomainResource) => Promise<OrganizationDomainResource | undefined>;
16+
attemptOwnershipVerification: (domain: OrganizationDomainResource) => Promise<OrganizationDomainResource | undefined>;
17+
revalidate: () => Promise<void>;
18+
}
19+
720
/**
821
* Shared state for the ConfigureSSO wizard, persisted across steps. Everything
922
* is sourced from the umbrella `useOrganizationEnterpriseConnection` hook one
@@ -14,7 +27,8 @@ export interface ConfigureSSOData {
1427
enterpriseConnection: EnterpriseConnectionResource | undefined;
1528
/** Ref to the wizard's scrollable content container. */
1629
contentRef: React.RefObject<HTMLDivElement>;
17-
mutations: EnterpriseConnectionMutations;
30+
enterpriseConnectionMutations: EnterpriseConnectionMutations;
31+
organizationDomainMutations: OrganizationDomainMutations;
1832
organizationEnterpriseConnection: OrganizationEnterpriseConnection;
1933
testRuns: TestRunsView;
2034
organizationDomains: OrganizationDomainResource[] | undefined;
@@ -26,7 +40,8 @@ interface ConfigureSSOProviderProps {
2640
testRuns: TestRunsView;
2741
organizationDomains: OrganizationDomainResource[] | undefined;
2842
contentRef: React.RefObject<HTMLDivElement>;
29-
mutations: EnterpriseConnectionMutations;
43+
enterpriseConnectionMutations: EnterpriseConnectionMutations;
44+
organizationDomainMutations: OrganizationDomainMutations;
3045
}
3146

3247
const ConfigureSSOContext = React.createContext<ConfigureSSOData | null>(null);
@@ -38,7 +53,8 @@ export const ConfigureSSOProvider = ({
3853
testRuns,
3954
organizationDomains,
4055
contentRef,
41-
mutations,
56+
enterpriseConnectionMutations,
57+
organizationDomainMutations,
4258
children,
4359
}: PropsWithChildren<ConfigureSSOProviderProps>): JSX.Element => {
4460
const value = React.useMemo<ConfigureSSOData>(
@@ -48,9 +64,18 @@ export const ConfigureSSOProvider = ({
4864
organizationEnterpriseConnection,
4965
testRuns,
5066
organizationDomains,
51-
mutations,
67+
enterpriseConnectionMutations,
68+
organizationDomainMutations,
5269
}),
53-
[contentRef, enterpriseConnection, mutations, organizationEnterpriseConnection, testRuns, organizationDomains],
70+
[
71+
contentRef,
72+
enterpriseConnectionMutations,
73+
organizationDomainMutations,
74+
organizationEnterpriseConnection,
75+
testRuns,
76+
organizationDomains,
77+
enterpriseConnection,
78+
],
5479
);
5580

5681
return <ConfigureSSOContext.Provider value={value}>{children}</ConfigureSSOContext.Provider>;

0 commit comments

Comments
 (0)