This repository has been archived on 2025-06-12. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
Temperaturdecke/lib/screens/wool.dart
2024-05-20 19:31:26 +02:00

107 lines
3.6 KiB
Dart

import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:shimmer/shimmer.dart';
import 'package:temperaturdecke/database.dart';
import 'package:temperaturdecke/screens/add_wool_modal.dart';
import 'package:temperaturdecke/widgets/cards/wool_card.dart';
import 'package:temperaturdecke/widgets/custom_card.dart';
class WoolScreen extends StatelessWidget {
WoolScreen({super.key});
int currentScreen = 1;
@override
Widget build(BuildContext context) {
Widget child;
return FutureBuilder(
future: Provider.of<AppDatabase>(context)
.select(Provider.of<AppDatabase>(context).wolle)
.get(),
builder: (BuildContext context, AsyncSnapshot snapshot) {
if (snapshot.connectionState == ConnectionState.waiting) {
child = Center(
child: Shimmer.fromColors(
baseColor: Theme.of(context).colorScheme.secondaryContainer,
highlightColor: Theme.of(context)
.colorScheme
.onSecondaryContainer
.withOpacity(.3),
child: ListView.builder(
itemBuilder: (BuildContext context, int index) {
return Padding(
padding: const EdgeInsets.symmetric(horizontal: 10),
child: Column(
children: [
CustomCard(
SizedBox(
height: 70,
),
),
const SizedBox(
height: 15,
)
],
),
);
},
itemCount: 6,
),
),
);
} else {
// Hier können Sie den Inhalt basierend auf den geladenen Daten anzeigen
child = Scaffold(
floatingActionButton: FloatingActionButton.extended(
label: Text("Hinzufügen"),
onPressed: () {
showModalBottomSheet(
isScrollControlled: true,
showDragHandle: true,
context: context,
builder: (context) {
return AddWoolModal();
},
);
},
icon: Icon(Icons.add),
),
body: Column(
children: [
Expanded(
child: ListView.builder(
itemBuilder: (BuildContext context, int index) {
return Padding(
padding: const EdgeInsets.symmetric(horizontal: 10),
child: Column(
children: [
Woolcard(
index,
snapshot.data[index].manufacture,
snapshot.data[index].title,
Color(snapshot.data[index].color),
),
const SizedBox(
height: 15,
)
],
),
);
},
itemCount: snapshot.data.length,
),
),
],
),
);
}
return AnimatedSwitcher(
duration: Duration(milliseconds: 500),
switchInCurve: Curves.easeOut,
switchOutCurve: Curves.ease,
child: child,
);
},
);
}
}