style(frontend): tidy drawer review nits

- RawSegmentsPanel: summary now reads 'Show N raw segments' for
  non-empty (with singular pluralization). The previous identical
  ternary branches read as a bug.
- PartiesGrid: replace the verbose intersection cast on AddressBlock
  with a direct ClaimDetailAddress cast (the union's other arm is
  Record<string, never>, ruled out by isEmptyAddress above).
This commit is contained in:
Tyler
2026-06-20 11:49:18 -06:00
parent dc89244100
commit 3fec07ca4d
2 changed files with 6 additions and 12 deletions
+4 -10
View File
@@ -1,4 +1,4 @@
import type { ClaimDetail } from "@/types";
import type { ClaimDetail, ClaimDetailAddress } from "@/types";
type PartiesGridProps = {
parties: ClaimDetail["parties"];
@@ -20,15 +20,9 @@ function isEmptyAddress(addr: AddressLike | null | undefined): boolean {
function AddressBlock({ address }: { address: AddressLike }) {
if (isEmptyAddress(address)) return null;
// After the empty check the cast is safe; the alternative `ClaimDetailAddress`
// shape has all the fields we read.
const a = address as ClaimDetail["parties"]["billingProvider"]["address"] & {
line1: string;
line2: string | null;
city: string;
state: string;
zip: string;
};
// After the empty check the cast is safe the remaining union arm is
// `ClaimDetailAddress` which has all the fields we read.
const a = address as ClaimDetailAddress;
return (
<div
className="text-xs leading-relaxed text-[color:var(--m-ink-secondary)]"
@@ -44,8 +44,8 @@ export function RawSegmentsPanel({ rawSegments }: RawSegmentsPanelProps) {
data-testid="raw-segments-summary"
>
{rawSegments.length === 0
? "Show raw segments"
: "Show raw segments"}
? `Show raw segments`
: `Show ${rawSegments.length} raw segment${rawSegments.length === 1 ? "" : "s"}`}
</summary>
{rawSegments.length === 0 ? (