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:
@@ -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,
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user