Files
PiliPlus/lib/common/widgets/custom_toast.dart
dom 22fc256d8a fix #2351
Signed-off-by: dom <githubaccount56556@proton.me>
2026-06-08 11:45:26 +08:00

97 lines
2.5 KiB
Dart

import 'package:PiliPlus/utils/storage_pref.dart';
import 'package:flutter/material.dart';
class CustomToast extends StatelessWidget {
const CustomToast(this.msg, {super.key});
final String msg;
static double toastOpacity = Pref.defaultToastOp;
@override
Widget build(BuildContext context) {
final colorScheme = ColorScheme.of(context);
return Container(
margin: .only(
bottom: MediaQuery.viewPaddingOf(context).bottom + 30,
),
padding: const .symmetric(horizontal: 17, vertical: 10),
decoration: BoxDecoration(
color: colorScheme.primaryContainer.withValues(alpha: toastOpacity),
borderRadius: const .all(.circular(20)),
),
child: Text(
msg,
style: TextStyle(
fontSize: 13,
color: colorScheme.onPrimaryContainer,
),
),
);
}
}
class LoadingWidget extends StatelessWidget {
const LoadingWidget(this.msg, {super.key});
///loading msg
final String msg;
@override
Widget build(BuildContext context) {
final theme = Theme.of(context);
final onSurfaceVariant = theme.colorScheme.onSurfaceVariant;
return Container(
padding: const .symmetric(horizontal: 30, vertical: 20),
decoration: BoxDecoration(
color: theme.dialogTheme.backgroundColor,
borderRadius: const .all(.circular(15)),
),
child: Column(
spacing: 20,
mainAxisSize: .min,
children: [
//loading animation
CircularProgressIndicator(
strokeWidth: 3,
valueColor: AlwaysStoppedAnimation(onSurfaceVariant),
),
//msg
Text(msg, style: TextStyle(color: onSurfaceVariant)),
],
),
);
}
}
class NotifyWarning extends StatelessWidget {
const NotifyWarning(this.msg, {super.key});
final String msg;
@override
Widget build(BuildContext context) {
final theme = Theme.of(context);
final onSurfaceVariant = theme.colorScheme.onSurfaceVariant;
return Container(
decoration: BoxDecoration(
borderRadius: const .all(.circular(8)),
color: theme.dialogTheme.backgroundColor,
),
padding: const .symmetric(horizontal: 20, vertical: 10),
child: Column(
spacing: 5,
mainAxisSize: .min,
children: [
Icon(
Icons.warning_amber_rounded,
size: 22,
color: onSurfaceVariant,
),
Text(msg, style: TextStyle(color: onSurfaceVariant)),
],
),
);
}
}