feat(import): enhance recipe creation by passing both markdown and image URL from import
This commit is contained in:
@@ -78,8 +78,11 @@ class _RecipeImportTabState extends ConsumerState<RecipeImportTab> {
|
||||
);
|
||||
|
||||
if (!mounted) return;
|
||||
// Pass markdown as GoRouter extra — CreateRecipeScreen picks it up.
|
||||
context.push('/recipes/create', extra: result.markdown);
|
||||
// Pass both markdown and imageUrl so CreateRecipeScreen can pre-fill both.
|
||||
context.push('/recipes/create', extra: {
|
||||
'markdown': result.markdown,
|
||||
'imageUrl': result.imageUrl,
|
||||
});
|
||||
} catch (e) {
|
||||
if (!mounted) return;
|
||||
setState(() => _error = mapErrorToUserMessage(e, context));
|
||||
|
||||
@@ -14,7 +14,14 @@ class CreateRecipeScreen extends ConsumerStatefulWidget {
|
||||
/// Optional markdown to pre-fill the input field, e.g. from import.
|
||||
final String? initialMarkdown;
|
||||
|
||||
const CreateRecipeScreen({super.key, this.initialMarkdown});
|
||||
/// Optional image URL pre-filled from a quick-import result.
|
||||
final String? initialImageUrl;
|
||||
|
||||
const CreateRecipeScreen({
|
||||
super.key,
|
||||
this.initialMarkdown,
|
||||
this.initialImageUrl,
|
||||
});
|
||||
|
||||
@override
|
||||
ConsumerState<CreateRecipeScreen> createState() =>
|
||||
@@ -143,6 +150,8 @@ class _CreateRecipeScreenState extends ConsumerState<CreateRecipeScreen> {
|
||||
if (servingsRaw != null) 'servings': servingsRaw,
|
||||
if (_parsed!.instructions != null)
|
||||
'instructions': _parsed!.instructions,
|
||||
if (widget.initialImageUrl != null && widget.initialImageUrl!.isNotEmpty)
|
||||
'imageUrl': widget.initialImageUrl,
|
||||
'ingredients': ingredients,
|
||||
},
|
||||
token: token,
|
||||
|
||||
Reference in New Issue
Block a user