Compare commits

...

3 commits

Author SHA1 Message Date
Leandro
c9d62743f6 crappy load animation 2024-05-20 16:42:03 +02:00
Leandro
56bcef493a Add shimmer loading 2024-05-20 16:31:17 +02:00
Leandro
f8612b9bc3 Switch to extended floating action button 2024-05-20 13:07:17 +02:00
4 changed files with 53 additions and 6 deletions

View file

@ -1,8 +1,10 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:shimmer/shimmer.dart';
import 'package:temperaturdecke/database.dart'; import 'package:temperaturdecke/database.dart';
import 'package:temperaturdecke/screens/add_wool_modal.dart'; import 'package:temperaturdecke/screens/add_wool_modal.dart';
import 'package:temperaturdecke/widgets/cards/wool_card.dart'; import 'package:temperaturdecke/widgets/cards/wool_card.dart';
import 'package:temperaturdecke/widgets/custom_card.dart';
class WoolScreen extends StatelessWidget { class WoolScreen extends StatelessWidget {
WoolScreen({super.key}); WoolScreen({super.key});
@ -10,19 +12,48 @@ class WoolScreen extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
Widget child;
return FutureBuilder( return FutureBuilder(
future: Provider.of<AppDatabase>(context) future: Provider.of<AppDatabase>(context)
.select(Provider.of<AppDatabase>(context).wolle) .select(Provider.of<AppDatabase>(context).wolle)
.get(), .get(),
builder: (BuildContext context, AsyncSnapshot snapshot) { builder: (BuildContext context, AsyncSnapshot snapshot) {
if (snapshot.connectionState == ConnectionState.waiting) { if (snapshot.connectionState == ConnectionState.waiting) {
return const Center( child = Center(
child: CircularProgressIndicator(), 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 { } else {
// Hier können Sie den Inhalt basierend auf den geladenen Daten anzeigen // Hier können Sie den Inhalt basierend auf den geladenen Daten anzeigen
return Scaffold( child = Scaffold(
floatingActionButton: FloatingActionButton( floatingActionButton: FloatingActionButton.extended(
label: Text("Hinzufügen"),
onPressed: () { onPressed: () {
showModalBottomSheet( showModalBottomSheet(
isScrollControlled: true, isScrollControlled: true,
@ -33,7 +64,7 @@ class WoolScreen extends StatelessWidget {
}, },
); );
}, },
child: Icon(Icons.add), icon: Icon(Icons.add),
), ),
body: Column( body: Column(
children: [ children: [
@ -64,6 +95,12 @@ class WoolScreen extends StatelessWidget {
), ),
); );
} }
return AnimatedSwitcher(
duration: Duration(milliseconds: 500),
switchInCurve: Curves.easeOut,
switchOutCurve: Curves.ease,
child: child,
);
}, },
); );
} }

View file

@ -14,7 +14,7 @@ class ModalWrapper extends StatelessWidget {
child: Wrap( child: Wrap(
children: [ children: [
SizedBox( SizedBox(
width: 500, width: 750,
height: MediaQuery.of(context).size.height - 100, height: MediaQuery.of(context).size.height - 100,
child: Padding( child: Padding(
padding: EdgeInsets.symmetric(horizontal: 25, vertical: 10), padding: EdgeInsets.symmetric(horizontal: 25, vertical: 10),

View file

@ -584,6 +584,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.0.4" version: "1.0.4"
shimmer:
dependency: "direct main"
description:
name: shimmer
sha256: "5f88c883a22e9f9f299e5ba0e4f7e6054857224976a5d9f839d4ebdc94a14ac9"
url: "https://pub.dev"
source: hosted
version: "3.0.0"
sky_engine: sky_engine:
dependency: transitive dependency: transitive
description: flutter description: flutter

View file

@ -33,6 +33,8 @@ dependencies:
blobs: blobs:
shimmer:
flutter_colorpicker: flutter_colorpicker:
hexcolor: hexcolor: