"use client";

import Link from "next/link";
import {
  SOCIAL_OAUTH_DISCLOSURE_DATA_DELETION_HREF,
  SOCIAL_OAUTH_DISCLOSURE_GENERAL,
  SOCIAL_OAUTH_DISCLOSURE_PRIVACY_HREF,
  SOCIAL_OAUTH_DISCLOSURE_SOCIAL_DATA_HREF,
  socialOAuthDisclosureForProvider,
} from "@/lib/legal/oauth-disclosure";

const linkClass = "font-medium text-primary underline decoration-line underline-offset-2 hover:text-accent";

type SocialOAuthDisclosureProps = {
  /** When set, append a provider-specific notice if one exists. */
  provider?: string;
  className?: string;
};

export function SocialOAuthDisclosure({ provider, className }: SocialOAuthDisclosureProps) {
  const providerNote = provider ? socialOAuthDisclosureForProvider(provider) : null;

  return (
    <div
      className={className}
      data-testid="social-oauth-disclosure"
      role="note"
      aria-label="Social account connection disclosure"
    >
      <p className="text-[0.8125rem] leading-relaxed text-ink-60">{SOCIAL_OAUTH_DISCLOSURE_GENERAL}</p>
      {providerNote ? (
        <p className="mt-2 text-[0.8125rem] leading-relaxed text-ink-60">{providerNote}</p>
      ) : null}
      <p className="mt-2 text-[0.8125rem] leading-relaxed text-ink-60">
        Read{" "}
        <Link className={linkClass} href={SOCIAL_OAUTH_DISCLOSURE_PRIVACY_HREF}>
          Privacy Policy
        </Link>
        ,{" "}
        <Link className={linkClass} href={SOCIAL_OAUTH_DISCLOSURE_SOCIAL_DATA_HREF}>
          Social Data
        </Link>
        , and{" "}
        <Link className={linkClass} href={SOCIAL_OAUTH_DISCLOSURE_DATA_DELETION_HREF}>
          Data Deletion
        </Link>
        .
      </p>
    </div>
  );
}
