From b1a01dc6c1d7d16c583aaad394bf8c12c9658fc0 Mon Sep 17 00:00:00 2001 From: Hans Kokx Date: Tue, 10 Sep 2024 19:08:53 +0200 Subject: [PATCH] Added Unfocuser and json converters Signed-off-by: Hans Kokx --- CHANGELOG.md | 4 +++ lib/arcane_helper_utils.dart | 2 ++ lib/src/widgets/unfocuser.dart | 55 ++++++++++++++++++++++++++++++++++ pubspec.yaml | 2 +- 4 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 lib/src/widgets/unfocuser.dart diff --git a/CHANGELOG.md b/CHANGELOG.md index 32f490b..18048e5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.1 + +* Added Unfocuser widget and JSON converters + ## 1.0.0 * Initial release diff --git a/lib/arcane_helper_utils.dart b/lib/arcane_helper_utils.dart index 8a9a47e..30962b1 100644 --- a/lib/arcane_helper_utils.dart +++ b/lib/arcane_helper_utils.dart @@ -3,4 +3,6 @@ library arcane_helper_utils; export "package:arcane_helper_utils/src/extensions/date_time.dart"; export "package:arcane_helper_utils/src/extensions/string.dart"; export "package:arcane_helper_utils/src/extensions/string_jwt.dart"; +export "package:arcane_helper_utils/src/utils/json_converter.dart"; export "package:arcane_helper_utils/src/utils/ticker.dart"; +export "package:arcane_helper_utils/src/widgets/unfocuser.dart"; diff --git a/lib/src/widgets/unfocuser.dart b/lib/src/widgets/unfocuser.dart new file mode 100644 index 0000000..5ab49f1 --- /dev/null +++ b/lib/src/widgets/unfocuser.dart @@ -0,0 +1,55 @@ +/* +(c) Copyright 2020 Serov Konstantin. + +Licensed under the MIT license: + + http://www.opensource.org/licenses/mit-license.php + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import "package:flutter/material.dart"; + +class Unfocuser extends StatelessWidget { + const Unfocuser({ + required this.child, + super.key, + this.isEnabled = true, + }); + + final Widget child; + final bool isEnabled; + + @override + Widget build(BuildContext context) { + if (!isEnabled) { + return child; + } + return GestureDetector( + onTap: () { + final focusScopeNode = FocusScope.of(context); + if (focusScopeNode.hasPrimaryFocus == false && + focusScopeNode.focusedChild != null) { + FocusManager.instance.primaryFocus?.unfocus(); + } + }, + child: child, + ); + } +} diff --git a/pubspec.yaml b/pubspec.yaml index ad273bc..3d956a9 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,7 +1,7 @@ name: arcane_helper_utils description: Provides a variety of helpful utilities and extensions for Flutter and Dart. -version: 1.0.0 +version: 1.0.1 repository: https://github.com/hanskokx/arcane_helper_utils issue_tracker: https://github.com/hanskokx/arcane_helper_utils/issues