diff --git a/ui/app/news/[id]/page.tsx b/ui/app/news/[id]/page.tsx
index a2fbfcc..4a0f76f 100644
--- a/ui/app/news/[id]/page.tsx
+++ b/ui/app/news/[id]/page.tsx
@@ -1,4 +1,4 @@
-import NewsDetail from "../../../components/NewsDetail";
+import NewsDetail from "../../../components/NewsDetailPage/NewsDetail";
import { VALIDATED_ENV } from "../../../lib/constants";
async function getNewsData(id: string) {
diff --git a/ui/components/ContextItem.tsx b/ui/components/NewsDetailPage/ContextItem.tsx
similarity index 67%
rename from ui/components/ContextItem.tsx
rename to ui/components/NewsDetailPage/ContextItem.tsx
index 8b85d43..a3b6beb 100644
--- a/ui/components/ContextItem.tsx
+++ b/ui/components/NewsDetailPage/ContextItem.tsx
@@ -1,6 +1,8 @@
-import React from "react";
+import React, { useState, useEffect } from "react";
import Image from "next/image";
import { ReactMarkdown } from "@/components/Markdown";
+import PreviewNewsDetail from "./PreviewNewsDetail";
+
interface ContextItemProperties {
item: {
name: string;
@@ -19,12 +21,14 @@ interface ContextItemProperties {
contentUrl: string;
thumbnail: { contentUrl: string; width: number; height: number };
};
+ article?: string;
+ score?: number;
};
}
const ProviderInfo: React.FC<{ name: string; date: string }> = ({ name, date }) => (
-
-
+
+
{name}
{date}
@@ -32,16 +36,17 @@ const ProviderInfo: React.FC<{ name: string; date: string }> = ({ name, date })
);
const ContextItem: React.FC
= ({ item }) => {
+ const [isPreviewVisible, setIsPreviewVisible] = useState(false);
+
+ const togglePreview = () => {
+ setIsPreviewVisible(!isPreviewVisible);
+ };
+
return (
-
+ <>
{item.image ? (
@@ -64,15 +69,17 @@ const ContextItem: React.FC = ({ item }) => {
-
{item.name}
+ {item.name}
-
+
-
+
+ {isPreviewVisible && }
+ >
);
};
diff --git a/ui/components/ExpandableItems.tsx b/ui/components/NewsDetailPage/ExpandableItems.tsx
similarity index 100%
rename from ui/components/ExpandableItems.tsx
rename to ui/components/NewsDetailPage/ExpandableItems.tsx
diff --git a/ui/components/NewsDetail.tsx b/ui/components/NewsDetailPage/NewsDetail.tsx
similarity index 100%
rename from ui/components/NewsDetail.tsx
rename to ui/components/NewsDetailPage/NewsDetail.tsx
diff --git a/ui/components/NewsDetailPage/PreviewNewsDetail.tsx b/ui/components/NewsDetailPage/PreviewNewsDetail.tsx
new file mode 100644
index 0000000..c51fd43
--- /dev/null
+++ b/ui/components/NewsDetailPage/PreviewNewsDetail.tsx
@@ -0,0 +1,53 @@
+import React from "react";
+import Image from "next/image";
+import { ReactMarkdown } from "@/components/Markdown";
+
+interface ContextItemProperties {
+ item: {
+ name: string;
+ url: string;
+ description: string;
+ provider: {
+ name: string;
+ image?: {
+ thumbnail: {
+ contentUrl: string;
+ };
+ };
+ }[];
+ datePublished: string;
+ image?: {
+ contentUrl: string;
+ thumbnail: { contentUrl: string; width: number; height: number };
+ };
+ article?: string;
+ score?: number;
+ };
+ togglePreview: () => void; // Add togglePreview prop
+}
+
+const PreviewNewsDetail: React.FC = ({ item, togglePreview = () => {} }) => {
+ return (
+
+ );
+};
+
+export default PreviewNewsDetail;