feat(ui_components): generify bars

This commit is contained in:
Malo Léon 2023-02-22 16:05:40 +01:00
parent ca6af3ccc3
commit 8955788fa5
2 changed files with 85 additions and 40 deletions

View File

@ -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 <https://www.gnu.org/licenses/>.
// along with super program. If not, see <https://www.gnu.org/licenses/>.
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<Widget>? 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<Widget>? expandedWidget;
}

View File

@ -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 <https://www.gnu.org/licenses/>.
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<Widget>? 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<Widget>? expandedWidget;
}