diff --git a/packages/wyatt_ui_kit/lib/src/core/mixin/export_bloc_mixin.dart b/packages/wyatt_ui_kit/lib/src/components/buttons/exportable_bloc.dart
similarity index 70%
rename from packages/wyatt_ui_kit/lib/src/core/mixin/export_bloc_mixin.dart
rename to packages/wyatt_ui_kit/lib/src/components/buttons/exportable_bloc.dart
index f2ae41bf..0f9fbd73 100644
--- a/packages/wyatt_ui_kit/lib/src/core/mixin/export_bloc_mixin.dart
+++ b/packages/wyatt_ui_kit/lib/src/components/buttons/exportable_bloc.dart
@@ -14,12 +14,22 @@
// You should have received a copy of the GNU General Public License
// along with this program. If not, see .
-import 'package:flutter/widgets.dart';
+import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
-mixin ExportBloc> {
- T get bloc;
- Widget exportBloc({required Widget child}) => BlocProvider.value(
+class ExportableBloc>
+ extends StatelessWidget {
+ const ExportableBloc({
+ required this.bloc,
+ required this.child,
+ super.key,
+ });
+
+ final T bloc;
+ final Widget child;
+
+ @override
+ Widget build(BuildContext context) => BlocProvider.value(
value: bloc,
child: child,
);
diff --git a/packages/wyatt_ui_kit/lib/src/components/buttons/file_selection_button/file_selection_button.dart b/packages/wyatt_ui_kit/lib/src/components/buttons/file_selection_button/file_selection_button.dart
index aeebaa43..1c038237 100644
--- a/packages/wyatt_ui_kit/lib/src/components/buttons/file_selection_button/file_selection_button.dart
+++ b/packages/wyatt_ui_kit/lib/src/components/buttons/file_selection_button/file_selection_button.dart
@@ -18,15 +18,15 @@ import 'package:flutter/material.dart' hide ButtonStyle;
import 'package:wyatt_component_copy_with_extension/component_copy_with_extension.dart';
import 'package:wyatt_ui_components/wyatt_wyatt_ui_components.dart';
import 'package:wyatt_ui_kit/src/components/buttons/cubit/invalid_button_cubit.dart';
+import 'package:wyatt_ui_kit/src/components/buttons/exportable_bloc.dart';
import 'package:wyatt_ui_kit/src/components/buttons/file_selection_button/file_selection_button_screen.dart';
import 'package:wyatt_ui_kit/src/components/buttons/file_selection_button/file_selection_button_theme_resolver.dart';
-import 'package:wyatt_ui_kit/src/core/mixin/export_bloc_mixin.dart';
part 'file_selection_button.g.dart';
@ComponentCopyWithExtension()
class FileSelectionButton extends FileSelectionButtonComponent
- with $FileSelectionButtonCWMixin, ExportBloc {
+ with $FileSelectionButtonCWMixin {
FileSelectionButton({
super.leading,
super.title,
@@ -46,7 +46,6 @@ class FileSelectionButton extends FileSelectionButtonComponent
final InvalidButtonCubit _cubit = InvalidButtonCubit();
- @override
InvalidButtonCubit get bloc => _cubit;
@override
@@ -82,7 +81,8 @@ class FileSelectionButton extends FileSelectionButtonComponent
super.themeResolver as FileSelectionButtonThemeResolver?;
@override
- Widget build(BuildContext context) => exportBloc(
+ Widget build(BuildContext context) => ExportableBloc(
+ bloc: _cubit,
child: FileSelectionButtonScreen(
leading: leading,
title: title,
diff --git a/packages/wyatt_ui_kit/lib/src/components/buttons/flat_button/flat_button.dart b/packages/wyatt_ui_kit/lib/src/components/buttons/flat_button/flat_button.dart
index 123b91c2..df67bb11 100644
--- a/packages/wyatt_ui_kit/lib/src/components/buttons/flat_button/flat_button.dart
+++ b/packages/wyatt_ui_kit/lib/src/components/buttons/flat_button/flat_button.dart
@@ -18,15 +18,14 @@ import 'package:flutter/material.dart' hide ButtonStyle;
import 'package:wyatt_component_copy_with_extension/component_copy_with_extension.dart';
import 'package:wyatt_ui_components/wyatt_wyatt_ui_components.dart';
import 'package:wyatt_ui_kit/src/components/buttons/cubit/button_cubit.dart';
+import 'package:wyatt_ui_kit/src/components/buttons/exportable_bloc.dart';
import 'package:wyatt_ui_kit/src/components/buttons/flat_button/flat_button_screen.dart';
import 'package:wyatt_ui_kit/src/components/buttons/flat_button/flat_button_theme_resolver.dart';
-import 'package:wyatt_ui_kit/src/core/mixin/export_bloc_mixin.dart';
part 'flat_button.g.dart';
@ComponentCopyWithExtension()
-class FlatButton extends FlatButtonComponent
- with $FlatButtonCWMixin, ExportBloc {
+class FlatButton extends FlatButtonComponent with $FlatButtonCWMixin {
FlatButton({
super.prefix,
super.suffix,
@@ -44,7 +43,6 @@ class FlatButton extends FlatButtonComponent
final ButtonCubit _cubit = ButtonCubit();
- @override
ButtonCubit get bloc => _cubit;
@override
@@ -67,7 +65,8 @@ class FlatButton extends FlatButtonComponent
super.themeResolver as FlatButtonThemeResolver?;
@override
- Widget build(BuildContext context) => exportBloc(
+ Widget build(BuildContext context) => ExportableBloc(
+ bloc: _cubit,
child: FlatButtonScreen(
prefix: prefix,
suffix: suffix,
diff --git a/packages/wyatt_ui_kit/lib/src/components/buttons/simple_icon_button/simple_icon_button.dart b/packages/wyatt_ui_kit/lib/src/components/buttons/simple_icon_button/simple_icon_button.dart
index 0322265a..9bd074b1 100644
--- a/packages/wyatt_ui_kit/lib/src/components/buttons/simple_icon_button/simple_icon_button.dart
+++ b/packages/wyatt_ui_kit/lib/src/components/buttons/simple_icon_button/simple_icon_button.dart
@@ -18,15 +18,15 @@ import 'package:flutter/material.dart' hide ButtonStyle;
import 'package:wyatt_component_copy_with_extension/component_copy_with_extension.dart';
import 'package:wyatt_ui_components/wyatt_wyatt_ui_components.dart';
import 'package:wyatt_ui_kit/src/components/buttons/cubit/button_cubit.dart';
+import 'package:wyatt_ui_kit/src/components/buttons/exportable_bloc.dart';
import 'package:wyatt_ui_kit/src/components/buttons/simple_icon_button/simple_icon_button_theme_resolver.dart';
import 'package:wyatt_ui_kit/src/components/buttons/simple_icon_button/simple_icon_screen.dart';
-import 'package:wyatt_ui_kit/src/core/mixin/export_bloc_mixin.dart';
part 'simple_icon_button.g.dart';
@ComponentCopyWithExtension()
class SimpleIconButton extends SimpleIconButtonComponent
- with $SimpleIconButtonCWMixin, ExportBloc {
+ with $SimpleIconButtonCWMixin {
SimpleIconButton({
super.icon,
super.disabledStyle,
@@ -41,7 +41,6 @@ class SimpleIconButton extends SimpleIconButtonComponent
final ButtonCubit _cubit = ButtonCubit();
- @override
ButtonCubit get bloc => _cubit;
@override
@@ -69,7 +68,8 @@ class SimpleIconButton extends SimpleIconButtonComponent
super.themeResolver as SimpleIconButtonThemeResolver?;
@override
- Widget build(BuildContext context) => exportBloc(
+ Widget build(BuildContext context) => ExportableBloc(
+ bloc: _cubit,
child: SimpleIconButtonScreen(
icon: icon,
disabledStyle: disabledStyle,
diff --git a/packages/wyatt_ui_kit/lib/src/components/buttons/symbol_button/symbol_button.dart b/packages/wyatt_ui_kit/lib/src/components/buttons/symbol_button/symbol_button.dart
index 1a328042..64436fa5 100644
--- a/packages/wyatt_ui_kit/lib/src/components/buttons/symbol_button/symbol_button.dart
+++ b/packages/wyatt_ui_kit/lib/src/components/buttons/symbol_button/symbol_button.dart
@@ -18,15 +18,15 @@ import 'package:flutter/material.dart' hide ButtonStyle;
import 'package:wyatt_component_copy_with_extension/component_copy_with_extension.dart';
import 'package:wyatt_ui_components/wyatt_wyatt_ui_components.dart';
import 'package:wyatt_ui_kit/src/components/buttons/cubit/selectable_button_cubit.dart';
+import 'package:wyatt_ui_kit/src/components/buttons/exportable_bloc.dart';
import 'package:wyatt_ui_kit/src/components/buttons/symbol_button/symbol_button_screen.dart';
import 'package:wyatt_ui_kit/src/components/buttons/symbol_button/symbol_button_theme_resolver.dart';
-import 'package:wyatt_ui_kit/src/core/mixin/export_bloc_mixin.dart';
part 'symbol_button.g.dart';
@ComponentCopyWithExtension()
class SymbolButton extends SymbolButtonComponent
- with $SymbolButtonCWMixin, ExportBloc {
+ with $SymbolButtonCWMixin{
SymbolButton({
super.icon,
super.label,
@@ -44,7 +44,6 @@ class SymbolButton extends SymbolButtonComponent
final SelectableButtonCubit _cubit = SelectableButtonCubit();
- @override
SelectableButtonCubit get bloc => _cubit;
@override
@@ -74,7 +73,8 @@ class SymbolButton extends SymbolButtonComponent
super.themeResolver as SymbolButtonThemeResolver?;
@override
- Widget build(BuildContext context) => exportBloc(
+ Widget build(BuildContext context) => ExportableBloc(
+ bloc: _cubit,
child: SymbolButtonScreen(
icon: icon,
label: label,