diff --git a/frontend-admin/metro.config.js b/frontend-admin/metro.config.js deleted file mode 100644 index f5f4dd1b..00000000 --- a/frontend-admin/metro.config.js +++ /dev/null @@ -1,29 +0,0 @@ -const { getDefaultConfig } = require('expo/metro-config'); - -const IS_PROD = process.env.NODE_ENV === 'production'; - -const config = getDefaultConfig(__dirname); - -if (IS_PROD) { - config.transformer = { - ...config.transformer, - babelTransformerPath: require.resolve('react-native-obfuscating-transformer'), - obfuscatorOptions: { - compact: true, - identifierNamesGenerator: 'hexadecimal', - renameGlobals: false, - rotateStringArray: true, - stringArray: true, - stringArrayEncoding: ['base64'], - stringArrayThreshold: 0.75, - // Disabled: incompatible with Hermes - selfDefending: false, - controlFlowFlattening: false, - deadCodeInjection: false, - transformObjectKeys: false, - debugProtection: false, - }, - }; -} - -module.exports = config; diff --git a/frontend-admin/package.json b/frontend-admin/package.json index b61c9b20..5bd6565a 100644 --- a/frontend-admin/package.json +++ b/frontend-admin/package.json @@ -40,8 +40,6 @@ "devDependencies": { "@expo/ngrok": "^4.1.3", "@types/react": "~19.1.0", - "javascript-obfuscator": "^4.1.1", - "react-native-obfuscating-transformer": "^1.0.0", "typescript": "~5.9.2" }, "private": true diff --git a/frontend-admin/src/screens/admin/UsersScreen.tsx b/frontend-admin/src/screens/admin/UsersScreen.tsx index 4d72014c..c380c735 100644 --- a/frontend-admin/src/screens/admin/UsersScreen.tsx +++ b/frontend-admin/src/screens/admin/UsersScreen.tsx @@ -419,10 +419,11 @@ export default function UsersScreen() { } } setCreating(true); + const usernameToCreate = createUsername.trim(); try { if (createType === "client") { await createClientByAdmin({ - username: createUsername.trim(), + username: usernameToCreate, password: createPassword.trim(), nom: createNom.trim(), prenom: createPrenom.trim(), @@ -430,7 +431,7 @@ export default function UsersScreen() { }); } else { await createUserByAdmin({ - username: createUsername.trim(), + username: usernameToCreate, password: createPassword.trim(), role: createType, }); @@ -438,6 +439,29 @@ export default function UsersScreen() { setCreateModal(false); await loadData(); } catch (e: any) { + // Erreur réseau : pas de réponse HTTP reçue — le backend a peut-être + // quand même créé l'utilisateur. On recharge et on vérifie. + if (!e.response) { + try { + if (createType === "client") { + const freshClients = await getAllClients(); + setClients(freshClients); + if (freshClients.find((c) => c.username === usernameToCreate)) { + setCreateModal(false); + return; + } + } else { + const freshUsers = await getAllUsers(); + setUsers(freshUsers); + if (freshUsers.find((u: any) => u.username === usernameToCreate)) { + setCreateModal(false); + return; + } + } + } catch { + /* ignore, on affiche l'erreur originale */ + } + } showError("Erreur", e.response?.data?.error || e.message); } finally { setCreating(false); diff --git a/mobile/metro.config.js b/mobile/metro.config.js deleted file mode 100644 index f5f4dd1b..00000000 --- a/mobile/metro.config.js +++ /dev/null @@ -1,29 +0,0 @@ -const { getDefaultConfig } = require('expo/metro-config'); - -const IS_PROD = process.env.NODE_ENV === 'production'; - -const config = getDefaultConfig(__dirname); - -if (IS_PROD) { - config.transformer = { - ...config.transformer, - babelTransformerPath: require.resolve('react-native-obfuscating-transformer'), - obfuscatorOptions: { - compact: true, - identifierNamesGenerator: 'hexadecimal', - renameGlobals: false, - rotateStringArray: true, - stringArray: true, - stringArrayEncoding: ['base64'], - stringArrayThreshold: 0.75, - // Disabled: incompatible with Hermes - selfDefending: false, - controlFlowFlattening: false, - deadCodeInjection: false, - transformObjectKeys: false, - debugProtection: false, - }, - }; -} - -module.exports = config; diff --git a/mobile/package.json b/mobile/package.json index be46acb4..1e085603 100644 --- a/mobile/package.json +++ b/mobile/package.json @@ -42,8 +42,6 @@ "devDependencies": { "@expo/ngrok": "^4.1.3", "@types/react": "~19.1.0", - "javascript-obfuscator": "^4.1.1", - "react-native-obfuscating-transformer": "^1.0.0", "typescript": "~5.9.2" }, "private": true,