import 'package:flutter/material.dart'; import 'package:PiliPlus/utils/storage.dart'; class CustomToast extends StatelessWidget { const CustomToast({super.key, required this.msg}); final String msg; @override Widget build(BuildContext context) { final double toastOpacity = GStorage.setting .get(SettingBoxKey.defaultToastOp, defaultValue: 1.0) as double; return Container( margin: EdgeInsets.only(bottom: MediaQuery.of(context).padding.bottom + 30), padding: const EdgeInsets.symmetric(horizontal: 17, vertical: 10), decoration: BoxDecoration( color: Theme.of(context) .colorScheme .primaryContainer .withOpacity(toastOpacity), borderRadius: BorderRadius.circular(20), ), child: Text( msg, style: TextStyle( fontSize: 13, color: Theme.of(context).colorScheme.onPrimaryContainer, ), ), ); } } class LoadingWidget extends StatelessWidget { const LoadingWidget({super.key, required this.msg}); ///loading msg final String msg; @override Widget build(BuildContext context) { return Container( padding: const EdgeInsets.symmetric(horizontal: 30, vertical: 20), decoration: BoxDecoration( color: Theme.of(context).dialogBackgroundColor, borderRadius: BorderRadius.circular(15), ), child: Column(mainAxisSize: MainAxisSize.min, children: [ //loading animation CircularProgressIndicator( strokeWidth: 3, valueColor: AlwaysStoppedAnimation( Theme.of(context).colorScheme.onSurfaceVariant), ), //msg Container( margin: const EdgeInsets.only(top: 20), child: Text(msg, style: TextStyle( color: Theme.of(context).colorScheme.onSurfaceVariant)), ), ]), ); } }