fix: babel-preset-expo (SDK 54) + navigation wizard sans rognage

- ajoute babel-preset-expo en devDependency (manquant après migration SDK 54,
  bloquait le bundling Metro)
- remplace le fr-btns-group du wizard de saisie par un flex simple : les
  libellés "Précédent/Suivant/Enregistrer" ne sont plus tronqués

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Azmog
2026-06-19 00:17:57 +02:00
parent 170c6ffce2
commit 511d3b95f0
3 changed files with 161 additions and 53 deletions
@@ -147,42 +147,37 @@ export default function NouvelleSaisiePage() {
)} )}
</div> </div>
{/* Navigation */} {/* Navigation (flex simple pour éviter le rognage des libellés
<ul className="fr-btns-group fr-btns-group--inline-md"> dans un groupe DSFR avec boutons à icône) */}
<li> <div style={{ display: 'flex', gap: '0.75rem', flexWrap: 'wrap' }}>
<button
type="button"
className="fr-btn fr-btn--secondary fr-btn--icon-left fr-icon-arrow-left-line"
onClick={() => setStep(step - 1)}
disabled={step === 1}
>
Précédent
</button>
{step < 3 ? (
<button <button
type="button" type="button"
className="fr-btn fr-btn--secondary fr-icon-arrow-left-line fr-btn--icon-left" className="fr-btn fr-btn--icon-right fr-icon-arrow-right-line"
onClick={() => setStep(step - 1)} onClick={() => setStep(step + 1)}
disabled={step === 1} disabled={!canNext()}
> >
Précédent Suivant
</button> </button>
</li>
{step < 3 ? (
<li>
<button
type="button"
className="fr-btn fr-icon-arrow-right-line fr-btn--icon-right"
onClick={() => setStep(step + 1)}
disabled={!canNext()}
>
Suivant
</button>
</li>
) : ( ) : (
<li> <button
<button type="button"
type="button" className="fr-btn fr-btn--icon-left fr-icon-check-line"
className="fr-btn fr-icon-check-line fr-btn--icon-left" onClick={handleSubmit}
onClick={handleSubmit} disabled={!emotionId || createSaisie.isPending}
disabled={!emotionId || createSaisie.isPending} >
> Enregistrer
Enregistrer </button>
</button>
</li>
)} )}
</ul> </div>
</div> </div>
</div> </div>
</div> </div>
+135 -23
View File
@@ -32,6 +32,7 @@
"@babel/core": "^7.25.0", "@babel/core": "^7.25.0",
"@types/jest": "29.5.14", "@types/jest": "29.5.14",
"@types/react": "~19.1.8", "@types/react": "~19.1.8",
"babel-preset-expo": "^56.0.15",
"jest": "^29.7.0", "jest": "^29.7.0",
"jest-expo": "~54.0.17", "jest-expo": "~54.0.17",
"typescript": "~5.9.2" "typescript": "~5.9.2"
@@ -3995,7 +3996,7 @@
"version": "19.1.17", "version": "19.1.17",
"resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.17.tgz", "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.17.tgz",
"integrity": "sha512-Qec1E3mhALmaspIrhWt9jkQMNdw6bReVu64mjvhbhq2NFPftLPVr+l1SZgmw/66WwBNpDh7ao5AT6gF5v41PFA==", "integrity": "sha512-Qec1E3mhALmaspIrhWt9jkQMNdw6bReVu64mjvhbhq2NFPftLPVr+l1SZgmw/66WwBNpDh7ao5AT6gF5v41PFA==",
"devOptional": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"csstype": "^3.0.2" "csstype": "^3.0.2"
@@ -4455,6 +4456,120 @@
"@babel/core": "^7.0.0 || ^8.0.0-0" "@babel/core": "^7.0.0 || ^8.0.0-0"
} }
}, },
"node_modules/babel-preset-expo": {
"version": "56.0.15",
"resolved": "https://registry.npmjs.org/babel-preset-expo/-/babel-preset-expo-56.0.15.tgz",
"integrity": "sha512-0MqbQoM6nBUbKvgu2xJ4VixZnUTGTq3HB2WwvOikdO4CiPxbQ+wGA25fOoHHSni5iEFW39wy6y1ookTWlq3wVw==",
"dev": true,
"license": "MIT",
"dependencies": {
"@babel/generator": "^7.20.5",
"@babel/helper-module-imports": "^7.25.9",
"@babel/plugin-proposal-decorators": "^7.12.9",
"@babel/plugin-proposal-export-default-from": "^7.24.7",
"@babel/plugin-syntax-dynamic-import": "^7.8.3",
"@babel/plugin-syntax-export-default-from": "^7.24.7",
"@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3",
"@babel/plugin-syntax-optional-chaining": "^7.8.3",
"@babel/plugin-transform-async-generator-functions": "^7.25.4",
"@babel/plugin-transform-async-to-generator": "^7.24.7",
"@babel/plugin-transform-block-scoping": "^7.25.0",
"@babel/plugin-transform-class-properties": "^7.25.4",
"@babel/plugin-transform-class-static-block": "^7.27.1",
"@babel/plugin-transform-classes": "^7.25.4",
"@babel/plugin-transform-destructuring": "^7.24.8",
"@babel/plugin-transform-export-namespace-from": "^7.25.9",
"@babel/plugin-transform-flow-strip-types": "^7.25.2",
"@babel/plugin-transform-for-of": "^7.24.7",
"@babel/plugin-transform-logical-assignment-operators": "^7.24.7",
"@babel/plugin-transform-modules-commonjs": "^7.24.8",
"@babel/plugin-transform-named-capturing-groups-regex": "^7.24.7",
"@babel/plugin-transform-nullish-coalescing-operator": "^7.24.7",
"@babel/plugin-transform-object-rest-spread": "^7.24.7",
"@babel/plugin-transform-optional-catch-binding": "^7.24.7",
"@babel/plugin-transform-optional-chaining": "^7.24.8",
"@babel/plugin-transform-parameters": "^7.24.7",
"@babel/plugin-transform-private-methods": "^7.24.7",
"@babel/plugin-transform-private-property-in-object": "^7.24.7",
"@babel/plugin-transform-react-display-name": "^7.24.7",
"@babel/plugin-transform-react-jsx": "^7.28.6",
"@babel/plugin-transform-react-jsx-development": "^7.27.1",
"@babel/plugin-transform-react-pure-annotations": "^7.27.1",
"@babel/plugin-transform-runtime": "^7.24.7",
"@babel/plugin-transform-typescript": "^7.25.2",
"@babel/plugin-transform-unicode-regex": "^7.24.7",
"@babel/preset-typescript": "^7.23.0",
"@react-native/babel-plugin-codegen": "0.85.3",
"babel-plugin-react-compiler": "^1.0.0",
"babel-plugin-react-native-web": "~0.21.0",
"babel-plugin-syntax-hermes-parser": "^0.33.3",
"babel-plugin-transform-flow-enums": "^0.0.2",
"debug": "^4.3.4"
},
"peerDependencies": {
"@babel/runtime": "^7.20.0",
"expo": "*",
"expo-widgets": "^56.0.18",
"react-refresh": ">=0.14.0 <1.0.0"
},
"peerDependenciesMeta": {
"@babel/runtime": {
"optional": true
},
"expo": {
"optional": true
},
"expo-widgets": {
"optional": true
}
}
},
"node_modules/babel-preset-expo/node_modules/@react-native/babel-plugin-codegen": {
"version": "0.85.3",
"resolved": "https://registry.npmjs.org/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.85.3.tgz",
"integrity": "sha512-Wc94zGfeFG8Njf9SHMPfYZP04kjigkOps6F1TYTvd7ZVXuGxqseCDgxc50LWcOhOCLypI9n3oVVqz81C3p44ZA==",
"dev": true,
"license": "MIT",
"dependencies": {
"@babel/traverse": "^7.29.0",
"@react-native/codegen": "0.85.3"
},
"engines": {
"node": "^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0"
}
},
"node_modules/babel-preset-expo/node_modules/@react-native/codegen": {
"version": "0.85.3",
"resolved": "https://registry.npmjs.org/@react-native/codegen/-/codegen-0.85.3.tgz",
"integrity": "sha512-/JkS1lGLyzBWP1FbgDwaqEf7qShIC6pUC1M0a/YMAd/v4iqR24MRkQWe7jkYvcBQ2LpEhs5NGE9InhxSv21zCA==",
"dev": true,
"license": "MIT",
"dependencies": {
"@babel/core": "^7.25.2",
"@babel/parser": "^7.29.0",
"hermes-parser": "0.33.3",
"invariant": "^2.2.4",
"nullthrows": "^1.1.1",
"tinyglobby": "^0.2.15",
"yargs": "^17.6.2"
},
"engines": {
"node": "^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0"
},
"peerDependencies": {
"@babel/core": "*"
}
},
"node_modules/babel-preset-expo/node_modules/babel-plugin-syntax-hermes-parser": {
"version": "0.33.3",
"resolved": "https://registry.npmjs.org/babel-plugin-syntax-hermes-parser/-/babel-plugin-syntax-hermes-parser-0.33.3.tgz",
"integrity": "sha512-/Z9xYdaJ1lC0pT9do6TqCqhOSLfZ5Ot8D5za1p+feEfWYupCOfGbhhEXN9r2ZgJtDNUNRw/Z+T2CvAGKBqtqWA==",
"dev": true,
"license": "MIT",
"dependencies": {
"hermes-parser": "0.33.3"
}
},
"node_modules/babel-preset-jest": { "node_modules/babel-preset-jest": {
"version": "29.6.3", "version": "29.6.3",
"resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz",
@@ -5142,7 +5257,7 @@
"version": "3.2.3", "version": "3.2.3",
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz",
"integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==",
"devOptional": true, "dev": true,
"license": "MIT" "license": "MIT"
}, },
"node_modules/data-urls": { "node_modules/data-urls": {
@@ -6809,6 +6924,23 @@
"node": ">= 0.4" "node": ">= 0.4"
} }
}, },
"node_modules/hermes-estree": {
"version": "0.33.3",
"resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.33.3.tgz",
"integrity": "sha512-6kzYZHCk8Fy1Uc+t3HGYyJn3OL4aeqKLTyina4UFtWl8I0kSL7OmKThaiX+Uh2f8nGw3mo4Ifxg0M5Zk3/Oeqg==",
"dev": true,
"license": "MIT"
},
"node_modules/hermes-parser": {
"version": "0.33.3",
"resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.33.3.tgz",
"integrity": "sha512-Yg3HgaG4CqgyowtYjX/FsnPAuZdHOqSMtnbpylbptsQ9nwwSKsy6uRWcGO5RK0EqiX12q8HvDWKgeAVajRO5DA==",
"dev": true,
"license": "MIT",
"dependencies": {
"hermes-estree": "0.33.3"
}
},
"node_modules/hoist-non-react-statics": { "node_modules/hoist-non-react-statics": {
"version": "3.3.2", "version": "3.3.2",
"resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz",
@@ -9720,26 +9852,6 @@
} }
} }
}, },
"node_modules/react-dom": {
"version": "19.2.7",
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.7.tgz",
"integrity": "sha512-t0BRVXvbiE/o20Hfw669rLbMCDWtYZLvmJigy2f0MxsXF+71pxhR3xOkspmsO8h3ZlNzyibAmtCa3l4lYKk6gQ==",
"license": "MIT",
"peer": true,
"dependencies": {
"scheduler": "^0.27.0"
},
"peerDependencies": {
"react": "^19.2.7"
}
},
"node_modules/react-dom/node_modules/scheduler": {
"version": "0.27.0",
"resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz",
"integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==",
"license": "MIT",
"peer": true
},
"node_modules/react-fast-compare": { "node_modules/react-fast-compare": {
"version": "3.2.2", "version": "3.2.2",
"resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.2.tgz", "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.2.tgz",
@@ -11314,7 +11426,7 @@
"version": "5.9.3", "version": "5.9.3",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz",
"integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
"devOptional": true, "dev": true,
"license": "Apache-2.0", "license": "Apache-2.0",
"bin": { "bin": {
"tsc": "bin/tsc", "tsc": "bin/tsc",
+1
View File
@@ -40,6 +40,7 @@
"@babel/core": "^7.25.0", "@babel/core": "^7.25.0",
"@types/jest": "29.5.14", "@types/jest": "29.5.14",
"@types/react": "~19.1.8", "@types/react": "~19.1.8",
"babel-preset-expo": "^56.0.15",
"jest": "^29.7.0", "jest": "^29.7.0",
"jest-expo": "~54.0.17", "jest-expo": "~54.0.17",
"typescript": "~5.9.2" "typescript": "~5.9.2"