flutter-vienna-hackathon-25/wien_talks/wien_talks_flutter/lib/widgets/screen_widget.dart

69 lines
2.2 KiB
Dart

import 'dart:math';
import 'package:flutter/material.dart';
import 'package:flutter_spinkit/flutter_spinkit.dart';
import 'package:loader_overlay/loader_overlay.dart';
import 'package:wien_talks_flutter/widgets/add_quote_fab.dart';
class ScreenWidget extends StatelessWidget {
final Widget child;
const ScreenWidget({super.key, required this.child});
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('FunMap'),
),
floatingActionButton: AddQuoteFab(
// onSubmit: (draft) {
// FunmapMgr().client.quote.createQuote(CreateQuoteRequest(
// text: draft.text,
// authorName: draft.author,
// lat: LocationMgr().lastLocation!.latitude!,
// lng: LocationMgr().lastLocation!.longitude!,
// ));
// },
),
body: SafeArea(
child: Padding(
padding: const EdgeInsets.all(8.0),
child: LoaderOverlay(
overlayWidgetBuilder: (_) {
switch (Random().nextInt(5)) {
case 0:
return Center(
child: CircularProgressIndicator(),
);
case 1:
return Center(
child: SpinKitCubeGrid(
size: 50, color: Theme.of(context).primaryColor),
);
case 2:
return Center(
child: SpinKitWave(color: Theme.of(context).primaryColor),
);
case 3:
return Center(
child:
SpinKitHourGlass(color: Theme.of(context).primaryColor),
);
case 4:
return Center(
child: SpinKitFadingCircle(
color: Theme.of(context).primaryColor),
);
default:
return Center(
child: SpinKitPulsingGrid(
color: Theme.of(context).primaryColor),
);
}
},
child: child),
)),
);
}
}