forked from eatvio/eatvio_app
Tried to implement autocomplete
This commit is contained in:
@@ -432,7 +432,6 @@ class DiaryEditBloc extends Bloc<DiaryEditEvent, DiaryEditState> {
|
||||
ProductInput event, Emitter<DiaryEditState> emit) async {
|
||||
if (state is DiaryEditLoadedState) {
|
||||
var currentState = state as DiaryEditLoadedState;
|
||||
print(currentState.productNameController!.text);
|
||||
String? token = currentState.token;
|
||||
final credentials = {
|
||||
'name': event.input,
|
||||
@@ -454,7 +453,6 @@ class DiaryEditBloc extends Bloc<DiaryEditEvent, DiaryEditState> {
|
||||
.map((product) => product['name'])
|
||||
.toList());
|
||||
|
||||
print(updatedState.autocompleteList);
|
||||
emit(updatedState);
|
||||
} else {
|
||||
print("Ошибка в декодировании ответа из API");
|
||||
|
||||
@@ -3,12 +3,14 @@ import 'models/diary_edit_model.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:flutter_form_builder/flutter_form_builder.dart';
|
||||
|
||||
import 'package:image_picker/image_picker.dart';
|
||||
import 'package:eatvio_app/core/app_export.dart';
|
||||
import 'package:eatvio_app/widgets/custom_edit_text_form_field.dart';
|
||||
import 'package:eatvio_app/widgets/custom_edit_drop_down.dart';
|
||||
import 'package:eatvio_app/widgets/custom_outlined_button.dart';
|
||||
import 'package:eatvio_app/widgets/custom_scale_element.dart';
|
||||
import 'package:flutter_typeahead/flutter_typeahead.dart';
|
||||
|
||||
// ignore: must_be_immutable
|
||||
class DiaryEditScreen extends StatelessWidget {
|
||||
@@ -279,17 +281,32 @@ class DiaryEditScreen extends StatelessWidget {
|
||||
})),
|
||||
SizedBox(height: 20.v),
|
||||
Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 10.h),
|
||||
child: CustomTextFormField(
|
||||
hintText: "Введите названия продукта",
|
||||
controller: state.productNameController,
|
||||
onChanged: (value) {
|
||||
if (value.length > 3) {
|
||||
context.read<DiaryEditBloc>().add(ProductInput(value));
|
||||
}
|
||||
},
|
||||
),
|
||||
),
|
||||
padding: EdgeInsets.symmetric(horizontal: 10.h),
|
||||
child: TypeAheadField<dynamic>(
|
||||
controller: state.productNameController,
|
||||
suggestionsCallback: (search) => state.autocompleteList,
|
||||
builder: (context, controller, focusNode) {
|
||||
return CustomTextFormField(
|
||||
hintText: "Введите названия продукта",
|
||||
controller: controller,
|
||||
onChanged: (value) {
|
||||
print(state.autocompleteList);
|
||||
if (value.length > 3) {
|
||||
context
|
||||
.read<DiaryEditBloc>()
|
||||
.add(ProductInput(value));
|
||||
}
|
||||
},
|
||||
);
|
||||
},
|
||||
itemBuilder: (context, product) {
|
||||
return ListTile(
|
||||
title: Text(product),
|
||||
subtitle: Text(product),
|
||||
);
|
||||
},
|
||||
onSelected: (product) {},
|
||||
)),
|
||||
SizedBox(height: 20.v),
|
||||
Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 10.h),
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import 'package:eatvio_app/core/app_export.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
/*
|
||||
class CustomTextFormField extends StatelessWidget {
|
||||
// ...
|
||||
|
||||
@@ -79,4 +79,4 @@ class CustomTextFormField extends StatelessWidget {
|
||||
},
|
||||
),
|
||||
);
|
||||
}
|
||||
}*/
|
||||
|
||||
Reference in New Issue
Block a user