From e2c2fa48ce3d331e33986494b29e31c5852894fe Mon Sep 17 00:00:00 2001 From: Nilo Roberto C Paim Date: Sun, 26 Nov 2023 07:54:08 -0300 Subject: [PATCH] initial pages --- lib/app/app_page.dart | 41 +++++++++++++ lib/app/app_widget.dart | 17 ++++++ lib/app/login/login_page.dart | 31 ++++++++++ lib/app/test/test_page.dart | 31 ++++++++++ lib/components/nc_base_page.dart | 15 +++++ lib/components/nc_button.dart | 30 ++++++++++ lib/main.dart | 68 +-------------------- lib/routes.dart | 41 +++++++++++++ pubspec.lock | 100 ++++++++++++++++--------------- pubspec.yaml | 5 +- 10 files changed, 265 insertions(+), 114 deletions(-) create mode 100644 lib/app/app_page.dart create mode 100644 lib/app/app_widget.dart create mode 100644 lib/app/login/login_page.dart create mode 100644 lib/app/test/test_page.dart create mode 100644 lib/components/nc_base_page.dart create mode 100644 lib/components/nc_button.dart create mode 100644 lib/routes.dart diff --git a/lib/app/app_page.dart b/lib/app/app_page.dart new file mode 100644 index 0000000..4c3ed3f --- /dev/null +++ b/lib/app/app_page.dart @@ -0,0 +1,41 @@ +import 'package:flutter/material.dart'; +import 'package:pcast/components/nc_base_page.dart'; +import 'package:routefly/routefly.dart'; + +import '../components/nc_button.dart'; + +class AppPage extends StatelessWidget { + const AppPage({super.key}); + + @override + Widget build(BuildContext context) { + return NcBasePage( + body: Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + NcButton( + caption: "Quero testar a plataforma", + backgroundColor: Colors.black, + captionColor: Colors.white, + onPressed: () => { + Routefly.navigate('/test'), + }, + ), + const SizedBox( + height: 40, + ), + NcButton( + caption: "Já sou cliente", + backgroundColor: Colors.black, + captionColor: Colors.white, + onPressed: () => { + Routefly.navigate('/login'), + }, + ), + ], + ), + ), + ); + } +} diff --git a/lib/app/app_widget.dart b/lib/app/app_widget.dart new file mode 100644 index 0000000..1e64970 --- /dev/null +++ b/lib/app/app_widget.dart @@ -0,0 +1,17 @@ +import 'package:flutter/material.dart'; +import 'package:routefly/routefly.dart'; + +import '../routes.dart'; + +class AppWidget extends StatelessWidget { + const AppWidget({super.key}); + + @override + Widget build(BuildContext context) { + return MaterialApp.router( + routerConfig: Routefly.routerConfig( + routes: routes, + ), + ); + } +} diff --git a/lib/app/login/login_page.dart b/lib/app/login/login_page.dart new file mode 100644 index 0000000..722d586 --- /dev/null +++ b/lib/app/login/login_page.dart @@ -0,0 +1,31 @@ +import 'package:flutter/material.dart'; +import 'package:pcast/components/nc_base_page.dart'; + +class LoginPage extends StatefulWidget { + const LoginPage({super.key}); + + @override + State createState() => _LoginPageState(); +} + +class _LoginPageState extends State { + @override + Widget build(BuildContext context) { + return const NcBasePage( + body: Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text( + "Login Page", + style: TextStyle( + color: Colors.white, + fontSize: 40, + ), + ), + ], + ), + ), + ); + } +} diff --git a/lib/app/test/test_page.dart b/lib/app/test/test_page.dart new file mode 100644 index 0000000..474b266 --- /dev/null +++ b/lib/app/test/test_page.dart @@ -0,0 +1,31 @@ +import 'package:flutter/material.dart'; +import 'package:pcast/components/nc_base_page.dart'; + +class TestPage extends StatefulWidget { + const TestPage({super.key}); + + @override + State createState() => _TestPageState(); +} + +class _TestPageState extends State { + @override + Widget build(BuildContext context) { + return const NcBasePage( + body: Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text( + "Test Page", + style: TextStyle( + color: Colors.white, + fontSize: 40, + ), + ), + ], + ), + ), + ); + } +} diff --git a/lib/components/nc_base_page.dart b/lib/components/nc_base_page.dart new file mode 100644 index 0000000..96066e1 --- /dev/null +++ b/lib/components/nc_base_page.dart @@ -0,0 +1,15 @@ +import 'package:flutter/material.dart'; + +class NcBasePage extends StatelessWidget { + const NcBasePage({super.key, required this.body}); + + final Widget body; + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: const Color(0xffa600f9), + body: body, + ); + } +} diff --git a/lib/components/nc_button.dart b/lib/components/nc_button.dart new file mode 100644 index 0000000..322b84f --- /dev/null +++ b/lib/components/nc_button.dart @@ -0,0 +1,30 @@ +import 'package:flutter/material.dart'; +import 'package:velocity_x/velocity_x.dart'; + +class NcButton extends StatelessWidget { + const NcButton({super.key, required this.caption, required this.backgroundColor, required this.captionColor, this.onPressed}); + + final String caption; + final Color backgroundColor; + final Color captionColor; + final void Function()? onPressed; + + @override + Widget build(BuildContext context) { + return SizedBox( + width: 500, + height: 100, + child: ElevatedButton( + onPressed: onPressed, + style: ElevatedButton.styleFrom( + backgroundColor: backgroundColor, + foregroundColor: captionColor, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(10), + ), + ), + child: caption.text.xl4.make(), + ), + ); + } +} diff --git a/lib/main.dart b/lib/main.dart index e21ac83..205e85b 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,69 +1,7 @@ import 'package:flutter/material.dart'; +import 'app/app_widget.dart'; + void main() { - runApp(const MyApp()); -} - -class MyApp extends StatelessWidget { - const MyApp({super.key}); - - @override - Widget build(BuildContext context) { - return MaterialApp( - title: 'Flutter Demo', - theme: ThemeData( - colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple), - useMaterial3: true, - ), - home: const MyHomePage(title: 'Flutter Demo Home Page'), - ); - } -} - -class MyHomePage extends StatefulWidget { - const MyHomePage({super.key, required this.title}); - - final String title; - - @override - State createState() => _MyHomePageState(); -} - -class _MyHomePageState extends State { - int _counter = 0; - - void _incrementCounter() { - setState(() { - _counter++; - }); - } - - @override - Widget build(BuildContext context) { - return Scaffold( - appBar: AppBar( - backgroundColor: Theme.of(context).colorScheme.inversePrimary, - title: Text(widget.title), - ), - body: Center( - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - const Text( - 'You have pushed the button this many times:', - ), - Text( - '$_counter', - style: Theme.of(context).textTheme.headlineMedium, - ), - ], - ), - ), - floatingActionButton: FloatingActionButton( - onPressed: _incrementCounter, - tooltip: 'Increment', - child: const Icon(Icons.add), - ), - ); - } + runApp(const AppWidget()); } diff --git a/lib/routes.dart b/lib/routes.dart new file mode 100644 index 0000000..4b5fc94 --- /dev/null +++ b/lib/routes.dart @@ -0,0 +1,41 @@ +import 'package:routefly/routefly.dart'; + +import 'app/app_page.dart' as a0; +import 'app/login/login_page.dart' as a1; +import 'app/test/test_page.dart' as a2; + +List get routes => [ + RouteEntity( + key: '/', + uri: Uri.parse('/'), + routeBuilder: (ctx, settings) => Routefly.defaultRouteBuilder( + ctx, + settings, + const a0.AppPage(), + ), + ), + RouteEntity( + key: '/login', + uri: Uri.parse('/login'), + routeBuilder: (ctx, settings) => Routefly.defaultRouteBuilder( + ctx, + settings, + const a1.LoginPage(), + ), + ), + RouteEntity( + key: '/test', + uri: Uri.parse('/test'), + routeBuilder: (ctx, settings) => Routefly.defaultRouteBuilder( + ctx, + settings, + const a2.TestPage(), + ), + ), +]; + +const routePaths = ( + path: '/', + login: '/login', + test: '/test', +); diff --git a/pubspec.lock b/pubspec.lock index 5713c7f..d2dbcf3 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -1,6 +1,14 @@ # Generated by pub # See https://dart.dev/tools/pub/glossary#lockfile packages: + ansicolor: + dependency: transitive + description: + name: ansicolor + sha256: "8bf17a8ff6ea17499e40a2d2542c2f481cd7615760c6d34065cb22bfd22e6880" + url: "https://pub.dev" + source: hosted + version: "2.0.2" async: dependency: transitive description: @@ -9,14 +17,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.11.0" - auto_injector: + auto_size_text_pk: dependency: transitive description: - name: auto_injector - sha256: "2952a4d4339ed3b65e8e54765ec68ee6ada5cb21d83cb8d39e3f6b4e690ab5ca" + name: auto_size_text_pk + sha256: ced55de5336fa7f438c1f5a9aa234e25d7a120c1d40d376a7cdc2af28cdb6995 url: "https://pub.dev" source: hosted - version: "2.0.2" + version: "3.0.0" boolean_selector: dependency: transitive description: @@ -49,14 +57,6 @@ packages: url: "https://pub.dev" source: hosted version: "1.18.0" - crypto: - dependency: transitive - description: - name: crypto - sha256: ff625774173754681d66daaf4a448684fb04b78f902da9cb3d308c19cc5e8bab - url: "https://pub.dev" - source: hosted - version: "3.0.3" cupertino_icons: dependency: "direct main" description: @@ -69,10 +69,10 @@ packages: dependency: "direct main" description: name: dio - sha256: "417e2a6f9d83ab396ec38ff4ea5da6c254da71e4db765ad737a42af6930140b7" + sha256: "01870acd87986f768e0c09cc4d7a19a59d814af7b34cbeb0b437d2c33bdfea4c" url: "https://pub.dev" source: hosted - version: "5.3.3" + version: "5.3.4" fake_async: dependency: transitive description: @@ -90,23 +90,20 @@ packages: dependency: "direct dev" description: name: flutter_lints - sha256: a25a15ebbdfc33ab1cd26c63a6ee519df92338a9c10f122adda92938253bef04 + sha256: e2a421b7e59244faef694ba7b30562e489c2b489866e505074eb005cd7060db7 url: "https://pub.dev" source: hosted - version: "2.0.3" - flutter_modular: - dependency: "direct main" - description: - name: flutter_modular - sha256: ac6298ce1abd414286ee5a554fc45e81e358461979b5d4e02c8abd685e3b23f2 - url: "https://pub.dev" - source: hosted - version: "6.3.2" + version: "3.0.1" flutter_test: dependency: "direct dev" description: flutter source: sdk version: "0.0.0" + flutter_web_plugins: + dependency: transitive + description: flutter + source: sdk + version: "0.0.0" http_parser: dependency: transitive description: @@ -115,14 +112,22 @@ packages: url: "https://pub.dev" source: hosted version: "4.0.2" + intl: + dependency: transitive + description: + name: intl + sha256: "3bc132a9dbce73a7e4a21a17d06e1878839ffbf975568bc875c60537824b0c4d" + url: "https://pub.dev" + source: hosted + version: "0.18.1" lints: dependency: transitive description: name: lints - sha256: "0a217c6c989d21039f1498c3ed9f3ed71b354e69873f13a8dfc3c9fe76f1b452" + sha256: cbf8d4b858bb0134ef3ef87841abdf8d63bfc255c266b7bf6b39daa1085c4290 url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "3.0.0" matcher: dependency: transitive description: @@ -147,14 +152,6 @@ packages: url: "https://pub.dev" source: hosted version: "1.10.0" - modular_core: - dependency: transitive - description: - name: modular_core - sha256: "5baaa460ac9d85d457d6864ef41a2194b8115a6bdeb585a684789f2d9004c892" - url: "https://pub.dev" - source: hosted - version: "3.3.2" path: dependency: transitive description: @@ -163,14 +160,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.8.3" - result_dart: - dependency: transitive + routefly: + dependency: "direct main" description: - name: result_dart - sha256: f28a171d55e2e1c1753b41d4d8edcaff886f103e73c575d14764913907e57928 + name: routefly + sha256: a7c0f46de8ec6a26e11362f03bf69e97b6f45cfcbd2161cc31ee2a028d4bc22a url: "https://pub.dev" source: hosted - version: "1.1.0" + version: "1.0.5" sky_engine: dependency: transitive description: flutter @@ -232,14 +229,6 @@ packages: url: "https://pub.dev" source: hosted version: "1.3.2" - uuid: - dependency: transitive - description: - name: uuid - sha256: "648e103079f7c64a36dc7d39369cabb358d377078a051d6ae2ad3aa539519313" - url: "https://pub.dev" - source: hosted - version: "3.0.7" vector_math: dependency: transitive description: @@ -248,6 +237,22 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.4" + velocity_x: + dependency: "direct main" + description: + name: velocity_x + sha256: "38585b8ed87c17ccb42a5c13d55bdafdc65e7cd3f41dceb61c38714c758fa228" + url: "https://pub.dev" + source: hosted + version: "4.1.2" + vxstate: + dependency: transitive + description: + name: vxstate + sha256: ed5a880018191c5cfed8528bd77f2a942b04847168ca12636a306c323d311086 + url: "https://pub.dev" + source: hosted + version: "2.3.0" web: dependency: transitive description: @@ -258,3 +263,4 @@ packages: version: "0.3.0" sdks: dart: ">=3.2.0-194.0.dev <4.0.0" + flutter: ">=3.13.0" diff --git a/pubspec.yaml b/pubspec.yaml index 4c78489..3ebcc03 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -14,13 +14,14 @@ dependencies: cupertino_icons: ^1.0.2 dio: ^5.3.3 - flutter_modular: ^6.3.2 + routefly: ^1.0.5 + velocity_x: ^4.1.2 dev_dependencies: flutter_test: sdk: flutter - flutter_lints: ^2.0.0 + flutter_lints: ^3.0.1 flutter: uses-material-design: true