48 lines
1.3 KiB
Dart
48 lines
1.3 KiB
Dart
import 'package:flutter/material.dart';
|
|
|
|
class LoadingNotifier extends StatelessWidget {
|
|
const LoadingNotifier(
|
|
{super.key,
|
|
required void Function() onDismissed,
|
|
required String message})
|
|
: _onDismissed = onDismissed,
|
|
_message = message;
|
|
|
|
final void Function() _onDismissed;
|
|
final String _message;
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return Card(
|
|
color: Theme.of(context).colorScheme.primaryContainer,
|
|
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(45)),
|
|
child: SizedBox(
|
|
width: 500,
|
|
height: 60,
|
|
child: Padding(
|
|
padding: const EdgeInsets.symmetric(horizontal: 20),
|
|
child: Row(
|
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
|
mainAxisSize: MainAxisSize.max,
|
|
children: [
|
|
SizedBox(
|
|
width: 25,
|
|
height: 25,
|
|
child: CircularProgressIndicator(),
|
|
),
|
|
Text(
|
|
_message,
|
|
style: Theme.of(context).textTheme.titleSmall,
|
|
),
|
|
IconButton(
|
|
onPressed: () => _onDismissed(),
|
|
icon: Icon(Icons.close),
|
|
)
|
|
],
|
|
),
|
|
),
|
|
),
|
|
);
|
|
}
|
|
}
|