Wish down and update funktioniert nun auf beiden Screens !!! Yeah

This commit is contained in:
Niklas 2024-12-29 21:02:10 +01:00
parent 5c94a129b4
commit 7f4449ea4c
3 changed files with 56 additions and 10 deletions

View File

@ -29,19 +29,47 @@ class _Event_Card_small extends State<Event_Card_small> {
super.initState();
_loadData();
} */
/* */
late List<Map<String, dynamic>> _event_grouped;
@override
State<StatefulWidget> createState() {
// TODO: implement createState
throw UnimplementedError();
void initState() {
super.initState();
_event_grouped =
widget.event_grouped; // Initialisiere die Variable mit dem Parameter
}
/* */
Future<void> _refresh() async {
//setState(() {
// Aktualisiere die Liste (Beispiel: Einfügen neuer Daten)
//_fetchDataFuture = Categories.instance.updateCategoryAmount('Ingolstadt');
//});
//void replaceList(List<String> newList) {
List<Map<String, dynamic>> temp =
await fetchGroupedEvents(widget.category.category);
setState(() {
/* _event_grouped.add({
'start_date': '2024-12-30',
'events': [
{
'name': 'Event 4',
'description': 'Beschreibung 4',
'location_name': 'teste mich',
"start": "2024-11-10T23:00:00"
},
{
'name': 'Event 5',
'description': 'Beschreibung 5',
'location_name': 'teste mich',
"start": "2024-11-10T23:00:00"
},
],
}); */
//_event_grouped.clear();
_event_grouped = temp;
//_event_grouped = await fetchGroupedEvents(widget.category.category);
});
}
//setState(() {
// Aktualisiere die Liste (Beispiel: Einfügen neuer Daten)
//_fetchDataFuture = Categories.instance.updateCategoryAmount('Ingolstadt');
//});
@override
Widget build(BuildContext context) {
@ -144,7 +172,8 @@ class _Event_Card_small extends State<Event_Card_small> {
),
// Gruppierte Events mit SliverMainAxisGroup
...widget.event_grouped.map((group) {
..._event_grouped.map((group) {
print('Gruppe: ${group['start_date']}, Events: ${group['events']}');
final String startDate = group['start_date'];
final List<Map<String, dynamic>> events = group['events'];

View File

@ -1,7 +1,7 @@
import 'package:flutter/material.dart';
import 'package:Emma_home/utils/data.dart';
import 'package:Emma_home/screens/subheader_Datepicker.dart';
import 'package:Emma_home/screens/result_event_list.dart';
import 'package:Emma_home/screens/event_list.dart';
import 'package:flutter_svg/svg.dart';
import 'package:provider/provider.dart';
import 'package:Emma_home/main.dart';

View File

@ -187,6 +187,23 @@ class SupabaseDataService {
}
}
}
Future<List<Map<String, dynamic>>> fetchGroupedEvents(String category) async {
try {
final response = await supabase
.rpc('get_events_grouped_by_date', params: {'cat_id': category});
// Cast auf die gewünschte Struktur
return (response as List)
.map((entry) => {
'start_date': entry['start_date'], // Das Gruppierungsdatum
'events': (entry['events'] as List)
.cast<Map<String, dynamic>>() // Event-Details
})
.toList();
} catch (e) {
throw Exception('Failed to fetch data: $e');
}
}
/* class _AsyncAutocomplete extends StatefulWidget {
const _AsyncAutocomplete();