diff --git a/.replit b/.replit index 4ae4563f..6196281d 100644 --- a/.replit +++ b/.replit @@ -61,7 +61,7 @@ localPort = 40437 externalPort = 3001 [[ports]] -localPort = 43237 +localPort = 45189 externalPort = 3002 [deployment] diff --git a/client/App.tsx b/client/App.tsx index 0f436693..b760f51e 100644 --- a/client/App.tsx +++ b/client/App.tsx @@ -224,7 +224,7 @@ const App = () => ( } /> } /> } /> - } /> + } /> } /> } /> } /> diff --git a/client/pages/Community.tsx b/client/pages/Community.tsx index c84899fe..798f526d 100644 --- a/client/pages/Community.tsx +++ b/client/pages/Community.tsx @@ -1,5 +1,6 @@ import Layout from "@/components/Layout"; import SEO from "@/components/SEO"; +import Feed from "@/pages/Feed"; const API_BASE = import.meta.env.VITE_API_BASE || ""; import { Button } from "@/components/ui/button"; @@ -1255,6 +1256,7 @@ export default function Community() { const communityTabItems = useMemo( () => [ + { id: "feed", label: "Feed" }, { id: "new-members", label: "New Members" }, { id: "knowledge", label: "Knowledge Base" }, { id: "mentorship", label: "Mentorship" }, @@ -1937,6 +1939,12 @@ export default function Community() { + {activeTab === "feed" && ( + + + + )} + {activeTab === "new-members" && ( {/* New Member Hub */} diff --git a/client/pages/Feed.tsx b/client/pages/Feed.tsx index aed6d23d..591bc934 100644 --- a/client/pages/Feed.tsx +++ b/client/pages/Feed.tsx @@ -124,7 +124,11 @@ function parseContent(content: string): { } } -export default function Feed() { +interface FeedProps { + embedded?: boolean; +} + +export default function Feed({ embedded = false }: FeedProps) { const { user, loading } = useAuth(); const { toast } = useToast(); const composerRef = useRef(null); @@ -486,9 +490,11 @@ export default function Feed() { ); } - return ( - -
+ const content = ( +
@@ -942,6 +948,11 @@ export default function Feed() {
- ); + + if (embedded) { + return content; + } + + return {content}; } diff --git a/replit.md b/replit.md index 244144b1..c15522ee 100644 --- a/replit.md +++ b/replit.md @@ -143,6 +143,14 @@ https://supabase.aethex.tech/auth/v1/callback - `https://supabase.aethex.tech/auth/v1/callback` ## Recent Changes (December 3, 2025) +- ✅ **Discord-to-Feed Integration**: Messages from Discord FEED channel sync to AeThex community feed + - Bot listens to configured channel (DISCORD_MAIN_CHAT_CHANNELS env var) + - Posts display with purple Discord badge and channel name + - Supports images/videos from Discord messages + - Real-time updates via Supabase subscriptions +- ✅ **Moved /feed to /community/feed**: Feed is now a tab within the Community page + - Old /feed URL redirects to /community/feed + - Added redirect in vercel.json for production - ✅ Fixed passport subdomain API to call aethex.foundation (identity authority) - ✅ Fixed API paths: `subdomain-data` → `subdomain`, `project-data` → `project` - ✅ Restored wildcard rewrites in vercel.json for `*.aethex.me` and `*.aethex.space` diff --git a/vercel.json b/vercel.json index 852fa18c..5149f68c 100644 --- a/vercel.json +++ b/vercel.json @@ -50,6 +50,11 @@ "has": [{ "type": "host", "value": "aethex.space" }], "destination": "https://aethex.dev/", "permanent": true + }, + { + "source": "/feed", + "destination": "/community/feed", + "permanent": true } ], "rewrites": [