diff --git a/.replit b/.replit index d96c59f0..4ce6e120 100644 --- a/.replit +++ b/.replit @@ -55,6 +55,10 @@ externalPort = 3000 localPort = 40437 externalPort = 3001 +[[ports]] +localPort = 42981 +externalPort = 4200 + [deployment] deploymentTarget = "autoscale" run = ["node", "dist/server/production.mjs"] diff --git a/attached_assets/image_1765236451390.png b/attached_assets/image_1765236451390.png new file mode 100644 index 00000000..70455f32 Binary files /dev/null and b/attached_assets/image_1765236451390.png differ diff --git a/client/pages/Activity.tsx b/client/pages/Activity.tsx index 61d26a6d..47ba5838 100644 --- a/client/pages/Activity.tsx +++ b/client/pages/Activity.tsx @@ -309,50 +309,43 @@ function AchievementsTab({ openExternalLink }: { openExternalLink: (url: string) return ( -
-
+
+
- - {unlockedCount}/{achievements.length} Unlocked + + {unlockedCount}/{achievements.length} Unlocked
- - +{achievements.filter((a) => a.unlocked).reduce((sum, a) => sum + a.xp_reward, 0)} XP - + Preview
-
-

- Achievement tracking coming soon! View your full profile for more details. -

-
- {achievements.slice(0, 4).map((achievement) => ( - - -
-
{achievement.icon}
-
-
-

{achievement.name}

- {achievement.unlocked && } + + {achievements.slice(0, 5).map((achievement) => ( +
+
+ {achievement.icon} +
+
+
+

{achievement.name}

+ {achievement.unlocked && }
-

{achievement.description}

- {!achievement.unlocked && achievement.progress !== undefined && ( -
-
- Progress - {achievement.progress}/{achievement.total} -
- -
- )} + +{achievement.xp_reward}
- +{achievement.xp_reward} XP +

{achievement.description}

- - +
+ {!achievement.unlocked && achievement.progress !== undefined && ( +
+
+ + {achievement.progress}/{achievement.total} +
+
+ )} +
))} -
@@ -378,14 +371,12 @@ function LeaderboardTab({ openExternalLink }: { openExternalLink: (url: string) return (
-
- - Top Creators This Week -
-
-

- Live leaderboard coming soon! Visit the full site for more. -

+
+
+ + Top Creators This Week +
+ Preview
{leaderboard.map((entry) => { const badge = getRankBadge(entry.rank); @@ -477,62 +468,53 @@ function QuestsTab({ openExternalLink }: { openExternalLink: (url: string) => Pr const weeklyQuests = quests.filter((q) => q.type === "weekly"); const QuestCard = ({ quest }: { quest: Quest }) => ( - - -
-
- {quest.completed ? : } +
+
+
+ {quest.completed ? : } +
+
+
+

{quest.title}

+ +{quest.xp_reward} XP
-
-
-

{quest.title}

- +{quest.xp_reward} XP -
-

{quest.description}

- {!quest.completed && ( -
-
- Progress - {quest.progress}/{quest.total} -
- -
- )} +

{quest.description}

+
+
+ {!quest.completed && ( +
+
+ + {quest.progress}/{quest.total}
- - + )} +
); return ( -
-
-

- Quest system coming soon! These are example quests. -

+
+
+ + Preview - Quest system coming soon
-
-
- - Daily Quests -
-
- {dailyQuests.map((quest) => )} -
+ +
+ {dailyQuests.map((quest) => )}
-
-
- - Weekly Quests -
-
- {weeklyQuests.map((quest) => )} -
+ +
+ + Weekly Quests
-
@@ -599,34 +581,32 @@ export default function Activity() { return (
-
-
- {user.avatar_url && } +
+
+ {user.avatar_url && }
-

{user.full_name || user.username}

-
- - {realmConfig.label} - -
+

{user.full_name || user.username}

+ + {realmConfig.label} +
-
- - Feed - Realms - Badges - Top - Jobs - Quests + + Feed + Realms + Badges + Top + Jobs + Quests -
+