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,