Move the feed page to the community section and add redirects

Update client-side routing and vercel.json to redirect the /feed endpoint to /community/feed, and integrate the Feed component into the Community page.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: 9203795e-937a-4306-b81d-b4d5c78c240e
Replit-Commit-Checkpoint-Type: full_checkpoint
Replit-Commit-Event-Id: a87bc4c4-2f36-45ef-9537-d97890015ee4
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/7c94b7a0-29c7-4f2e-94ef-44b2153872b7/9203795e-937a-4306-b81d-b4d5c78c240e/duiWnI1
Replit-Helium-Checkpoint-Created: true
This commit is contained in:
sirpiglr 2025-12-03 03:11:57 +00:00
commit dc5ba858bf
6 changed files with 39 additions and 7 deletions

View file

@ -61,7 +61,7 @@ localPort = 40437
externalPort = 3001
[[ports]]
localPort = 43237
localPort = 45189
externalPort = 3002
[deployment]

View file

@ -224,7 +224,7 @@ const App = () => (
<Route path="/admin/feed" element={<AdminFeed />} />
<Route path="/admin/docs-sync" element={<DocsSync />} />
<Route path="/arms" element={<Arms />} />
<Route path="/feed" element={<Feed />} />
<Route path="/feed" element={<Navigate to="/community/feed" replace />} />
<Route path="/teams" element={<Teams />} />
<Route path="/squads" element={<Squads />} />
<Route path="/mentee-hub" element={<MenteeHub />} />

View file

@ -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() {
</div>
</div>
{activeTab === "feed" && (
<TabsContent value="feed" className="mt-0">
<Feed embedded />
</TabsContent>
)}
{activeTab === "new-members" && (
<TabsContent value="new-members" className="mt-0">
{/* New Member Hub */}

View file

@ -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<HTMLDivElement | null>(null);
@ -486,9 +490,11 @@ export default function Feed() {
);
}
return (
<Layout>
<div className="min-h-screen bg-[radial-gradient(circle_at_top,_rgba(110,141,255,0.12),transparent_60%)]">
const content = (
<div className={cn(
"bg-[radial-gradient(circle_at_top,_rgba(110,141,255,0.12),transparent_60%)]",
!embedded && "min-h-screen"
)}>
<div className="mx-auto flex w-full max-w-6xl flex-col gap-4 sm:gap-6 lg:gap-8 px-3 sm:px-4 pb-16 pt-6 sm:pt-10 lg:px-6">
<section className="relative overflow-hidden rounded-2xl sm:rounded-3xl border border-border/40 bg-background/80 p-4 sm:p-6 lg:p-8 shadow-2xl backdrop-blur">
<div className="absolute inset-0 bg-[radial-gradient(circle_at_top_left,_rgba(96,189,255,0.18),transparent_60%)]" />
@ -942,6 +948,11 @@ export default function Feed() {
</div>
</div>
</div>
</Layout>
);
if (embedded) {
return content;
}
return <Layout>{content}</Layout>;
}

View file

@ -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`

View file

@ -50,6 +50,11 @@
"has": [{ "type": "host", "value": "aethex.space" }],
"destination": "https://aethex.dev/",
"permanent": true
},
{
"source": "/feed",
"destination": "/community/feed",
"permanent": true
}
],
"rewrites": [