import React, { useState, useEffect } from 'react';
import { api } from '../stores/api';
import PageHeader from '../components/PageHeader';
import SuccessCheck from '../components/SuccessCheck';
const CATEGORIES = [
{ value: 'livre', label: 'Livre', emoji: '📕' },
{ value: 'brochure', label: 'Brochure', emoji: '📄' },
{ value: 'depliant', label: 'Dépliant', emoji: '📃' },
{ value: 'pamphlet', label: 'Pamphlet', emoji: '📑' },
];
export default function AjusterInventaire() {
const [items, setItems] = useState([]);
const [jetons, setJetons] = useState([]);
const [loading, setLoading] = useState(true);
const [success, setSuccess] = useState('');
const [error, setError] = useState('');
const [showAjout, setShowAjout] = useState(false);
const charger = async () => {
try {
const [data, stockJetons] = await Promise.all([
api.get('/litterature/'),
api.get('/commandes-jetons/stock'),
]);
setItems(data);
setJetons(stockJetons);
} catch {
setItems([]);
setJetons([]);
}
setLoading(false);
};
useEffect(() => { charger(); }, []);
const ajusterStock = async (itemId, quantite) => {
setError('');
try {
const item = items.find((i) => i.id === itemId);
await api.patch(`/litterature/${itemId}/stock`, { quantite }, { version: item?.modifie_le });
setSuccess('Stock ajusté ✓');
setTimeout(() => { setSuccess(''); charger(); }, 1000);
} catch (e) {
setError(e.message);
}
};
if (success) return
{error}
} {loading &&Chargement...
} {/* Liste des titres avec ajustement */} {items.map((item) => (Aucun titre dans le catalogue
Jetons à commander ({aCommander.length})
{s.label} — {s.remis_dernier_mois} remis ce mois
))}{s.label.split(' ').slice(1).join(' ')}
{s.remis_dernier_mois} remis ou vendu récemment
Aucune donnée de jetons pour le moment
{item.titre}
{item.categorie}
{item.quantite_stock}
en stock
{error}
}