diff --git a/components/ForgeUI.tsx b/components/ForgeUI.tsx
index aeb3dd6..6b15a01 100644
--- a/components/ForgeUI.tsx
+++ b/components/ForgeUI.tsx
@@ -27,13 +27,15 @@ export default function ForgeUI({ project }: { project: ForgeProject }) {
{project.engine}
-
-
-
-
-
- ACTIVE STREAM
-
+ {project.isRecent && (
+
+
+
+
+
+ ACTIVE STREAM
+
+ )}
diff --git a/data/forge.ts b/data/forge.ts
index ae947d7..81f458c 100644
--- a/data/forge.ts
+++ b/data/forge.ts
@@ -16,6 +16,6 @@ export const FORGE_PROJECTS: ForgeProjectMetadata[] = [
"Real-time Firebase Sync",
"Turn-based Battle Engine",
],
- externalLink: "https://pixelpals.app",
+ // externalLink: "https://pixelpals.app",
},
];
diff --git a/lib/git.ts b/lib/git.ts
index 95ab0d4..302de61 100644
--- a/lib/git.ts
+++ b/lib/git.ts
@@ -3,17 +3,26 @@ import { ChangelogEntry, ForgeProject } from "@/types";
import "server-only";
export async function getAllForgeProjects(): Promise {
- // We use Promise.all to fetch all changelogs in parallel for speed
+ const thirtyDaysAgo = new Date();
+ thirtyDaysAgo.setDate(thirtyDaysAgo.getDate() - 30);
+
return Promise.all(
FORGE_PROJECTS.map(async (metadata) => {
const changelog = await getPrivateChangelog(metadata.repoName);
- const latestVersion =
- changelog.length > 0 ? changelog[0].version : "0.0.0";
+
+ // Determine if the latest entry happened in the last 30 days
+ const latestDate =
+ changelog.length > 0 ? new Date(changelog[0].date) : null;
+ const isRecent = latestDate ? latestDate >= thirtyDaysAgo : false;
return {
...metadata,
- currentVersion: `${latestVersion}_${metadata.status}`,
- changelog: changelog,
+ currentVersion:
+ changelog.length > 0
+ ? `${changelog[0].version}_${metadata.status}`
+ : `v0.0.0_${metadata.status}`,
+ isRecent, // This is the new conditional flag
+ changelog: changelog.slice(0, 3),
};
}),
);
diff --git a/types/index.ts b/types/index.ts
index 496e741..8416120 100644
--- a/types/index.ts
+++ b/types/index.ts
@@ -57,8 +57,9 @@ export interface ForgeProject {
highlights: string[];
externalLink?: string;
projectName: string;
- currentVersion: string; // Dynamically parsed
- changelog: ChangelogEntry[]; // Dynamically fetched
+ isRecent: boolean;
+ currentVersion: string;
+ changelog: ChangelogEntry[];
}
export interface ForgeProjectMetadata {