Openstatus www.openstatus.dev

fix: error message (#525)

authored by

Maximilian Kaske and committed by
GitHub
aea8a83c 9d2d8476

+19 -15
+9 -3
apps/web/src/app/status-page/[domain]/_components/actions.ts
··· 25 25 26 26 if (!validatedFields.success) { 27 27 const fieldErrors = validatedFields.error.flatten().fieldErrors; 28 - throw new Error(fieldErrors?.email?.[0] || "Invalid form data"); 28 + return { 29 + error: fieldErrors?.email?.[0] || "Invalid form data", 30 + }; 29 31 } 30 32 31 33 const { slug } = validatedFields.data; ··· 40 42 .get(); 41 43 42 44 if (!pageData) { 43 - throw new Error("Page not found"); 45 + return { 46 + error: "Page not found", 47 + }; 44 48 } 45 49 46 50 const alreadySubscribed = await db ··· 55 59 .get(); 56 60 57 61 if (alreadySubscribed) { 58 - throw new Error("Already subscribed"); 62 + return { 63 + error: "Already subscribed", 64 + }; 59 65 } 60 66 61 67 const token = crypto.randomUUID();
+10 -12
apps/web/src/app/status-page/[domain]/_components/subscribe-button.tsx
··· 44 44 <form 45 45 className="grid gap-2" 46 46 action={async (formData) => { 47 - try { 48 - await handleSubscribe(formData); 47 + const res = await handleSubscribe(formData); 48 + if (res?.error) { 49 49 toast({ 50 - title: "Success", 51 - description: "Please confirm your email.", 50 + title: "Something went wrong", 51 + description: res.error, 52 + variant: "destructive", 52 53 }); 53 - } catch (e) { 54 - if (e instanceof Error) { 55 - toast({ 56 - title: "Something went wrong", 57 - description: e.message, 58 - variant: "destructive", 59 - }); 60 - } 54 + return; 61 55 } 56 + toast({ 57 + title: "Success", 58 + description: "Please confirm your email.", 59 + }); 62 60 }} 63 61 > 64 62 <Label htmlFor="email">Email</Label>