Tried to implement autocomplete

This commit is contained in:
2024-03-01 11:57:28 +03:00
parent 173b131eda
commit ea78cc8f91
3 changed files with 30 additions and 15 deletions

View File

@@ -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");

View File

@@ -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),

View File

@@ -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 {
},
),
);
}
}*/