forked from eatvio/eatvio_app
feat(diary): Comments and autocomplete finished
This commit is contained in:
@@ -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',
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user