feat(diary): Comments and autocomplete finished

This commit is contained in:
2024-03-04 10:12:01 +03:00
parent e6b7e78940
commit 6c03971f18
2 changed files with 38 additions and 12 deletions

View File

@@ -1,4 +1,5 @@
import 'dart:async';
import 'dart:ffi';
import 'package:equatable/equatable.dart';
import 'package:flutter/material.dart';
@@ -302,16 +303,7 @@ class DiaryEditBloc extends Bloc<DiaryEditEvent, DiaryEditState> {
var currentState = state as DiaryEditLoadedState;
var updatedState = currentState.copyWith(mealTimeController: event.time);
emit(updatedState); // Передаем обновленное состояние в emit
// Отправляем данные по HTTP маршруту и ждем ответ
var response = await sendMealTimeData(currentState.token, event.time,
currentState.currentMeal?.id, currentState.diaryId);
if (response.statusCode == 200) {
updatedState.mealTimeController = event.time;
emit(updatedState); // Передаем обновленное состояние в emit
}
emit(updatedState);
}
}
@@ -469,7 +461,40 @@ class DiaryEditBloc extends Bloc<DiaryEditEvent, DiaryEditState> {
print(imageUrl);
}
FutureOr<void> _addComment(AddComment event, Emitter<DiaryEditState> emit) {}
FutureOr<void> _addComment(
AddComment event, Emitter<DiaryEditState> emit) async {
if (state is DiaryEditLoadedState) {
var currentState = state as DiaryEditLoadedState;
var updatedState =
currentState.copyWith(commentController: event.comment);
// Отправляем данные по HTTP маршруту и ждем ответ
var response = await sendCommentData(
currentState.token, event.comment, currentState.diaryId);
if (response.statusCode == 200) {
emit(updatedState); // Передаем обновленное состояние в emit
}
}
}
Future<http.Response> sendCommentData(
String? token, String comment, int diaryID) async {
String url = dotenv.env['SERVER_ROOT']! + '/diary/$diaryID/retire/fill';
final credentials = {
'comment': comment,
};
var response = await http.post(Uri.parse(url),
headers: {
'Authorization': 'Bearer $token',
},
body: json.encode(credentials),
encoding: utf8);
return response;
}
Future<String> uploadImageToServer(String imagePath) async {
var request = http.MultipartRequest(
'POST',

View File

@@ -359,7 +359,8 @@ class DiaryEditScreen extends StatelessWidget {
RawAutocomplete<String>(
optionsBuilder: (TextEditingValue textEditingValue) {
return _options.where((String option) {
return option.contains(textEditingValue.text.toLowerCase());
return option.contains(
state.productNameController!.text.toLowerCase());
});
}, fieldViewBuilder: (
BuildContext context,