import { useEffect, useRef, useState } from 'react'; import { useNavigate } from 'react-router-dom'; import PageIcon from '../components/PageIcon.jsx'; import EmptyState from '../components/EmptyState.jsx'; import Pagination from '../components/Pagination.jsx'; import { usePagination } from '../hooks/usePagination.js'; import { api } from '../api.js'; import { useInvestisseur } from '../context/InvestisseurContext.jsx'; import { useUi } from '../context/UiContext.jsx'; import { fmtEUR, fmtStatut } from '../utils/format.js'; import Cerfa2561Preview from '../components/Cerfa2561Preview.jsx'; import CerfaRecapTable from '../components/CerfaRecapTable.jsx'; import Cerfa2778Preview from '../components/Cerfa2778Preview.jsx'; import Cerfa2047Preview from '../components/Cerfa2047Preview.jsx'; import Cerfa2042Preview from '../components/Cerfa2042Preview.jsx'; import Cerfa2042CProPreview from '../components/Cerfa2042CProPreview.jsx'; /* ── YearSelector ────────────────────────────────────────────── */ function YearSelector({ annee, setAnnee, availableYears }) { const [open, setOpen] = useState(false); const ref = useRef(null); useEffect(() => { if (!open) return; const h = e => { if (!ref.current?.contains(e.target)) setOpen(false); }; document.addEventListener('mousedown', h); return () => document.removeEventListener('mousedown', h); }, [open]); return (
⚠ Cases indicatives combinant plateformes françaises (IFU automatique) et étrangères. Référez-vous à la notice 2041-GFI.
⚠ Montant brut ; l'abattement de 34 % (régime micro-BNC) est appliqué automatiquement par l'administration.
⚠ Ce module est une aide à la préparation de votre déclaration ; il ne la remplace pas. Vérifiez chaque montant avant de le reporter. Vous restez seul responsable de l'exactitude de votre déclaration fiscale — Crowdlending ne saurait être tenu responsable des données déclarées.