diff --git a/src/components/faq-display.tsx b/src/components/faq-display.tsx index 47a21fd..5715f34 100644 --- a/src/components/faq-display.tsx +++ b/src/components/faq-display.tsx @@ -16,18 +16,13 @@ interface FaqDisplayProps { export function FaqDisplay({ faqs }: FaqDisplayProps) { return ( -
-

- FAQ Structured Data -

- - {faqs.map((faq, index) => ( - - {faq.question} - {faq.answer} - - ))} - -
+ + {faqs.map((faq, index) => ( + + {faq.question} + {faq.answer} + + ))} + ); } \ No newline at end of file diff --git a/src/components/meta-form.tsx b/src/components/meta-form.tsx index 8446a8b..c70402c 100644 --- a/src/components/meta-form.tsx +++ b/src/components/meta-form.tsx @@ -4,7 +4,7 @@ import { useEffect, useState } from "react"; import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; import { Textarea } from "@/components/ui/textarea"; -import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; +import { Card, CardContent } from "@/components/ui/card"; import { Globe, Edit, Check, Loader2, X, ImageOff } from "lucide-react"; import { extractMetaData, type HeadlineNode } from "@/app/actions"; import { LengthIndicator } from "./length-indicator"; @@ -13,6 +13,7 @@ import { SerpPreview } from "./serp-preview"; import { ResultsSkeleton } from "./results-skeleton"; import { FaqDisplay } from "./faq-display"; import { HeadlineTree } from "./headline-tree"; +import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; interface MetaData { title: string; @@ -121,177 +122,186 @@ export function MetaForm() { )} {!loading && metaData && ( -
- - - - Meta Analysis - - - -
-
-
-

- SERP Preview -

- -
+ + + Meta Analysis + {metaData.headlines && metaData.headlines.length > 0 && ( + Headlines + )} + {metaData.faq && metaData.faq.length > 0 && ( + FAQ + )} + - {metaData.image && ( + + + +
+

- Preview Image + SERP Preview

-
- {!imageError ? ( - Meta preview image setImageError(true)} + +
+ {metaData.image && ( +
+

+ Preview Image +

+
+ {!imageError ? ( + Meta preview image setImageError(true)} + /> + ) : ( +
+ + Image not available +
+ )} +
+
+ )} +
+
+
+
+
+

+ Meta Title +

+ - ) : ( -
- - Image not available -
- )} -
-
- )} - - {metaData.faq && metaData.faq.length > 0 && ( - - )} -
-
-
-
-
-

- Meta Title -

- - - {editableTitle.length} Characters - -
-
- - +
+
+ + +
-
-

- The title of the page, ideally between 30 and 60 - characters. -

- {isEditingTitle ? ( - setEditableTitle(e.target.value)} - className="w-full" - placeholder="Meta Title" - /> - ) : ( -

- {editableTitle || "Not found"} +

+ The title of the page, ideally between 30 and 60 + characters.

- )} -
-
-
-
-

- Meta Description -

- setEditableTitle(e.target.value)} + className="w-full" + placeholder="Meta Title" /> - - {editableDescription.length} Characters - + ) : ( +

+ {editableTitle || "Not found"} +

+ )} +
+
+
+
+

+ Meta Description +

+ + + {editableDescription.length} Characters + +
+
+ + +
-
- -