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;
|
||
|
}
|