61 lines
1.4 KiB
Dart
61 lines
1.4 KiB
Dart
import 'dart:async';
|
|
|
|
import 'package:cubit_form/cubit_form.dart';
|
|
import 'package:selfprivacy/logic/itemscubit.dart';
|
|
import 'package:selfprivacy/models/item.dart';
|
|
|
|
class ItemFormCubit extends FormCubit {
|
|
ItemFormCubit({
|
|
required this.cubit,
|
|
}) {
|
|
title = FieldCubit(
|
|
initalValue: 'Товар',
|
|
validations: [
|
|
RequiredStringValidation('Поле обязательно'),
|
|
],
|
|
);
|
|
description = FieldCubit(
|
|
initalValue: ' ',
|
|
validations: [
|
|
RequiredStringValidation('Поле обязательно'),
|
|
],
|
|
);
|
|
|
|
price = FieldCubit(
|
|
initalValue: 100,
|
|
);
|
|
|
|
quantity = FieldCubit(
|
|
initalValue: 1,
|
|
);
|
|
|
|
super.addFields([title, description, price, quantity]);
|
|
}
|
|
|
|
@override
|
|
FutureOr<void> onSubmit() {
|
|
print('onSubmit');
|
|
print('title: ${title.state.value}');
|
|
print('description: ${description.state.value}');
|
|
print('price: ${price.state.value}');
|
|
print('quantity: ${quantity.state.value}');
|
|
|
|
final Item item = Item(
|
|
title: title.state.value,
|
|
description: description.state.value,
|
|
price: price.state.value,
|
|
quantity: quantity.state.value,
|
|
id: cubit.state.items.isEmpty ? 0 : cubit.state.items.last.id + 1,
|
|
);
|
|
|
|
cubit.create(item);
|
|
}
|
|
|
|
late FieldCubit<String> title;
|
|
late FieldCubit<String> description;
|
|
late FieldCubit<int> price;
|
|
late FieldCubit<int> quantity;
|
|
|
|
final ItemsCubit cubit;
|
|
}
|