From 7e2f3c36e8e76d96fc8662f625a098e11b4879fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Malo=20L=C3=A9on?= Date: Wed, 22 Feb 2023 16:05:40 +0100 Subject: [PATCH] feat(ui_components): generify bars --- .../entities/bars/app_bar_component.dart | 63 +++++++------------ .../entities/bars/top_bar_component.dart | 62 ++++++++++++++++++ 2 files changed, 85 insertions(+), 40 deletions(-) create mode 100644 packages/wyatt_ui_components/lib/src/domain/entities/bars/top_bar_component.dart diff --git a/packages/wyatt_ui_components/lib/src/domain/entities/bars/app_bar_component.dart b/packages/wyatt_ui_components/lib/src/domain/entities/bars/app_bar_component.dart index 27326808..f13710a2 100644 --- a/packages/wyatt_ui_components/lib/src/domain/entities/bars/app_bar_component.dart +++ b/packages/wyatt_ui_components/lib/src/domain/entities/bars/app_bar_component.dart @@ -1,70 +1,53 @@ // Copyright (C) 2023 WYATT GROUP // Please see the AUTHORS file for details. // -// This program is free software: you can redistribute it and/or modify +// super program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // any later version. // -// This program is distributed in the hope that it will be useful, +// super program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License -// along with this program. If not, see . +// along with super program. If not, see . import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:wyatt_component_copy_with_extension/component_copy_with_extension.dart'; +import 'package:wyatt_ui_components/src/domain/entities/bars/top_bar_component.dart'; import 'package:wyatt_ui_components/wyatt_wyatt_ui_components.dart'; part 'app_bar_component.g.dart'; @ComponentProxyExtension() -abstract class AppBarComponent extends Component +abstract class AppBarComponent extends TopBarComponent with CopyWithMixin<$AppBarComponentCWProxy> { const AppBarComponent({ - this.shape, - this.systemOverlayStyle, - this.automaticallyImplyLeading, - this.flexibleSpace, - this.bottom, - this.elevation, - this.scrolledUnderElevation, - this.shadowColor, - this.surfaceTintColor, - this.backgroundColor, - this.iconTheme, - this.primary, - this.excludeHeaderSemantics, - this.toolbarHeight, - this.leadingWidth, this.title, - this.leading, - this.actions, this.centerTitle, - this.expandedWidget, + super.shape, + super.systemOverlayStyle, + super.automaticallyImplyLeading, + super.flexibleSpace, + super.bottom, + super.elevation, + super.scrolledUnderElevation, + super.shadowColor, + super.surfaceTintColor, + super.backgroundColor, + super.iconTheme, + super.primary, + super.excludeHeaderSemantics, + super.toolbarHeight, + super.leadingWidth, + super.leading, + super.actions, + super.expandedWidget, super.key, }); final TextWrapper? title; final bool? centerTitle; - final Widget? leading; - final List? actions; - final bool? automaticallyImplyLeading; - final Widget? flexibleSpace; - final PreferredSizeWidget? bottom; - final double? elevation; - final double? scrolledUnderElevation; - final Color? shadowColor; - final Color? surfaceTintColor; - final MultiColor? backgroundColor; - final IconThemeData? iconTheme; - final bool? primary; - final bool? excludeHeaderSemantics; - final double? toolbarHeight; - final double? leadingWidth; - final SystemUiOverlayStyle? systemOverlayStyle; - final ShapeBorder? shape; - final List? expandedWidget; } diff --git a/packages/wyatt_ui_components/lib/src/domain/entities/bars/top_bar_component.dart b/packages/wyatt_ui_components/lib/src/domain/entities/bars/top_bar_component.dart new file mode 100644 index 00000000..f73f8423 --- /dev/null +++ b/packages/wyatt_ui_components/lib/src/domain/entities/bars/top_bar_component.dart @@ -0,0 +1,62 @@ +// Copyright (C) 2023 WYATT GROUP +// Please see the AUTHORS file for details. +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:wyatt_ui_components/wyatt_wyatt_ui_components.dart'; + +abstract class TopBarComponent extends Component { + const TopBarComponent({ + this.leading, + this.actions, + this.automaticallyImplyLeading, + this.flexibleSpace, + this.bottom, + this.elevation, + this.scrolledUnderElevation, + this.shadowColor, + this.surfaceTintColor, + this.backgroundColor, + this.iconTheme, + this.primary, + this.excludeHeaderSemantics, + this.toolbarHeight, + this.leadingWidth, + this.systemOverlayStyle, + this.shape, + this.expandedWidget, + super.key, + }); + + final Widget? leading; + final List? actions; + final bool? automaticallyImplyLeading; + final Widget? flexibleSpace; + final PreferredSizeWidget? bottom; + final double? elevation; + final double? scrolledUnderElevation; + final Color? shadowColor; + final Color? surfaceTintColor; + final MultiColor? backgroundColor; + final IconThemeData? iconTheme; + final bool? primary; + final bool? excludeHeaderSemantics; + final double? toolbarHeight; + final double? leadingWidth; + final SystemUiOverlayStyle? systemOverlayStyle; + final ShapeBorder? shape; + final List? expandedWidget; +}