From d217265ae7fc436009c5bc71a063a0f6210526f1 Mon Sep 17 00:00:00 2001
From: zypherift <management@refilc.hu>
Date: Fri, 3 May 2024 18:41:19 +0200
Subject: [PATCH 1/3] revert login screen

---
 .../lib/screens/login/login_screen.dart          | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/refilc_mobile_ui/lib/screens/login/login_screen.dart b/refilc_mobile_ui/lib/screens/login/login_screen.dart
index 433d283..fd21903 100644
--- a/refilc_mobile_ui/lib/screens/login/login_screen.dart
+++ b/refilc_mobile_ui/lib/screens/login/login_screen.dart
@@ -190,12 +190,12 @@ class LoginScreenState extends State<LoginScreen> {
                                                 ),
                                               ],
                                             )),
-                                        const SizedBox(height: 15.625),
-                                        Padding(
-                                            padding: const EdgeInsets.only(
-                                                left: 16, right: 16),
-                                            child: Image.asset(
-                                                'assets/images/showcase$i.png'))
+                                        const SizedBox(height: 15.625), //meth
+                                        // Padding(
+                                        //     padding: const EdgeInsets.only(
+                                        //         left: 16, right: 16),
+                                        //     child: Image.asset(
+                                        //         'assets/images/showcase$i.png'))
                                       ],
                                     );
                                   },
@@ -210,7 +210,7 @@ class LoginScreenState extends State<LoginScreen> {
                           decoration: const BoxDecoration(
                             gradient: LinearGradient(
                               colors: [Color(0x00DAE4F7), Color(0xFFDAE4F7)],
-                              stops: [0, 0.1],
+                              stops: [0, 0.05],
                               begin: Alignment.topCenter,
                               end: Alignment.bottomCenter,
                             ),
@@ -238,7 +238,7 @@ class LoginScreenState extends State<LoginScreen> {
                                           "login".i18n,
                                           style: const TextStyle(
                                               fontFamily: 'Montserrat',
-                                              fontSize: 20,
+                                              fontSize: 19,
                                               fontWeight: FontWeight.w700),
                                         )),
                                   ),

From 56c87b146ba679e6ed9bd0f14ae6d71e01e290d5 Mon Sep 17 00:00:00 2001
From: zypherift <management@refilc.hu>
Date: Fri, 3 May 2024 19:05:19 +0200
Subject: [PATCH 2/3] remove comment

---
 .../lib/screens/login/login_screen.dart       | 798 ++++++++----------
 1 file changed, 335 insertions(+), 463 deletions(-)

diff --git a/refilc_mobile_ui/lib/screens/login/login_screen.dart b/refilc_mobile_ui/lib/screens/login/login_screen.dart
index 3f99c7d..fa79fc2 100644
--- a/refilc_mobile_ui/lib/screens/login/login_screen.dart
+++ b/refilc_mobile_ui/lib/screens/login/login_screen.dart
@@ -86,483 +86,355 @@ class LoginScreenState extends State<LoginScreen> {
     precacheImage(const AssetImage('assets/images/showcase3.png'), context);
     precacheImage(const AssetImage('assets/images/showcase4.png'), context);
 
-    return Portal(
-      child: Scaffold(
-        body: Container(
-          decoration: const BoxDecoration(color: Color(0xFFDAE4F7)),
-          child: SingleChildScrollView(
-            physics: const ClampingScrollPhysics(),
-            controller: _scrollController,
-            child: Container(
-              decoration: const BoxDecoration(color: Color(0xFFDAE4F7)),
-              width: MediaQuery.of(context).size.width,
-              height: MediaQuery.of(context).size.height,
-              child: SafeArea(
-                child: Column(
-                  children: [
-                    // app icon
-                    Padding(
-                        padding: const EdgeInsets.only(left: 24, top: 20),
-                        child: Row(
-                          children: [
-                            Image.asset(
-                              'assets/icons/ic_rounded.png',
-                              width: 30.0,
-                            ),
-                            const SizedBox(width: 8),
-                            const Text(
-                              'reFilc',
-                              style: TextStyle(
-                                  color: Color(0xFF050B15),
-                                  fontSize: 18.0,
-                                  fontWeight: FontWeight.bold,
-                                  fontFamily: 'Montserrat'),
-                            ),
-                            Material(
-                              type: MaterialType.transparency,
-                              child: showBack
-                                  ? BackButton(
-                                      color: AppColors.of(context).text)
-                                  : const SizedBox(height: 48.0),
-                            ),
-                          ],
-                        )),
-                    Stack(
-                      alignment: Alignment.bottomCenter,
-                      children: [
-                        // Column(
-                        //   mainAxisAlignment: MainAxisAlignment.center,
-                        //   crossAxisAlignment: CrossAxisAlignment.center,
-                        //   children: [
-                        //     const SizedBox(height: 21),
-                        //     CarouselSlider(
-                        //       options: CarouselOptions(
-                        //           height: MediaQuery.of(context).size.height,
-                        //           viewportFraction: 1,
-                        //           autoPlay: true,
-                        //           autoPlayInterval: const Duration(seconds: 6),
-                        //           pauseAutoPlayOnTouch: true),
-                        //       items: [1, 2, 3, 4].map((i) {
-                        //         return Builder(
-                        //           builder: (BuildContext context) {
-                        //             return Column(
-                        //               crossAxisAlignment:
-                        //                   CrossAxisAlignment.start,
-                        //               mainAxisAlignment:
-                        //                   MainAxisAlignment.start,
-                        //               children: [
-                        //                 Padding(
-                        //                     padding:
-                        //                         const EdgeInsets.only(left: 24),
-                        //                     child: Column(
-                        //                       crossAxisAlignment:
-                        //                           CrossAxisAlignment.start,
-                        //                       mainAxisAlignment:
-                        //                           MainAxisAlignment.start,
-                        //                       children: [
-                        //                         Text(
-                        //                           "welcome_title_$i".i18n,
-                        //                           style: const TextStyle(
-                        //                               color: Color(0xFF050B15),
-                        //                               fontSize: 19,
-                        //                               fontFamily: 'Montserrat',
-                        //                               fontWeight:
-                        //                                   FontWeight.w700,
-                        //                               height: 1.3),
-                        //                         ),
-                        //                         const SizedBox(
-                        //                             height: 14.375), //meth
-                        //                         Padding(
-                        //                           padding:
-                        //                               const EdgeInsets.only(
-                        //                                   right: 20),
-                        //                           child: Text(
-                        //                             "welcome_text_$i".i18n,
-                        //                             style: const TextStyle(
-                        //                                 color:
-                        //                                     Color(0xFF050B15),
-                        //                                 fontFamily: 'FigTree',
-                        //                                 fontWeight:
-                        //                                     FontWeight.w500,
-                        //                                 fontSize: 17,
-                        //                                 height: 1.3),
-                        //                           ),
-                        //                         ),
-                        //                       ],
-                        //                     )),
-                        //                 const SizedBox(height: 15.625),
-                        //                 Padding(
-                        //                     padding: const EdgeInsets.only(
-                        //                         left: 16, right: 16),
-                        //                     child: Image.asset(
-                        //                         'assets/images/showcase$i.png'))
-                        //               ],
-                        //             );
-                        //           },
-                        //         );
-                        //       }).toList(),
-                        //     ),
-                        //   ],
-                        // ),
-                        // Container(
-                        //   height: 250,
-                        //   width: double.infinity,
-                        //   decoration: const BoxDecoration(
-                        //     gradient: LinearGradient(
-                        //       colors: [Color(0x00DAE4F7), Color(0xFFDAE4F7)],
-                        //       stops: [0, 0.1],
-                        //       begin: Alignment.topCenter,
-                        //       end: Alignment.bottomCenter,
-                        //     ),
-                        //   ),
-                        //   child: Padding(
-                        //     padding: const EdgeInsets.only(top: 3),
-                        //     child: Column(
-                        //       children: [
-                        //         SizedBox(
-                        //           height: 48,
-                        //           width: double.infinity,
-                        //           child: Padding(
-                        //             padding: const EdgeInsets.symmetric(
-                        //                 horizontal: 16),
-                        //             child: FilledButton(
-                        //                 style: ButtonStyle(
-                        //                     shape: MaterialStateProperty.all<
-                        //                             RoundedRectangleBorder>(
-                        //                         const RoundedRectangleBorder(
-                        //                   borderRadius: BorderRadius.all(
-                        //                       Radius.circular(12)),
-                        //                 ))),
-                        //                 onPressed: () {},
-                        //                 child: Text(
-                        //                   "login".i18n,
-                        //                   style: const TextStyle(
-                        //                       fontFamily: 'Montserrat',
-                        //                       fontSize: 20,
-                        //                       fontWeight: FontWeight.w700),
-                        //                 )),
-                        //           ),
-                        //         ),
-                        //         const SizedBox(height: 8),
-                        //       ],
-                        //     ),
-                        //   ),
-                        // )
-                        //
-                        //
-                        // TODO: OLD LOGIN FROM HERE
-                        Column(
-                          //login buttons and ui starts here
-                          mainAxisAlignment: MainAxisAlignment.end,
-                          crossAxisAlignment: CrossAxisAlignment.end,
-                          children: [
-                            const SizedBox(height: 21),
-                            CarouselSlider(
-                              options: CarouselOptions(
-                                  height: MediaQuery.of(context).size.height,
-                                  viewportFraction: 1,
-                                  autoPlay: true,
-                                  autoPlayInterval: const Duration(seconds: 6),
-                                  pauseAutoPlayOnTouch: true),
-                              items: [1, 2, 3, 4].map((i) {
-                                return Builder(
-                                  builder: (BuildContext context) {
-                                    return Column(
-                                      crossAxisAlignment:
-                                          CrossAxisAlignment.start,
-                                      mainAxisAlignment:
-                                          MainAxisAlignment.start,
-                                      children: [
-                                        Padding(
-                                            padding:
-                                                const EdgeInsets.only(left: 24),
-                                            child: Column(
-                                              crossAxisAlignment:
-                                                  CrossAxisAlignment.start,
-                                              mainAxisAlignment:
-                                                  MainAxisAlignment.start,
-                                              children: [
-                                                Text(
-                                                  "welcome_title_$i".i18n,
+    return Scaffold(
+      body: Container(
+        decoration: const BoxDecoration(color: Color(0xFFDAE4F7)),
+        child: SingleChildScrollView(
+          physics: const ClampingScrollPhysics(),
+          controller: _scrollController,
+          child: Container(
+            decoration: const BoxDecoration(color: Color(0xFFDAE4F7)),
+            width: MediaQuery.of(context).size.width,
+            height: MediaQuery.of(context).size.height,
+            child: SafeArea(
+              child: Column(
+                children: [
+                  // app icon
+                  Padding(
+                      padding: const EdgeInsets.only(left: 24, top: 20),
+                      child: Row(
+                        children: [
+                          Image.asset(
+                            'assets/icons/ic_rounded.png',
+                            width: 30.0,
+                          ),
+                          const SizedBox(width: 8),
+                          const Text(
+                            'reFilc',
+                            style: TextStyle(
+                                color: Color(0xFF050B15),
+                                fontSize: 18.0,
+                                fontWeight: FontWeight.bold,
+                                fontFamily: 'Montserrat'),
+                          ),
+                          Material(
+                            type: MaterialType.transparency,
+                            child: showBack
+                                ? BackButton(color: AppColors.of(context).text)
+                                : const SizedBox(height: 48.0),
+                          ),
+                        ],
+                      )),
+                  Stack(
+                    alignment: Alignment.bottomCenter,
+                    children: [
+                      Column(
+                        //login buttons and ui starts here
+                        mainAxisAlignment: MainAxisAlignment.end,
+                        crossAxisAlignment: CrossAxisAlignment.end,
+                        children: [
+                          const SizedBox(height: 21),
+                          CarouselSlider(
+                            options: CarouselOptions(
+                                height: MediaQuery.of(context).size.height,
+                                viewportFraction: 1,
+                                autoPlay: true,
+                                autoPlayInterval: const Duration(seconds: 6),
+                                pauseAutoPlayOnTouch: true),
+                            items: [1, 2, 3, 4].map((i) {
+                              return Builder(
+                                builder: (BuildContext context) {
+                                  return Column(
+                                    crossAxisAlignment:
+                                        CrossAxisAlignment.start,
+                                    mainAxisAlignment: MainAxisAlignment.start,
+                                    children: [
+                                      Padding(
+                                          padding:
+                                              const EdgeInsets.only(left: 24),
+                                          child: Column(
+                                            crossAxisAlignment:
+                                                CrossAxisAlignment.start,
+                                            mainAxisAlignment:
+                                                MainAxisAlignment.start,
+                                            children: [
+                                              Text(
+                                                "welcome_title_$i".i18n,
+                                                style: const TextStyle(
+                                                    color: Color(0xFF050B15),
+                                                    fontSize: 19,
+                                                    fontFamily: 'Montserrat',
+                                                    fontWeight: FontWeight.w700,
+                                                    height: 1.3),
+                                              ),
+                                              const SizedBox(
+                                                  height: 14.375), //meth
+                                              Padding(
+                                                padding: const EdgeInsets.only(
+                                                    right: 20),
+                                                child: Text(
+                                                  "welcome_text_$i".i18n,
                                                   style: const TextStyle(
                                                       color: Color(0xFF050B15),
-                                                      fontSize: 19,
-                                                      fontFamily: 'Montserrat',
+                                                      fontFamily: 'FigTree',
                                                       fontWeight:
-                                                          FontWeight.w700,
+                                                          FontWeight.w500,
+                                                      fontSize: 17,
                                                       height: 1.3),
                                                 ),
-                                                const SizedBox(
-                                                    height: 14.375), //meth
-                                                Padding(
-                                                  padding:
-                                                      const EdgeInsets.only(
-                                                          right: 20),
-                                                  child: Text(
-                                                    "welcome_text_$i".i18n,
-                                                    style: const TextStyle(
-                                                        color:
-                                                            Color(0xFF050B15),
-                                                        fontFamily: 'FigTree',
-                                                        fontWeight:
-                                                            FontWeight.w500,
-                                                        fontSize: 17,
-                                                        height: 1.3),
-                                                  ),
-                                                ),
-                                              ],
-                                            )),
-                                        const SizedBox(height: 15.625),
-                                        Padding(
-                                            padding: const EdgeInsets.only(
-                                                left: 16, right: 16),
-                                            child: Image.asset(
-                                                'assets/images/showcase$i.png'))
-                                      ],
-                                    );
-                                  },
-                                );
-                              }).toList(),
-                            ),
-                          ],
-                        ),
-                        Container(
-                          height: 250,
-                          width: double.infinity,
-                          decoration: const BoxDecoration(
-                            gradient: LinearGradient(
-                              colors: [Color(0x00DAE4F7), Color(0xFFDAE4F7)],
-                              stops: [0, 0.1],
-                              begin: Alignment.topCenter,
-                              end: Alignment.bottomCenter,
-                            ),
+                                              ),
+                                            ],
+                                          )),
+                                      const SizedBox(height: 15.625),
+                                      Padding(
+                                          padding: const EdgeInsets.only(
+                                              left: 16, right: 16),
+                                          child: Image.asset(
+                                              'assets/images/showcase$i.png'))
+                                    ],
+                                  );
+                                },
+                              );
+                            }).toList(),
                           ),
-                          child: Padding(
-                            padding: const EdgeInsets.only(top: 3),
-                            child: Column(
-                              children: [
-                                SizedBox(
-                                  height: 48,
-                                  width: double.infinity,
-                                  child: Padding(
-                                    padding: const EdgeInsets.symmetric(
-                                        horizontal: 16),
-                                    child: FilledButton(
-                                        style: ButtonStyle(
-                                            shape: MaterialStateProperty.all<
-                                                    RoundedRectangleBorder>(
-                                                const RoundedRectangleBorder(
-                                          borderRadius: BorderRadius.all(
-                                              Radius.circular(12)),
-                                        ))),
-                                        onPressed: () {},
-                                        child: Text(
-                                          "login".i18n,
-                                          style: const TextStyle(
-                                              fontFamily: 'Montserrat',
-                                              fontSize: 20,
-                                              fontWeight: FontWeight.w700),
-                                        )),
-                                  ),
+                        ],
+                      ),
+                      Container(
+                        height: 250,
+                        width: double.infinity,
+                        decoration: const BoxDecoration(
+                          gradient: LinearGradient(
+                            colors: [Color(0x00DAE4F7), Color(0xFFDAE4F7)],
+                            stops: [0, 0.1],
+                            begin: Alignment.topCenter,
+                            end: Alignment.bottomCenter,
+                          ),
+                        ),
+                        child: Padding(
+                          padding: const EdgeInsets.only(top: 3),
+                          child: Column(
+                            children: [
+                              SizedBox(
+                                height: 48,
+                                width: double.infinity,
+                                child: Padding(
+                                  padding: const EdgeInsets.symmetric(
+                                      horizontal: 16),
+                                  child: FilledButton(
+                                      style: ButtonStyle(
+                                          shape: MaterialStateProperty.all<
+                                                  RoundedRectangleBorder>(
+                                              const RoundedRectangleBorder(
+                                        borderRadius: BorderRadius.all(
+                                            Radius.circular(12)),
+                                      ))),
+                                      onPressed: () {},
+                                      child: Text(
+                                        "login".i18n,
+                                        style: const TextStyle(
+                                            fontFamily: 'Montserrat',
+                                            fontSize: 20,
+                                            fontWeight: FontWeight.w700),
+                                      )),
                                 ),
-                                const SizedBox(height: 8),
-                              ],
-                            ),
+                              ),
+                              const SizedBox(height: 8),
+                            ],
                           ),
-                        )
-                        // Column(
-                        //   //login buttons and ui starts here
-                        //   mainAxisAlignment: MainAxisAlignment.end,
-                        //   crossAxisAlignment: CrossAxisAlignment.end,
-                        //   children: [
-                        //     Padding(
-                        //       padding: const EdgeInsets.only(
-                        //         left: 22.0,
-                        //         right: 22.0,
-                        //         top: 0.0,
-                        //       ),
-                        //       child: AutofillGroup(
-                        //         child: Column(
-                        //           crossAxisAlignment: CrossAxisAlignment.end,
-                        //           children: [
-                        //             // username
-                        //             Padding(
-                        //               padding:
-                        //                   const EdgeInsets.only(bottom: 6.0),
-                        //               child: Row(
-                        //                 mainAxisAlignment:
-                        //                     MainAxisAlignment.spaceBetween,
-                        //                 children: [
-                        //                   Expanded(
-                        //                     child: Text(
-                        //                       "username".i18n,
-                        //                       maxLines: 1,
-                        //                       style: TextStyle(
-                        //                         color: AppColors.of(context)
-                        //                             .loginPrimary,
-                        //                         fontWeight: FontWeight.w500,
-                        //                         fontSize: 12.0,
-                        //                       ),
-                        //                     ),
-                        //                   ),
-                        //                   Expanded(
-                        //                     child: Text(
-                        //                       "usernameHint".i18n,
-                        //                       maxLines: 1,
-                        //                       textAlign: TextAlign.right,
-                        //                       style: TextStyle(
-                        //                         color: AppColors.of(context)
-                        //                             .loginSecondary,
-                        //                         fontWeight: FontWeight.w500,
-                        //                         fontSize: 12.0,
-                        //                       ),
-                        //                     ),
-                        //                   ),
-                        //                 ],
-                        //               ),
-                        //             ),
-                        //             Padding(
-                        //               padding:
-                        //                   const EdgeInsets.only(bottom: 12.0),
-                        //               child: LoginInput(
-                        //                 style: LoginInputStyle.username,
-                        //                 controller: usernameController,
-                        //               ),
-                        //             ),
-
-                        //             // password
-                        //             Padding(
-                        //               padding:
-                        //                   const EdgeInsets.only(bottom: 6.0),
-                        //               child: Row(
-                        //                 mainAxisAlignment:
-                        //                     MainAxisAlignment.spaceBetween,
-                        //                 children: [
-                        //                   Expanded(
-                        //                     child: Text(
-                        //                       "password".i18n,
-                        //                       maxLines: 1,
-                        //                       style: TextStyle(
-                        //                         color: AppColors.of(context)
-                        //                             .loginPrimary,
-                        //                         fontWeight: FontWeight.w500,
-                        //                         fontSize: 12.0,
-                        //                       ),
-                        //                     ),
-                        //                   ),
-                        //                   Expanded(
-                        //                     child: Text(
-                        //                       "passwordHint".i18n,
-                        //                       maxLines: 1,
-                        //                       textAlign: TextAlign.right,
-                        //                       style: TextStyle(
-                        //                         color: AppColors.of(context)
-                        //                             .loginSecondary,
-                        //                         fontWeight: FontWeight.w500,
-                        //                         fontSize: 12.0,
-                        //                       ),
-                        //                     ),
-                        //                   ),
-                        //                 ],
-                        //               ),
-                        //             ),
-                        //             Padding(
-                        //               padding:
-                        //                   const EdgeInsets.only(bottom: 12.0),
-                        //               child: LoginInput(
-                        //                 style: LoginInputStyle.password,
-                        //                 controller: passwordController,
-                        //               ),
-                        //             ),
-
-                        //             // school
-                        //             Padding(
-                        //               padding:
-                        //                   const EdgeInsets.only(bottom: 6.0),
-                        //               child: Text(
-                        //                 "school".i18n,
-                        //                 maxLines: 1,
-                        //                 style: TextStyle(
-                        //                   color: AppColors.of(context)
-                        //                       .loginPrimary,
-                        //                   fontWeight: FontWeight.w500,
-                        //                   fontSize: 12.0,
-                        //                 ),
-                        //               ),
-                        //             ),
-                        //             SchoolInput(
-                        //               scroll: _scrollController,
-                        //               controller: schoolController,
-                        //             ),
-                        //           ],
-                        //         ),
-                        //       ),
-                        //     ),
-                        //     Padding(
-                        //       padding: const EdgeInsets.only(
-                        //         top: 35.0,
-                        //         left: 22.0,
-                        //         right: 22.0,
-                        //       ),
-                        //       child: Visibility(
-                        //         visible: _loginState != LoginState.inProgress,
-                        //         replacement: const Padding(
-                        //           padding: EdgeInsets.symmetric(vertical: 6.0),
-                        //           child: CircularProgressIndicator(
-                        //             valueColor: AlwaysStoppedAnimation<Color>(
-                        //                 Colors.white),
-                        //           ),
-                        //         ),
-                        //         child: LoginButton(
-                        //           child: Text("login".i18n,
-                        //               maxLines: 1,
-                        //               style: const TextStyle(
-                        //                 fontWeight: FontWeight.bold,
-                        //                 fontSize: 20.0,
-                        //               )),
-                        //           onPressed: () => _loginAPI(context: context),
-                        //         ),
-                        //       ),
-                        //     ),
-                        //   ],
-                        // ),
-                      ],
-                    ),
-
-                    if (_loginState == LoginState.missingFields ||
-                        _loginState == LoginState.invalidGrant ||
-                        _loginState == LoginState.failed)
-                      Padding(
-                        padding: const EdgeInsets.only(
-                            top: 8.0, left: 12.0, right: 12.0),
-                        child: Text(
-                          [
-                            "missing_fields",
-                            "invalid_grant",
-                            "error"
-                          ][_loginState.index]
-                              .i18n,
-                          style: const TextStyle(
-                            color: Colors.red,
-                            fontWeight: FontWeight.w500,
-                          ),
-                          textAlign: TextAlign.center,
                         ),
-                      ),
-                    // privacy policy
-                    GestureDetector(
-                      onTap: () => PrivacyView.show(context),
+                      )
+                      // Column(
+                      //   //login buttons and ui starts here
+                      //   mainAxisAlignment: MainAxisAlignment.end,
+                      //   crossAxisAlignment: CrossAxisAlignment.end,
+                      //   children: [
+                      //     Padding(
+                      //       padding: const EdgeInsets.only(
+                      //         left: 22.0,
+                      //         right: 22.0,
+                      //         top: 0.0,
+                      //       ),
+                      //       child: AutofillGroup(
+                      //         child: Column(
+                      //           crossAxisAlignment: CrossAxisAlignment.end,
+                      //           children: [
+                      //             // username
+                      //             Padding(
+                      //               padding:
+                      //                   const EdgeInsets.only(bottom: 6.0),
+                      //               child: Row(
+                      //                 mainAxisAlignment:
+                      //                     MainAxisAlignment.spaceBetween,
+                      //                 children: [
+                      //                   Expanded(
+                      //                     child: Text(
+                      //                       "username".i18n,
+                      //                       maxLines: 1,
+                      //                       style: TextStyle(
+                      //                         color: AppColors.of(context)
+                      //                             .loginPrimary,
+                      //                         fontWeight: FontWeight.w500,
+                      //                         fontSize: 12.0,
+                      //                       ),
+                      //                     ),
+                      //                   ),
+                      //                   Expanded(
+                      //                     child: Text(
+                      //                       "usernameHint".i18n,
+                      //                       maxLines: 1,
+                      //                       textAlign: TextAlign.right,
+                      //                       style: TextStyle(
+                      //                         color: AppColors.of(context)
+                      //                             .loginSecondary,
+                      //                         fontWeight: FontWeight.w500,
+                      //                         fontSize: 12.0,
+                      //                       ),
+                      //                     ),
+                      //                   ),
+                      //                 ],
+                      //               ),
+                      //             ),
+                      //             Padding(
+                      //               padding:
+                      //                   const EdgeInsets.only(bottom: 12.0),
+                      //               child: LoginInput(
+                      //                 style: LoginInputStyle.username,
+                      //                 controller: usernameController,
+                      //               ),
+                      //             ),
+
+                      //             // password
+                      //             Padding(
+                      //               padding:
+                      //                   const EdgeInsets.only(bottom: 6.0),
+                      //               child: Row(
+                      //                 mainAxisAlignment:
+                      //                     MainAxisAlignment.spaceBetween,
+                      //                 children: [
+                      //                   Expanded(
+                      //                     child: Text(
+                      //                       "password".i18n,
+                      //                       maxLines: 1,
+                      //                       style: TextStyle(
+                      //                         color: AppColors.of(context)
+                      //                             .loginPrimary,
+                      //                         fontWeight: FontWeight.w500,
+                      //                         fontSize: 12.0,
+                      //                       ),
+                      //                     ),
+                      //                   ),
+                      //                   Expanded(
+                      //                     child: Text(
+                      //                       "passwordHint".i18n,
+                      //                       maxLines: 1,
+                      //                       textAlign: TextAlign.right,
+                      //                       style: TextStyle(
+                      //                         color: AppColors.of(context)
+                      //                             .loginSecondary,
+                      //                         fontWeight: FontWeight.w500,
+                      //                         fontSize: 12.0,
+                      //                       ),
+                      //                     ),
+                      //                   ),
+                      //                 ],
+                      //               ),
+                      //             ),
+                      //             Padding(
+                      //               padding:
+                      //                   const EdgeInsets.only(bottom: 12.0),
+                      //               child: LoginInput(
+                      //                 style: LoginInputStyle.password,
+                      //                 controller: passwordController,
+                      //               ),
+                      //             ),
+
+                      //             // school
+                      //             Padding(
+                      //               padding:
+                      //                   const EdgeInsets.only(bottom: 6.0),
+                      //               child: Text(
+                      //                 "school".i18n,
+                      //                 maxLines: 1,
+                      //                 style: TextStyle(
+                      //                   color: AppColors.of(context)
+                      //                       .loginPrimary,
+                      //                   fontWeight: FontWeight.w500,
+                      //                   fontSize: 12.0,
+                      //                 ),
+                      //               ),
+                      //             ),
+                      //             SchoolInput(
+                      //               scroll: _scrollController,
+                      //               controller: schoolController,
+                      //             ),
+                      //           ],
+                      //         ),
+                      //       ),
+                      //     ),
+                      //     Padding(
+                      //       padding: const EdgeInsets.only(
+                      //         top: 35.0,
+                      //         left: 22.0,
+                      //         right: 22.0,
+                      //       ),
+                      //       child: Visibility(
+                      //         visible: _loginState != LoginState.inProgress,
+                      //         replacement: const Padding(
+                      //           padding: EdgeInsets.symmetric(vertical: 6.0),
+                      //           child: CircularProgressIndicator(
+                      //             valueColor: AlwaysStoppedAnimation<Color>(
+                      //                 Colors.white),
+                      //           ),
+                      //         ),
+                      //         child: LoginButton(
+                      //           child: Text("login".i18n,
+                      //               maxLines: 1,
+                      //               style: const TextStyle(
+                      //                 fontWeight: FontWeight.bold,
+                      //                 fontSize: 20.0,
+                      //               )),
+                      //           onPressed: () => _loginAPI(context: context),
+                      //         ),
+                      //       ),
+                      //     ),
+                      //   ],
+                      // ),
+                    ],
+                  ),
+
+                  if (_loginState == LoginState.missingFields ||
+                      _loginState == LoginState.invalidGrant ||
+                      _loginState == LoginState.failed)
+                    Padding(
+                      padding: const EdgeInsets.only(
+                          top: 8.0, left: 12.0, right: 12.0),
                       child: Text(
-                        'privacy'.i18n,
-                        style: TextStyle(
-                          color: AppColors.of(context).loginSecondary,
+                        [
+                          "missing_fields",
+                          "invalid_grant",
+                          "error"
+                        ][_loginState.index]
+                            .i18n,
+                        style: const TextStyle(
+                          color: Colors.red,
                           fontWeight: FontWeight.w500,
-                          fontSize: 14.0,
                         ),
+                        textAlign: TextAlign.center,
                       ),
                     ),
-                  ],
-                ),
+                  // privacy policy
+                  GestureDetector(
+                    onTap: () => PrivacyView.show(context),
+                    child: Text(
+                      'privacy'.i18n,
+                      style: TextStyle(
+                        color: AppColors.of(context).loginSecondary,
+                        fontWeight: FontWeight.w500,
+                        fontSize: 14.0,
+                      ),
+                    ),
+                  ),
+                ],
               ),
             ),
           ),

From 816b14e735e505f14d385288b075e1fa14282216 Mon Sep 17 00:00:00 2001
From: zypherift <management@refilc.hu>
Date: Fri, 3 May 2024 21:06:44 +0200
Subject: [PATCH 3/3] started bottommodalsheet, school selector is buggy need
 fix

---
 .../lib/screens/login/login_screen.dart       | 449 +++++++++++-------
 1 file changed, 285 insertions(+), 164 deletions(-)

diff --git a/refilc_mobile_ui/lib/screens/login/login_screen.dart b/refilc_mobile_ui/lib/screens/login/login_screen.dart
index fa79fc2..a9f2dbd 100644
--- a/refilc_mobile_ui/lib/screens/login/login_screen.dart
+++ b/refilc_mobile_ui/lib/screens/login/login_screen.dart
@@ -1,10 +1,9 @@
 // import 'dart:async';
 
-import 'package:flutter/cupertino.dart';
-import 'package:flutter/widgets.dart';
 import 'package:refilc/api/client.dart';
 import 'package:refilc/api/login.dart';
 import 'package:refilc/theme/colors/colors.dart';
+import 'package:refilc_mobile_ui/common/bottom_sheet_menu/rounded_bottom_sheet.dart';
 import 'package:refilc_mobile_ui/common/custom_snack_bar.dart';
 import 'package:refilc_mobile_ui/common/system_chrome.dart';
 import 'package:refilc_mobile_ui/common/widgets/absence/absence_display.dart';
@@ -17,7 +16,6 @@ import 'package:flutter/services.dart';
 import 'login_screen.i18n.dart';
 import 'package:carousel_slider/carousel_slider.dart';
 import 'package:flutter_svg/flutter_svg.dart';
-import 'package:flutter_portal/flutter_portal.dart';
 
 class LoginScreen extends StatefulWidget {
   const LoginScreen({super.key, this.back = false});
@@ -85,6 +83,7 @@ class LoginScreenState extends State<LoginScreen> {
     precacheImage(const AssetImage('assets/images/showcase2.png'), context);
     precacheImage(const AssetImage('assets/images/showcase3.png'), context);
     precacheImage(const AssetImage('assets/images/showcase4.png'), context);
+    bool selected = false;
 
     return Scaffold(
       body: Container(
@@ -200,18 +199,18 @@ class LoginScreenState extends State<LoginScreen> {
                         ],
                       ),
                       Container(
-                        height: 250,
+                        height: 300,
                         width: double.infinity,
                         decoration: const BoxDecoration(
                           gradient: LinearGradient(
                             colors: [Color(0x00DAE4F7), Color(0xFFDAE4F7)],
-                            stops: [0, 0.1],
+                            stops: [0, 0.12],
                             begin: Alignment.topCenter,
                             end: Alignment.bottomCenter,
                           ),
                         ),
                         child: Padding(
-                          padding: const EdgeInsets.only(top: 3),
+                          padding: EdgeInsets.only(top: 50, bottom: MediaQuery.of(context).viewInsets.bottom),
                           child: Column(
                             children: [
                               SizedBox(
@@ -228,7 +227,285 @@ class LoginScreenState extends State<LoginScreen> {
                                         borderRadius: BorderRadius.all(
                                             Radius.circular(12)),
                                       ))),
-                                      onPressed: () {},
+                                      onPressed: () {
+                                        showModalBottomSheet(
+                                          backgroundColor: Colors.transparent,
+                                          context: context,
+                                          builder: (BuildContext context) {
+                                            return Container(
+                                              height: MediaQuery.of(context)
+                                                      .size
+                                                      .height *
+                                                  0.5 + MediaQuery.of(context).viewInsets.bottom,
+                                              decoration: const BoxDecoration(
+                                                color: Color(0xFFDAE4F7),
+                                                borderRadius: BorderRadius.only(
+                                                  topRight:
+                                                      Radius.circular(24.0),
+                                                  topLeft:
+                                                      Radius.circular(24.0),
+                                                ),
+                                              ),
+                                              child: Column(
+                                                  crossAxisAlignment:
+                                                      CrossAxisAlignment.center,
+                                                  mainAxisAlignment:
+                                                      MainAxisAlignment.start,
+                                                  children: [
+                                                    Padding(
+                                                      padding:
+                                                          const EdgeInsets.only(
+                                                              top: 18),
+                                                      child: Container(
+                                                        decoration:
+                                                            const BoxDecoration(
+                                                          color:
+                                                              Color(0xFFB9C8E5),
+                                                          borderRadius:
+                                                              BorderRadius.only(
+                                                            topRight:
+                                                                Radius.circular(
+                                                                    2.0),
+                                                            topLeft:
+                                                                Radius.circular(
+                                                                    2.0),
+                                                          ),
+                                                        ),
+                                                        width: 40,
+                                                        height: 4,
+                                                      ),
+                                                    ),
+                                                    Container(
+                                                      width: double.infinity,
+                                                      child: AutofillGroup(
+                                                        child: Column(
+                                                          crossAxisAlignment:
+                                                              CrossAxisAlignment
+                                                                  .end,
+                                                          children: [
+                                                            // username
+                                                            Padding(
+                                                              padding:
+                                                                  const EdgeInsets
+                                                                      .only(
+                                                                      bottom:
+                                                                          6.0),
+                                                              child: Row(
+                                                                mainAxisAlignment:
+                                                                    MainAxisAlignment
+                                                                        .spaceBetween,
+                                                                children: [
+                                                                  Expanded(
+                                                                    child: Text(
+                                                                      "username"
+                                                                          .i18n,
+                                                                      maxLines:
+                                                                          1,
+                                                                      style:
+                                                                          TextStyle(
+                                                                        color: AppColors.of(context)
+                                                                            .loginPrimary,
+                                                                        fontWeight:
+                                                                            FontWeight.w500,
+                                                                        fontSize:
+                                                                            12.0,
+                                                                      ),
+                                                                    ),
+                                                                  ),
+                                                                  Expanded(
+                                                                    child: Text(
+                                                                      "usernameHint"
+                                                                          .i18n,
+                                                                      maxLines:
+                                                                          1,
+                                                                      textAlign:
+                                                                          TextAlign
+                                                                              .right,
+                                                                      style:
+                                                                          TextStyle(
+                                                                        color: AppColors.of(context)
+                                                                            .loginSecondary,
+                                                                        fontWeight:
+                                                                            FontWeight.w500,
+                                                                        fontSize:
+                                                                            12.0,
+                                                                      ),
+                                                                    ),
+                                                                  ),
+                                                                ],
+                                                              ),
+                                                            ),
+                                                            Padding(
+                                                              padding:
+                                                                  const EdgeInsets
+                                                                      .only(
+                                                                      bottom:
+                                                                          12.0),
+                                                              child: LoginInput(
+                                                                style:
+                                                                    LoginInputStyle
+                                                                        .username,
+                                                                controller:
+                                                                    usernameController,
+                                                              ),
+                                                            ),
+
+                                                            // password
+                                                            Padding(
+                                                              padding:
+                                                                  const EdgeInsets
+                                                                      .only(
+                                                                      bottom:
+                                                                          6.0),
+                                                              child: Row(
+                                                                mainAxisAlignment:
+                                                                    MainAxisAlignment
+                                                                        .spaceBetween,
+                                                                children: [
+                                                                  Expanded(
+                                                                    child: Text(
+                                                                      "password"
+                                                                          .i18n,
+                                                                      maxLines:
+                                                                          1,
+                                                                      style:
+                                                                          TextStyle(
+                                                                        color: AppColors.of(context)
+                                                                            .loginPrimary,
+                                                                        fontWeight:
+                                                                            FontWeight.w500,
+                                                                        fontSize:
+                                                                            12.0,
+                                                                      ),
+                                                                    ),
+                                                                  ),
+                                                                  Expanded(
+                                                                    child: Text(
+                                                                      "passwordHint"
+                                                                          .i18n,
+                                                                      maxLines:
+                                                                          1,
+                                                                      textAlign:
+                                                                          TextAlign
+                                                                              .right,
+                                                                      style:
+                                                                          TextStyle(
+                                                                        color: AppColors.of(context)
+                                                                            .loginSecondary,
+                                                                        fontWeight:
+                                                                            FontWeight.w500,
+                                                                        fontSize:
+                                                                            12.0,
+                                                                      ),
+                                                                    ),
+                                                                  ),
+                                                                ],
+                                                              ),
+                                                            ),
+                                                            Padding(
+                                                              padding:
+                                                                  const EdgeInsets
+                                                                      .only(
+                                                                      bottom:
+                                                                          12.0),
+                                                              child: LoginInput(
+                                                                style:
+                                                                    LoginInputStyle
+                                                                        .password,
+                                                                controller:
+                                                                    passwordController,
+                                                              ),
+                                                            ),
+
+                                                            // school
+                                                            Padding(
+                                                              padding:
+                                                                  const EdgeInsets
+                                                                      .only(
+                                                                      bottom:
+                                                                          6.0),
+                                                              child: Text(
+                                                                "school".i18n,
+                                                                maxLines: 1,
+                                                                style:
+                                                                    TextStyle(
+                                                                  color: AppColors.of(
+                                                                          context)
+                                                                      .loginPrimary,
+                                                                  fontWeight:
+                                                                      FontWeight
+                                                                          .w500,
+                                                                  fontSize:
+                                                                      12.0,
+                                                                ),
+                                                              ),
+                                                            ),
+                                                            SchoolInput(
+                                                              scroll:
+                                                                  _scrollController,
+                                                              controller:
+                                                                  schoolController,
+                                                            ),
+                                                          ],
+                                                        ),
+                                                      ),
+                                                    ),
+                                                    const Padding(
+                                                      padding: EdgeInsets.only(
+                                                        left: 22.0,
+                                                        right: 22.0,
+                                                        top: 0.0,
+                                                      ),
+                                                    ),
+                                                    Padding(
+                                                      padding:
+                                                          const EdgeInsets.only(
+                                                        top: 35.0,
+                                                        left: 22.0,
+                                                        right: 22.0,
+                                                      ),
+                                                      child: Visibility(
+                                                        visible: _loginState !=
+                                                            LoginState
+                                                                .inProgress,
+                                                        replacement:
+                                                            const Padding(
+                                                          padding: EdgeInsets
+                                                              .symmetric(
+                                                                  vertical:
+                                                                      6.0),
+                                                          child:
+                                                              CircularProgressIndicator(
+                                                            valueColor:
+                                                                AlwaysStoppedAnimation<
+                                                                        Color>(
+                                                                    Colors
+                                                                        .white),
+                                                          ),
+                                                        ),
+                                                        child: LoginButton(
+                                                          child: Text(
+                                                              "login".i18n,
+                                                              maxLines: 1,
+                                                              style:
+                                                                  const TextStyle(
+                                                                fontWeight:
+                                                                    FontWeight
+                                                                        .bold,
+                                                                fontSize: 20.0,
+                                                              )),
+                                                          onPressed: () =>
+                                                              _loginAPI(
+                                                                  context:
+                                                                      context),
+                                                        ),
+                                                      ),
+                                                    ),
+                                                  ]),
+                                            );
+                                          },
+                                        );
+                                      },
                                       child: Text(
                                         "login".i18n,
                                         style: const TextStyle(
@@ -242,163 +519,7 @@ class LoginScreenState extends State<LoginScreen> {
                             ],
                           ),
                         ),
-                      )
-                      // Column(
-                      //   //login buttons and ui starts here
-                      //   mainAxisAlignment: MainAxisAlignment.end,
-                      //   crossAxisAlignment: CrossAxisAlignment.end,
-                      //   children: [
-                      //     Padding(
-                      //       padding: const EdgeInsets.only(
-                      //         left: 22.0,
-                      //         right: 22.0,
-                      //         top: 0.0,
-                      //       ),
-                      //       child: AutofillGroup(
-                      //         child: Column(
-                      //           crossAxisAlignment: CrossAxisAlignment.end,
-                      //           children: [
-                      //             // username
-                      //             Padding(
-                      //               padding:
-                      //                   const EdgeInsets.only(bottom: 6.0),
-                      //               child: Row(
-                      //                 mainAxisAlignment:
-                      //                     MainAxisAlignment.spaceBetween,
-                      //                 children: [
-                      //                   Expanded(
-                      //                     child: Text(
-                      //                       "username".i18n,
-                      //                       maxLines: 1,
-                      //                       style: TextStyle(
-                      //                         color: AppColors.of(context)
-                      //                             .loginPrimary,
-                      //                         fontWeight: FontWeight.w500,
-                      //                         fontSize: 12.0,
-                      //                       ),
-                      //                     ),
-                      //                   ),
-                      //                   Expanded(
-                      //                     child: Text(
-                      //                       "usernameHint".i18n,
-                      //                       maxLines: 1,
-                      //                       textAlign: TextAlign.right,
-                      //                       style: TextStyle(
-                      //                         color: AppColors.of(context)
-                      //                             .loginSecondary,
-                      //                         fontWeight: FontWeight.w500,
-                      //                         fontSize: 12.0,
-                      //                       ),
-                      //                     ),
-                      //                   ),
-                      //                 ],
-                      //               ),
-                      //             ),
-                      //             Padding(
-                      //               padding:
-                      //                   const EdgeInsets.only(bottom: 12.0),
-                      //               child: LoginInput(
-                      //                 style: LoginInputStyle.username,
-                      //                 controller: usernameController,
-                      //               ),
-                      //             ),
-
-                      //             // password
-                      //             Padding(
-                      //               padding:
-                      //                   const EdgeInsets.only(bottom: 6.0),
-                      //               child: Row(
-                      //                 mainAxisAlignment:
-                      //                     MainAxisAlignment.spaceBetween,
-                      //                 children: [
-                      //                   Expanded(
-                      //                     child: Text(
-                      //                       "password".i18n,
-                      //                       maxLines: 1,
-                      //                       style: TextStyle(
-                      //                         color: AppColors.of(context)
-                      //                             .loginPrimary,
-                      //                         fontWeight: FontWeight.w500,
-                      //                         fontSize: 12.0,
-                      //                       ),
-                      //                     ),
-                      //                   ),
-                      //                   Expanded(
-                      //                     child: Text(
-                      //                       "passwordHint".i18n,
-                      //                       maxLines: 1,
-                      //                       textAlign: TextAlign.right,
-                      //                       style: TextStyle(
-                      //                         color: AppColors.of(context)
-                      //                             .loginSecondary,
-                      //                         fontWeight: FontWeight.w500,
-                      //                         fontSize: 12.0,
-                      //                       ),
-                      //                     ),
-                      //                   ),
-                      //                 ],
-                      //               ),
-                      //             ),
-                      //             Padding(
-                      //               padding:
-                      //                   const EdgeInsets.only(bottom: 12.0),
-                      //               child: LoginInput(
-                      //                 style: LoginInputStyle.password,
-                      //                 controller: passwordController,
-                      //               ),
-                      //             ),
-
-                      //             // school
-                      //             Padding(
-                      //               padding:
-                      //                   const EdgeInsets.only(bottom: 6.0),
-                      //               child: Text(
-                      //                 "school".i18n,
-                      //                 maxLines: 1,
-                      //                 style: TextStyle(
-                      //                   color: AppColors.of(context)
-                      //                       .loginPrimary,
-                      //                   fontWeight: FontWeight.w500,
-                      //                   fontSize: 12.0,
-                      //                 ),
-                      //               ),
-                      //             ),
-                      //             SchoolInput(
-                      //               scroll: _scrollController,
-                      //               controller: schoolController,
-                      //             ),
-                      //           ],
-                      //         ),
-                      //       ),
-                      //     ),
-                      //     Padding(
-                      //       padding: const EdgeInsets.only(
-                      //         top: 35.0,
-                      //         left: 22.0,
-                      //         right: 22.0,
-                      //       ),
-                      //       child: Visibility(
-                      //         visible: _loginState != LoginState.inProgress,
-                      //         replacement: const Padding(
-                      //           padding: EdgeInsets.symmetric(vertical: 6.0),
-                      //           child: CircularProgressIndicator(
-                      //             valueColor: AlwaysStoppedAnimation<Color>(
-                      //                 Colors.white),
-                      //           ),
-                      //         ),
-                      //         child: LoginButton(
-                      //           child: Text("login".i18n,
-                      //               maxLines: 1,
-                      //               style: const TextStyle(
-                      //                 fontWeight: FontWeight.bold,
-                      //                 fontSize: 20.0,
-                      //               )),
-                      //           onPressed: () => _loginAPI(context: context),
-                      //         ),
-                      //       ),
-                      //     ),
-                      //   ],
-                      // ),
+                      ),
                     ],
                   ),