diff --git a/apps/web/package.json b/apps/web/package.json index a48d062ec..56cc0e4b4 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -68,6 +68,9 @@ "react-tweet": "^3.1.1", "reading-time": "1.5.0", "rehype-pretty-code": "0.10.0", + "rehype-react": "7.2.0", + "remark-parse": "10.0.2", + "remark-rehype": "10.1.0", "resend": "0.15.3", "shiki": "0.14.3", "stripe": "12.17.0", diff --git a/apps/web/src/components/content/preview.tsx b/apps/web/src/components/content/preview.tsx new file mode 100644 index 000000000..501414e67 --- /dev/null +++ b/apps/web/src/components/content/preview.tsx @@ -0,0 +1,16 @@ +"use client"; + +import { useProcessor } from "@/hooks/use-preprocessor"; + +interface Props { + md?: string; +} + +export function Preview({ md }: Props) { + const Component = useProcessor(md || ""); + return ( +
+ {Component} +
+ ); +} diff --git a/apps/web/src/components/forms/incident-form.tsx b/apps/web/src/components/forms/incident-form.tsx index 4f1fd136e..49e89c215 100644 --- a/apps/web/src/components/forms/incident-form.tsx +++ b/apps/web/src/components/forms/incident-form.tsx @@ -1,4 +1,3 @@ -// move into @/components/forms/ later "use client"; import * as React from "react"; @@ -14,6 +13,7 @@ import { StatusEnum, } from "@openstatus/db/src/schema"; +import { Preview } from "@/components/content/preview"; import { Icons } from "@/components/icons"; import { LoadingAnimation } from "@/components/loading-animation"; import { Button } from "@/components/ui/button"; @@ -30,6 +30,7 @@ import { } from "@/components/ui/form"; import { Input } from "@/components/ui/input"; import { RadioGroup, RadioGroupItem } from "@/components/ui/radio-group"; +import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; import { Textarea } from "@/components/ui/textarea"; import { useToast } from "@/components/ui/use-toast"; import { statusDict } from "@/data/incidents-dictionary"; @@ -170,20 +171,31 @@ export function IncidentForm({
( Message - -