From 0eb7ab19927414ee9cdb8a69cedbb801d5d4f2f0 Mon Sep 17 00:00:00 2001 From: dshukertjr <18113850+dshukertjr@users.noreply.github.com> Date: Sun, 5 Jun 2022 16:00:08 +0900 Subject: [PATCH] fix: replace snackbar method with extension method --- .../flutter-todo-list/lib/constant.dart | 70 ++++++++++++++++--- .../todo-list/flutter-todo-list/lib/main.dart | 52 +------------- .../flutter-todo-list/lib/screens/signin.dart | 5 +- .../flutter-todo-list/lib/screens/todo.dart | 2 +- 4 files changed, 66 insertions(+), 63 deletions(-) diff --git a/examples/todo-list/flutter-todo-list/lib/constant.dart b/examples/todo-list/flutter-todo-list/lib/constant.dart index e26d371574d..7209c2c3ec9 100644 --- a/examples/todo-list/flutter-todo-list/lib/constant.dart +++ b/examples/todo-list/flutter-todo-list/lib/constant.dart @@ -3,6 +3,58 @@ import 'package:flutter/material.dart'; const smallGap = SizedBox(height: 20); const largeGap = SizedBox(height: 40); +final appTheme = ThemeData.dark().copyWith( + scaffoldBackgroundColor: Colors.black, + outlinedButtonTheme: OutlinedButtonThemeData( + style: OutlinedButton.styleFrom( + primary: Colors.white, + side: const BorderSide(color: Colors.white, width: 2), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(12), + ), + padding: const EdgeInsets.all(16), + ), + ), + elevatedButtonTheme: ElevatedButtonThemeData( + style: ElevatedButton.styleFrom( + primary: Colors.white, + onPrimary: Colors.black, + textStyle: const TextStyle( + fontWeight: FontWeight.bold, + ), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(12), + ), + padding: const EdgeInsets.all(16), + ), + ), + inputDecorationTheme: InputDecorationTheme( + labelStyle: const TextStyle(color: Colors.white), + focusColor: Colors.green, + enabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(12), + borderSide: const BorderSide( + color: Colors.white, + width: 2, + ), + ), + focusedBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(12), + borderSide: const BorderSide( + color: Colors.green, + width: 2, + ), + ), + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(12), + ), + ), + textTheme: const TextTheme( + bodyText1: TextStyle(color: Colors.white), + bodyText2: TextStyle(color: Colors.white), + ), +); + Future displayTextInputDialog( BuildContext context, Function()? onTab, @@ -44,13 +96,15 @@ Future displayTextInputDialog( }); } -ScaffoldFeatureController snackbarAlert( - {required BuildContext context, required String message}) { - return ScaffoldMessenger.of(context).showSnackBar( - SnackBar( - content: Text(message), - duration: const Duration(seconds: 2), +extension ShowSnackBar on BuildContext { + /// Extention method to easily display error snack bar. + void showErrorSnackbar(String text) { + ScaffoldMessenger.of(this).showSnackBar(SnackBar( + content: Text( + text, + style: const TextStyle(color: Color(0xFFFFFFFF)), + ), backgroundColor: Colors.red, - ), - ); + )); + } } diff --git a/examples/todo-list/flutter-todo-list/lib/main.dart b/examples/todo-list/flutter-todo-list/lib/main.dart index 7186243bc97..0aaa0b1b843 100644 --- a/examples/todo-list/flutter-todo-list/lib/main.dart +++ b/examples/todo-list/flutter-todo-list/lib/main.dart @@ -22,57 +22,7 @@ class MyApp extends StatelessWidget { Widget build(BuildContext context) { return MaterialApp( debugShowCheckedModeBanner: false, - theme: ThemeData.dark().copyWith( - scaffoldBackgroundColor: Colors.black, - outlinedButtonTheme: OutlinedButtonThemeData( - style: OutlinedButton.styleFrom( - primary: Colors.white, - side: const BorderSide(color: Colors.white, width: 2), - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular(12), - ), - padding: const EdgeInsets.all(16), - ), - ), - elevatedButtonTheme: ElevatedButtonThemeData( - style: ElevatedButton.styleFrom( - primary: Colors.white, - onPrimary: Colors.black, - textStyle: const TextStyle( - fontWeight: FontWeight.bold, - ), - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular(12), - ), - padding: const EdgeInsets.all(16), - ), - ), - inputDecorationTheme: InputDecorationTheme( - labelStyle: const TextStyle(color: Colors.white), - focusColor: Colors.green, - enabledBorder: OutlineInputBorder( - borderRadius: BorderRadius.circular(12), - borderSide: const BorderSide( - color: Colors.white, - width: 2, - ), - ), - focusedBorder: OutlineInputBorder( - borderRadius: BorderRadius.circular(12), - borderSide: const BorderSide( - color: Colors.green, - width: 2, - ), - ), - border: OutlineInputBorder( - borderRadius: BorderRadius.circular(12), - ), - ), - textTheme: const TextTheme( - bodyText1: TextStyle(color: Colors.white), - bodyText2: TextStyle(color: Colors.white), - ), - ), + theme: appTheme, initialRoute: AuthSupabase.client.auth.currentSession != null ? "/todo" : "/", routes: { diff --git a/examples/todo-list/flutter-todo-list/lib/screens/signin.dart b/examples/todo-list/flutter-todo-list/lib/screens/signin.dart index 3a09f80c355..80783e1024b 100644 --- a/examples/todo-list/flutter-todo-list/lib/screens/signin.dart +++ b/examples/todo-list/flutter-todo-list/lib/screens/signin.dart @@ -65,9 +65,8 @@ class _SignInPageState extends State { if (value != null) { Navigator.pushReplacementNamed(context, '/todo'); } else { - snackbarAlert( - context: context, - message: "Invalid Email or Password"); + context + .showErrorSnackbar('Invalid Email or Password'); } }, ) diff --git a/examples/todo-list/flutter-todo-list/lib/screens/todo.dart b/examples/todo-list/flutter-todo-list/lib/screens/todo.dart index 7d5f56f6769..df06b42f166 100644 --- a/examples/todo-list/flutter-todo-list/lib/screens/todo.dart +++ b/examples/todo-list/flutter-todo-list/lib/screens/todo.dart @@ -11,7 +11,7 @@ class TodoPage extends StatefulWidget { } class _TodoPageState extends State { - String userName = ""; + String userName = ''; bool loading = true; List todos = []; final TextEditingController _taskEditingController = TextEditingController();