// src/components/onboarding/activation-error-boundary.tsx — garde fail-silent
// autour du panneau de la checklist d'activation.
//
// Elle est née pour contenir OnboardJS (un RC qui pouvait throw PENDANT le
// render) ; la lib a disparu, la garde reste, et ce n'est pas de l'inertie : la
// garantie qu'elle porte n'a jamais été « OnboardJS peut casser » mais
// « l'onboarding ne doit jamais casser l'app » (spec activation-checklist §
// fail-silent). Ce sous-arbre est monté dans la barre latérale de TOUTES les
// pages du groupe (app) : un throw au rendu y ferait tomber le produit entier
// pour une carte de progression. On log, on ne rend rien.
"use client";

import { Component, type ReactNode } from "react";

export class ActivationErrorBoundary extends Component<
  { children: ReactNode },
  { failed: boolean }
> {
  state = { failed: false };

  static getDerivedStateFromError() {
    return { failed: true };
  }

  componentDidCatch(error: Error) {
    console.error("[activation]", error);
  }

  render() {
    return this.state.failed ? null : this.props.children;
  }
}
