CrossBorderTransferManagerLite

Read-only variant of CrossBorderTransferManager. Renders the four-stat summary, risk alerts, and transfer table — without the form, the adequacy dataset, or any add / edit / delete affordances.

Overview

CrossBorderTransferManagerLite is the display-only counterpart of CrossBorderTransferManager. It renders the same four-stat summary (active transfers, pending approval, high risk, missing TIA), the same risk alerts, and the same transfers table — but the add/edit form, the full country adequacy dataset, and the write-path utilities are not bundled.

Use it on dashboards, regulatory reports, and transparency pages where users only need to inspect transfers. For the full read/write surface, use the regular CrossBorderTransferManager from the same module.

import { CrossBorderTransferManagerLite } from '@tantainnovative/ndpr-toolkit/cross-border/lite';

Production Readiness

Use this checklist when moving CrossBorderTransferManagerLite from demo mode into a customer-facing workflow. Pair the UI package with the source templates in @tantainnovative/ndpr-recipes so validation, persistence, and audit behavior live in your own backend.

Import path
Use
Production role
@tantainnovative/ndpr-toolkit/cross-border/lite
CrossBorderTransferManagerLite
Read-only transfer summaries, risk alerts, and transfer tables.
@tantainnovative/ndpr-toolkit/cross-border
CrossBorderTransferManager, validateTransfer
Full read/write manager and validation path for transfer review workflows.
@tantainnovative/ndpr-recipes
src/adapters/drizzle-cross-border.ts
Reference persistence adapter for transfer records consumed by read-only views.

Implementation checklist

  • Feed lite views from approved transfer records, not vendor intake drafts.
  • Use onTransferClick only for routes the current user can access.
  • Surface pending approvals, high-risk flags, missing TIA, and NDPC approval requirements.
  • Route edits, approvals, and safeguard evidence uploads to the full CrossBorderTransferManager.
  • Decide whether transfer details are internal-only or safe for customer-facing transparency.

Backend notes

  • Use the recipes adapter as the durable source for transfer records.
  • Apply authorization before returning transfer records because lite UI is display-only, not a security boundary.
  • Return status, risk level, TIA status, and safeguard metadata so alerts match the approved record.
  • Redact vendor contracts, safeguard evidence, and internal risk notes before public views.

Testing notes

  • Compare lite summaries and risk alerts with the full manager and backend records.
  • Check high-risk, missing-TIA, pending-approval, active, and archived transfer states.
  • Verify keyboard row activation and no-op behavior when onTransferClick is omitted.
  • Confirm users cannot fetch restricted vendor or safeguard evidence through linked routes.

Common mistakes

  • Using lite pages for transfer approval workflows instead of the full manager.
  • Showing draft vendor regions as approved transfers.
  • Treating hidden edit controls as authorization.
  • Publishing sensitive vendor and safeguard details without review or redaction.

Quickstart

import { CrossBorderTransferManagerLite } from '@tantainnovative/ndpr-toolkit/cross-border/lite';
import type { CrossBorderTransfer } from '@tantainnovative/ndpr-toolkit';

const transfers: CrossBorderTransfer[] = [
  {
    id: 'xfer_001',
    destinationCountry: 'United Kingdom',
    destinationCountryCode: 'GB',
    recipientOrganization: 'Acme UK Ltd',
    transferMechanism: 'adequacy_decision',
    adequacyStatus: 'adequate',
    riskLevel: 'low',
    status: 'active',
    tiaCompleted: true,
    createdAt: Date.now(),
    updatedAt: Date.now(),
    // ...remaining CrossBorderTransfer fields
  },
];

export default function TransfersOverview() {
  return (
    <CrossBorderTransferManagerLite
      transfers={transfers}
      showSummary
      showRiskAlerts
      onTransferClick={(t) => router.push(`/transfers/${t.id}`)}
    />
  );
}

Props

PropTypeDescription
transfersCrossBorderTransfer[]Required. Transfers to display. Sorted by updatedAt descending in the rendered table.
titlestringHeader. Defaults to "Cross-Border Data Transfer Manager".
descriptionstringSub-header. Defaults to an NDPA Part VIII (Sections 41-43) explainer.
showSummarybooleanToggle the four-stat summary cards. Defaults to true.
showRiskAlertsbooleanToggle the high-risk / NDPC-approval-required alert banner. Defaults to true.
onTransferClick(transfer: CrossBorderTransfer) => voidOptional row callback. When provided, each row becomes keyboard-accessible (role="button", Enter / Space activates).
classNamestringExtra class merged onto the root.
classNamesCrossBorderTransferManagerLiteClassNamesPer-slot overrides (root, header, title, summary, summaryCard, table, tableHeader, tableRow, statusBadge, riskBadge, riskAlert).
unstyledbooleanStrip every default class.

When NOT to use the Lite variant

  • You need an admin to add, edit, or terminate transfers — use the full CrossBorderTransferManager.
  • You want the bundled country-adequacy lookup UI — also full only.
  • You want server-side validation of new transfers — pair the full variant with validateTransfer from /core.