feat(drill): ProviderDrawer — Claims + Activity tabs from extended /providers/{npi}
This commit is contained in:
@@ -1,9 +1,12 @@
|
||||
import { Dialog, DialogContent } from "@/components/ui/dialog";
|
||||
import { Tabs } from "@/components/ui/tabs";
|
||||
import { ApiError } from "@/lib/api";
|
||||
import { DrillDrawerHeader } from "@/components/drill/DrillDrawerHeader";
|
||||
import { Skeleton } from "@/components/ui/skeleton";
|
||||
import { useProviderDetail } from "@/hooks/useProviderDetail";
|
||||
import { ProviderOverview } from "./ProviderOverview";
|
||||
import { ProviderRecentClaims } from "./ProviderRecentClaims";
|
||||
import { ProviderRecentActivity } from "./ProviderRecentActivity";
|
||||
import { ProviderDrawerError } from "./ProviderDrawerError";
|
||||
|
||||
interface Props {
|
||||
@@ -12,12 +15,17 @@ interface Props {
|
||||
}
|
||||
|
||||
/**
|
||||
* Provider drill-down drawer (SP21 Task 2.2).
|
||||
* Provider drill-down drawer (SP21 Task 2.2 + 3.1).
|
||||
*
|
||||
* Side-panel shell that consumes ``useProviderDetail(npi)`` and renders
|
||||
* the Overview tab content (Phase 2 ships only this tab; Phase 3 adds
|
||||
* Claims/Activity tabs once ``recent_claims`` and ``recent_activity``
|
||||
* rendering lands).
|
||||
* a three-tab body:
|
||||
*
|
||||
* - Overview — base provider fields (identity + activity shape)
|
||||
* - Claims — top-10 claims joined to this provider
|
||||
* (extended `/api/config/providers/{npi}.recent_claims`,
|
||||
* populated by Task 1.6)
|
||||
* - Activity — top-10 events joined to this provider's claims
|
||||
* (extended `/api/config/providers/{npi}.recent_activity`)
|
||||
*
|
||||
* Layout mirrors the ClaimDrawer / RemitDrawer pattern: Radix Dialog
|
||||
* repositioned to the right edge as a fixed-height side panel, with
|
||||
@@ -76,9 +84,22 @@ export function ProviderDrawer({ npi, onClose }: Props) {
|
||||
title={data.name}
|
||||
onClose={onClose}
|
||||
/>
|
||||
<div className="p-6">
|
||||
<ProviderOverview provider={data} />
|
||||
</div>
|
||||
<Tabs.Root defaultValue="overview" className="px-6 py-4">
|
||||
<Tabs.List>
|
||||
<Tabs.Trigger value="overview">Overview</Tabs.Trigger>
|
||||
<Tabs.Trigger value="claims">Claims</Tabs.Trigger>
|
||||
<Tabs.Trigger value="activity">Activity</Tabs.Trigger>
|
||||
</Tabs.List>
|
||||
<Tabs.Content value="overview">
|
||||
<ProviderOverview provider={data} />
|
||||
</Tabs.Content>
|
||||
<Tabs.Content value="claims">
|
||||
<ProviderRecentClaims provider={data} />
|
||||
</Tabs.Content>
|
||||
<Tabs.Content value="activity">
|
||||
<ProviderRecentActivity provider={data} />
|
||||
</Tabs.Content>
|
||||
</Tabs.Root>
|
||||
</div>
|
||||
)}
|
||||
</DialogContent>
|
||||
|
||||
Reference in New Issue
Block a user