chore: initial project import
Some checks failed
CI - Production Readiness / Verify (push) Has been cancelled

This commit is contained in:
Wira Basalamah
2026-04-21 09:29:29 +07:00
commit adde003fba
222 changed files with 37657 additions and 0 deletions

54
app/inbox/page.tsx Normal file
View File

@ -0,0 +1,54 @@
import { InboxPlaceholder } from "@/components/placeholders";
import { PlaceholderActions, ShellPage } from "@/components/page-templates";
import {
addConversationNote,
assignConversation,
getInboxWorkspace,
replyToConversation,
setConversationTags,
updateConversationStatus
} from "@/lib/inbox-ops";
const allowedFilters = ["all", "open", "pending", "resolved", "unassigned"] as const;
export default async function InboxPage({
searchParams
}: {
searchParams: Promise<{ conversationId?: string; filter?: string }>;
}) {
const params = await searchParams;
const filter =
params?.filter && allowedFilters.includes(params.filter as (typeof allowedFilters)[number])
? (params.filter as (typeof allowedFilters)[number])
: "all";
const data = await getInboxWorkspace({
scope: "admin",
conversationId: params?.conversationId,
filter
});
return (
<ShellPage
shell="admin"
title="Shared Inbox"
description="Split layout untuk conversation list, timeline, assignment, notes, tags, dan reply composer."
actions={<PlaceholderActions primaryHref="/team" primaryLabel="Manage team" secondaryHref="/contacts" secondaryLabel="Open contacts" />}
>
<InboxPlaceholder
conversations={data.conversations}
selectedConversation={data.selectedConversation}
defaultPath={data.defaultPath}
agents={data.agents}
role={data.role}
filter={data.filter}
canSelfAssign={data.canSelfAssign}
assignConversation={assignConversation}
updateConversationStatus={updateConversationStatus}
replyToConversation={replyToConversation}
addConversationNote={addConversationNote}
setConversationTags={setConversationTags}
/>
</ShellPage>
);
}