datakeen-session-react 1.1.8 → 1.1.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +55 -156
- package/package.json +15 -14
- package/INTEGRATION_GUIDE.md +0 -87
package/README.md
CHANGED
|
@@ -1,188 +1,87 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Guide d'intégration - Datakeen Session React SDK
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
## Résolution du problème ReactCurrentDispatcher
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
<img src="./assets/logo.svg" alt="Datakeen Logo" width="180"/>
|
|
7
|
-
<span style="font-size: 20px; color: #3C3C40; margin-left: 20px; font-weight: 500;">Documentation Technique</span>
|
|
8
|
-
</div>
|
|
5
|
+
Le problème `Cannot read properties of undefined (reading 'ReactCurrentDispatcher')` a été résolu en optimisant la configuration Vite pour un SDK React.
|
|
9
6
|
|
|
10
|
-
|
|
7
|
+
### Changements apportés
|
|
11
8
|
|
|
12
|
-
|
|
9
|
+
1. **Configuration Vite** (`vite.config.ts`) :
|
|
10
|
+
- Ajout du JSX runtime automatique
|
|
11
|
+
- Externalisation de React, React-DOM et JSX runtime
|
|
12
|
+
- Externalisation des dépendances UI (Radix, Headless UI, Lucide)
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
2. **Gestion des dépendances** (`package.json`) :
|
|
15
|
+
- React et React-DOM déplacés vers `peerDependencies` et `devDependencies`
|
|
16
|
+
- Dépendances UI déplacées vers `peerDependencies` pour éviter la duplication
|
|
17
|
+
|
|
18
|
+
### Installation dans une application React
|
|
15
19
|
|
|
16
20
|
```bash
|
|
17
|
-
# Via npm
|
|
18
21
|
npm install datakeen-session-react
|
|
19
|
-
|
|
20
|
-
# Via yarn
|
|
21
|
-
yarn add datakeen-session-react
|
|
22
|
-
|
|
23
|
-
# Via pnpm
|
|
24
|
-
pnpm add datakeen-session-react
|
|
25
22
|
```
|
|
26
23
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
### Prérequis
|
|
30
|
-
|
|
31
|
-
- Une application React fonctionnelle (React 16.8+ recommandé pour support des Hooks)
|
|
32
|
-
- Un identifiant de session Datakeen valide (obtenu via l'API Datakeen)
|
|
33
|
-
|
|
34
|
-
### Étape 1 : Importer le SDK
|
|
35
|
-
|
|
36
|
-
```jsx
|
|
37
|
-
import useSession from "datakeen-session-react";
|
|
38
|
-
```
|
|
24
|
+
**Important :** Assurez-vous d'avoir installé toutes les peer dependencies :
|
|
39
25
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
```jsx
|
|
43
|
-
const MonComposant = () => {
|
|
44
|
-
// Initialisation avec l'ID de session
|
|
45
|
-
const { SessionComponent } = useSession("votre-session-id");
|
|
46
|
-
|
|
47
|
-
return (
|
|
48
|
-
<div>
|
|
49
|
-
{/* Intégrez le composant de session où vous le souhaitez */}
|
|
50
|
-
{SessionComponent}
|
|
51
|
-
</div>
|
|
52
|
-
);
|
|
53
|
-
};
|
|
26
|
+
```bash
|
|
27
|
+
npm install react react-dom axios @headlessui/react @radix-ui/react-checkbox @radix-ui/react-icons @radix-ui/react-label @radix-ui/react-select lucide-react
|
|
54
28
|
```
|
|
55
29
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
### Intégration dans une page de vérification d'identité
|
|
30
|
+
### Utilisation
|
|
59
31
|
|
|
60
|
-
```
|
|
61
|
-
import React from
|
|
62
|
-
import useSession from
|
|
63
|
-
|
|
64
|
-
const VerificationPage = () => {
|
|
65
|
-
// Vous pouvez récupérer l'ID de session depuis votre backend
|
|
66
|
-
const sessionId = "votre-session-id";
|
|
67
|
-
const { SessionComponent } = useSession(sessionId);
|
|
32
|
+
```tsx
|
|
33
|
+
import React from 'react';
|
|
34
|
+
import useSession from 'datakeen-session-react';
|
|
68
35
|
|
|
36
|
+
function App() {
|
|
37
|
+
const session = useSession();
|
|
38
|
+
|
|
69
39
|
return (
|
|
70
|
-
<div className="
|
|
71
|
-
|
|
72
|
-
<p>Merci de suivre les étapes ci-dessous pour vérifier votre identité</p>
|
|
73
|
-
|
|
74
|
-
{/* Le SDK gère automatiquement toutes les étapes du processus */}
|
|
75
|
-
<div className="session-wrapper">{SessionComponent}</div>
|
|
40
|
+
<div className="App">
|
|
41
|
+
{/* Votre composant utilisant le SDK */}
|
|
76
42
|
</div>
|
|
77
43
|
);
|
|
78
|
-
}
|
|
79
|
-
```
|
|
44
|
+
}
|
|
80
45
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
```jsx
|
|
84
|
-
import React, { useState } from "react";
|
|
85
|
-
import useSession from "datakeen-session-react";
|
|
86
|
-
|
|
87
|
-
const OnboardingFlow = () => {
|
|
88
|
-
const [step, setStep] = useState(1);
|
|
89
|
-
const [sessionId, setSessionId] = useState(null);
|
|
90
|
-
|
|
91
|
-
// Fonction pour initialiser la session après l'étape 1
|
|
92
|
-
const initializeSession = async (userData) => {
|
|
93
|
-
// Exemple d'appel API pour obtenir un ID de session
|
|
94
|
-
const response = await fetch("https://api.votreservice.com/init-session", {
|
|
95
|
-
method: "POST",
|
|
96
|
-
body: JSON.stringify(userData),
|
|
97
|
-
});
|
|
98
|
-
|
|
99
|
-
const data = await response.json();
|
|
100
|
-
setSessionId(data.sessionId);
|
|
101
|
-
setStep(2);
|
|
102
|
-
};
|
|
103
|
-
|
|
104
|
-
// Rendu conditionnel basé sur l'étape
|
|
105
|
-
if (step === 1) {
|
|
106
|
-
return (
|
|
107
|
-
<div>
|
|
108
|
-
<h2>Étape 1: Informations de base</h2>
|
|
109
|
-
{/* Votre formulaire de collecte d'informations */}
|
|
110
|
-
<button
|
|
111
|
-
onClick={() =>
|
|
112
|
-
initializeSession({
|
|
113
|
-
/* données utilisateur */
|
|
114
|
-
})
|
|
115
|
-
}
|
|
116
|
-
>
|
|
117
|
-
Continuer
|
|
118
|
-
</button>
|
|
119
|
-
</div>
|
|
120
|
-
);
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
if (step === 2 && sessionId) {
|
|
124
|
-
const { SessionComponent } = useSession(sessionId);
|
|
125
|
-
|
|
126
|
-
return (
|
|
127
|
-
<div>
|
|
128
|
-
<h2>Étape 2: Vérification d'identité</h2>
|
|
129
|
-
{SessionComponent}
|
|
130
|
-
</div>
|
|
131
|
-
);
|
|
132
|
-
}
|
|
133
|
-
};
|
|
46
|
+
export default App;
|
|
134
47
|
```
|
|
135
48
|
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
Le SDK prend en charge les documents d'identité des pays suivants :
|
|
49
|
+
### CSS
|
|
139
50
|
|
|
140
|
-
|
|
51
|
+
N'oubliez pas d'importer le CSS du SDK :
|
|
141
52
|
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
- Passeport
|
|
146
|
-
- Permis de conduire
|
|
147
|
-
- Titre de séjour
|
|
53
|
+
```css
|
|
54
|
+
@import 'datakeen-session-react/dist/datakeen-session-react.css';
|
|
55
|
+
```
|
|
148
56
|
|
|
149
|
-
|
|
57
|
+
### Résolution des problèmes
|
|
150
58
|
|
|
151
|
-
|
|
59
|
+
Si vous rencontrez encore des erreurs :
|
|
152
60
|
|
|
153
|
-
|
|
61
|
+
1. Vérifiez que toutes les peerDependencies sont installées
|
|
62
|
+
2. Assurez-vous qu'il n'y a qu'une seule version de React dans votre projet :
|
|
63
|
+
```bash
|
|
64
|
+
npm ls react
|
|
65
|
+
```
|
|
66
|
+
3. Si nécessaire, utilisez les résolutions de package dans votre `package.json` :
|
|
67
|
+
```json
|
|
68
|
+
"resolutions": {
|
|
69
|
+
"react": "^18.0.0",
|
|
70
|
+
"react-dom": "^18.0.0"
|
|
71
|
+
}
|
|
72
|
+
```
|
|
154
73
|
|
|
155
|
-
|
|
74
|
+
### Build du SDK
|
|
156
75
|
|
|
157
|
-
|
|
158
|
-
VITE_API_BASE_URL=http://localhost:8888
|
|
159
|
-
```
|
|
160
|
-
|
|
161
|
-
Pour une configuration rapide, vous pouvez utiliser la commande suivante dans le projet SDK :
|
|
76
|
+
Pour rebuilder le SDK après modifications :
|
|
162
77
|
|
|
163
78
|
```bash
|
|
164
|
-
npm run
|
|
79
|
+
npm run clean
|
|
80
|
+
npm run build
|
|
165
81
|
```
|
|
166
82
|
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
Pour toute question technique ou problème d'intégration :
|
|
174
|
-
|
|
175
|
-
- **Email Support**: support@datakeen.co
|
|
176
|
-
- **Documentation API**: [https://api.datakeen.co/docs](https://api.datakeen.co/docs)
|
|
177
|
-
- **Site Web**: [www.datakeen.co](https://www.datakeen.co)
|
|
178
|
-
|
|
179
|
-
</div>
|
|
180
|
-
|
|
181
|
-
<div style="background-color: #11E5C5; color: white; padding: 15px; border-radius: 5px; margin-top: 30px; display: flex; align-items: center; justify-content: space-between;">
|
|
182
|
-
<div>
|
|
183
|
-
<strong>Datakeen</strong> - Solutions d'identité numérique
|
|
184
|
-
</div>
|
|
185
|
-
<div>
|
|
186
|
-
Dernière mise à jour: Juin 2025
|
|
187
|
-
</div>
|
|
188
|
-
</div>
|
|
83
|
+
Le SDK sera construit dans le dossier `dist/` avec :
|
|
84
|
+
- `index.js` (CommonJS)
|
|
85
|
+
- `index.mjs` (ES Modules)
|
|
86
|
+
- `index.d.ts` (Types TypeScript)
|
|
87
|
+
- `datakeen-session-react.css` (Styles)
|
package/package.json
CHANGED
|
@@ -1,10 +1,22 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "datakeen-session-react",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.9",
|
|
4
4
|
"description": "React SDK component to manage and render Datakeen session experiences easily.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.mjs",
|
|
7
7
|
"types": "dist/index.d.ts",
|
|
8
|
+
"scripts": {
|
|
9
|
+
"build": "vite build",
|
|
10
|
+
"build:watch": "vite build --watch",
|
|
11
|
+
"dev": "vite build --watch",
|
|
12
|
+
"lint": "eslint . --ext .ts,.tsx",
|
|
13
|
+
"test": "jest",
|
|
14
|
+
"demo": "cd ../demo && npm run dev",
|
|
15
|
+
"dev:full": "concurrently \"npm run dev\" \"npm run demo\"",
|
|
16
|
+
"clean": "rm -rf dist",
|
|
17
|
+
"setup:env": "echo 'VITE_API_BASE_URL=http://localhost:8888' > .env && echo 'VITE_API_BASE_URL=http://localhost:8888' > ../demo/.env && echo 'Environment files created successfully'",
|
|
18
|
+
"build:test": "npm run build && cp -r dist example/node_modules/datakeen-session-react/"
|
|
19
|
+
},
|
|
8
20
|
"keywords": [
|
|
9
21
|
"datakeen",
|
|
10
22
|
"session",
|
|
@@ -22,6 +34,7 @@
|
|
|
22
34
|
"url": "https://gitlab.com/datakeenteam/teamfullstack/client-sessions-react-sdk.git"
|
|
23
35
|
},
|
|
24
36
|
"homepage": "https://www.datakeen.co/",
|
|
37
|
+
"packageManager": "pnpm@10.9.0",
|
|
25
38
|
"devDependencies": {
|
|
26
39
|
"@headlessui/react": "^2.2.4",
|
|
27
40
|
"@radix-ui/react-checkbox": "^1.3.2",
|
|
@@ -73,17 +86,5 @@
|
|
|
73
86
|
"@radix-ui/react-label": "^2.1.6",
|
|
74
87
|
"@radix-ui/react-select": "^2.2.5",
|
|
75
88
|
"lucide-react": "^0.511.0"
|
|
76
|
-
},
|
|
77
|
-
"scripts": {
|
|
78
|
-
"build": "vite build",
|
|
79
|
-
"build:watch": "vite build --watch",
|
|
80
|
-
"dev": "vite build --watch",
|
|
81
|
-
"lint": "eslint . --ext .ts,.tsx",
|
|
82
|
-
"test": "jest",
|
|
83
|
-
"demo": "cd ../demo && npm run dev",
|
|
84
|
-
"dev:full": "concurrently \"npm run dev\" \"npm run demo\"",
|
|
85
|
-
"clean": "rm -rf dist",
|
|
86
|
-
"setup:env": "echo 'VITE_API_BASE_URL=http://localhost:8888' > .env && echo 'VITE_API_BASE_URL=http://localhost:8888' > ../demo/.env && echo 'Environment files created successfully'",
|
|
87
|
-
"build:test": "npm run build && cp -r dist example/node_modules/datakeen-session-react/"
|
|
88
89
|
}
|
|
89
|
-
}
|
|
90
|
+
}
|
package/INTEGRATION_GUIDE.md
DELETED
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
# Guide d'intégration - Datakeen Session React SDK
|
|
2
|
-
|
|
3
|
-
## Résolution du problème ReactCurrentDispatcher
|
|
4
|
-
|
|
5
|
-
Le problème `Cannot read properties of undefined (reading 'ReactCurrentDispatcher')` a été résolu en optimisant la configuration Vite pour un SDK React.
|
|
6
|
-
|
|
7
|
-
### Changements apportés
|
|
8
|
-
|
|
9
|
-
1. **Configuration Vite** (`vite.config.ts`) :
|
|
10
|
-
- Ajout du JSX runtime automatique
|
|
11
|
-
- Externalisation de React, React-DOM et JSX runtime
|
|
12
|
-
- Externalisation des dépendances UI (Radix, Headless UI, Lucide)
|
|
13
|
-
|
|
14
|
-
2. **Gestion des dépendances** (`package.json`) :
|
|
15
|
-
- React et React-DOM déplacés vers `peerDependencies` et `devDependencies`
|
|
16
|
-
- Dépendances UI déplacées vers `peerDependencies` pour éviter la duplication
|
|
17
|
-
|
|
18
|
-
### Installation dans une application React
|
|
19
|
-
|
|
20
|
-
```bash
|
|
21
|
-
npm install datakeen-session-react
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
**Important :** Assurez-vous d'avoir installé toutes les peer dependencies :
|
|
25
|
-
|
|
26
|
-
```bash
|
|
27
|
-
npm install react react-dom axios @headlessui/react @radix-ui/react-checkbox @radix-ui/react-icons @radix-ui/react-label @radix-ui/react-select lucide-react
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
### Utilisation
|
|
31
|
-
|
|
32
|
-
```tsx
|
|
33
|
-
import React from 'react';
|
|
34
|
-
import useSession from 'datakeen-session-react';
|
|
35
|
-
|
|
36
|
-
function App() {
|
|
37
|
-
const session = useSession();
|
|
38
|
-
|
|
39
|
-
return (
|
|
40
|
-
<div className="App">
|
|
41
|
-
{/* Votre composant utilisant le SDK */}
|
|
42
|
-
</div>
|
|
43
|
-
);
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
export default App;
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
### CSS
|
|
50
|
-
|
|
51
|
-
N'oubliez pas d'importer le CSS du SDK :
|
|
52
|
-
|
|
53
|
-
```css
|
|
54
|
-
@import 'datakeen-session-react/dist/datakeen-session-react.css';
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
### Résolution des problèmes
|
|
58
|
-
|
|
59
|
-
Si vous rencontrez encore des erreurs :
|
|
60
|
-
|
|
61
|
-
1. Vérifiez que toutes les peerDependencies sont installées
|
|
62
|
-
2. Assurez-vous qu'il n'y a qu'une seule version de React dans votre projet :
|
|
63
|
-
```bash
|
|
64
|
-
npm ls react
|
|
65
|
-
```
|
|
66
|
-
3. Si nécessaire, utilisez les résolutions de package dans votre `package.json` :
|
|
67
|
-
```json
|
|
68
|
-
"resolutions": {
|
|
69
|
-
"react": "^18.0.0",
|
|
70
|
-
"react-dom": "^18.0.0"
|
|
71
|
-
}
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
### Build du SDK
|
|
75
|
-
|
|
76
|
-
Pour rebuilder le SDK après modifications :
|
|
77
|
-
|
|
78
|
-
```bash
|
|
79
|
-
npm run clean
|
|
80
|
-
npm run build
|
|
81
|
-
```
|
|
82
|
-
|
|
83
|
-
Le SDK sera construit dans le dossier `dist/` avec :
|
|
84
|
-
- `index.js` (CommonJS)
|
|
85
|
-
- `index.mjs` (ES Modules)
|
|
86
|
-
- `index.d.ts` (Types TypeScript)
|
|
87
|
-
- `datakeen-session-react.css` (Styles)
|