forked from eatvio/eatvio_app
45 lines
1.7 KiB
Dart
45 lines
1.7 KiB
Dart
import 'package:eatvio_app/features/recipes/models/recipe_model.dart';
|
|
import 'package:eatvio_app/features/recipes/models/ingredient.dart';
|
|
import 'package:eatvio_app/features/recipes/models/product.dart';
|
|
import 'package:flutter/material.dart';
|
|
import 'package:freezed_annotation/freezed_annotation.dart';
|
|
import 'package:image_picker/image_picker.dart';
|
|
|
|
import '../../../../data/models/selectionPopupModel/selection_popup_model.dart';
|
|
|
|
part 'recipe_create_state.freezed.dart';
|
|
|
|
@freezed
|
|
abstract class RecipeCreateState with _$RecipeCreateState {
|
|
const factory RecipeCreateState() = _RecipeCreateState;
|
|
|
|
const factory RecipeCreateState.loading() = RecipeCreateStateLoading;
|
|
|
|
const factory RecipeCreateState.loaded({
|
|
RecipeModel? recipe,
|
|
required ImagePicker picker,
|
|
required TextEditingController titleController,
|
|
required TextEditingController productNameController,
|
|
required TextEditingController ingredientController,
|
|
required TextEditingController stepDescriptionController,
|
|
required TextEditingController youtubeLinkController,
|
|
required List<TextEditingController> stepControllers,
|
|
XFile? recipeImage,
|
|
required List<XFile?> stepImages,
|
|
required List<Ingredient> ingredients,
|
|
required List<Product> autocompleteList,
|
|
required int numberOfSteps,
|
|
required bool ingredientAsItems,
|
|
required List<SelectionPopupModel> types,
|
|
required List<SelectionPopupModel> cookingTimes,
|
|
required List<SelectionPopupModel> statuses,
|
|
required SelectionPopupModel selectedType,
|
|
required SelectionPopupModel selectedCookingTime,
|
|
required SelectionPopupModel selectedStatus,
|
|
}) = RecipeCreateStateLoaded;
|
|
|
|
const factory RecipeCreateState.error({
|
|
required String errorMessage,
|
|
}) = RecipeCreateStateError;
|
|
}
|