From 6b5ff1bbc96d5b29d124d7cb4ba45ed302e9e752 Mon Sep 17 00:00:00 2001
From: vjrj <vjrj@comunes.org>
Date: Mon, 13 Mar 2023 01:14:58 +0100
Subject: [PATCH] Only show warning til accepted

---
 lib/ui/screens/first_screen.dart | 74 ++++++++++++++++++++------------
 1 file changed, 46 insertions(+), 28 deletions(-)

diff --git a/lib/ui/screens/first_screen.dart b/lib/ui/screens/first_screen.dart
index 6eee502c..a229d9d9 100644
--- a/lib/ui/screens/first_screen.dart
+++ b/lib/ui/screens/first_screen.dart
@@ -1,6 +1,9 @@
 import 'package:easy_localization/easy_localization.dart';
 import 'package:flutter/material.dart';
+import 'package:flutter_bloc/flutter_bloc.dart';
 
+import '../../data/models/app_cubit.dart';
+import '../../data/models/app_state.dart';
 import '../widgets/first_screen/credit_card.dart';
 import '../widgets/first_screen/pay_contact_search_widget.dart';
 import '../widgets/header.dart';
@@ -18,34 +21,49 @@ class _FirstScreenState extends State<FirstScreen> {
 
   @override
   Widget build(BuildContext context) {
-    WidgetsBinding.instance.addPostFrameCallback((_) async {
-      ScaffoldMessenger.of(context)
-          .showSnackBar(SnackBar(content: Text(tr('demo-desc'))));
-    });
-    return Material(
-        color: Theme.of(context).colorScheme.background,
-        child: ListView(
-            padding: const EdgeInsets.symmetric(horizontal: 16),
-            physics: const AlwaysScrollableScrollPhysics(),
-            controller: _controller,
-            shrinkWrap: true,
-            children: <Widget>[
-              const Header(text: 'credit_card_title'),
-              CreditCard(),
-              const SizedBox(height: 8),
-              Padding(
-                padding: const EdgeInsets.symmetric(horizontal: 24),
-                child: Divider(
-                  color: Theme.of(context)
-                      .colorScheme
-                      .onBackground
-                      .withOpacity(.4),
-                ),
+    return BlocBuilder<AppCubit, AppState>(
+        builder: (BuildContext context, AppState state) {
+      WidgetsBinding.instance.addPostFrameCallback((_) async {
+        if (!BlocProvider.of<AppCubit>(context).isWarningViewed) {
+          ScaffoldMessenger.of(context).showSnackBar(
+            SnackBar(
+              content: Text(tr('demo-desc')),
+              action: SnackBarAction(
+                label: 'OK',
+                onPressed: () {
+                  ScaffoldMessenger.of(context).hideCurrentSnackBar();
+                  BlocProvider.of<AppCubit>(context).warningViewed();
+                },
               ),
-              const SizedBox(height: 10),
-              const PayContactSearchWidget(),
-              const SizedBox(height: 10),
-              const PayForm()
-            ]));
+            ),
+          );
+        }
+      });
+      return Material(
+          color: Theme.of(context).colorScheme.background,
+          child: ListView(
+              padding: const EdgeInsets.symmetric(horizontal: 16),
+              physics: const AlwaysScrollableScrollPhysics(),
+              controller: _controller,
+              shrinkWrap: true,
+              children: <Widget>[
+                const Header(text: 'credit_card_title'),
+                CreditCard(),
+                const SizedBox(height: 8),
+                Padding(
+                  padding: const EdgeInsets.symmetric(horizontal: 24),
+                  child: Divider(
+                    color: Theme.of(context)
+                        .colorScheme
+                        .onBackground
+                        .withOpacity(.4),
+                  ),
+                ),
+                const SizedBox(height: 10),
+                const PayContactSearchWidget(),
+                const SizedBox(height: 10),
+                const PayForm()
+              ]));
+    });
   }
 }
-- 
GitLab