ammaratef45 / ammaratef45/hydroponics-garden
integrate with apple and google calendar and famous reminder apps
- Langage dominant
- Dart
- Étoiles
- 2
- Forks
- 1
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Description
https://api.github.com/ammaratef45/hydroponics-garden/blob/dfd1dd179156b44080547a0b6fff3b8e178c0c8a/lib/widgets/calendar_widget.dart#L16
```dart
import 'package:calendar_view/calendar_view.dart';
import 'package:flutter/material.dart';
import 'package:hydroponic_garden/firebase/auth.dart';
import 'package:hydroponic_garden/firebase/firestore.dart';
import 'package:hydroponic_garden/model/plant.dart';
import 'package:hydroponic_garden/widgets/error_text_widget.dart';
import 'package:hydroponic_garden/widgets/loading_text_widget.dart';
import 'package:hydroponic_garden/widgets/main_widget.dart';
class CalendarPage extends StatelessWidget {
static const routeName = 'calendar';
final EventController controller = EventController();
CalendarPage({super.key});
// TODO: integrate with apple and google maps and famous reminder apps
void _addEvents(List plants) {
// TODO: add events to important care events for plants
// for example: pruning, trimming, health check .. etc
for (Plant p in plants) {
// TODO: make the events show continiously across days
controller.add(CalendarEventData(
title: p.description.name,
date: p.harvestDate,
endDate: p.endHarvestDate,
startTime: p.harvestDate,
endTime: p.endHarvestDate,
));
}
}
@override
Widget build(BuildContext context) {
return MainWidget(
showBottomNavigationMenu: true,
navigationIndex: 1,
title: 'Calendar',
body: StreamBuilder>(
stream: FireStore.instance().userPlants(Auth.instance().user!.uid),
builder: (context, snapshot) {
if (snapshot.hasError) {
return ErrorTextWidget.failedToLoad;
}
if (!snapshot.hasData) {
return LoadingTextWidget.standard;
}
controller.removeWhere((e) => true);
_addEvents(snapshot.data!);
return MonthView(
controller: controller,
);
},
),
);
}
}
```
Guide de contribution
Ouvrir le guide de contribution
Évaluation
Cette issue n'a pas encore été évaluée.