diff --git a/Frontend/src/components/analytics/MapBaseComponent.tsx b/Frontend/src/components/analytics/MapBaseComponent.tsx new file mode 100644 index 00000000..80a3514f --- /dev/null +++ b/Frontend/src/components/analytics/MapBaseComponent.tsx @@ -0,0 +1,29 @@ +import React from 'react'; + +export interface MapBaseProps { + latitude?: number; + longitude?: number; + zoom?: number; + children?: React.ReactNode; +} + +export const MapBaseComponent: React.FC = ({ + latitude = 0, + longitude = 0, + zoom = 12, + children, +}) => { + return ( +
+
+ Lat: {latitude.toFixed(4)} | Lng: {longitude.toFixed(4)} | Zoom: {zoom} +
+
+ [Interactive Spatial Map Canvas Viewport] +
+ {children} +
+ ); +}; + +export default MapBaseComponent; diff --git a/Frontend/src/components/analytics/RecentGistsFeed.tsx b/Frontend/src/components/analytics/RecentGistsFeed.tsx new file mode 100644 index 00000000..066fe649 --- /dev/null +++ b/Frontend/src/components/analytics/RecentGistsFeed.tsx @@ -0,0 +1,37 @@ +import React from 'react'; + +export interface FeedGistItem { + id: string; + snippet: string; + timestamp: string; +} + +export interface RecentGistsFeedProps { + items?: FeedGistItem[]; +} + +export const RecentGistsFeed: React.FC = ({ + items = [], +}) => { + return ( +
+

+ Recent Gists in Selected Area +

+
+ {items.length === 0 ? ( +

No recent gists found in this bounding box.

+ ) : ( + items.map(item => ( +
+

{item.snippet}

+ {item.timestamp} +
+ )) + )} +
+
+ ); +}; + +export default RecentGistsFeed;