fix(router): adjust type check for extra parameter in navigation

fix(import): ensure correct typing for passing markdown and imageUrl
fix(recipes): delete local image file on recipe deletion to avoid orphan files
This commit is contained in:
Nils-Johan Gynther
2026-04-22 21:51:16 +02:00
parent 29beb3a85f
commit c8510b431f
3 changed files with 17 additions and 3 deletions
+3 -1
View File
@@ -71,7 +71,9 @@ final appRouterProvider = Provider<GoRouter>((ref) {
final extra = state.extra;
String? initialMarkdown;
String? initialImageUrl;
if (extra is Map<String, dynamic>) {
// Use 'is Map' without type params — Dart reifies generics, so
// Map<String,String?> does NOT match Map<String,dynamic> at runtime.
if (extra is Map) {
initialMarkdown = extra['markdown'] as String?;
initialImageUrl = extra['imageUrl'] as String?;
} else if (extra is String) {
@@ -78,8 +78,9 @@ class _RecipeImportTabState extends ConsumerState<RecipeImportTab> {
);
if (!mounted) return;
// Pass both markdown and imageUrl so CreateRecipeScreen can pre-fill both.
context.push('/recipes/create', extra: {
// Explicitly typed as <String, dynamic> so the router's
// 'is Map<String, dynamic>' runtime check succeeds.
context.push('/recipes/create', extra: <String, dynamic>{
'markdown': result.markdown,
'imageUrl': result.imageUrl,
});