diff --git a/apps/web/src/app/status-page/[domain]/subscribe/route.ts b/apps/web/src/app/status-page/[domain]/subscribe/route.ts index 05af1525..bf551d76 100644 --- a/apps/web/src/app/status-page/[domain]/subscribe/route.ts +++ b/apps/web/src/app/status-page/[domain]/subscribe/route.ts @@ -5,6 +5,8 @@ import { db } from "@openstatus/db/src/db"; import { page, pageSubscriber } from "@openstatus/db/src/schema"; import { SubscribeEmail, sendEmail } from "@openstatus/emails"; +// TODO: use trpc route + export async function POST( req: Request, props: { params: Promise<{ domain: string }> }, diff --git a/packages/db/src/schema/status_reports/validation.ts b/packages/db/src/schema/status_reports/validation.ts index 048bcc5f..4fd6325c 100644 --- a/packages/db/src/schema/status_reports/validation.ts +++ b/packages/db/src/schema/status_reports/validation.ts @@ -52,3 +52,4 @@ export type InsertStatusReportUpdate = z.infer< typeof insertStatusReportUpdateSchema >; export type StatusReportUpdate = z.infer; +export type StatusReportStatus = z.infer; diff --git a/packages/emails/emails/_components/footer.tsx b/packages/emails/emails/_components/footer.tsx new file mode 100644 index 00000000..46b5b511 --- /dev/null +++ b/packages/emails/emails/_components/footer.tsx @@ -0,0 +1,20 @@ +import { Link, Section, Text } from "@react-email/components"; +import { styles } from "./styles"; + +export function Footer() { + return ( +
+ + + Home Page + {" "} + ・{" "} + + Contact Support + + + + OpenStatus ・ 122 Rue Amelot ・ 75011 Paris, France +
+ ); +} diff --git a/packages/emails/emails/_components/layout.tsx b/packages/emails/emails/_components/layout.tsx new file mode 100644 index 00000000..7c978e87 --- /dev/null +++ b/packages/emails/emails/_components/layout.tsx @@ -0,0 +1,28 @@ +import { Container, Img, Link, Section } from "@react-email/components"; +import { Footer } from "./footer"; +import { styles } from "./styles"; + +interface LayoutProps { + children?: React.ReactNode; + img?: { + src: string; + alt: string; + }; +} + +const defaultImg = { + src: "https://openstatus.dev/assets/logos/OpenStatus.png", + alt: "OpenStatus", +}; + +export function Layout({ children, img = defaultImg }: LayoutProps) { + return ( + + + {img.alt} + +
{children}
+