Skip to main content

apps/web/components/integration-onboarding-panel.tsx

Metadata

Indexed Symbols

  • IntegrationOnboardingPanel (line 15, function) - Implements integration onboarding panel for module behavior.

Markdown Headings (if applicable)

No markdown headings detected.

Source Preview

import { Card } from "@anchor/ui";
import {
setWorkspaceSecretAction,
triggerAccountingSyncAction,
triggerNotificationTestAction
} from "../app/actions/operator-actions";

type IntegrationOnboardingPanelProps = {
workspaceId: string;
secretKeys: string[];
accountingStatus?: { provider?: string; syncType?: string; completedAt?: string; status?: string };
notificationStatus?: { channel?: string; target?: string; completedAt?: string; status?: string };
};

export function IntegrationOnboardingPanel({ workspaceId, secretKeys, accountingStatus, notificationStatus }: IntegrationOnboardingPanelProps) {
const hasQuickBooks = secretKeys.includes("QUICKBOOKS_API_TOKEN");
const hasXero = secretKeys.includes("XERO_API_TOKEN");
const hasSlack = secretKeys.includes("SLACK_WEBHOOK_URL");
const hasTeams = secretKeys.includes("TEAMS_WEBHOOK_URL");
const hasEmail = secretKeys.includes("EMAIL_TEST_ENDPOINT");

return (
<Card className="mb-4">
<h2 className="text-xl font-semibold text-[var(--ink-base)]">Integration Onboarding</h2>
<p className="mt-2 text-sm text-[var(--ink-muted)]">