# @pierr/datalogic-sdk-bridge

React Native bridge pour le SDK Datalogic - Intégration de scanner de codes-barres pour les applications Expo.

## Installation

```bash
npm install @phermange/datalogic-sdk-bridge
```

## Utilisation

### Import du module

```typescript
import { BarcodeManager } from "@phermange/datalogic-sdk-bridge";
```

### Écoute des événements de scan

```typescript
import { useEffect, useState } from "react";
import { BarcodeManager } from "@phermange/datalogic-sdk-bridge";

export default function ScannerComponent() {
  const [lastScannedCode, setLastScannedCode] = useState<string>("");

  useEffect(() => {
    try {
      // Ajouter l'écouteur d'événements
      const subscription = BarcodeManager.addListener(
        "onBarcodeRead",
        (event) => {
          console.log("Code-barres scanné:", event.data);
          console.log("Timestamp:", event.timestamp);
          setLastScannedCode(event.data);
        }
      );

      // Démarrer l'écoute du scanner
      BarcodeManager.addReadListener();

      // Cleanup lors du démontage du composant
      return () => {
        subscription.remove();
        BarcodeManager.removeReadListener();
      };
    } catch (error) {
      console.error("Erreur lors de l'initialisation du scanner:", error);
    }
  }, []);

  return (
    <View style={{ flex: 1, justifyContent: "center", alignItems: "center" }}>
      <Text style={{ fontSize: 18, marginBottom: 20 }}>Scanner Datalogic</Text>
      {lastScannedCode ? (
        <Text style={{ fontSize: 16, color: "green" }}>
          Dernier scan: {lastScannedCode}
        </Text>
      ) : (
        <Text style={{ fontSize: 16, color: "gray" }}>
          En attente d'un scan...
        </Text>
      )}
    </View>
  );
}
```

## API

### BarcodeManager

#### `addReadListener()`

Démarre l'écoute du scanner Datalogic.

#### `removeReadListener()`

Arrête l'écoute du scanner Datalogic.

#### `addListener(eventName, listener)`

Ajoute un écouteur d'événements pour les scans de codes-barres.

**Paramètres:**

- `eventName`: `"onBarcodeRead"`
- `listener`: Fonction appelée lors d'un scan avec l'événement `BarcodeReadEvent`

#### Types TypeScript

```typescript
type BarcodeReadEvent = {
  data: string; // Le code-barres scanné
  timestamp: number; // Timestamp du scan
};
```

## Plateformes supportées

- ✅ Android
- ❌ iOS (non supporté)
- ❌ Web (non supporté)

## Prérequis

- Expo SDK
- Appareil Android avec scanner Datalogic intégré
- Le SDK Datalogic Android est automatiquement inclus via JitPack

## Licence

MIT
