first commit

This commit is contained in:
2026-07-17 21:48:37 +05:30
commit f85599dac5
124 changed files with 10775 additions and 0 deletions
+14
View File
@@ -0,0 +1,14 @@
import { Placeholder } from "@/components/Placeholder";
import { Hash } from "lucide-react";
export default function BrowsePage() {
return (
<Placeholder
eyebrow="Messaging"
title="Browse channels"
subtitle="Discover and join channels"
icon={<Hash size={26} />}
body="A channel directory with search, categories and one-click join. Gated by the `channelBrowser` feature flag."
/>
);
}
+6
View File
@@ -0,0 +1,6 @@
import { ChannelView } from "@/components/message/ChannelView";
export default async function ChannelPage({ params }: { params: Promise<{ id: string }> }) {
const { id } = await params;
return <ChannelView channelId={id} />;
}
+5
View File
@@ -0,0 +1,5 @@
import { redirect } from "next/navigation";
export default function DmsPage() {
redirect("/c/d_liam");
}
+14
View File
@@ -0,0 +1,14 @@
import { Placeholder } from "@/components/Placeholder";
import { Send } from "lucide-react";
export default function DraftsPage() {
return (
<Placeholder
eyebrow="Messaging"
title="Drafts & sent"
subtitle="Unsent drafts and scheduled messages"
icon={<Send size={24} />}
body="Scheduled sends from the composer land here until they're delivered. Gated by the `drafts` and `scheduledSend` feature flags."
/>
);
}
+5
View File
@@ -0,0 +1,5 @@
import { InboxView } from "@/components/inbox/InboxView";
export default function InboxPage() {
return <InboxView />;
}
+5
View File
@@ -0,0 +1,5 @@
import { AppShell } from "@/components/AppShell";
export default function AppLayout({ children }: { children: React.ReactNode }) {
return <AppShell>{children}</AppShell>;
}
+27
View File
@@ -0,0 +1,27 @@
"use client";
import { useEffect } from "react";
import { useRouter } from "next/navigation";
import { useChannels, useSdk } from "@lynkd/messaging-inbox-sdk";
/** Land on the first available channel (works for both mock + live IIOS ids). */
export default function HomePage() {
const router = useRouter();
const { loading } = useSdk();
const { starred, channels, dms } = useChannels();
useEffect(() => {
if (loading) return;
const first = starred[0] ?? channels[0] ?? dms[0];
if (first) router.replace(`/c/${first.id}`);
}, [loading, starred, channels, dms, router]);
return (
<div className="flex flex-1 items-center justify-center text-muted">
<div className="flex flex-col items-center gap-3">
<div className="brand-mark h-10 w-10 animate-pulse rounded-card" />
<span className="text-[13px]">Opening your workspace</span>
</div>
</div>
);
}
+5
View File
@@ -0,0 +1,5 @@
import { SavedView } from "@/components/saved/SavedView";
export default function SavedPage() {
return <SavedView />;
}
+6
View File
@@ -0,0 +1,6 @@
import { SupportView } from "@/components/support/SupportView";
export default async function SupportTicketPage({ params }: { params: Promise<{ id: string }> }) {
const { id } = await params;
return <SupportView initialTicketId={id} />;
}
+5
View File
@@ -0,0 +1,5 @@
import { SupportView } from "@/components/support/SupportView";
export default function SupportPage() {
return <SupportView />;
}
+5
View File
@@ -0,0 +1,5 @@
import { ThreadsView } from "@/components/threads/ThreadsView";
export default function ThreadsPage() {
return <ThreadsView />;
}