Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 15 additions & 2 deletions apps/web/src/components/domain/domain-form.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ export function DomainForm({
const [error, setError] = useState<string | null>(null);
const [verifyMsg, setVerifyMsg] = useState<string | null>(null);
const [confirmRemove, setConfirmRemove] = useState(false);
const [removeError, setRemoveError] = useState<string | null>(null);

const records =
initial.domain && initial.token
Expand Down Expand Up @@ -93,12 +94,20 @@ export function DomainForm({
}

async function remove() {
setRemoveError(null);
setBusy("remove");
try {
await fetch(`/api/guilds/${guildId}/domain`, { method: "DELETE" });
const res = await fetch(`/api/guilds/${guildId}/domain`, { method: "DELETE" });
if (!res.ok) {
const data = (await res.json().catch(() => null)) as { error?: string } | null;
throw new Error(data?.error ?? t.errRemove);
}
setDomain("");
setConfirmRemove(false);
router.refresh();
} catch (err) {
// The dialog stays open with the reason, so the domain is not shown as gone.
setRemoveError(err instanceof Error ? err.message : t.errRemove);
} finally {
setBusy(null);
}
Expand Down Expand Up @@ -197,7 +206,10 @@ export function DomainForm({
<ConfirmDialog
open={confirmRemove}
onClose={() => {
if (busy !== "remove") setConfirmRemove(false);
if (busy !== "remove") {
setConfirmRemove(false);
setRemoveError(null);
}
}}
onConfirm={remove}
title={t.remove}
Expand All @@ -206,6 +218,7 @@ export function DomainForm({
cancelLabel={t.cancel}
tone="danger"
busy={busy === "remove"}
error={removeError}
typeToConfirm={{
expected: initial.domain,
label: t.typeDomain.replace("{domain}", initial.domain),
Expand Down
7 changes: 7 additions & 0 deletions apps/web/src/i18n/dictionaries.ts
Original file line number Diff line number Diff line change
Expand Up @@ -906,6 +906,7 @@ const en = {
removeConfirm: "Remove this custom domain? Your forms will go back to the default URL.",
cancel: "Cancel",
errSave: "Could not save the domain.",
errRemove: "Could not remove the domain.",
step1: "1. Point your domain to us with a CNAME record:",
step2: "2. Prove ownership with a TXT record:",
recordName: "Name",
Expand Down Expand Up @@ -2227,6 +2228,7 @@ const de: Dictionary = {
"Diese Domain entfernen? Deine Formulare sind dann wieder unter der Standard-URL erreichbar.",
cancel: "Abbrechen",
errSave: "Domain konnte nicht gespeichert werden.",
errRemove: "Die Domain konnte nicht entfernt werden.",
step1: "1. Zeige mit einem CNAME-Eintrag auf uns:",
step2: "2. Weise den Besitz mit einem TXT-Eintrag nach:",
recordName: "Name",
Expand Down Expand Up @@ -3546,6 +3548,7 @@ const hu: Dictionary = {
"Eltávolítod ezt a domaint? Az űrlapjaid újra az alapértelmezett URL-en lesznek elérhetők.",
cancel: "Mégse",
errSave: "A domain mentése sikertelen.",
errRemove: "Nem sikerült eltávolítani a domaint.",
step1: "1. Mutass ránk egy CNAME rekorddal:",
step2: "2. Igazold a tulajdonjogot egy TXT rekorddal:",
recordName: "Név",
Expand Down Expand Up @@ -4860,6 +4863,7 @@ const fr: Dictionary = {
"Supprimer ce domaine personnalisé ? Vos formulaires reviendront à l'URL par défaut.",
cancel: "Annuler",
errSave: "Impossible d'enregistrer le domaine.",
errRemove: "Impossible de supprimer le domaine.",
step1: "1. Pointez votre domaine vers nous avec un enregistrement CNAME :",
step2: "2. Prouvez la propriété avec un enregistrement TXT :",
recordName: "Nom",
Expand Down Expand Up @@ -6175,6 +6179,7 @@ const es: Dictionary = {
"¿Eliminar este dominio personalizado? Tus formularios volverán a la URL predeterminada.",
cancel: "Cancelar",
errSave: "No se pudo guardar el dominio.",
errRemove: "No se pudo quitar el dominio.",
step1: "1. Apunta tu dominio hacia nosotros con un registro CNAME:",
step2: "2. Prueba la propiedad con un registro TXT:",
recordName: "Nombre",
Expand Down Expand Up @@ -7484,6 +7489,7 @@ const pt: Dictionary = {
removeConfirm: "Remover este domínio personalizado? Seus formulários voltarão à URL padrão.",
cancel: "Cancelar",
errSave: "Não foi possível salvar o domínio.",
errRemove: "Não foi possível remover o domínio.",
step1: "1. Aponte seu domínio para nós com um registro CNAME:",
step2: "2. Prove a propriedade com um registro TXT:",
recordName: "Nome",
Expand Down Expand Up @@ -8788,6 +8794,7 @@ const pl: Dictionary = {
removeConfirm: "Usunąć tę domenę? Twoje formularze wrócą pod domyślny adres URL.",
cancel: "Anuluj",
errSave: "Nie udało się zapisać domeny.",
errRemove: "Nie udało się usunąć domeny.",
step1: "1. Wskaż na nas domenę rekordem CNAME:",
step2: "2. Potwierdź własność rekordem TXT:",
recordName: "Nazwa",
Expand Down
Loading